Ich möchte einige Berichte basierend auf den Daten in BigTable erstellen. Dafür wollte ich eine Abfrage erstellen, die die neuesten Daten aus der BigTable abruft und an den Data Studio-Bericht weiterleitet. Das Problem ist nun, dass ich beim Erstellen einer BigTable-Verbindung in BigQuery keine Abfrage ausführen kann, auch nicht für die leere Tabelle. Ich erstelle den Typ für BigQuery folgendermaßen:
bq mk \
--external_table_definition=gs://somebucket/big-table-definition.json \
datareportingdataset.datareportingtable
und der Befehl wird erfolgreich ausgeführt. Mein big-table-definition.json
sieht wie folgt aus:
{
"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
]
}
]
}
}
Der Fehler bei der einfachen select *
Abfrage sieht folgendermaßen aus:
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.
Zuerst habe ich einige Daten in der BigTable vermutet, aber als ich alles von dort gelöscht habe, tritt der Fehler immer noch auf. Ich habe herausgefunden, dass es etwas mit der JSON-Datei selbst sein muss, denn wenn ich die "sourceFormats" ein paar Zeilen nach unten verschiebe, ändert der Fehler die gemeldete Position. Was mache ich hier falsch?
Ich glaube, ich habe das Problem gefunden, als ich es reproduzieren konnte. Die Fehlermeldung ist verwirrend, aber wie hier dokumentiert :
Ich habe einige Tests mit dem Bigtable-Schnellstart durchgeführt und es hat bei mir gut funktioniert:
Das einzige, was ich anders gemacht habe, war die Verwendung eines lokalen Pfads wie in:
Ändern Sie dies zurück zu:
Und ich habe den gleichen Fehler bekommen:
quelle