はじめに
Vertica では EXPORT_TABLES 関数を使用して、論理スキーマ (スキーマ、テーブル、制約、シーケンス、パーティション) の DDL をエクスポートすることができます。構文
EXPORT_TABLES 関数の構文をご紹介します。EXPORT_TABLES ( [ ‘destination’ ] , [ ‘scope’ ] )
パラメータ | 説明 |
---|---|
destination | 関数によって生成されるSQLスクリプトの出力先を指定します。 ただし、出力先の指定をできるのはスーパーユーザのみです。 出力先の指定をしない場合は、標準出力されるとともに、カタログディレクトリ/DataCollector/RequestsIssued_n.logに出力されます。 |
scope | オブジェクトの定義をエクスポートする対象は以下のように指定します。 ・空文字(' ')を指定した場合 アクセス権をもつ全オブジェクトの定義をエクスポートします。 ・オブジェクトを指定した場合 (カンマ区切りで複数指定することも可能です) [dbname.][schema.]object データベース名、スキーマ名、オブジェクト名を指定して一致する定義をエクスポートします。 [dbname.]object オブジェクト名にスキーマ名を指定することで、スキーマに含まれるアクセス可能な オブジェクトの定義をエクスポートします。 スキーマ名と同じオブジェクトがある場合、スキーマ名を優先して定義をエクスポートします。 |
実行例
EXPORT_TABLES 関数で、「テーブル名」と「スキーマ名」を指定した場合の実行例をご紹介します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
### テーブル名を指定した場合 ### dbadmin=> SELECT export_tables('','SCHEMA1.TABLE1'); export_tables -------------------------------------------------------------- CREATE TABLE SCHEMA1.TABLE1 ( P_PARTKEY int NOT NULL, P_NAME varchar(22), P_MFGR char(6), P_CATEGORY char(7), P_BRAND1 char(9), P_COLOR varchar(11), P_TYPE varchar(25), P_SIZE numeric(10,0), P_CONTAINER char(10), CONSTRAINT PK_PART PRIMARY KEY (P_PARTKEY) ENABLED ); (1 row) ### スキーマ名を指定した場合 ### dbadmin=> SELECT export_tables('','SCHEMA1'); export_tables -------------------------------------------------------------- CREATE SCHEMA SCHEMA1; CREATE TABLE SCHEMA1.TABLE1 ( P_PARTKEY int NOT NULL, P_NAME varchar(22), P_MFGR char(6), P_CATEGORY char(7), P_BRAND1 char(9), P_COLOR varchar(11), P_TYPE varchar(25), P_SIZE numeric(10,0), P_CONTAINER char(10), CONSTRAINT PK_PART PRIMARY KEY (P_PARTKEY) ENABLED ); CREATE TABLE SCHEMA1.TABLE2 ( C_CUSTKEY numeric(10,0) NOT NULL, C_NAME varchar(25), C_ADDRESS varchar(25), C_CITY char(10), C_NATION char(15), C_REGION char(12), C_PHONE char(15), C_MKTSEGMENT char(10), CONSTRAINT PK_CUSTOMER PRIMARY KEY (C_CUSTKEY) ENABLED ); (1 row) |
9.2 以前は、すべてのテーブル制約が ALTER 文として DDL にエクスポートされました。
しかし、グローバルテンポラリテーブルでは、外部キー制約以外のテーブル制約を後から追加することができないため、手動で DDL を修正する必要がありました。9.3 以降では、外部キー制約を除くテーブル制約を CREATE 文の一部としてエクスポートするように変更されています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
### 9.2 以前の出力例 ### dbadmin=> SELECT export_tables('','SCHEMA1.TABLE1'); export_tables -------------------------------------------------------------- CREATE TABLE SCHEMA1.TABLE1 ( P_PARTKEY int NOT NULL, P_NAME varchar(22), P_MFGR char(6), P_CATEGORY char(7), P_BRAND1 char(9), P_COLOR varchar(11), P_TYPE varchar(25), P_SIZE numeric(10,0), P_CONTAINER char(10) ); ALTER TABLE SCHEMA1.TABLE1 ADD CONSTRAINT PK_PART PRIMARY KEY (P_PARTKEY) ENABLED; //★ (1 row) |
参考情報
EXPORT_TABLEShttps://www.vertica.com/docs/9.3.x/HTML/Content/Authoring/SQLReferenceManual/Functions/VerticaFunctions/EXPORT_TABLES.htm
Exporting Tables
https://www.vertica.com/docs/9.3.x/HTML/Content/Authoring/AdministratorsGuide/CopyExportData/ExportingTables.htm
オブジェクト定義をエクスポートする方法(EXPORT_CATALOG関数)
http://vertica-tech.ashisuto.co.jp/export_catalog/
オブジェクト定義をエクスポートする方法(EXPORT_OBJECTS関数)
http://vertica-tech.ashisuto.co.jp/export_objects
Verticaで既存環境のテーブルのDDLとデータを一括で抽出する方法
http://vertica-tech.ashisuto.co.jp/export-all-data/
検証バージョンについて
この記事の内容はVertica 9.3で確認しています。更新履歴
2019/12/18 参考情報を追加2019/12/13 バージョン9.3リリース対応
2015/06/04 本記事を公開
- 投稿タグ
- DDL, EXPORT, export_tables, エクスポート, テーブル定義