[ Google - GCP ] Solution : erreur BigQuery, spécification d'URI non valide. La valeur de l'URI de l'option doit être un URI générique.

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 :

Insérer la description de l'image ici

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 :

Insérer la description de l'image ici

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 网站内看到这一行,
说明网络爬虫可能在本人还没有完整发布的时候就抓走了我的文章,
可能导致内容不完整,请去上述的原文链接查看原文。

Je suppose que tu aimes

Origine blog.csdn.net/dietime1943/article/details/135508108
conseillé
Classement