Je veux générer des rapports basés sur les données de BigTable. Pour cela, je voulais créer une requête qui obtiendrait les dernières données du BigTable et les transmettrait au rapport Data Studio. Maintenant, le problème est que lorsque je crée une connexion BigTable dans BigQuery, je ne peux exécuter aucune requête, même sur la table vide. Je crée le type pour BigQuery de la manière suivante:
bq mk \
--external_table_definition=gs://somebucket/big-table-definition.json \
datareportingdataset.datareportingtable
et la commande s'exécute avec succès. Mon big-table-definition.json
ressemble à ceci:
{
"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
]
}
]
}
}
L'erreur lors d'une select *
requête simple ressemble à ceci:
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.
D'abord, je soupçonnais certaines données dans le BigTable mais quand j'ai tout supprimé de là, l'erreur se produit toujours. J'ai découvert que cela devait être quelque chose avec le fichier json lui-même car lorsque je déplace les "sourceFormats" sur quelques lignes, l'erreur change de position signalée. Qu'est-ce que je fais mal ici?
Je pense avoir trouvé le problème car j'ai pu le reproduire. Le message d'erreur est déroutant mais, comme indiqué ici :
J'ai fait quelques tests avec le Quickstart Bigtable et cela a bien fonctionné pour moi:
La seule chose que j'ai fait différemment était d'utiliser un chemin local comme dans:
Changer ceci en:
Et j'ai la même erreur:
la source