Я хочу создать несколько отчетов на основе данных в BigTable. Для этого я хотел создать запрос, который получит самые последние данные из BigTable и передаст их в отчет студии данных. Теперь проблема в том, что когда я создаю соединение BigTable в BigQuery, я не могу выполнить ни один запрос, даже для пустой таблицы. Я создаю тип для 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, но когда я все удалил, ошибка все равно возникает. Я обнаружил, что это должно быть что-то с самим файлом json, поскольку, когда я перемещаю «исходные форматы» вниз на несколько строк, сообщается об изменении положения ошибки. Что я здесь не так делаю?
Я думаю, что я нашел проблему, поскольку я был в состоянии воспроизвести это. Сообщение об ошибке сбивает с толку, но, как описано здесь :
Я провел несколько тестов с помощью быстрого запуска Bigtable, и он хорошо сработал для меня:
Единственное, что я сделал по-другому, - это использование локального пути, как в:
Изменив это обратно на:
И я получил ту же ошибку:
источник