Google BigQueryターゲット
次のリストは、Google BigQueryターゲットを準備および使用する際の考慮事項を示しています。
ターゲットの準備
- •Google BigQuery JDBCドライバの.jarファイルをダウンロードしてインストールします。
- 1Google BigQuery JDBCドライバSimbaJDBCDriverforGoogleBigQuery42_1.6.1.1002をGoogle CloudのWebサイトからダウンロードします。
- 2インストールzipからGoogleBigQueryJDBC42.jarファイルのみを次のディレクトリにコピーします。
<Secure_Agent_installation_directory>/apps/Database_Ingestion/ext/
注: そのディレクトリに他のGoogle BigQueryドライバ.jarファイルが存在する場合は、それらを削除します。これらは現在、データベース取り込みとレプリケーションにバンドルされています。
- 3Secure Agentを再起動します。
- •Google BigQueryとGoogle Cloud StorageにアクセスするためのサービスアカウントがGoogleアカウントにあることを確認します。
- •サービスアカウントにclient_email、project_id、private_key、およびregionIDの値があることを確認してください。Google BigQuery接続を作成するときに、対応する[サービスアカウントID]、[プロジェクトID]、[サービスアカウントキー]、および[リージョンID]接続プロパティに値を入力します。
- •Google BigQuery接続のタイムアウト間隔を設定する場合は、接続プロパティの[オプションのプロパティを指定]フィールドでタイムアウト間隔プロパティを指定します。次の形式を使用します。
"timeout": "<timeout_interval_in_seconds>"
- •次のエンティティに対する読み取りおよび書き込みアクセスがあることを確認します。
- - ターゲットテーブルを含むGoogle BigQueryデータセット。
- - データベース取り込みとレプリケーションがステージングファイルを作成するGoogle Cloud Storageパス
- •Google BigQueryターゲットを使用するには、必要な権限を設定する必要があります。まず、Google CloudプロジェクトでIAMと管理者のサービスアカウントを作成してカスタムロールを割り当てます。次に、アカウントのカスタムロールに次の権限を追加します。
- - bigquery.datasets.get - データセットに関するメタデータを取得します。
- - bigquery.jobs.create - ジョブとクエリを実行します。
- - bigquery.models.create - 新しいモデルを作成します。
- - bigquery .models.delete - モデルを削除します。
- - bigquery .models.export - モデルをエクスポートします。
- - bigquery.models.getData - モデルデータを取得します。bigquery.models.getMetadata権限も指定する必要があります。
- - bigquery.models.getMetadata - モデルのメタデータを取得します。bigquery.models.getData権限も指定する必要があります。
- - bigquery .models.list - モデルとモデルのメタデータを一覧表示します。
- - bigquery.models.updateData - モデルデータを更新します。bigquery.models.updateMetadata権限も指定する必要があります。
- - bigquery.models.updateMetadata - モデルのメタデータを更新します。bigquery.models.updateData権限も指定する必要があります。
- - bigquery.routines.create - ストアドプロシージャを含む新しいルーチンを作成します。
- - bigquery.routines.delete - ルーチンを削除します。
- - bigquery.routines.get - ルーチンの定義とメタデータを取得します。
- - bigquery.routines.list - ルーチンとルーチンのメタデータを一覧表示します。
- - bigquery.routines.update - ルーチンの定義とルーチンのメタデータを更新します。
- - bigquery.routines.updateTag - ルーチンのタグを更新します。
- - bigquery.tables.create - 新しいテーブルを作成します。
- - bigquery.tables.delete - テーブルを削除します。
- - bigquery.tables.deleteIndex - テーブルの検索インデックスを削除します。
- - bigquery.tables.deleteSnapshot - テーブルスナップショットを削除します。
- - bigquery.tables.export - BigQueryからテーブルデータをエクスポートします。
- - bigquery.tables.get - テーブルのメタデータを取得します。bigquery.tables.getData権限も指定する必要があります。
- - bigquery.tables.getData - テーブルデータを取得してクエリを実行します。bigquery.tables.get権限も指定する必要があります。
- - bigquery.tables.list - テーブルとテーブルのメタデータを一覧表示します。
- - bigquery.tables.update - テーブルのメタデータを更新します。bigquery.tables.updateData権限も指定する必要があります。
- - bigquery.tables.updateData - テーブルデータを更新します。bigquery.tables.update権限も指定する必要があります。
- - bigquery.tables.updateTag - テーブルのタグを更新します。
- - resourcemanager.projects.get - プロジェクトに関連付けられた請求先アカウントの名前を取得します。
- - storage.objects.create - ユーザーがオブジェクトを作成できるようにします。
- - storage.objects.delete - オブジェクトを削除する権限を付与します。
- - storage.objects.get - バケットメタデータの一覧表示および読み取り時にオブジェクトメタデータを読み取ります。
- - storage.objects.list - バケット内のオブジェクトを一覧表示します。
ターゲットの用途
- •データベース取り込みとレプリケーションは、ソースデータをバルクモードでGoogle BigQueryターゲットにロードします。
- •データベース取り込みとレプリケーションの増分ロードタスクの場合、すべてのソースカラムに対してソースデータベース変更データキャプチャ(CDC)が有効になっていることを確認します。
- •データベース取り込みとレプリケーションは、テーブルの特殊文字とソーステーブルのカラム名をサポートします。Google BigQueryターゲットテーブルまたはカラム名の特殊文字は、アンダースコア(_)に置き換えられます。
カスタムプロパティのキーと値のペアtargetReplacementValue=toHexは、データベース取り込みとレプリケーションによって、生成されたターゲットスキーマで特殊文字がアンダースコアに置換されないようにし、特殊文字を16進形式に変換します。
特殊文字を16進数値に変換するには、データベース取り込みとレプリケーションタスクをデプロイする前に、次のアクションを実行します。
- 1metadata-managerレイヤーで使用するプロパティファイルを作成します。targetReplacementValue=toHexのキーと値のペアをプロパティファイルに追加します。
- 2管理者の[ランタイム環境]ページを開き、Secure Agentを編集します。[カスタム構成の詳細]領域でカスタムプロパティを作成します。
- ▪ [データベース取り込み]サービスを選択します。
- ▪ [DBMI_AGENT_ENV]タイプを選択します。
- ▪ プロパティ名としてDBMI_TASK_OVERRIDE_PROPERTIESと入力します。
- ▪ プロパティ値としてプロパティファイルの場所を入力します。
- 3タスクウィザードの[ターゲット]ページで、targetReplacementValueカスタムプロパティをtoHexに設定します。
タスクを実行する前に、<jobname>をプロパティファイルの「targetReplacementValue」キーに追加します。
<jobname>.targetReplacementValue=toHex
プロパティがすべてのジョブに影響する場合は、「alljobs」を「targetReplacementValue」キーに追加します。
alljobs.targetReplacementValue=toHex
- •データベース取り込みとレプリケーションタスクで[監査]適用モードを選択した場合は、タスクウィザードの[ターゲット]ページの[詳細]で、ターゲットテーブルに含める監査メタデータカラムを選択できます。[メタデータカラムのプレフィックス]フィールドに値を指定する場合は、特殊文字を含めないようにしてください。特殊文字を含めた場合、タスクのデプロイメントが失敗します。
- •デフォルトでは、次のタイプのソースカラムは、長さの指定なしでGoogle BigQueryの文字列カラムにマッピングされます。
- - 文字データ型を持つソースカラム
- - longdateまたはtimestampデータ型を持つSAP HANAソースカラム
- •データベース取り込みとレプリケーションジョブをデプロイすると、データベース取り込みとレプリケーションはデフォルトでは、プライマリキーカラムまたは一意のキーカラムでクラスタ化されたGoogle BigQueryターゲットテーブルを生成します。各キーカラムには、Google BigQueryがクラスタリングでサポートする次のいずれかのデータ型が必要です。
- - STRING
- - INT64
- - NUMERIC
- - BIGNUMERIC
- - DATE
- - DATETIME
- - TIMESTAMP
- - BOOL
- - GEOGRAPHY
プライマリキーまたはユニークキーのカラムにサポートされていないデータ型がある場合、クラスタリング時にそのカラムはスキップされます。例えば、プライマリキーにC1、C2、C3、C4、C5カラムが含まれていて、C2にサポートされていないデータ型がある場合、ターゲットテーブルはCLUSTER BY句にC1、C3、C4、およびC5カラムを使用して作成されます。