AstraDB to BigQuery テンプレートは、AstraDB からレコードを読み取り、BigQuery に書き込むバッチ パイプラインです。
宛先テーブルが BigQuery に存在しない場合、パイプラインは次の値を持つテーブルを作成します。
- Cassandra キースペースから継承される
Dataset ID
。 - Cassandra テーブルから継承される
Table ID
。
宛先テーブルのスキーマは、ソース Cassandra テーブルから推定されます。
List
とSet
は BigQuery のREPEATED
フィールドにマッピングされます。Map
は BigQuery のRECORD
フィールドにマッピングされます。- 他のすべての型は、対応するタイプの BigQuery フィールドにマッピングされます。
- Cassandra ユーザー定義タイプ(UDT)とタプルデータ タイプはサポートされていません。
パイプラインの要件
- トークンを含む AstraDB アカウント
テンプレートのパラメータ
必須パラメータ
- astraToken: トークン値またはシークレットのリソース ID(例: AstraCS:abcdefghij)。
- astraDatabaseId: データベースの固有識別子(UUID)(例: cf7af129-d33a-498f-ad06-d97a6ee6eb7)。
- astraKeyspace: Astra データベース内の Cassandra キースペースの名前。
- astraTable: Cassandra データベース内のテーブルの名前(例: my_table)。
オプション パラメータ
- astraQuery: テーブル全体を読み取る代わりに行をフィルタするクエリ。
- astraDatabaseRegion: 指定しない場合はデフォルトが選択されます。これはマルチリージョン データベースで有用です。
- minTokenRangesCount: クエリを分散するために使用するスプリットの最小数。
- outputTableSpec: 出力を書き込む BigQuery テーブルの場所。形式
<PROJECT_ID>:<DATASET_NAME>.<TABLE_NAME>
を使用します。テーブルのスキーマは、入力オブジェクトと一致する必要があります。
テンプレートを実行する
コンソール
- Dataflow の [テンプレートからジョブを作成] ページに移動します。 [テンプレートからジョブを作成] に移動
- [ジョブ名] フィールドに、固有のジョブ名を入力します。
- (省略可)[リージョン エンドポイント] で、プルダウン メニューから値を選択します。デフォルトのリージョンは
us-central1
です。Dataflow ジョブを実行できるリージョンのリストについては、Dataflow のロケーションをご覧ください。
- [Dataflow テンプレート] プルダウン メニューから、[ the AstraDB to BigQuery template] を選択します。
- 表示されたパラメータ フィールドに、パラメータ値を入力します。
- [ジョブを実行] をクリックします。
gcloud
シェルまたはターミナルで、テンプレートを実行します。
gcloud dataflow flex-template run JOB_NAME \ --template-file-gcs-location=gs://dataflow-templates-REGION_NAME/VERSION/flex/AstraDB_To_BigQuery \ --project=PROJECT_ID \ --region=REGION_NAME \ --parameters \ astraToken=ASTRA_TOKEN,\ astraDatabaseId=ASTRA_DATABASE_ID,\ astraKeyspace=ASTRA_KEYSPACE,\ astraTable=ASTRA_TABLE,\
次のように置き換えます。
JOB_NAME
: 一意の任意のジョブ名VERSION
: 使用するテンプレートのバージョン使用できる値は次のとおりです。
latest
: 最新バージョンのテンプレートを使用します。このテンプレートは、バケット内で日付のない親フォルダ(gs://dataflow-templates-REGION_NAME/latest/)にあります。- バージョン名(例:
2023-09-12-00_RC00
)。特定のバージョンのテンプレートを使用します。このテンプレートは、バケット内で対応する日付の親フォルダ(gs://dataflow-templates-REGION_NAME/)にあります。
REGION_NAME
: Dataflow ジョブをデプロイするリージョン(例:us-central1
)ASTRA_TOKEN
: Astra トークンASTRA_DATABASE_ID
: データベースの識別子ASTRA_KEYSPACE
: Cassandra キースペースASTRA_TABLE
: Cassandra テーブル
API
REST API を使用してテンプレートを実行するには、HTTP POST リクエストを送信します。API とその認証スコープの詳細については、projects.templates.launch
をご覧ください。
POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch { "launchParameter": { "jobName": "JOB_NAME", "parameters": { "astraToken": "ASTRA_TOKEN", "astraDatabaseId": "ASTRA_DATABASE_ID", "astraKeyspace": "ASTRA_KEYSPACE", "astraTable": "ASTRA_TABLE", }, "containerSpecGcsPath": "gs://dataflow-templates-LOCATION/VERSION/flex/AstraDB_To_BigQuery", "environment": { "maxWorkers": "10" } } }
次のように置き換えます。
PROJECT_ID
: Dataflow ジョブを実行する Google Cloud プロジェクトの IDJOB_NAME
: 一意の任意のジョブ名VERSION
: 使用するテンプレートのバージョン使用できる値は次のとおりです。
latest
: 最新バージョンのテンプレートを使用します。このテンプレートは、バケット内で日付のない親フォルダ(gs://dataflow-templates-REGION_NAME/latest/)にあります。- バージョン名(例:
2023-09-12-00_RC00
)。特定のバージョンのテンプレートを使用します。このテンプレートは、バケット内で対応する日付の親フォルダ(gs://dataflow-templates-REGION_NAME/)にあります。
LOCATION
: Dataflow ジョブをデプロイするリージョン(例:us-central1
)ASTRA_TOKEN
: Astra トークンASTRA_DATABASE_ID
: データベースの識別子ASTRA_KEYSPACE
: Cassandra キースペースASTRA_TABLE
: Cassandra テーブル
次のステップ
- Dataflow テンプレートについて学習する。
- Google 提供のテンプレートのリストを確認する。