Avroをインポート形式として使用して簡単なテーブルを作成する際に問題があります。私は、N列のプリミティブデータ型(例えば、c1 STRING
とc2 INTEGER
という列のテーブル)を持つ典型的なテーブルを作成したいと考えています。私はこのAvroを使用して複数の列を含む行をBigQueryに挿入
{
"type": "record",
"name": "x",
"fields": [
{
"name": "c1",
"type": "string"
},
{
"name": "c2",
"type": "int"
}
]
}
ようなスキーマを使用
これはc1
とc2
をネスト有するタイプRECORD
の名前root
と一つの列に生じます。
Avroで2つのカラムc1
とc2
を持つテーブルにインポートするにはどうすればよいですか?または、固定名がroot
の1つの列を持つテーブルのみを作成することは現在可能ですか?
Iは、他のアプローチを試みた:(string
の)
- アブロタイプ
array
は{"type":"string"}
等root
STRING REPEATED
タイプの最も単純なスキーマタイプ
STRING
の名前
root
とつの列を作成する名前を持つ1列を作成します。この方法では、複数の列を作成することも、列の名前を変更することもできません。
私は、JSONとAvroが同じ機能を持ち、スペース消費の点では良いフォーマットではないJSONの代わりにAvroを使用できると想定しました。これは事実ではありません(少なくとも今のところは)、Avroには任意の列名を使用できないというこの制限があります。私の場合、私たちの処理パイプラインは列に特定の名前があることを期待していますが、暗黙の 'root_'接頭辞のためにこれを達成できません。 IMHOエンドユーザーが自由に列に名前を付けることができる分析データベースの有効なユーザー要件です。今後この機能をサポートし、現在の機能を文書化してください。 – codeholic
これまでのところ、ルートのものがあります - それは全く役に立たず、プロモーションされた機能で時間の無駄です!ユーザーがスキーマを完全に制御できるようにルートレコードを削除する計画はありますか? –