転送先 - Google BigQuery
- 印刷
- PDF
転送先 - Google BigQuery
- 印刷
- PDF
記事の要約
この要約は役に立ちましたか?
ご意見ありがとうございます
概要
Google CloudのBigQueryへデータを転送する設定のヘルプページです。
Google BigQueryとTROCCOの活用事例について
TROCCOの製品サイトでは、お客さまの導入事例を紹介しております。
本ヘルプページとあわせてご覧ください。
制約
- Google BigQuery側の制約
- 転送できるファイルサイズなどに上限があります。
- 詳しくは、BigQuery公式ドキュメント - 割り当てと上限を参照ください。
設定項目
STEP1 基本設定
項目 | 必須 | デフォルト値 | 内容 |
---|---|---|---|
Google BigQuery接続情報 | Yes | - | あらかじめ登録してあるGoogle BigQuery接続情報から、今回の転送設定に必要な権限を持つものを選択します。 |
データセット | 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.create
bigquery.datasets.get
bigquery.jobs.create
bigquery.tables.create
bigquery.tables.delete
bigquery.tables.export
bigquery.tables.get
bigquery.tables.getData
bigquery.tables.list
bigquery.tables.update
bigquery.tables.updateData
この記事は役に立ちましたか?