Icebergテーブルを作成する

このトピックでは、異なる Icebergカタログのオプション に対してSnowflakeで Icebergテーブル を作成する方法について説明します。Icebergテーブルは CREATE ICEBERG TABLE コマンドで作成できます。

注釈

Icebergテーブルを作成するには、セッションの現在のウェアハウスとして指定された実行中のウェアハウスが必要です。Icebergテーブルの作成時に実行中のウェアハウスが指定されていないと、エラーが発生する場合があります。詳細については、 ウェアハウスでの作業 をご参照ください。

SnowflakeをカタログとしてIcebergテーブルを作成する

SnowflakeをカタログとしてIcebergテーブルを作成するには、 外部ボリューム と、Snowflakeがテーブルデータとメタデータを書き込めるベースの場所(外部ボリューム上のディレクトリ)を指定する必要があります。外部ボリュームを作成する手順については、 Icebergテーブル用に外部ボリュームを構成する をご参照ください。

テーブルの列を定義するには、Icebergデータ型を使用できます。詳細については、 Icebergテーブルのデータ型 をご参照ください。

次の例では、SnowflakeをIcebergカタログとしてIcebergテーブルを作成します。

CREATE OR REPLACE ICEBERG TABLE my_iceberg_table (
    boolean_col boolean,
    int_col int,
    long_col long,
    float_col float,
    double_col double,
    decimal_col decimal(10,5),
    string_col string,
    fixed_col fixed(10),
    binary_col binary,
    date_col date,
    time_col time,
    timestamp_ntz_col timestamp_ntz(6),
    timestamp_ltz_col timestamp_ltz(6)
  )
  CATALOG = 'SNOWFLAKE'
  EXTERNAL_VOLUME = 'my_ext_vol'
  BASE_LOCATION = 'my/relative/path/from/extvol';
Copy

注釈

あるいは、バリアント構文を使用します。詳細については、 CREATE TABLE ... AS SELECT および CREATE ICEBERG TABLE ... LIKE をご参照ください。

Snowflakeをカタログとして使用するテーブルを作成した後、次のようなアクションを実行できます。

詳細については、 Icebergテーブルを管理する をご参照ください。

カタログ統合でIcebergテーブルを作成する

外部カタログを使用する、またはカタログをまったく使用しないIcebergテーブルを作成するには、 外部ボリュームカタログ統合 を指定する必要があります。外部のIcebergカタログを使用する場合は、追加のパラメーターを指定する必要がある場合もあります。例えば、AWS Glueをカタログとして使用する場合、カタログテーブル名を指定する必要があります。

カタログ統合でIcebergテーブルを作成する場合、Snowflakeは初期メタデータの更新を実行します。また、 ALTER ICEBERG TABLE コマンドを使用してテーブルメタデータを手動で更新し、メタデータを最新のテーブルの変更と同期させることもできます。詳細については、 テーブルのメタデータを手動で更新する をご参照ください。

AWS GlueをカタログとしてIcebergテーブルを作成する

重要

SnowflakeとGlueデータカタログ間の信頼関係を確立するには、 AWS Glueのカタログ統合を構成する必要があります。手順については、 Icebergテーブルのカタログ統合を構成する をご参照ください。

次の例は、 AWS Glueデータカタログを使用するIcebergテーブルを作成し、 AWS Glue(glueCatalogInt)のために構成されたカタログ統合の名前と、 CATALOG_TABLE_NAME プロパティの値を指定します。

CREATE ICEBERG TABLE myGlueTable
  EXTERNAL_VOLUME='glueCatalogVolume'
  CATALOG='glueCatalogInt'
  CATALOG_TABLE_NAME='myGlueTable';
Copy

AWS Glue をカタログとしてテーブルを作成した後、次のようなアクションを実行できます。

オブジェクトストレージ内のIcebergファイルからIcebergテーブルを作成する

次の例では、外部クラウドストレージのIcebergメタデータからIcebergテーブルを作成し、外部ボリューム(METADATA_FILE_PATH)のテーブルメタデータへの相対パスを指定します。

CREATE ICEBERG TABLE myIcebergTable
  EXTERNAL_VOLUME='icebergMetadataVolume'
  CATALOG='icebergCatalogInt'
  METADATA_FILE_PATH='path/to/metadata/v1.metadata.json';
Copy

オブジェクトストレージにあるファイルからテーブルを作成した後、次のようなアクションを実行できます。