Amazon Redshift コネクタ構成ガイド
この記事では、Amazon Redshift コネクタの構成方法について説明します。
大規模な訪問プロファイルの取り扱い
Send Entire Visitor Data アクションは、各SQL INSERT文に訪問のJSON全体を埋め込みます。Redshift Data APIはSQL文ごとに100kBの制限を課しているため、訪問プロファイルがこの制限を超えると、コネクタアクションは ValidationException: Query string size exceeds 100 kB エラーで失敗します。
この問題を避けるために、以下のガイドラインに従ってください:
- 小規模な訪問プロファイルにはSend Entire Visitor Dataを使用します。
数キロバイトを超える訪問プロファイルは制限を超えるリスクが高まります。訪問プロファイルが100kBの制限を大幅に下回る場合にこのアクションを使用してください。訪問検索ツールを使用して、プロファイルの全体を取得し、そのサイズを評価してください。 - プロファイル全体ではなく、マッピングされた属性を送信します。
Send Custom Visitor Data アクションを使用して、必要な属性のみを選択し、訪問のJSON全体を送信するのではなく、必要な属性のみを送信してください。 - S3およびRedshiftを使用して、大量または履歴データをロードします。
大規模な訪問JSONペイロードや一度限りの大量アップロードの場合は、訪問データを S3コネクタに送信し、COPYコマンドを使用してRedshiftにデータをロードしてください。詳細については、Amazon Redshift: Amazon S3からのCOPYコマンドを使用したロードを参照してください。
構成
コネクタマーケットプレイスにアクセスし、新しいコネクタを追加します。コネクタを追加する一般的な手順については、コネクタについてを参照してください。
コネクタを追加した後、以下の構成を構成します:
- 認証タイプ
- 認証タイプを選択します:
- STS:次のフィールドが必要です Assume Role: ARN, Assume Role: Session Name。詳細については、STS credentialsを参照してください。
- Access Key:次のフィールドが必要です AWS Access Key と AWS Secret Access Key。詳細については、Access Key and Secret credentialsを参照してください。
- 認証タイプを選択します:
- STS - Assume Role: ARN
- STS認証に必要です。役割を引き受けるためのAmazonリソース名(ARN)を提供してください。
- 例:
arn:aws:iam:222222222222:role/myrole。 - 詳細については、AWS: IAMロールへの切り替えを参照してください。
- STS - Assume Role: Session Name
- STS認証に必要です。役割を引き受けるためのセッション名を提供してください。
- 最小長2、最大長64。
- STS - Assume Role: External ID
- 第三者の外部識別子を提供してください。
- 詳細については、AWS: 第三者が所有するAWSアカウントへのアクセスを参照してください。
- Access Key - AWS Access Key
- Access Key認証に必要です。AWSアクセスキーを提供してください。
- Access Key - AWS Secret Access Key
- Access Key認証に必要です。AWSシークレットアクセスキーを提供してください。
- Region
- (必須)リージョンを選択してください。
- Secret Name
- (オプション)AWS Secrets Managerメソッドを使用してRedshiftにアクセスする場合は、TealiumがRedshift接続に使用するSecret ARNを動的に取得するためのSecret Nameを提供してください。
- Workgroup Name
- Cluster Identifierが提供されていない場合に必要です。Redshift SERVERLESSインスタンスにアクセスする場合は、ワークグループ名を提供してください。
- Cluster Identifier
- Workgroup Nameが提videdされていない場合に必要です。Redshiftクラスターを使用している場合は、クラスター識別子を提供してください。
- Database Name
- (オプション)データベース名を提供してください。デフォルト値:
dev。
- (オプション)データベース名を提供してください。デフォルト値:
AWS Redshiftへの接続を作成する
TealiumはAWS Redshiftインスタンスへの接続を必要とし、クラスター、ワークスペース、データベースのリストを表示し、イベントデータとオーディエンスデータをRedshiftテーブルにアップロードします。認証には2つのオプションがあります:
Access KeyとSecret認証情報
AWS Access KeyとSecretを見つけるには:
- AWS管理コンソールにログインし、IAM(Identity and Access Management)サービスにアクセスします。
- ユーザーをクリックし、ユーザーを追加をクリックします。
- ユーザー名を入力します。例:
TealiumRedshiftUser。 - 役割にポリシーを添付します。詳細については、ポリシーの添付を参照してください。
- キーを作成します。
- セキュリティ認証情報タブに移動し、アクセスキーの作成をクリックします。
- アクセスキーIDとシークレットアクセスキーをコピーし、安全に保存します。
STS認証情報
STS認証情報を見つけるには:
- AWS管理コンソールにログインし、IAM(Identity and Access Management)サービスにアクセスします。
- ロールをクリックし、ロールの作成をクリックします。
- 信頼されたエンティティタイプで、AWSアカウントを選択します。
- 別のAWSアカウントを選択し、TealiumアカウントID
757913464184を入力します。 - (オプション)外部IDが必要チェックボックスを選択し、使用したい外部IDを指定します。外部IDは256文字までの長さで、英数字(
A-Z,a-z,0-9)およびハイフン(-)、アンダースコア(_)、ピリオド(.)などの記号を含めることができます。 - ロールの名前を入力します。ロール名は
TealiumRedshiftで始まる必要があります。例:TealiumRedshift-test。 - ロールにポリシーを添付します。詳細については、ポリシーの添付を参照してください。
- 信頼ポリシーを作成します。
- 信頼関係タブに移動し、信頼関係の編集をクリックします。
- 作成したロールを使用する特定の外部IDが信頼ポリシーに許可されていることを確認し、Tealiumの本番アカウントIDが
757913464184であることを確認します。 - Tealiumへの接続に使用する
EXTERNAL_ID値を構成します。IDは256文字までの長さで、英数字(A-Z,a-z,0-9)およびハイフン(-)、アンダースコア(_)、ピリオド(.)などの記号を含めることができます。
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::757913464184:root" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "sts:ExternalId": "EXTERNAL_ID" } } } ] }
ポリシーのアタッチ
ポリシーをアタッチするには:
- Permissions タブで Attach existing policies directly をクリックします。
-
フルアクセス
SecretsManagerReadWrite、AmazonRedshiftAllCommandsFullAccess、AmazonRedshiftDataFullAccessポリシーを検索してアタッチし、フルアクセスを構成します。
-
制限アクセス
- 特定のクラスターへのアクセスを制限するには、以下の例のようなポリシーを作成します。例では、
YOUR_CLUSTER_ARNが Tealium がイベントとオーディエンスデータをYOUR_DATABASE_ARNRedshift テーブルに挿入するために使用するクラスターです:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RedshiftClusterManagement", "Effect": "Allow", "Action": [ "redshift:DescribeClusters", "redshift:GetClusterCredentials", "redshift:GetClusterCredentialsWithIAM" ], "Resource": "arn:aws:redshift:YOUR_REGION:YOUR_ACCOUNT_ID:cluster/YOUR_CLUSTER_ARN" }, { "Sid": "RedshiftDataAPI", "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement", "redshift-data:BatchExecuteStatement", "redshift-data:DescribeStatement", "redshift-data:GetStatementResult", "redshift-data:ListStatements" ], "Resource": "arn:aws:redshift:YOUR_REGION:YOUR_ACCOUNT_ID:database/YOUR_DATABASE_ARN" }, { "Sid": "SecretsManagerAccess", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets" ], "Resource": "arn:aws:secretsmanager:YOUR_REGION:YOUR_ACCOUNT_ID:secret/YOUR_SECRET_ARN" } ] }- 特定のワークグループへのアクセスを制限するには、以下の例のようなポリシーを作成します。例では、
YOUR_WORKGROUP_ARNが Tealium がイベントとオーディエンスデータをYOUR_DATABASE_ARNRedshift テーブルに挿入するために使用するクラスターです:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RedshiftServerlessAccess", "Effect": "Allow", "Action": [ "redshift-serverless:GetWorkgroup", "redshift-serverless:GetCredentials", "redshift-serverless:ListWorkgroups" ], "Resource": "arn:aws:redshift-serverless:YOUR_REGION:YOUR_ACCOUNT_ID:workgroup/YOUR_WORKGROUP_ARN" }, { "Sid": "RedshiftDataAPI", "Effect": "Allow", "Action": [ "redshift-data:ExecuteStatement", "redshift-data:BatchExecuteStatement", "redshift-data:DescribeStatement", "redshift-data:GetStatementResult", "redshift-data:ListStatements" ], "Resource": "arn:aws:redshift:YOUR_REGION:YOUR_ACCOUNT_ID:database/YOUR_DATABASE_ARN" }, { "Sid": "SecretsManagerAccess", "Effect": "Allow", "Action": [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecrets" ], "Resource": "arn:aws:secretsmanager:YOUR_REGION:YOUR_ACCOUNT_ID:secret/YOUR_SECRET_ARN" } ] } - 特定のクラスターへのアクセスを制限するには、以下の例のようなポリシーを作成します。例では、
-
アクション
| アクション名 | AudienceStream | EventStream |
|---|---|---|
| 全イベントデータ送信(マイクロバッチ) | ✗ | ✓ |
| 全イベントデータ送信(バッチ) | ✗ | ✓ |
| カスタムイベントデータ送信(マイクロバッチ) | ✗ | ✓ |
| カスタムイベントデータ送信(バッチ) | ✗ | ✓ |
| 全ビジターデータ送信(マイクロバッチ) | ✓ | ✗ |
| 全ビジターデータ送信(バッチ) | ✓ | ✗ |
| カスタムビジターデータ送信(マイクロバッチ) | ✓ | ✗ |
| カスタムビジターデータ送信(バッチ) | ✓ | ✗ |
| カスタムステートメント実行(バッチ) | ✓ | ✓ |
アクションの名前を入力し、ドロップダウンメニューからアクションタイプを選択します。
次のセクションでは、各アクションのパラメータとオプションの構成方法について説明します。
全イベントデータ送信(マイクロバッチ)
バッチ制限
このアクションは、ベンダーへの大量データ転送をサポートするためにバッチリクエストを使用します。詳細については、Batched Actionsを参照してください。リクエストは、次のいずれかの閾値が達成されるか、プロファイルが公開されるまでキューに入れられます:
- 最大リクエスト数:50
- 最古のリクエストからの最大時間:16分
パラメータ
| パラメータ | 説明 |
|---|---|
| スキーマ | 接続したいスキーマ名を提供します。 |
| テーブル | 接続したいテーブル名を提供します。 |
| ペイロードを記録するカラム | ペイロードを記録するために SUPER カラムを選択します。 |
| タイムスタンプを記録するカラム | タイムスタンプを記録するカラムを選択します。テーブルに timestamp カラムが default sysdate に構成されている場合は不要です。 |
| 属性名の印刷 | デフォルトでは、属性キーが使用されます。代わりに属性名をキーとして使用したい場合は、このチェックボックスを有効にします。属性名が更新されるとペイロード名も更新されることに注意してください。 |
| バッチの有効期限 | バッチアクションが送信される頻度を指定するために有効期限(TTL)を構成します。値は 1 から 16 分の間で入力します。デフォルト値は 5 分です。 |
全イベントデータ送信(バッチ)
バッチ制限
このアクションは、ベンダーへの大量データ転送をサポートするためにバッチリクエストを使用します。詳細については、Batched Actionsを参照してください。リクエストは、次のいずれかの閾値が達成されるか、プロファイルが公開されるまでキューに入れられます:
- 最大リクエスト数:2,000
- 最古のリクエストからの最大時間:60分
パラメータ
| パラメータ | 説明 |
|---|---|
| スキーマ | 接続したいスキーマ名を提供します。 |
| テーブル | 接続したいテーブル名を提供します。 |
| ペイロードを記録するカラム | ペイロードを記録するために SUPER カラムを選択します。 |
| タイムスタンプを記録するカラム | タイムスタンプを記録するカラムを選択します。テーブルに timestamp カラムが default sysdate に構成されている場合は不要です。 |
| 属性名の印刷 | デフォルトでは、属性キーが使用されます。代わりに属性名をキーとして使用したい場合は、このチェックボックスを有効にします。属性名が更新されるとペイロード名も更新されることに注意してください。 |
| バッチの有効期限 | バッチアクションが送信される頻度を指定するために有効期限(TTL)を構成します。値は 15 から 60 分の間で入力します。デフォルト値は 30 分です。 |
カスタムイベントデータ送信(マイクロバッチ)
バッチ制限
このアクションは、ベンダーへの大量データ転送をサポートするためにバッチリクエストを使用します。詳細については、Batched Actionsを参照してください。リクエストは、次のいずれかの閾値が達成されるか、プロファイルが公開されるまでキューに入れられます:
- 最大リクエスト数:50
- 最古のリクエストからの最大時間:16分
パラメータ
テーブルのカラムに属性をマッピングします。
| パラメータ | 説明 |
|---|---|
| スキーマ | 接続したいスキーマ名を提供します。 |
| テーブル | 接続したいテーブル名を提供します。 |
| バッチの有効期限 | バッチアクションが送信される頻度を指定するために有効期限(TTL)を構成します。値は 1 から 16 分の間で入力します。デフォルト値は 5 分です。 |
カスタムイベントデータ送信(バッチ)
バッチ制限
このアクションは、ベンダーへの大量データ転送をサポートするためにバッチリクエストを使用します。詳細については、Batched Actionsを参照してください。リクエストは、次のいずれかの閾値が達成されるか、プロファイルが公開されるまでキューに入れられます:
- 最大リクエスト数:2,000
- 最古のリクエストからの最大時間:60分
パラメータ
テーブルの列に属性をマッピングします。
| パラメータ | 説明 |
|---|---|
| スキーマ | 接続したいスキーマ名を指定してください。 |
| テーブル | 接続したいテーブル名を指定してください。 |
| バッチの有効期限 | バッチアクションが送信される頻度を指定するための有効期限(TTL)を構成します。15分から60分の間で値を入力してください。デフォルト値は30分です。 |
全訪問データの送信(マイクロバッチ)
Redshift Data APIはSQLステートメントを100 kBに制限しています。訪問のJSONペイロードがこの制限を超えると、コネクタアクションが失敗します。 この問題を回避するためのガイドラインについては、大規模な訪問プロファイルの取り扱いを参照してください。
バッチ制限
このアクションは、バッチリクエストを使用してベンダーへの大量データ転送をサポートします。詳細については、バッチアクションを参照してください。リクエストは、次のいずれかの閾値に達するか、プロファイルが公開されるまでキューに入れられます:
- 最大リクエスト数:50
- 最古のリクエストからの最大時間:16分
パラメータ
| パラメータ | 説明 |
|---|---|
| スキーマ | 接続したいスキーマ名を指定してください。 |
| テーブル | 接続したいテーブル名を指定してください。 |
| ペイロードを記録する列 | ペイロードを記録するためにSUPER列を選択してください。 |
| タイムスタンプを記録する列 | タイムスタンプを記録する列を選択してください。テーブルにtimestamp列がdefault sysdateに構成されている場合は不要です。 |
| すべての訪問イベントを含む | 訪問データに現在の訪問データを含めます。 |
| 属性名を印刷 | デフォルトでは属性キーが使用されます。代わりに属性名をキーとして使用したい場合は、このチェックボックスを有効にしてください。属性名が更新されるとペイロード名が更新されることに注意してください。 |
| バッチの有効期限 | バッチアクションが送信される頻度を指定するための有効期限(TTL)を構成します。1分から16分の間で値を入力してください。デフォルト値は5分です。 |
全訪問データの送信(バッチ)
Redshift Data APIはSQLステートメントを100 kBに制限しています。訪問のJSONペイロードがこの制限を超えると、コネクタアクションが失敗します。 この問題を回避するためのガイドラインについては、大規模な訪問プロファイルの取り扱いを参照してください。
バッチ制限
このアクションは、バッチリクエストを使用してベンダーへの大量データ転送をサポートします。詳細については、バッチアクションを参照してください。リクエストは、次のいずれかの閾値に達するか、プロファイルが公開されるまでキューに入れられます:
- 最大リクエスト数:2,000
- 最古のリクエストからの最大時間:60分
パラメータ
| パラメータ | 説明 |
|---|---|
| スキーマ | 接続したいスキーマ名を指定してください。 |
| テーブル | 接続したいテーブル名を指定してください。 |
| ペイロードを記録する列 | ペイロードを記録するためにSUPER列を選択してください。 |
| タイムスタンプを記録する列 | タイムスタンプを記録する列を選択してください。テーブルにtimestamp列がdefault sysdateに構成されている場合は不要です。 |
| すべての訪問イベントを含む | 訪問データに現在の訪問データを含めます。 |
| 属性名を印刷 | デフォルトでは属性キーが使用されます。代わりに属性名をキーとして使用したい場合は、このチェックボックスを有効にしてください。属性名が更新されるとペイロード名が更新されることに注意してください。 |
| バッチの有効期限 | バッチアクションが送信される頻度を指定するための有効期限(TTL)を構成します。15分から60分の間で値を入力してください。デフォルト値は30分です。 |
カスタム訪問データの送信(マイクロバッチ)
バッチ制限
このアクションは、バッチリクエストを使用してベンダーへの大量データ転送をサポートします。詳細については、バッチアクションを参照してください。リクエストは、次のいずれかの閾値に達するか、プロファイルが公開されるまでキューに入れられます:
- 最大リクエスト数:50
- 最古のリクエストからの最大時間:16分
パラメータ
テーブルの列に属性をマッピングします。
| パラメータ | 説明 |
|---|---|
| スキーマ | 接続したいスキーマ名を指定してください。 |
| テーブル | 接続したいテーブル名を指定してください。 |
| バッチの有効期限 | バッチアクションが送信される頻度を指定するための有効期限(TTL)を構成します。1分から16分の間で値を入力してください。デフォルト値は5分です。 |
カスタム訪問データの送信(バッチ)
バッチ制限
このアクションは、バッチリクエストを使用してベンダーへの大量データ転送をサポートします。詳細については、バッチアクションを参照してください。リクエストは、次のいずれかの閾値に達するか、プロファイルが公開されるまでキューに入れられます:
- 最大リクエスト数:2,000
- 最古のリクエストからの最大時間:60分
パラメータ
テーブルの列に属性をマッピングします。
| パラメータ | 説明 |
|---|---|
| スキーマ | 接続したいスキーマ名を指定してください。 |
| テーブル | 接続したいテーブル名を指定してください。 |
| バッチの有効期限 | バッチアクションが送信される頻度を指定するための有効期限(TTL)を構成します。15分から60分の間で値を入力してください。デフォルト値は15分です。 |
カスタムステートメントの実行(バッチ)
バッチ制限
このアクションは、バッチリクエストを使用してベンダーへの大量データ転送をサポートします。詳細については、バッチアクションを参照してください。リクエストは、次のいずれかの閾値に達するか、プロファイルが公開されるまでキューに入れられます:
- 最大リクエスト数:40
- 最古のリクエストからの最大時間:60分
パラメータ
| パラメータ | 説明 |
|---|---|
| スキーマ | 接続したいスキーマ名を指定してください。 |
| テーブル | 接続したいテーブル名を指定してください。 |
| クエリパラメータ | クエリ内のプレースホルダーに置き換えるパラメータをマッピングします。少なくとも1つのパラメータをマッピングする必要があります。 |
| クエリ | SQL属性に渡す生のステートメントを指定してください。INSERT、UPDATE、またはMERGEステートメントのみが許可されます。変数を参照するには属性名の前に:を追加します。詳細については、クエリ例を参照してください。 |
| バッチの有効期限 | バッチを送信するまでの待ち時間です。この値は1分から60分の間で構成できます。デフォルト値は15分です。 |
クエリ例
クエリパラメータセクションでマッピングを追加した場合、例えばmy_boolean_tealium_attribute = MY_BOOLEAN_PARAMとした場合、クエリ内でそのパラメータを:MY_BOOLEAN_PARAMを使用して参照します。
クエリの例では、次のクエリパラメータがマッピングされています:MY_STRING_PARAM, MY_BOOLEAN_PARAM, ANOTHER_PARAM, MY_PARAM.
INSERT INTO redshift_table
(key1, key2) VALUES (':MY_STRING_PARAM', :MY_BOOLEAN_PARAM);
UPDATE redshift_table SET
key1 = ':MY_STRING_PARAM',
key2 = :MY_BOOLEAN_PARAM
WHERE
key3 = ':ANOTHER_PARAM';
UPDATE redshift_table
SET key2 = (SELECT new_key2 FROM source_table WHERE source_table.key1 = redshift_table.key1)
WHERE EXISTS
(SELECT 1 FROM source_table WHERE source_table.key1 LIKE %:MY_PARAM%);
デバッグ
Tealiumが成功したレスポンスを返してもRedshiftにデータが表示されない場合、SQLステートメントがTealiumによって受け入れられた後にRedshiftによって拒否されている可能性があります。
調査するには:
- トレースを実行し、成功した呼び出しのレスポンスボディからIDをメモします。
- Amazon Redshift Data APIを使用して、SQLステートメントの詳細を確認します。
トレースからのID値を置き換えて、次のリクエストを送信します:
POST / HTTP/1.1
Host: redshift-data.us-east-1.amazonaws.com
X-Amz-Target: RedshiftData.DescribeStatement
Content-Type: application/x-amz-json-1.1
Authorization: AUTHORIZATION_HEADER
X-Amz-Date: TIMESTAMP
{
"Id": "37eb2735-b467-4852-884b-0f536970bf7e"
}
レスポンスにはステートメントのステータスとRedshiftによって返されたエラーメッセージが含まれます。
最終更新日 :: 2026年March月18日