Quiero generar algunos informes basados en los datos en BigTable. Para eso quería crear una consulta que obtenga los últimos datos de BigTable y los pase al informe del estudio de datos. Ahora el problema es que cuando creo una conexión BigTable en BigQuery no puedo ejecutar ninguna consulta, incluso en la tabla vacía. Creo el tipo para BigQuery de la siguiente manera:
bq mk \
--external_table_definition=gs://somebucket/big-table-definition.json \
datareportingdataset.datareportingtable
y el comando se ejecuta con éxito. Mi big-table-definition.json
aspecto es el siguiente:
{
"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
]
}
]
}
}
El error al hacer una select *
consulta simple se parece a lo siguiente:
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.
Primero sospechaba algunos datos en BigTable, pero cuando eliminé todo desde allí, el error aún ocurre. He descubierto que debe ser algo con el archivo json en sí, ya que cuando muevo los "sourceFormats" unas pocas líneas, el error cambia la posición informada. ¿Qué estoy haciendo mal aquí?
Creo que encontré el problema porque pude reproducirlo. El mensaje de error es confuso pero, como se documenta aquí :
Hice algunas pruebas con el inicio rápido de Bigtable y funcionó bien para mí:
Lo único que hice diferente fue usar una ruta local como en:
Cambiando esto de nuevo a:
Y obtuve el mismo error:
fuente