BigTableのデータに基づいていくつかのレポートを生成したい。そのために、BigTableから最新のデータを取得してデータスタジオレポートに渡すクエリを作成したいと考えました。今問題は、BigQueryでBigTable接続を作成すると、空のテーブルでもクエリを実行できないことです。次の方法でBigQueryのタイプを作成します。
bq mk \
--external_table_definition=gs://somebucket/big-table-definition.json \
datareportingdataset.datareportingtable
そして、コマンドは正常に実行されます。私big-table-definition.json
は次のようになります:
{
"sourceFormat": "BIGTABLE",
"sourceUris": [
"https://googleapis.com/bigtable/projects/playground-2/instances/data-reporting/tables/data-reporting-table"
],
"bigtableOptions": {
"readRowkeyAsString": "true",
"columnFamilies" : [
{
"familyId": "cf1",
"onlyReadLatest": "true",
"columns": [
{
"qualifierString": "temp",
"type": "STRING"
},
{
//the rest of the columns
]
}
]
}
}
単純なselect *
クエリを実行すると、エラーは次のようになります。
Error while reading table: datareportingdataset.datareportingtable, error message: Error detected while parsing row starting at position: 2. Error: Data between close double quote (") and field separator.
最初はBigTableの一部のデータを疑っていましたが、そこからすべてを削除してもエラーが発生します。"sourceFormats"を数行下に移動すると、エラーの変更位置が報告されるので、jsonファイル自体に問題があることがわかりました。ここで何が悪いのですか?