Snowflake - Replicate schemaアクション
このアクションは、データソースのスキーマをSnowflakeのテーブルと比較して検査し、ソーススキーマおよび列のデータ型に一致するように、必要に応じてテーブルを変更します。
通常、これは次の処理の前に送信先テーブルを準備するために使用されます:
Snowflakeへの行の複製
Snowflakeへの外部ステージからの一括ロード
仕組み
- 指定された送信先テーブルが存在しない場合、Snowflakeで自動的に作成されます。
- Workatoは、ソースデータのスキーマを送信先のSnowflakeテーブルと比較します。
- ソースデータに存在し、送信先テーブルに存在しない列は、DDLコマンド(
ALTER TABLE)を使用して送信先テーブルに追加されます。 - 新しい列は、指定されたデータ型に従います(Schemaソースタイプにのみ適用)
- 列は追加のみされ、削除されることはありません。 送信先テーブルに存在し、ソースデータに存在しない列については、アクションは実行されません。
- 列の順序は、ソースデータと完全に同じになります。
入力
テーブル名
Snowflakeの送信先テーブルを選択します。 Snowflakeの既存テーブルのリストから選択するか、テーブル名をテキストで入力できます。
テーブル名のベストプラクティス
テーブル名をテキストで入力する場合、大文字と小文字が区別されることに注意し、大文字の名前を使用することをお勧めします。
テーブル名は二重引用符で囲まれるため、大文字と小文字が区別されます(double-quoted identifiersを参照)。 これにより、必要に応じてテーブル名に特殊文字を使用できる柔軟性が得られます。
クエリを簡単に行えるように、テーブル名を大文字にすることをお勧めします。Snowflakeユーザーは、大文字と小文字を区別しない引用符なし識別子を使用してクエリを記述できるためです。 これは、Snowflakeが識別子を大文字で保存し、解決するために機能します。
例
| テーブル名 | SnowflakeのSQLクエリ |
|---|---|
| MyTable | select * from MyTable; // will not work select * from "MyTable"; // OK |
| MYTABLE | select * from MyTable; // OK select * from "MYTABLE"; // OK |
ソースタイプ
ソースデータ型(CSVまたはSchema)を選択します。
CSVスキーマ
このフィールドセットは、Source typeがCSVの場合に表示されます。
CSVスキーマを使用して複製された列のデータ型はVARCHARです。
| フィールド | 説明 |
|---|---|
| CSVデータ | ヘッダー行が必須のCSVデータのデータピルを使用します。 |
| 列区切り文字 | CSVデータの区切り文字を選択します(デフォルト: カンマ) |
| 引用符文字 | CSVセル値を引用符で囲むために使用する文字を選択します(デフォルト: 二重引用符) |
スキーマ
このフィールドセットは、Source typeがSchemaの場合に表示されます。
スキーマ定義は、Salesforce - Get object schemaアクションなど、Workatoの組み込みコネクターを使用して取得できます。 カスタムアクションを使用して、互換性のあるAPIソースからスキーマ定義を取得することもできます。
| フィールド | 説明 |
|---|---|
| スキーマソースリスト | リストデータピルを入力します。 リスト入力の詳細 |
| 列名 | テーブルの列名として使用するフィールド名をマッピングします。 |
| 列タイプ | テーブル内の列のデータ型として使用するフィールドタイプをマッピングします。 テーブル内のすべての列にVARCHARを使用するには、空白のままにします。 |
任意の入力
列の大文字と小文字
大文字(推奨)
列名を大文字にすることをお勧めします。これにより、Snowflakeユーザーは列の大文字と小文字を気にせずにクエリを記述でき、データのクエリ操作が向上します。 これは、Snowflakeが識別子を大文字で保存し、解決するために機能します。
このアクションは、非標準文字(特殊文字、空白、ASCIIなど)を含むフィールド名を忠実に複製できるように、double-quoted identifiersを使用して列を作成します。
元の状態を保持
Preserve originalに設定した場合、SQLクエリでは正確な大文字と小文字を使用して列を参照する必要があります。
PRESERVE ORIGINALはすべての列に適用されます
Preserve original設定では、Exclude columnsおよびKey columnフィールドで指定する列名も大文字と小文字を区別する必要があります。
例
# Given that source data has a key "AccountId"
# When Column_Case is "Upcase" or blank
SELECT AccountId FROM mytable; // OK
SELECT accountid FROM mytable; // OK
SELECT "ACCOUNTID" FROM mytable; // OK
# When Column_Case is "Preserve original"
SELECT AccountId FROM mytable; // will fail
SELECT accountid FROM mytable; // will fail
SELECT "AccountId" FROM mytable; // OK列の除外
レプリケーションから除外する列を、1行に1つずつ指定します。
制限事項
Exclude columnsには、次の制限があります:
Retain column casingをYesに設定した場合、このフィールドでは列名の正確な大文字と小文字を指定する必要があります。
以前にテーブルを複製していて、特定の列を除外する場合は、まずテーブルをドロップしてから、このアクションを再実行する必要があります。 これは、このアクションが既存のテーブルから列をドロップしないためです。
キー列
主キー制約を適用するキーを指定します。
制限事項
Key columnsには、次の制限があります:
Retain column casingをYesに設定した場合、このフィールドでは列名の正確な大文字と小文字を指定する必要があります。
以前にテーブルを複製していて、特定の列を主キーとして設定する場合は、まずテーブルをドロップしてから、このアクションを再実行する必要があります。 これは、このアクションがテーブル内の既存の列を変更しないためです。
出力
| 出力 | 説明 |
|---|---|
| 変更された列の数 | Snowflakeテーブルで変更された列の数を指定します |
Last updated: