転送先 - Google BigQuery
- 印刷
- PDF
転送先 - Google BigQuery
- 印刷
- PDF
記事の要約
この要約は役に立ちましたか?
ご意見いただきありがとうございます
概要
Google CloudのBigQueryへデータを転送する設定のDocsです。
Google BigQueryとTROCCOの活用事例について
TROCCOの製品サイトでは、お客さまの導入事例を紹介しております。
本Docsとあわせてご覧ください。
制約
- Google BigQuery側の制約
- 転送できるファイルサイズなどに上限があります。
- 詳しくは、BigQuery公式ドキュメント - 割り当てと上限を参照ください。
設定項目
STEP1 基本設定
| 項目 | 必須 | デフォルト値 | 内容 |
|---|---|---|---|
| Google BigQuery接続情報 | Yes | - | あらかじめ登録してあるGoogle BigQuery接続情報から、今回の転送設定に必要な権限を持つものを選択します。 |
| 転送先プロジェクトの指定 | Yes | 接続情報のプロジェクト | 転送先のプロジェクトを指定します。 接続情報のプロジェクト:接続情報で設定されたプロジェクトを使用します。 任意のプロジェクト:接続情報とは別のプロジェクトを転送先として指定できます。 |
| 転送先プロジェクトID | No | - | 転送先プロジェクトの指定で「任意のプロジェクト」を選択した場合に入力します。 転送先として使用するプロジェクトIDを入力してください。 |
| データセット | Yes | - | 転送先のデータセット名を選択します。 |
| テーブル | Yes | - | 転送先のテーブル名を選択します。 対象テーブルが転送先のデータセット内に存在しない場合は、テーブルが自動的に作成されます。 |
| データセットのロケーション | Yes | US (米国) | 転送先データセットのロケーションを指定します。 東京リージョンを指定する場合はasia-northeast1を入力します。 指定できるロケーションについて、詳しくはBigQuery公式ドキュメント - BigQuery のロケーションを参照ください。 |
| データセットの自動作成オプション | Yes | 作成しない | 指定したデータセットが対象プロジェクト配下に存在しない場合、自動で作成します。 |
| 転送モード | Yes | 追記 (APPEND) | 転送モードを選択します。 詳しくは、後述の転送モードについてを参照ください。 |
| マージキー | Yes | - | 転送モードでUPSERT (MERGE)を選択したときに入力できます。プライマリーキーが転送先のテーブルに存在しない場合、マージキー(主キー)扱いとする、カラムの名前を入力してください。 マージキーには、値の重複がなく、NULL値も持たないカラムを入力してください。 |
データセット・テーブル・カラムの命名上の制約
それぞれ、命名上の制約があります。
- データセット名(STEP1で指定)
- 英字・数字・アンダースコアのみで構成されている必要があります。
- スペースや特殊文字を含めることはできません。
- 詳しくは、BigQuery公式ドキュメント - データセットの作成を参照ください。
- テーブル名(STEP1で指定)
- さまざまな文字(数字、アンダースコア、ハイフン、スペースなどを含む)で構成できます。
- 詳しくは、BigQuery公式ドキュメント - テーブルの作成と使用を参照ください。
- カラム名(STEP2カラム定義で指定)
- 英字・数字・アンダースコアのみで構成されている必要があります。
- 列名の先頭は英字またはアンダースコアにする必要があります。
- スペースや特殊文字を含めることはできません。
- 詳しくは、BigQuery公式ドキュメント - スキーマの指定を参照ください。
STEP2 出力オプション
| 項目 | 内容 |
|---|---|
| カラム設定 | 後述のカラム設定を参照ください。 |
| スキーマ情報をテンプレートとして参照するテーブル | BigQueryにテーブルを新規作成する際のスキーマとして、BigQuery側にすでに存在するテーブルのスキーマを流用できます。 この場合、転送設定STEP1で指定したデータセット配下にあるテーブル名を入力してください。 |
| パーティショニング | 後述のパーティショニング・クラスタリングの設定を参照ください。 |
| クラスタリング | 後述のパーティショニング・クラスタリングの設定を参照ください。 |
スキーマに関わる設定が適用される条件
STEP2出力オプションの以下の設定は、テーブルを新規作成する場合にのみ、適用されます。
- カラム設定
- スキーマ情報をテンプレートとして参照するテーブル
- パーティショニング
- クラスタリング
具体的には、以下の状態でジョブ実行した際に適用されます。
- 転送先に対象となるテーブルが存在しない場合
- 転送モードで全件洗い替え (
REPLACE)を選んでいる場合- この場合、転送のたびに転送先テーブルのスキーマが更新されるため、上記設定の内容は都度適用されます。
補足事項
転送モードについて
以下の説明はいずれも、転送先に対象となるテーブルがすでに存在する場合の挙動となります。
転送先に対象となるテーブルが存在しない場合は、いずれのモードにおいてもテーブルを新規作成します。
| 転送モード | スキーマ変更 | トランザクション | 挙動 | 補足 |
|---|---|---|---|---|
追記 (APPEND) | No | Yes | テーブルへの追記を以下の通り行います。
| |
追記 (APPEND DIRECT) | No | No | テーブルの追記を以下の通り行います。
| APPEND)モードに比べて処理時間は短くなりますが、トランザクションは担保されません。 |
全件洗い替え (DELETE IN ADVANCE) | Yes | No | テーブルの洗い替えを以下の通り行います。
| |
全件洗い替え (REPLACE) | Yes | Yes | テーブルの洗い替えを以下の通り行います。
| |
UPSERT (MERGE) | No | Yes | テーブルへのUPSERTを以下の通り行います。
|
WRITE_APPENDとWRITE_TRUNCATEの違い
BigQuery APIリファレンス - JobのwriteDispositionフィールドを参照ください。
カラム設定
カラムに関して詳細な設定が可能です。
詳しくは、BigQuery公式ドキュメント - スキーマの指定を参照ください。
| 項目 | 内容 |
|---|---|
| カラム名 | 転送設定STEP2カラム定義のカラム名一覧から選択します。 |
| データ型 | カラムのデータ型を明示的に指定したい場合に選択します。 |
| モード | カラムのモードを明示的に指定したい場合に選択します。 |
| 日付フォーマット | 転送設定STEP2カラム定義でtimestamp型と定義されたカラムをSTRING型で転送したい場合に、展開時に利用する日付フォーマットを入力できます。 |
| タイムゾーン | 転送設定STEP2カラム定義でtimestamp型と定義されたカラムをSTRING型またはDATETIME型で転送したい場合に、展開時に利用するタイムゾーンを入力できます。 |
| 説明 | カラムの説明を入力できます。 スキーマ情報をテンプレートとして参照するテーブルを利用した場合においても、本項目で入力した内容が優先されて反映されます。 |
パーティショニング・クラスタリングの設定
パーティショニング・クラスタリングについて、詳しくはパーティション分割テーブルの概要・クラスタ化テーブルの概要をそれぞれ参照ください。
| 項目 | 必須 | 内容 |
|---|---|---|
| パーティショニング | ✓ | 以下のいずれかを選択できます。
|
| パーティションフィールド | ✓ | フィールドにより分割を選択したときに入力します。DATE、TIMESTAMP、DATETIMEのいずれかの型の列名を入力してください。 |
| パーティションタイプ | ✓ | パーティショニングでいずれかの分割方式を選択した場合に選択します。 テーブル分割の粒度を以下より選択してください。
|
| クラスタリング | - | クラスタ化テーブルを作成したい場合に設定できます。 クラスタ化列にカラム名を入力することで、該当のカラムに基づいてテーブルがクラスタ化されます。 なお、クラスタ化列は最大で4つまで指定できます。 |
| パーティションの存続期間 | - | パーティションの有効期限を指定できます。 詳しくは、パーティションの有効期限を設定するを参照ください。 |
パーティショニング・クラスタリング設定の適用条件
パーティショニング・クラスタリングの設定はテーブルの新規作成時にのみ有効です。
出力先にすでにテーブルが存在する場合は、本設定の内容ではなく既存テーブルの設定内容でジョブが実行されます。
「取り込み時間により分割」におけるパーティションの境界
Google BigQueryの仕様上、パーティションの境界はUTC時間に基づきます。ご注意ください。
整数範囲パーティショニング
TROCCOでは、特定のINTEGER列の値に基づいてテーブルを分割する、整数範囲パーティショニングには対応していません。
必要な権限
ご利用いただくにあたって必要な権限は以下となります。
bigquery.datasets.createbigquery.datasets.getbigquery.jobs.createbigquery.tables.createbigquery.tables.deletebigquery.tables.exportbigquery.tables.getbigquery.tables.getDatabigquery.tables.listbigquery.tables.updatebigquery.tables.updateData
この記事は役に立ちましたか?