0

バケットにある大量のデータ (改行区切りの json ファイル) を BigQuery に移動しようとしています。BigQuery では、ダッシュ-やなどの特定の文字をフィールド名に使用することを禁止していますslashes。残念ながら、データには多くのフィールド名にダッシュが含まれています。

jsonPayload.request.x-search

jsonPayload.request.x_searchローダーが何らかの魔法をかけてくれることを期待して、BigQuery スキーマのフィールドの名前を変更しようとしました が、違います。

ストレージ内のフィールドの名前を変更するジョブを実行する以外に(特に新しいファイルが 1 時間ごとに追加されるため、本当に望ましくありません)、JSON ファイルのフィールドを BQ スキーマのフィールドにマップする方法はありますか?

これまでコンソール UI を使用してきましたが、BQ でどのインターフェイスを使用するかは問題ではありません。

4

2 に答える 2

1

これを回避するためのいくつかのオプションがあります。

  1. 新しいファイルが到着したときにトリガーする Cloud Function を作成します。その関数内で、ファイルの内容を読み取り、変換します。結果を新しいファイルに書き戻し、BigQuery に読み込みます。これがあなたの状況でどれほどスケーラブルかはわかりません。ファイルが非常に大きい場合、これは機能しない可能性があります。
  2. 新しいファイルが到着したときにトリガーする Cloud Function を作成し、Dataflow テンプレート パイプラインを呼び出して、データを取り込み、変換し、BigQuery に書き込みます。これはスケーラブルですが、追加のコストがかかります (Dataflow)。ただし、これは GCS から BigQuery にデータを読み込むための優れたパターンです。
于 2018-09-15T05:40:39.047 に答える