OpenText Analytics Database 旧Vertica

技術情報サイト

Analytics Database

オブジェクト定義をエクスポートする方法(EXPORT_TABLES関数)

公開日:
更新日:
基本操作
#エクスポート
#関数

はじめに

Vertica では EXPORT_TABLES 関数を使用して、論理スキーマ (スキーマ、テーブル、制約、シーケンス、パーティション) の DDL をエクスポートすることができます。

構文

EXPORT_TABLES 関数の構文をご紹介します。

EXPORT_TABLES ( [ ‘destination’ ] , [ ‘scope’ ] )

パラメータ

説明

destination

関数によって生成されるSQLスクリプトの出力先を指定します。
ただし、出力先の指定をできるのはスーパーユーザのみです。
出力先の指定をしない場合は、標準出力されるとともに、カタログディレクトリ/DataCollector/RequestsIssued_n.logに出力されます。

scope

オブジェクトの定義をエクスポートする対象は以下のように指定します。

・空文字(' ')を指定した場合
 アクセス権をもつ全オブジェクトの定義をエクスポートします。

・オブジェクトを指定した場合
(カンマ区切りで複数指定することも可能です)

[dbname.][schema.]object

データベース名、スキーマ名、オブジェクト名を指定して一致する定義をエクスポートします。

[dbname.]object

オブジェクト名にスキーマ名を指定することで、スキーマに含まれるアクセス可能な
オブジェクトの定義をエクスポートします。
スキーマ名と同じオブジェクトがある場合、スキーマ名を優先して定義をエクスポートします。

実行例

EXPORT_TABLES 関数で、「テーブル名」と「スキーマ名」を指定した場合の実行例をご紹介します。

### テーブル名を指定した場合 ###
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 文の一部としてエクスポートするように変更されています。

### 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_TABLES
https://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関数)
https://www.ashisuto.co.jp/cm/analytics-database/export_catalog.html

オブジェクト定義をエクスポートする方法(EXPORT_OBJECTS関数)
https://www.ashisuto.co.jp/cm/analytics-database/export_objects.html

Verticaで既存環境のテーブルのDDLとデータを一括で抽出する方法
https://www.ashisuto.co.jp/cm/analytics-database/export-all-data.html

検証バージョンについて

この記事の内容はVertica 9.3で確認しています。

更新履歴

2019/12/18 参考情報を追加
2019/12/13 バージョン9.3リリース対応
2015/06/04 本記事を公開