Description du problème
Lors du processus d'exportation des données vers le bucket GS à l'aide de BigQuery, l'entrepôt de données de Google Cloud, une erreur s'est produite :
Spécification d'URI non valide. La valeur de l’option « uri » doit être un URI générique.
- Les instructions BigQuery exécutées sont les suivantes :
EXPORT DATA OPTIONS(
uri='gs://test_bucket/GENERATEDB_DATA.csv',
format='CSV',
overwrite=true,
header=true,
field_delimiter=',') AS
SELECT * FROM `test.test_table`
limit 50;
Après l'exécution, un message d'erreur apparaîtra dans la fenêtre de commande, comme le montre la figure ci-dessous :
Analyse des causes :
Comme le montre le message d'erreur, la cause de l'erreur est que l'URI est incorrect. La solution finale est de modifier le chemin de l'URI. Alors pourquoi est-il incorrect ? Voici une explication.
Premièrement, la déclaration officielle normale des données d'exportation dans GCP est la suivante :
EXPORT DATA OPTIONS(
uri='gs://bucket/folder/*.csv',
format='CSV',
overwrite=true,
header=true,
field_delimiter=';') AS
SELECT field1, field2 FROM mydataset.table1 ORDER BY field1 LIMIT 10
Notez que la valeur de l'uri ci - dessus est une méthode d'écriture fixe gs:// + bucket的名字 + 文件夹(可选) + 通配的csv文件名
. La syntaxe EXPORT DATA ne prend pas en charge l'écriture directe d'un seul fichier pour l'exportation. Pour les instructions officielles, cliquez ici .
solution:
Modifiez la syntaxe EXPORT DATA et remplacez l'uri par une expression générique. Le code est le suivant :
EXPORT DATA OPTIONS(
uri='gs://test_bucket/GENERATEDB_DATA_*.csv',
format='CSV',
overwrite=true,
header=true,
field_delimiter=',') AS
SELECT * FROM `test.test_table`
limit 50;
Une fois l'exécution finale réussie, le fichier exporté peut être vu dans le compartiment GS :
Ajout : BigQuery prend en charge un seul opérateur générique (*) dans chaque URI. Les caractères génériques peuvent apparaître n'importe où dans l'URI mais ne peuvent pas être inclus dans le nom du compartiment. Utilisez l'opérateur générique pour demander à BigQuery de créer plusieurs fichiers de partitions en fonction du modèle fourni. L'opérateur générique remplace un nombre (commençant à 0) par 12 bits complétés vers la gauche. Par exemple, si un URI a un caractère générique à la fin de son nom de fichier, alors lorsque les fichiers sont créés, le premier fichier aura 000000000000 ajouté à la fin de son nom, le deuxième fichier aura 000000000001 ajouté à son nom, et ainsi de suite.
[ 本文作者 ] bluetata
[ 原文链接 ] https://bluetata.blog.csdn.net/article/details/135508108
[ 最后更新 ] 01/10/2024 18:16
[ 版权声明 ] 如果您在非 CSDN 网站内看到这一行,
说明网络爬虫可能在本人还没有完整发布的时候就抓走了我的文章,
可能导致内容不完整,请去上述的原文链接查看原文。