テーブルサポートとスキーマ

このトピックでは、Snowpipe Streamingでサポートされているテーブル型、データ型、スキーマ機能について説明します。

Apache Iceberg™ テーブルのサポート

Snowpipe Streamingは、Iceberg v2および Iceberg v3 両方のテーブルを含む、Snowflake管理の Apache Iceberg™ テーブルへの取り込みをサポートします。詳細については、 |iceberg-tm|テーブルによるSnowpipe Streaming高性能アーキテクチャ をご参照ください。

スキーマの進化

Snowpipe Streamingは、テーブルスキーマの自動進化をサポートしています。有効にすると、Snowflakeは受信ストリームで検出された新しい列を自動的に追加し、 NOT NULL 制約をドロップして新しいデータパターンに対応できます。詳細については、 テーブルスキーマの進化 をご参照ください。

スキーマの進化の制限:

  • 標準のSnowflakeテーブルでのみサポートされます。外部テーブルと Apache Iceberg™ テーブルはサポートされていません。

  • 既存の列の精度、スケール、長さを自動的に増やすことはできません。

  • スキーマの進化は構造化データ型ではサポートされていません。ただし、構造化された型を含む新しい列は、 VARIANT として推測されます。

挿入のみの操作

API は現在、行の挿入に限られています。データを変更、削除、または結合するには、「生」記録を1つ以上のステージングされたテーブルに書き込みます。継続的なデータパイプライン を使用してデータをマージ、結合、または変換し、変更されたデータを宛先のレポートテーブルに挿入します。

サポートされているJavaデータ型

次のテーブルは、Snowflake列へのインジェスチョンでサポートされているJavaデータ型をまとめたものです。

Snowflake列型

許可されたJavaデータ型

  • CHAR

  • VARCHAR

  • String

  • プリミティブデータ型(int、boolean、charなど)

  • BigInteger、 BigDecimal

  • BINARY

  • byte[]

  • 文字列(16進数エンコード)

  • NUMBER

  • 数値型(BigInteger、 BigDecimal、byte、int、doubleなど)

  • String

  • FLOAT

  • 数値型(BigInteger、 BigDecimal、byte、int、doubleなど)

  • String

  • BOOLEAN

  • boolean

  • 数値型(BigInteger、 BigDecimal、byte、int、doubleなど)

  • String

ブール変換の詳細 をご参照ください。

  • TIME

  • java.time.LocalTime

  • java.time.OffsetTime

  • String

    • 整数格納時刻

    • HH24:MI:SS.FFTZH:TZM (例えば、 20:57:01.123456789+07:00)

    • HH24:MI:SS.FF (例えば、 20:57:01.123456789)

    • HH24:MI:SS (例えば、 20:57:01)

    • HH24:MI (例えば、 20:57)

  • DATE

  • java.time.LocalDate

  • java.time.LocalDateTime

  • java.time.OffsetDateTime

  • java.time.ZonedDateTime

  • java.time.Instant

  • String

    • 整数格納日付

    • YYYY-MM-DD (例えば、 2013-04-28)

    • YYYY-MM-DDTHH24:MI:SS.FFTZH:TZM (例えば、 2013-04-28T20:57:01.123456789+07:00)

    • YYYY-MM-DDTHH24:MI:SS.FF (例えば、 2013-04-28T20:57:01.123456)

    • YYYY-MM-DDTHH24:MI:SS (例えば、 2013-04-28T20:57:01)

    • YYYY-MM-DDTHH24:MI (例えば、 2013-04-28T20:57)

    • YYYY-MM-DDTHH24:MI:SSTZH:TZM (例えば、 2013-04-28T20:57:01-07:00)

    • YYYY-MM-DDTHH24:MITZH:TZM (例えば、 2013-04-28T20:57-07:00)

  • TIMESTAMP_NTZ

  • TIMESTAMP_LTZ

  • TIMESTAMP_TZ

  • java.time.LocalDate

  • java.time.LocalDateTime

  • java.time.OffsetDateTime

  • java.time.ZonedDateTime

  • java.time.Instant

  • String

    • 整数格納タイムスタンプ

    • YYYY-MM-DD (例えば、 2013-04-28)

    • YYYY-MM-DDTHH24:MI:SS.FFTZH:TZM (例えば、 2013-04-28T20:57:01.123456789+07:00)

    • YYYY-MM-DDTHH24:MI:SS.FF (例えば、 2013-04-28T20:57:01.123456)

    • YYYY-MM-DDTHH24:MI:SS (例えば、 2013-04-28T20:57:01)

    • YYYY-MM-DDTHH24:MI (例えば、 2013-04-28T20:57)

    • YYYY-MM-DDTHH24:MI:SSTZH:TZM (例えば、 2013-04-28T20:57:01-07:00)

    • YYYY-MM-DDTHH24:MITZH:TZM (例えば、 2013-04-28T20:57-07:00)

  • VARIANT

  • ARRAY

  • 文字列(有効な JSON にする必要あり)

  • プリミティブデータ型とその配列

  • BigInteger、 BigDecimal

  • java.time.LocalTime

  • java.time.OffsetTime

  • java.time.LocalDate

  • java.time.LocalDateTime

  • java.time.OffsetDateTime

  • java.time.ZonedDateTime

  • java.util.Map<文字列, T>。Tは有効な VARIANT 型

  • T[]。Tは有効な VARIANT 型

  • List<T>。Tは有効な VARIANT 型

  • OBJECT

  • 文字列(有効な JSON オブジェクトにする必要あり)

  • Map<文字列, T>。Tは有効なバリアント型

  • GEOGRAPHY

  • サポート対象

  • GEOMETRY

  • サポート対象