1

J'ai des données dans le stockage en nuage et je veux transférer les données à grande requête et obtenir des statistiques. Je suis actuellement en utilisant un JobConfigurationLoad pour obtenir un seul fichier est ici un échantillon du code:comment obtenir plusieurs fichiers à partir du stockage en nuage à grande requête en utilisant java api

JobConfigurationLoad jobconfigurationqLoad = new JobConfigurationLoad(); 
jobconfigurationqLoad.setSkipLeadingRows(1); // First line are columns names 
    jobconfigurationqLoad.setSourceUris(Lists.newArrayList("gs://my_app/folder_name/test_file.csv")); 
jobconfigurationqLoad.setWriteDisposition("WRITE_APPEND"); 
jobconfigurationqLoad.setEncoding(PlatformConstants.DEFAULT_ENCODING); 
jobconfigurationqLoad.setCreateDisposition("CREATE_IF_NEEDED"); 
jobconfigurationqLoad.setDestinationTable(tableReference); 
**tableReference = my table in big query 
jobconfigurationqLoad.setSchemaInline("field1:STRING,field2:STRING"); 

// JobConfiguration 
JobConfiguration jobConfiguration = new JobConfiguration(); 
jobConfiguration.setLoad(jobconfigurationqLoad); 

// JobReference 
JobReference jobreference = new JobReference(); 
jobreference.setProjectId(PROJECT_ID); 

// Job 
Job insertJob = new Job(); 
insertJob.setConfiguration(jobConfiguration); 
insertJob.setJobReference(jobreference); 

Dans « setSourceUris » Je voulais mettre seul le dossier et obtenir tous les fichiers qui sont là, mais que doesn Ça ne semble pas fonctionner. Je l'ai vu le google API un peu de doc pour obtenir un contenu de seau, mais pas seulement un dossier à l'intérieur du seau. quelque chose de similaire est dans ce answer. J'utilise GAE avec Java.

Répondre

0

BigQuery Apis a la propriété: configuration.load.sourceUris [] qui est un tableau pouvant contenir un ou plusieurs fichiers. les noms doivent être "noms qualifiés, par exemple: gs: //mybucket/myobject.csv"

pour plus d'informations, jetez un oeil à: https://developers.google.com/bigquery/docs/reference/v2/jobs

donc, comme Michael a dit: "utilisez l'API Google Cloud Storage au provide a list of object URIs. Fournissez un paramètre de préfixe pour filtrer la liste de résultats."

puis placez les noms de fichiers dans le tableau sourceUris de votre travail.

2

La méthode sourceUris de l'API BigQuery requiert que vous répertoriez chaque URI source séparément (il n'est pas possible de fournir un seul URI de compartiment Google Cloud Storage).

Toutefois, vous pouvez utiliser l'API Google Cloud Storage au provide a list of object URIs. Fournissez un paramètre prefix pour filtrer la liste de résultats.

Notez que la quantité maximale de fichiers que vous pouvez inclure dans un seul travail de chargement est de 500 (et que la quantité maximale de données par demande de chargement unique est de 1 To - voir BigQuery quota page).

+0

merci michael, je vais essayer ça. – Vini

+0

vous avez raison, sauf pour la première partie. vois ma réponse. merci quand même, votre réponse m'a aidé. – Vini

Questions connexes