Modelli batch Dataflow forniti da Google

Google fornisce un set di modelli open source Dataflow.

Questi modelli Dataflow possono aiutarti a risolvere attività di dati di grandi dimensioni, tra cui l'importazione, l'esportazione e il backup dei dati, il ripristino dei dati e le operazioni API collettive, il tutto senza utilizzare un ambiente di sviluppo dedicato. I modelli sono basati su Apache Beam e utilizzano Dataflow per trasformare i dati.

Per informazioni generali sui modelli, consulta Modelli di Dataflow. Per un elenco di tutti i modelli forniti da Google, consulta la Guida introduttiva ai modelli forniti da Google.

Questa guida documenta i modelli batch.

Da TFRecord da BigQuery a Cloud Storage

Il modello TFRecords da BigQuery a Cloud Storage è una pipeline che legge i dati da una query BigQuery e li scrive in un bucket Cloud Storage in formato TFRecord. Puoi specificare le suddivisioni della percentuale di addestramento, test e convalida. Per impostazione predefinita, la suddivisione è 1 o 100% per il set di addestramento e 0 o 0% per i set di test e convalida. Quando imposti la suddivisione del set di dati, la somma dei valori di addestramento, test e convalida deve essere pari o inferiore al 100% (ad esempio 0,6+0,2+0,2). Dataflow determina automaticamente il numero ottimale di shard per ogni set di dati di output.

Requisiti per questa pipeline:

  • Devono esistere la tabella e il set di dati BigQuery.
  • Il bucket Cloud Storage di output deve esistere prima dell'esecuzione della pipeline. Non è necessario preesistere e vengono generate automaticamente le sottodirectory di addestramento, test e convalida.

Parametri del modello

Parametro Descrizione
readQuery Una query BigQuery BigQuery che estrae i dati dall'origine. Ad esempio, select * from dataset1.sample_table.
outputDirectory Il prefisso del percorso di Cloud Storage di primo livello a cui scrivere i file TFRecord per l'addestramento, il test e la convalida. Ad esempio, gs://mybucket/output. Le sottodirectory per i file TFRecord di addestramento, test e convalida generati vengono generate automaticamente da outputDirectory. Ad esempio, gs://mybucket/output/train
trainingPercentage (Facoltativo) La percentuale di dati delle query assegnati ai file TFRecord di addestramento. Il valore predefinito è 1 o 100%.
testingPercentage (Facoltativo) La percentuale di dati delle query assegnati ai test dei file TFRecord. Il valore predefinito è 0 o 0%.
validationPercentage (Facoltativo) La percentuale di dati delle query assegnati ai file TFRecord di convalida. Il valore predefinito è 0 o 0%.
outputSuffix (Facoltativo) Il suffisso per i file TFRecord di addestramento, test e convalida. Il valore predefinito è .tfrecord.

Esecuzione del modello di file TFRecord di BigQuery in Cloud Storage

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the BigQuery to TFRecords template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records \
    --region REGION_NAME \
    --parameters \
readQuery=READ_QUERY,\
outputDirectory=OUTPUT_DIRECTORY,\
trainingPercentage=TRAINING_PERCENTAGE,\
testingPercentage=TESTING_PERCENTAGE,\
validationPercentage=VALIDATION_PERCENTAGE,\
outputSuffix=OUTPUT_FILENAME_SUFFIX

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • READ_QUERY: la query BigQuery da eseguire
  • OUTPUT_DIRECTORY: il prefisso del percorso di Cloud Storage per i set di dati di output
  • TRAINING_PERCENTAGE: la percentuale decimale suddivisa per il set di dati di addestramento
  • TESTING_PERCENTAGE: la percentuale decimale suddivisa per il set di dati di test
  • VALIDATION_PERCENTAGE: la percentuale decimale suddivisa per il set di dati di convalida
  • OUTPUT_FILENAME_SUFFIX: il suffisso di file di registrazione TensorFlow preferito

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_BigQuery_to_GCS_TensorFlow_Records
{
   "jobName": "JOB_NAME",
   "parameters": {
       "readQuery":"READ_QUERY",
       "outputDirectory":"OUTPUT_DIRECTORY",
       "trainingPercentage":"TRAINING_PERCENTAGE",
       "testingPercentage":"TESTING_PERCENTAGE",
       "validationPercentage":"VALIDATION_PERCENTAGE",
       "outputSuffix":"OUTPUT_FILENAME_SUFFIX"
   },
   "environment": { "zone": "us-central1-f" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • READ_QUERY: la query BigQuery da eseguire
  • OUTPUT_DIRECTORY: il prefisso del percorso di Cloud Storage per i set di dati di output
  • TRAINING_PERCENTAGE: la percentuale decimale suddivisa per il set di dati di addestramento
  • TESTING_PERCENTAGE: la percentuale decimale suddivisa per il set di dati di test
  • VALIDATION_PERCENTAGE: la percentuale decimale suddivisa per il set di dati di convalida
  • OUTPUT_FILENAME_SUFFIX: il suffisso di file di registrazione TensorFlow preferito

Esportazione in BigQuery in Parquet (tramite API Storage)

Il modello BigQuery Export in Parquet è una pipeline batch che legge i dati di una tabella BigQuery e li scrive in un bucket Cloud Storage in formato Parquet. Questo modello utilizza l'API BigQuery Storage per esportare i dati.

Requisiti per questa pipeline:

  • La tabella BigQuery di input deve esistere prima dell'esecuzione della pipeline.
  • Il bucket Cloud Storage di output deve esistere prima dell'esecuzione della pipeline.

Parametri del modello

Parametro Descrizione
tableRef La posizione della tabella di input di BigQuery. Ad esempio, <my-project>:<my-dataset>.<my-table>.
bucket La cartella Cloud Storage in cui scrivere i file Parquet. Ad esempio, gs://mybucket/exports.
numShards (Facoltativo) Il numero di shard del file di output. Il valore predefinito è 1.
fields (Facoltativo) Un elenco di campi separati da virgole da selezionare nella tabella BigQuery di input.

Esecuzione del modello Parquet da BigQuery a Cloud Storage

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the BigQuery export to Parquet (via Storage API) template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud beta dataflow flex-template run JOB_NAME \
    --project=PROJECT_ID \
    --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/BigQuery_to_Parquet \
    --region=REGION_NAME \
    --parameters \
tableRef=BIGQUERY_TABLE,\
bucket=OUTPUT_DIRECTORY,\
numShards=NUM_SHARDS,\
fields=FIELDS

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • BIGQUERY_TABLE: il nome della tua tabella BigQuery
  • OUTPUT_DIRECTORY: la tua cartella Cloud Storage per i file di output
  • NUM_SHARDS: numero desiderato di shard del file di output
  • FIELDS: l'elenco di campi separati da virgole che puoi selezionare dalla tabella BigQuery di input

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "tableRef": "BIGQUERY_TABLE",
          "bucket": "OUTPUT_DIRECTORY",
          "numShards": "NUM_SHARDS",
          "fields": "FIELDS"
      },
      "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/BigQuery_to_Parquet",
   }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • BIGQUERY_TABLE: il nome della tua tabella BigQuery
  • OUTPUT_DIRECTORY: la tua cartella Cloud Storage per i file di output
  • NUM_SHARDS: numero desiderato di shard del file di output
  • FIELDS: l'elenco di campi separati da virgole che puoi selezionare dalla tabella BigQuery di input

Da BigQuery a Elasticsearch

Il modello BigQuery in Elasticsearch è una pipeline in modalità batch che importa i dati da una tabella BigQuery a Elasticsearch come documenti. Il modello può leggere l'intera tabella o leggere record specifici utilizzando una query fornita.

Requisiti per questa pipeline

  • Deve esistere la tabella BigQuery di origine.
  • Un host Elasticsearch su un'istanza Google Cloud o su Elastic Cloud con Elasticsearch versione 7.0 o successiva e deve essere accessibile dalle macchine worker Dataflow.

Parametri del modello

Parametro Descrizione
connectionUrl URL Elasticsearch nel formato https://hostname:[port] o specifica CloudID se utilizzi Elastic Cloud.
apiKey Chiave API codificata in Base64 utilizzata per l'autenticazione.
index L'indice Elasticsearch per il quale verranno inviate le richieste, ad esempio my-index.
inputTableSpec (Facoltativo) Tabella BigQuery da leggere per inserire in Elasticsearch. È necessario indicare la tabella o la query. Ad esempio, projectId:datasetId.tablename.
query (Facoltativo) Query SQL per l'estrazione di dati da BigQuery. È necessario indicare la tabella o la query.
useLegacySql (Facoltativo) Impostalo su vero per utilizzare SQL precedente (applicabile solo se fornisci la query). Valore predefinito: false.
batchSize (Facoltativo) Dimensioni del batch relative al numero di documenti. Valore predefinito: 1000.
batchSizeBytes (Facoltativo) Dimensioni del batch in numero di byte. Valore predefinito: 5242880 (5 MB).
maxRetryAttempts (Facoltativo) Numero massimo di nuovi tentativi, deve essere maggiore di 0. Valore predefinito: no retries.
maxRetryDuration (Facoltativo) La durata massima dei nuovi tentativi in millisecondi deve essere maggiore o uguale a 0. Valore predefinito: no retries.
propertyAsIndex (Facoltativo) Una proprietà nel documento che viene indicizzata il cui valore specificherà i metadati _index da includere nel documento nella richiesta collettiva (ha la precedenza su un _index UDF). Valore predefinito: nessuno.
propertyAsId (Facoltativo) Una proprietà nel documento che viene indicizzata il cui valore specificherà i metadati _id da includere nel documento nella richiesta collettiva (ha la precedenza su un _id UDF). Valore predefinito: nessuno.
javaScriptIndexFnGcsPath (Facoltativo) Percorso di Cloud Storage dell'origine JavaScript dell'UDF per una funzione che specifica i metadati _index da includere nel documento nella richiesta collettiva. Valore predefinito: nessuno.
javaScriptIndexFnName (Facoltativo) Nome della funzione JavaScript dell'UDF per la funzione che specifica i metadati _index da includere nel documento nella richiesta collettiva. Valore predefinito: nessuno.
javaScriptIdFnGcsPath (Facoltativo) Percorso di Cloud Storage dell'origine JavaScript dell'UDF per una funzione che specifica i metadati _id da includere nel documento nella richiesta collettiva. Valore predefinito: nessuno.
javaScriptIdFnName (Facoltativo) Nome della funzione JavaScript dell'UDF per la funzione che specifica i metadati _id da includere nel documento nella richiesta collettiva. Valore predefinito: nessuno.
javaScriptTypeFnGcsPath (Facoltativo) Percorso di Cloud Storage dell'origine JavaScript dell'UDF per una funzione che specifica i metadati _type da includere nel documento nella richiesta collettiva. Valore predefinito: nessuno.
javaScriptTypeFnName (Facoltativo) Nome della funzione JavaScript dell'UDF per la funzione che specifica i metadati _type da includere nel documento nella richiesta collettiva. Valore predefinito: nessuno.
javaScriptIsDeleteFnGcsPath (Facoltativo) Il percorso Cloud Storage dell'origine UDF JavaScript della funzione che determina se il documento deve essere eliminato anziché inserito o aggiornato. La funzione deve restituire il valore stringa "true" o "false". Valore predefinito: nessuno.
javaScriptIsDeleteFnName (Facoltativo) Nome della funzione JavaScript di UDF per la funzione che determina se il documento deve essere eliminato anziché inserito o aggiornato. La funzione deve restituire il valore stringa "true" o "false". Valore predefinito: nessuno.
usePartialUpdate (Facoltativo) Indica se utilizzare aggiornamenti parziali (aggiornare invece di creare o indicizzare i documenti parziali) con le richieste Elasticsearch. Valore predefinito: false.
bulkInsertMethod (Facoltativo) Indica se utilizzare INDEX (indice, possibilità di aumento) o CREATE (creazione, errori su _id duplicato) con richieste collettive Elasticsearch. Valore predefinito: CREATE.

Esecuzione del modello BigQuery to Elasticsearch

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the BigQuery to Elasticsearch template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud beta dataflow flex-template run JOB_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/BigQuery_to_Elasticsearch \
    --parameters \
inputTableSpec=INPUT_TABLE_SPEC,\
connectionUrl=CONNECTION_URL,\
apiKey=APIKEY,\
index=INDEX

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • INPUT_TABLE_SPEC: il nome della tabella BigQuery.
  • CONNECTION_URL: l'URL dell'Elasticsearch.
  • APIKEY: la chiave API codificata in base64 per l'autenticazione.
  • INDEX: il tuo indice Elasticsearch.

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "inputTableSpec": "INPUT_TABLE_SPEC",
          "connectionUrl": "CONNECTION_URL",
          "apiKey": "APIKEY",
          "index": "INDEX"
      },
      "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/BigQuery_to_Elasticsearch",
   }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • INPUT_TABLE_SPEC: il nome della tabella BigQuery.
  • CONNECTION_URL: l'URL dell'Elasticsearch.
  • APIKEY: la chiave API codificata in base64 per l'autenticazione.
  • INDEX: il tuo indice Elasticsearch.

Da BigQuery a MongoDB

Il modello BigQuery in MongoDB è una pipeline batch che legge le righe da BigQuery e le scrive in MongoDB sotto forma di documenti. Attualmente ogni riga viene archiviata come documento.

Requisiti per questa pipeline

  • Deve esistere la tabella BigQuery di origine.
  • L'istanza MongoDB di destinazione deve essere accessibile dalle macchine worker di Dataflow.

Parametri del modello

Parametro Descrizione
mongoDbUri URI di connessione MongoDB nel formato mongodb+srv://:@.
database Database in MongoDB per archiviare la raccolta. Ad esempio: my-db.
collection Nome della raccolta nel database MongoDB. Ad esempio: my-collection.
inputTableSpec Tabella BigQuery da cui leggere. Ad esempio, bigquery-project:dataset.input_table.

Esecuzione del modello BigQuery in MongoDB

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the BigQuery to MongoDB template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

  gcloud beta dataflow flex-template run JOB_NAME \
      --project=PROJECT_ID \
      --region=REGION_NAME \
      --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/BigQuery_to_MongoDB \
      --parameters \
  inputTableSpec=INPUT_TABLE_SPEC,\
  mongoDbUri=MONGO_DB_URI,\
  database=DATABASE,\
  collection=COLLECTION
  

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • INPUT_TABLE_SPEC: il nome della tabella BigQuery di origine.
  • MONGO_DB_URI: l'URI MongoDB.
  • DATABASE: il tuo database MongoDB.
  • COLLECTION: la tua raccolta MongoDB.

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

  POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
  {
     "launch_parameter": {
        "jobName": "JOB_NAME",
        "parameters": {
            "inputTableSpec": "INPUT_TABLE_SPEC",
            "mongoDbUri": "MONGO_DB_URI",
            "database": "DATABASE",
            "collection": "COLLECTION"
        },
        "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/BigQuery_to_MongoDB",
     }
  }

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • INPUT_TABLE_SPEC: il nome della tabella BigQuery di origine.
  • MONGO_DB_URI: l'URI MongoDB.
  • DATABASE: il tuo database MongoDB.
  • COLLECTION: la tua raccolta MongoDB.

Avro da Bigtable a Cloud Storage

Il modello Avro da Bigtable a Cloud Storage è una pipeline che legge i dati da una tabella Bigtable e li scrive in un bucket Cloud Storage in formato Avro. Puoi utilizzare il modello per spostare dati da Bigtable a Cloud Storage.

Requisiti per questa pipeline:

  • La tabella Bigtable deve esistere.
  • Il bucket Cloud Storage di output deve esistere prima dell'esecuzione della pipeline.

Parametri del modello

Parametro Descrizione
bigtableProjectId L'ID del progetto Google Cloud dell'istanza Bigtable da cui vuoi leggere i dati.
bigtableInstanceId L'ID dell'istanza Bigtable che contiene la tabella.
bigtableTableId L'ID della tabella Bigtable da esportare.
outputDirectory Percorso di Cloud Storage in cui sono scritti i dati. Ad esempio, gs://mybucket/somefolder.
filenamePrefix Il prefisso del nome file Avro. Ad esempio, output-.

Esecuzione del modello di file Avro da Bigtable a Cloud Storage

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Cloud Bigtable to Avro Files on Cloud Storage template .
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Avro \
    --region REGION_NAME \
    --parameters \
bigtableProjectId=BIGTABLE_PROJECT_ID,\
bigtableInstanceId=INSTANCE_ID,\
bigtableTableId=TABLE_ID,\
outputDirectory=OUTPUT_DIRECTORY,\
filenamePrefix=FILENAME_PREFIX

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • BIGTABLE_PROJECT_ID: l'ID del progetto Google Cloud dell'istanza Bigtable da cui vuoi leggere i dati
  • INSTANCE_ID: l'ID dell'istanza Bigtable che contiene la tabella
  • TABLE_ID: l'ID della tabella Bigtable da esportare
  • OUTPUT_DIRECTORY: percorso di Cloud Storage in cui sono scritti i dati, ad esempio gs://mybucket/somefolder
  • FILENAME_PREFIX: il prefisso del nome file di Avro, ad esempio output-

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Avro
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "BIGTABLE_PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "outputDirectory": "OUTPUT_DIRECTORY",
       "filenamePrefix": "FILENAME_PREFIX",
   },
   "environment": { "zone": "us-central1-f" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • BIGTABLE_PROJECT_ID: l'ID del progetto Google Cloud dell'istanza Bigtable da cui vuoi leggere i dati
  • INSTANCE_ID: l'ID dell'istanza Bigtable che contiene la tabella
  • TABLE_ID: l'ID della tabella Bigtable da esportare
  • OUTPUT_DIRECTORY: percorso di Cloud Storage in cui sono scritti i dati, ad esempio gs://mybucket/somefolder
  • FILENAME_PREFIX: il prefisso del nome file di Avro, ad esempio output-

Parquet da Bigtable a Cloud Storage

Il modello da Bigtable a Cloud Storage è una pipeline che legge i dati da una tabella Bigtable e li scrive in un bucket Cloud Storage in formato Parquet. Puoi utilizzare il modello per spostare dati da Bigtable a Cloud Storage.

Requisiti per questa pipeline:

  • La tabella Bigtable deve esistere.
  • Il bucket Cloud Storage di output deve esistere prima dell'esecuzione della pipeline.

Parametri del modello

Parametro Descrizione
bigtableProjectId L'ID del progetto Google Cloud dell'istanza Bigtable da cui vuoi leggere i dati.
bigtableInstanceId L'ID dell'istanza Bigtable che contiene la tabella.
bigtableTableId L'ID della tabella Bigtable da esportare.
outputDirectory Percorso di Cloud Storage in cui sono scritti i dati. Ad esempio, gs://mybucket/somefolder.
filenamePrefix Il prefisso del nome file Parquet. Ad esempio, output-.
numShards Il numero di shard del file di output. Ad esempio: 2.

Esecuzione del modello di file Bigtable da Parquet a Cloud Storage

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Cloud Bigtable to Parquet Files on Cloud Storage template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Parquet \
    --region REGION_NAME \
    --parameters \
bigtableProjectId=BIGTABLE_PROJECT_ID,\
bigtableInstanceId=INSTANCE_ID,\
bigtableTableId=TABLE_ID,\
outputDirectory=OUTPUT_DIRECTORY,\
filenamePrefix=FILENAME_PREFIX,\
numShards=NUM_SHARDS

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • BIGTABLE_PROJECT_ID: l'ID del progetto Google Cloud dell'istanza Bigtable da cui vuoi leggere i dati
  • INSTANCE_ID: l'ID dell'istanza Bigtable che contiene la tabella
  • TABLE_ID: l'ID della tabella Bigtable da esportare
  • OUTPUT_DIRECTORY: percorso di Cloud Storage in cui sono scritti i dati, ad esempio gs://mybucket/somefolder
  • FILENAME_PREFIX: il prefisso del nome file Parquet, ad esempio output-
  • NUM_SHARDS: il numero di file Parquet da visualizzare, ad esempio 1

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_Parquet
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "BIGTABLE_PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "outputDirectory": "OUTPUT_DIRECTORY",
       "filenamePrefix": "FILENAME_PREFIX",
       "numShards": "NUM_SHARDS"
   },
   "environment": { "zone": "us-central1-f" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • BIGTABLE_PROJECT_ID: l'ID del progetto Google Cloud dell'istanza Bigtable da cui vuoi leggere i dati
  • INSTANCE_ID: l'ID dell'istanza Bigtable che contiene la tabella
  • TABLE_ID: l'ID della tabella Bigtable da esportare
  • OUTPUT_DIRECTORY: percorso di Cloud Storage in cui sono scritti i dati, ad esempio gs://mybucket/somefolder
  • FILENAME_PREFIX: il prefisso del nome file Parquet, ad esempio output-
  • NUM_SHARDS: il numero di file Parquet da visualizzare, ad esempio 1

SequenzaFile da Bigtable a Cloud Storage

Il modello quifile da Bigtable a Cloud Storage è una pipeline che legge i dati da una tabella Bigtable e li scrive in un bucket Cloud Storage in formato SequenzaFile. Puoi utilizzare il modello per copiare i dati da Bigtable in Cloud Storage.

Requisiti per questa pipeline:

  • La tabella Bigtable deve esistere.
  • Il bucket Cloud Storage di output deve esistere prima dell'esecuzione della pipeline.

Parametri del modello

Parametro Descrizione
bigtableProject L'ID del progetto Google Cloud dell'istanza Bigtable da cui vuoi leggere i dati.
bigtableInstanceId L'ID dell'istanza Bigtable che contiene la tabella.
bigtableTableId L'ID della tabella Bigtable da esportare.
bigtableAppProfileId L'ID del profilo dell'applicazione Bigtable da utilizzare per l'esportazione. Se non specifichi un profilo app, Bigtable utilizza il profilo app predefinito dell'istanza.
destinationPath Percorso di Cloud Storage in cui sono scritti i dati. Ad esempio, gs://mybucket/somefolder.
filenamePrefix Il prefisso del nome file SequenzaFile. Ad esempio, output-.

Esecuzione del modello SequenzaFile da Bigtable a Cloud Storage

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Cloud Bigtable to SequenceFile Files on Cloud Storage template .
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_SequenceFile \
    --region REGION_NAME \
    --parameters \
bigtableProject=BIGTABLE_PROJECT_ID,\
bigtableInstanceId=INSTANCE_ID,\
bigtableTableId=TABLE_ID,\
bigtableAppProfileId=APPLICATION_PROFILE_ID,\
destinationPath=DESTINATION_PATH,\
filenamePrefix=FILENAME_PREFIX

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • BIGTABLE_PROJECT_ID: l'ID del progetto Google Cloud dell'istanza Bigtable da cui vuoi leggere i dati
  • INSTANCE_ID: l'ID dell'istanza Bigtable che contiene la tabella
  • TABLE_ID: l'ID della tabella Bigtable da esportare
  • APPLICATION_PROFILE_ID: l'ID del profilo dell'applicazione Bigtable da utilizzare per l'esportazione
  • DESTINATION_PATH: percorso di Cloud Storage in cui sono scritti i dati, ad esempio gs://mybucket/somefolder
  • FILENAME_PREFIX: il prefisso del nome file SequenzaFile, ad esempio output-

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_Bigtable_to_GCS_SequenceFile
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProject": "BIGTABLE_PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "bigtableAppProfileId": "APPLICATION_PROFILE_ID",
       "destinationPath": "DESTINATION_PATH",
       "filenamePrefix": "FILENAME_PREFIX",
   },
   "environment": { "zone": "us-central1-f" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • BIGTABLE_PROJECT_ID: l'ID del progetto Google Cloud dell'istanza Bigtable da cui vuoi leggere i dati
  • INSTANCE_ID: l'ID dell'istanza Bigtable che contiene la tabella
  • TABLE_ID: l'ID della tabella Bigtable da esportare
  • APPLICATION_PROFILE_ID: l'ID del profilo dell'applicazione Bigtable da utilizzare per l'esportazione
  • DESTINATION_PATH: percorso di Cloud Storage in cui sono scritti i dati, ad esempio gs://mybucket/somefolder
  • FILENAME_PREFIX: il prefisso del nome file SequenzaFile, ad esempio output-

Testo da Datastore a Cloud Storage [deprecato]

Questo modello è deprecato e verrà rimosso nel primo trimestre del 2022. Esegui la migrazione al modello Firestore to Cloud Storage Text.

Il modello di testo Datastore da Cloud Storage è una pipeline batch che legge le entità Datastore e le scrive in Cloud Storage come file di testo. Puoi fornire una funzione per elaborare ciascuna entità come stringa JSON. Se non fornisci una tale funzione, ogni riga nel file di output sarà un'entità con serie JSON.

Requisiti per questa pipeline:

Datastore deve essere configurato nel progetto prima di eseguire la pipeline.

Parametri del modello

Parametro Descrizione
datastoreReadGqlQuery Una query GQL che specifica quali entità acquisire. Ad esempio, SELECT * FROM MyKind.
datastoreReadProjectId L'ID del progetto Google Cloud dell'istanza Datastore da cui vuoi leggere i dati.
datastoreReadNamespace Lo spazio dei nomi delle entità richieste. Per utilizzare lo spazio dei nomi predefinito, lascia vuoto questo parametro.
javascriptTextTransformGcsPath (Facoltativo) L'URI Cloud Storage del file .js che definisce la funzione definita dall'utente JavaScript (UDF) che vuoi utilizzare. Ad esempio: gs://my-bucket/my-udfs/my_file.js.
javascriptTextTransformFunctionName (Facoltativo) Il nome della funzione definita dall'utente JavaScript che vuoi utilizzare. Ad esempio, se il codice della funzione JavaScript è myTransform(inJson) { /*...do stuff...*/ }, il nome della funzione è myTransform. Per un esempio di UDF JavaScript, consulta Esempi di funzioni UDF.
textWritePrefix Il prefisso del percorso di Cloud Storage per specificare dove sono scritti i dati. Ad esempio: gs://mybucket/somefolder/.

Esecuzione del modello di testo da Datastore a Cloud Storage

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Datastore to Text Files on Cloud Storage template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Datastore_to_GCS_Text \
    --region REGION_NAME \
    --parameters \
datastoreReadGqlQuery="SELECT * FROM DATASTORE_KIND",\
datastoreReadProjectId=DATASTORE_PROJECT_ID,\
datastoreReadNamespace=DATASTORE_NAMESPACE,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
textWritePrefix=gs://BUCKET_NAME/output/

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • BUCKET_NAME: nome del bucket Cloud Storage
  • DATASTORE_PROJECT_ID: l'ID del progetto Cloud in cui esiste l'istanza di Datastore
  • DATASTORE_KIND: tipo di entità dei Datastore
  • DATASTORE_NAMESPACE: lo spazio dei nomi delle entità Datastore
  • JAVASCRIPT_FUNCTION: Il nome della funzione definita dall'utente JavaScript che vuoi utilizzare

    Ad esempio, se il codice della funzione JavaScript è myTransform(inJson) { /*...do stuff...*/ }, il nome della funzione è myTransform. Per un esempio di UDF JavaScript, consulta Esempi di funzioni UDF.

  • PATH_TO_JAVASCRIPT_UDF_FILE: l'URI Cloud Storage del file .js che definisce la funzione definita dall'utente JavaScript (UDF) che vuoi utilizzare, ad esempio gs://my-bucket/my-udfs/my_file.js

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Datastore_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "datastoreReadGqlQuery": "SELECT * FROM DATASTORE_KIND"
       "datastoreReadProjectId": "DATASTORE_PROJECT_ID",
       "datastoreReadNamespace": "DATASTORE_NAMESPACE",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION",
       "textWritePrefix": "gs://BUCKET_NAME/output/"
   },
   "environment": { "zone": "us-central1-f" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • BUCKET_NAME: nome del bucket Cloud Storage
  • DATASTORE_PROJECT_ID: l'ID del progetto Cloud in cui esiste l'istanza di Datastore
  • DATASTORE_KIND: tipo di entità dei Datastore
  • DATASTORE_NAMESPACE: lo spazio dei nomi delle entità Datastore
  • JAVASCRIPT_FUNCTION: Il nome della funzione definita dall'utente JavaScript che vuoi utilizzare

    Ad esempio, se il codice della funzione JavaScript è myTransform(inJson) { /*...do stuff...*/ }, il nome della funzione è myTransform. Per un esempio di UDF JavaScript, consulta Esempi di funzioni UDF.

  • PATH_TO_JAVASCRIPT_UDF_FILE: l'URI Cloud Storage del file .js che definisce la funzione definita dall'utente JavaScript (UDF) che vuoi utilizzare, ad esempio gs://my-bucket/my-udfs/my_file.js

Da Firestore a Cloud Storage

Il modello Firestore to Cloud Storage Text è una pipeline batch che legge le entità Firestore e le scrive in Cloud Storage sotto forma di file di testo. Puoi fornire una funzione per elaborare ciascuna entità come stringa JSON. Se non fornisci una tale funzione, ogni riga nel file di output sarà un'entità con serie JSON.

Requisiti per questa pipeline:

Firestore deve essere configurato nel progetto prima di eseguire la pipeline.

Parametri del modello

Parametro Descrizione
firestoreReadGqlQuery Una query GQL che specifica quali entità acquisire. Ad esempio, SELECT * FROM MyKind.
firestoreReadProjectId L'ID del progetto Google Cloud dell'istanza Firestore da cui vuoi leggere i dati.
firestoreReadNamespace Lo spazio dei nomi delle entità richieste. Per utilizzare lo spazio dei nomi predefinito, lascia vuoto questo parametro.
javascriptTextTransformGcsPath (Facoltativo) L'URI Cloud Storage del file .js che definisce la funzione definita dall'utente JavaScript (UDF) che vuoi utilizzare. Ad esempio: gs://my-bucket/my-udfs/my_file.js.
javascriptTextTransformFunctionName (Facoltativo) Il nome della funzione definita dall'utente JavaScript che vuoi utilizzare. Ad esempio, se il codice della funzione JavaScript è myTransform(inJson) { /*...do stuff...*/ }, il nome della funzione è myTransform. Per un esempio di UDF JavaScript, consulta Esempi di funzioni UDF.
textWritePrefix Il prefisso del percorso di Cloud Storage per specificare dove sono scritti i dati. Ad esempio: gs://mybucket/somefolder/.

Esecuzione del modello di testo da Firestore a Cloud Storage

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Firestore to Text Files on Cloud Storage template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Firestore_to_GCS_Text \
    --region REGION_NAME \
    --parameters \
firestoreReadGqlQuery="SELECT * FROM FIRESTORE_KIND",\
firestoreReadProjectId=FIRESTORE_PROJECT_ID,\
firestoreReadNamespace=FIRESTORE_NAMESPACE,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
textWritePrefix=gs://BUCKET_NAME/output/

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • BUCKET_NAME: nome del bucket Cloud Storage
  • FIRESTORE_PROJECT_ID: l'ID del progetto Cloud in cui esiste l'istanza di Firestore
  • FIRESTORE_KIND: tipo di entità Firestore
  • FIRESTORE_NAMESPACE: lo spazio dei nomi delle tue entità Firestore
  • JAVASCRIPT_FUNCTION: Il nome della funzione definita dall'utente JavaScript che vuoi utilizzare

    Ad esempio, se il codice della funzione JavaScript è myTransform(inJson) { /*...do stuff...*/ }, il nome della funzione è myTransform. Per un esempio di UDF JavaScript, consulta Esempi di funzioni UDF.

  • PATH_TO_JAVASCRIPT_UDF_FILE: l'URI Cloud Storage del file .js che definisce la funzione definita dall'utente JavaScript (UDF) che vuoi utilizzare, ad esempio gs://my-bucket/my-udfs/my_file.js

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Firestore_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "firestoreReadGqlQuery": "SELECT * FROM FIRESTORE_KIND"
       "firestoreReadProjectId": "FIRESTORE_PROJECT_ID",
       "firestoreReadNamespace": "FIRESTORE_NAMESPACE",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION",
       "textWritePrefix": "gs://BUCKET_NAME/output/"
   },
   "environment": { "zone": "us-central1-f" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • BUCKET_NAME: nome del bucket Cloud Storage
  • FIRESTORE_PROJECT_ID: l'ID del progetto Cloud in cui esiste l'istanza di Firestore
  • FIRESTORE_KIND: tipo di entità Firestore
  • FIRESTORE_NAMESPACE: lo spazio dei nomi delle tue entità Firestore
  • JAVASCRIPT_FUNCTION: Il nome della funzione definita dall'utente JavaScript che vuoi utilizzare

    Ad esempio, se il codice della funzione JavaScript è myTransform(inJson) { /*...do stuff...*/ }, il nome della funzione è myTransform. Per un esempio di UDF JavaScript, consulta Esempi di funzioni UDF.

  • PATH_TO_JAVASCRIPT_UDF_FILE: l'URI Cloud Storage del file .js che definisce la funzione definita dall'utente JavaScript (UDF) che vuoi utilizzare, ad esempio gs://my-bucket/my-udfs/my_file.js

Da Cloud Spanner a Cloud Storage Avro

Il modello da Cloud Spanner ad Avro Files su Cloud Storage è una pipeline batch che esporta un intero database Cloud Spanner in Cloud Storage in formato Avro. L'esportazione di un database Cloud Spanner crea una cartella nel bucket selezionato. La cartella contiene:

  • Un file spanner-export.json.
  • Un file TableName-manifest.json per ogni tabella nel database che hai esportato.
  • Uno o più file TableName.avro-#####-of-#####.

Ad esempio, l'esportazione di un database con due tabelle, Singers e Albums, crea il seguente set di file:

  • Albums-manifest.json
  • Albums.avro-00000-of-00002
  • Albums.avro-00001-of-00002
  • Singers-manifest.json
  • Singers.avro-00000-of-00003
  • Singers.avro-00001-of-00003
  • Singers.avro-00002-of-00003
  • spanner-export.json

Requisiti per questa pipeline:

  • Deve esistere il database Cloud Spanner.
  • Deve esistere il bucket Cloud Storage di output.
  • Oltre ai ruoli IAM necessari per eseguire i job Dataflow, devi disporre anche dei ruoli IAM appropriati per la lettura dei dati di Cloud Spanner e la scrittura nel bucket Cloud Storage.

Parametri del modello

Parametro Descrizione
instanceId L'ID istanza del database Cloud Spanner che vuoi esportare.
databaseId L'ID del database Cloud Spanner che vuoi esportare.
outputDir Il percorso di Cloud Storage in cui vuoi esportare i file Avro. Il job di esportazione crea una nuova directory in questo percorso contenente i file esportati.
snapshotTime (Facoltativo) Il timestamp corrispondente alla versione del database Cloud Spanner che vuoi leggere. Il timestamp deve essere specificato in base al formato "Zulu" RFC 3339. Ad esempio, 1990-12-31T23:59:60Z. Il timestamp deve essere passato e deve essere applicata la precedenza massima del timestamp.
tableNames (Facoltativo) Un elenco di tabelle separate da virgole che specifica il sottoinsieme del database Cloud Spanner da esportare. L'elenco deve includere tutte le tabelle correlate (tabelle principali, tabelle di riferimento delle chiavi esterne). Se non sono elencati in modo esplicito, il flag " shouldExportrelatedTables" deve essere impostato per una corretta esportazione.
shouldExportRelatedTables (Facoltativo) Il flag utilizzato in combinazione con il parametro "tableNames" per includere tutte le tabelle correlate da esportare.
spannerProjectId (Facoltativo) L'ID progetto Google Cloud del database Cloud Spanner da cui vuoi leggere i dati.

Esecuzione di Cloud Spanner in un file Avro Files on Cloud Storage

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.

    Affinché il job venga visualizzato nella pagina Istanze di Spanner della console Google Cloud, il nome del job deve corrispondere al seguente formato:

    cloud-spanner-export-SPANNER_INSTANCE_ID-SPANNER_DATABASE_NAME

    Sostituisci quanto segue:

    • SPANNER_INSTANCE_ID: ID della tua istanza Spanner
    • SPANNER_DATABASE_NAME: nome del database Spanner
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Cloud Spanner to Avro Files on Cloud Storage template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro \
    --region REGION_NAME \
    --staging-location GCS_STAGING_LOCATION \
    --parameters \
instanceId=INSTANCE_ID,\
databaseId=DATABASE_ID,\
outputDir=GCS_DIRECTORY

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta

    Affinché il job venga visualizzato nella parte Cloud Spanner della console Google Cloud, il nome del job deve corrispondere al formato cloud-spanner-export-INSTANCE_ID-DATABASE_ID.

  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • GCS_STAGING_LOCATION: il percorso di scrittura dei file temporanei, ad esempio gs://mybucket/temp
  • INSTANCE_ID: il tuo ID istanza di Cloud Spanner
  • DATABASE_ID: il tuo ID database di Cloud Spanner
  • GCS_DIRECTORY: il percorso di Cloud Storage da cui i file Avro vengono esportati in

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro
{
   "jobName": "JOB_NAME",
   "parameters": {
       "instanceId": "INSTANCE_ID",
       "databaseId": "DATABASE_ID",
       "outputDir": "gs://GCS_DIRECTORY"
   }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta

    Affinché il job venga visualizzato nella parte Cloud Spanner della console Google Cloud, il nome del job deve corrispondere al formato cloud-spanner-export-INSTANCE_ID-DATABASE_ID.

  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • GCS_STAGING_LOCATION: il percorso di scrittura dei file temporanei, ad esempio gs://mybucket/temp
  • INSTANCE_ID: il tuo ID istanza di Cloud Spanner
  • DATABASE_ID: il tuo ID database di Cloud Spanner
  • GCS_DIRECTORY: il percorso di Cloud Storage da cui i file Avro vengono esportati in

Testo da Cloud Spanner a Cloud Storage

Il modello Cloud Spanner to Cloud Storage Text è una pipeline batch che legge i dati di una tabella Cloud Spanner e li scrive in Cloud Storage sotto forma di file di testo CSV.

Requisiti per questa pipeline:

  • La tabella Spanner di input deve esistere prima dell'esecuzione della pipeline.

Parametri del modello

Parametro Descrizione
spannerProjectId L'ID progetto Google Cloud del database Cloud Spanner da cui vuoi leggere i dati.
spannerDatabaseId L'ID database della tabella richiesta.
spannerInstanceId L'ID istanza della tabella richiesta.
spannerTable La tabella da cui leggere i dati.
textWritePrefix La directory in cui vengono scritti i file di testo di output. Aggiungi / alla fine. Ad esempio: gs://mybucket/somefolder/.
spannerSnapshotTime (Facoltativo) Il timestamp corrispondente alla versione del database Cloud Spanner che vuoi leggere. Il timestamp deve essere specificato in base al formato "Zulu" RFC 3339. Ad esempio, 1990-12-31T23:59:60Z. Il timestamp deve essere passato e deve essere applicata la precedenza massima del timestamp.

Esecuzione del modello di testo da Cloud Spanner a Cloud Storage

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Cloud Spanner to Text Files on Cloud Storage template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Spanner_to_GCS_Text \
    --region REGION_NAME \
    --parameters \
spannerProjectId=SPANNER_PROJECT_ID,\
spannerDatabaseId=DATABASE_ID,\
spannerInstanceId=INSTANCE_ID,\
spannerTable=TABLE_ID,\
textWritePrefix=gs://BUCKET_NAME/output/

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • SPANNER_PROJECT_ID: l'ID del progetto Cloud del database Spanner da cui vuoi leggere i dati
  • DATABASE_ID: l'ID del database Spanner
  • BUCKET_NAME: nome del bucket Cloud Storage
  • INSTANCE_ID: l'ID istanza di Spanner
  • TABLE_ID: l'ID della tabella Spanner

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Spanner_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "spannerProjectId": "SPANNER_PROJECT_ID",
       "spannerDatabaseId": "DATABASE_ID",
       "spannerInstanceId": "INSTANCE_ID",
       "spannerTable": "TABLE_ID",
       "textWritePrefix": "gs://BUCKET_NAME/output/"
   },
   "environment": { "zone": "us-central1-f" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • SPANNER_PROJECT_ID: l'ID del progetto Cloud del database Spanner da cui vuoi leggere i dati
  • DATABASE_ID: l'ID del database Spanner
  • BUCKET_NAME: nome del bucket Cloud Storage
  • INSTANCE_ID: l'ID istanza di Spanner
  • TABLE_ID: l'ID della tabella Spanner

Da Cloud Storage Avro a Bigtable

Il modello Cloud Storage Avro to Bigtable è una pipeline che legge i dati dai file Avro in un bucket Cloud Storage e li scrive in una tabella Bigtable. Puoi utilizzare il modello per copiare i dati da Cloud Storage in Bigtable.

Requisiti per questa pipeline:

  • La tabella Bigtable deve esistere e avere le stesse famiglie di colonne esportate nei file Avro.
  • I file Avro di input devono esistere in un bucket Cloud Storage prima di eseguire la pipeline.
  • Bigtable prevede uno schema specifico dai file Avro di input.

Parametri del modello

Parametro Descrizione
bigtableProjectId L'ID del progetto Google Cloud dell'istanza Bigtable in cui vuoi scrivere i dati.
bigtableInstanceId L'ID dell'istanza Bigtable che contiene la tabella.
bigtableTableId L'ID della tabella Bigtable da importare.
inputFilePattern Il pattern del percorso di Cloud Storage in cui si trovano i dati. Ad esempio, gs://mybucket/somefolder/prefix*.

Esecuzione del file Avro di Cloud Storage nel modello Bigtable

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Avro Files on Cloud Storage to Cloud Bigtable template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Bigtable \
    --region REGION_NAME \
    --parameters \
bigtableProjectId=BIGTABLE_PROJECT_ID,\
bigtableInstanceId=INSTANCE_ID,\
bigtableTableId=TABLE_ID,\
inputFilePattern=INPUT_FILE_PATTERN

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • BIGTABLE_PROJECT_ID: l'ID del progetto Google Cloud dell'istanza Bigtable da cui vuoi leggere i dati
  • INSTANCE_ID: l'ID dell'istanza Bigtable che contiene la tabella
  • TABLE_ID: l'ID della tabella Bigtable da esportare
  • INPUT_FILE_PATTERN: pattern del percorso di Cloud Storage in cui si trovano i dati, ad esempio gs://mybucket/somefolder/prefix*

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "BIGTABLE_PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "inputFilePattern": "INPUT_FILE_PATTERN",
   },
   "environment": { "zone": "us-central1-f" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • BIGTABLE_PROJECT_ID: l'ID del progetto Google Cloud dell'istanza Bigtable da cui vuoi leggere i dati
  • INSTANCE_ID: l'ID dell'istanza Bigtable che contiene la tabella
  • TABLE_ID: l'ID della tabella Bigtable da esportare
  • INPUT_FILE_PATTERN: pattern del percorso di Cloud Storage in cui si trovano i dati, ad esempio gs://mybucket/somefolder/prefix*

Da Cloud Storage Avro a Cloud Spanner

I file Avro di Cloud Storage nel modello Cloud Spanner sono una pipeline batch che legge i file Avro da Cloud Spanner archiviati in Cloud Storage e li importa in un database Cloud Spanner.

Requisiti per questa pipeline:

  • Il database Cloud Spanner di destinazione deve esistere e deve essere vuoto.
  • Devi avere le autorizzazioni di lettura per il bucket Cloud Storage e le autorizzazioni di scrittura per il database Cloud Spanner di destinazione.
  • Il percorso di Cloud Storage di input deve esistere e deve includere un file spanner-export.json contenente una descrizione JSON dei file da importare.

Parametri del modello

Parametro Descrizione
instanceId L'ID istanza del database Cloud Spanner.
databaseId L'ID del database Cloud Spanner.
inputDir Percorso di Cloud Storage da cui vengono importati i file Avro.

Esecuzione del modello Avro in Cloud Spanner da Cloud Storage

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.

    Affinché il job venga visualizzato nella pagina Istanze di Spanner della console Google Cloud, il nome del job deve corrispondere al seguente formato:

    cloud-spanner-import-SPANNER_INSTANCE_ID-SPANNER_DATABASE_NAME

    Sostituisci quanto segue:

    • SPANNER_INSTANCE_ID: ID della tua istanza Spanner
    • SPANNER_DATABASE_NAME: nome del database Spanner
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Avro Files on Cloud Storage to Cloud Spanner template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner \
    --region REGION_NAME \
    --staging-location GCS_STAGING_LOCATION \
    --parameters \
instanceId=INSTANCE_ID,\
databaseId=DATABASE_ID,\
inputDir=GCS_DIRECTORY

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • INSTANCE_ID: l'ID dell'istanza Spanner che contiene il database
  • DATABASE_ID: l'ID del database Spanner in cui eseguire l'importazione
  • GCS_DIRECTORY: il percorso di Cloud Storage da cui vengono importati i file Avro, ad esempio gs://mybucket/somefolder

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner
{
   "jobName": "JOB_NAME",
   "parameters": {
       "instanceId": "INSTANCE_ID",
       "databaseId": "DATABASE_ID",
       "inputDir": "gs://GCS_DIRECTORY"
   },
   "environment": {
       "machineType": "n1-standard-2"
   }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • INSTANCE_ID: l'ID dell'istanza Spanner che contiene il database
  • DATABASE_ID: l'ID del database Spanner in cui eseguire l'importazione
  • GCS_DIRECTORY: il percorso di Cloud Storage da cui vengono importati i file Avro, ad esempio gs://mybucket/somefolder

Da Cloud Storage Parquet a Bigtable

Il modello da spazio di archiviazione Cloud Storage a Bigtable è una pipeline che legge i dati dai file Parquet in un bucket Cloud Storage e li scrive in una tabella Bigtable. Puoi utilizzare il modello per copiare i dati da Cloud Storage in Bigtable.

Requisiti per questa pipeline:

  • La tabella Bigtable deve esistere e avere le stesse famiglie di colonne esportate nei file Parquet.
  • I file Parquet di input devono esistere in un bucket Cloud Storage prima di eseguire la pipeline.
  • Bigtable prevede uno schema specifico dai file Parquet di input.

Parametri del modello

Parametro Descrizione
bigtableProjectId L'ID del progetto Google Cloud dell'istanza Bigtable in cui vuoi scrivere i dati.
bigtableInstanceId L'ID dell'istanza Bigtable che contiene la tabella.
bigtableTableId L'ID della tabella Bigtable da importare.
inputFilePattern Il pattern del percorso di Cloud Storage in cui si trovano i dati. Ad esempio, gs://mybucket/somefolder/prefix*.

Esecuzione del file Parquet di Cloud Storage in base al modello Bigtable

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Parquet Files on Cloud Storage to Cloud Bigtable template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Parquet_to_Cloud_Bigtable \
    --region REGION_NAME \
    --parameters \
bigtableProjectId=BIGTABLE_PROJECT_ID,\
bigtableInstanceId=INSTANCE_ID,\
bigtableTableId=TABLE_ID,\
inputFilePattern=INPUT_FILE_PATTERN

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • BIGTABLE_PROJECT_ID: l'ID del progetto Google Cloud dell'istanza Bigtable da cui vuoi leggere i dati
  • INSTANCE_ID: l'ID dell'istanza Bigtable che contiene la tabella
  • TABLE_ID: l'ID della tabella Bigtable da esportare
  • INPUT_FILE_PATTERN: pattern del percorso di Cloud Storage in cui si trovano i dati, ad esempio gs://mybucket/somefolder/prefix*

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Parquet_to_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "BIGTABLE_PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "inputFilePattern": "INPUT_FILE_PATTERN",
   },
   "environment": { "zone": "us-central1-f" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • BIGTABLE_PROJECT_ID: l'ID del progetto Google Cloud dell'istanza Bigtable da cui vuoi leggere i dati
  • INSTANCE_ID: l'ID dell'istanza Bigtable che contiene la tabella
  • TABLE_ID: l'ID della tabella Bigtable da esportare
  • INPUT_FILE_PATTERN: pattern del percorso di Cloud Storage in cui si trovano i dati, ad esempio gs://mybucket/somefolder/prefix*

SequenzaFile di Cloud Storage in Bigtable

Il modello SequenzaFile di Cloud Storage in Bigtable è una pipeline che legge i dati da SecondsFile in un bucket Cloud Storage e scrive i dati in una tabella Bigtable. Puoi utilizzare il modello per copiare i dati da Cloud Storage in Bigtable.

Requisiti per questa pipeline:

  • La tabella Bigtable deve esistere.
  • Il SequenzaFile di input deve esistere in un bucket Cloud Storage prima di eseguire la pipeline.
  • Il file di sequenza di input deve essere stato esportato da Bigtable o HBase.

Parametri del modello

Parametro Descrizione
bigtableProject L'ID del progetto Google Cloud dell'istanza Bigtable in cui vuoi scrivere i dati.
bigtableInstanceId L'ID dell'istanza Bigtable che contiene la tabella.
bigtableTableId L'ID della tabella Bigtable da importare.
bigtableAppProfileId L'ID del profilo dell'applicazione Bigtable da utilizzare per l'importazione. Se non specifichi un profilo app, Bigtable utilizza il profilo app predefinito dell'istanza.
sourcePattern Il pattern del percorso di Cloud Storage in cui si trovano i dati. Ad esempio, gs://mybucket/somefolder/prefix*.

Esecuzione del modello SequenzaFile di Cloud Storage in Bigtable

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the SequenceFile Files on Cloud Storage to Cloud Bigtable template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_SequenceFile_to_Cloud_Bigtable \
    --region REGION_NAME \
    --parameters \
bigtableProject=BIGTABLE_PROJECT_ID,\
bigtableInstanceId=INSTANCE_ID,\
bigtableTableId=TABLE_ID,\
bigtableAppProfileId=APPLICATION_PROFILE_ID,\
sourcePattern=SOURCE_PATTERN

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • BIGTABLE_PROJECT_ID: l'ID del progetto Google Cloud dell'istanza Bigtable da cui vuoi leggere i dati
  • INSTANCE_ID: l'ID dell'istanza Bigtable che contiene la tabella
  • TABLE_ID: l'ID della tabella Bigtable da esportare
  • APPLICATION_PROFILE_ID: l'ID del profilo dell'applicazione Bigtable da utilizzare per l'esportazione
  • SOURCE_PATTERN: pattern del percorso di Cloud Storage in cui si trovano i dati, ad esempio gs://mybucket/somefolder/prefix*

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_SequenceFile_to_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProject": "BIGTABLE_PROJECT_ID",
       "bigtableInstanceId": "INSTANCE_ID",
       "bigtableTableId": "TABLE_ID",
       "bigtableAppProfileId": "APPLICATION_PROFILE_ID",
       "sourcePattern": "SOURCE_PATTERN",
   },
   "environment": { "zone": "us-central1-f" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • BIGTABLE_PROJECT_ID: l'ID del progetto Google Cloud dell'istanza Bigtable da cui vuoi leggere i dati
  • INSTANCE_ID: l'ID dell'istanza Bigtable che contiene la tabella
  • TABLE_ID: l'ID della tabella Bigtable da esportare
  • APPLICATION_PROFILE_ID: l'ID del profilo dell'applicazione Bigtable da utilizzare per l'esportazione
  • SOURCE_PATTERN: pattern del percorso di Cloud Storage in cui si trovano i dati, ad esempio gs://mybucket/somefolder/prefix*

Testo di Cloud Storage in BigQuery

La pipeline Cloud Text Text to BigQuery è una pipeline batch che ti consente di leggere i file di testo archiviati in Cloud Storage, trasformarli utilizzando una funzione definita dall'utente JavaScript (UDF) da te fornita e aggiungere il risultato a una tabella BigQuery.

Requisiti per questa pipeline:

  • Crea un file JSON che descriva lo schema BigQuery.

    Assicurati che esista un array JSON di primo livello denominato BigQuery Schema e che i suoi contenuti seguano il pattern {"name": "COLUMN_NAME", "type": "DATA_TYPE"}.

    Il modello batch di Cloud Storage per il testo in BigQuery non supporta l'importazione di dati nei campi STRUCT (record) della tabella BigQuery di destinazione.

    Il seguente JSON descrive uno schema BigQuery di esempio:

    {
      "BigQuery Schema": [
        {
          "name": "location",
          "type": "STRING"
        },
        {
          "name": "name",
          "type": "STRING"
        },
        {
          "name": "age",
          "type": "STRING"
        },
        {
          "name": "color",
          "type": "STRING"
        },
        {
          "name": "coffee",
          "type": "STRING"
        }
      ]
    }
    
  • Crea un file JavaScript (.js) con la funzione UDF che fornisca la logica per trasformare le righe di testo. La funzione deve restituire una stringa JSON.

    Ad esempio, questa funzione suddivide ogni riga di un file CSV e restituisce una stringa JSON dopo aver trasformato i valori.

    function transform(line) {
    var values = line.split(',');
    
    var obj = new Object();
    obj.location = values[0];
    obj.name = values[1];
    obj.age = values[2];
    obj.color = values[3];
    obj.coffee = values[4];
    var jsonString = JSON.stringify(obj);
    
    return jsonString;
    }

Parametri del modello

Parametro Descrizione
javascriptTextTransformFunctionName Il nome della funzione JavaScript definita dall'utente (UDF) che vuoi utilizzare. Ad esempio, se il codice della funzione JavaScript è myTransform(inJson) { /*...do stuff...*/ }, il nome della funzione è myTransform. Per un esempio di UDF JavaScript, consulta Esempi di funzioni UDF.
JSONPath Il percorso gs:// al file JSON che definisce lo schema BigQuery, archiviato in Cloud Storage. Ad esempio, gs://path/to/my/schema.json.
javascriptTextTransformGcsPath L'URI Cloud Storage del file .js che definisce la funzione definita dall'utente JavaScript (UDF) che vuoi utilizzare. Ad esempio: gs://my-bucket/my-udfs/my_file.js.
inputFilePattern Il percorso gs:// che rimanda al testo in Cloud Storage che vuoi elaborare. Ad esempio, gs://path/to/my/text/data.txt.
outputTable Il nome della tabella BigQuery in cui vuoi creare un archivio per i dati elaborati. Se riutilizzi una tabella BigQuery esistente, i dati vengono aggiunti alla tabella di destinazione. Ad esempio, my-project-name:my-dataset.my-table.
bigQueryLoadingTemporaryDirectory La directory temporanea per il processo di caricamento di BigQuery. Ad esempio, gs://my-bucket/my-files/temp_dir.

Esecuzione del modello Cloud Storage Text to BigQuery

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Text Files on Cloud Storage to BigQuery (Batch) template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery \
    --region REGION_NAME \
    --parameters \
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
JSONPath=PATH_TO_BIGQUERY_SCHEMA_JSON,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
inputFilePattern=PATH_TO_TEXT_DATA,\
outputTable=BIGQUERY_TABLE,\
bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • JAVASCRIPT_FUNCTION: Il nome della funzione definita dall'utente JavaScript che vuoi utilizzare

    Ad esempio, se il codice della funzione JavaScript è myTransform(inJson) { /*...do stuff...*/ }, il nome della funzione è myTransform. Per un esempio di UDF JavaScript, consulta Esempi di funzioni UDF.

  • PATH_TO_BIGQUERY_SCHEMA_JSON: il percorso di Cloud Storage del file JSON contenente la definizione dello schema
  • PATH_TO_JAVASCRIPT_UDF_FILE: l'URI Cloud Storage del file .js che definisce la funzione definita dall'utente JavaScript (UDF) che vuoi utilizzare, ad esempio gs://my-bucket/my-udfs/my_file.js
  • PATH_TO_TEXT_DATA: il tuo percorso di Cloud Storage verso il tuo set di dati di testo
  • BIGQUERY_TABLE: il nome della tua tabella BigQuery
  • PATH_TO_TEMP_DIR_ON_GCS: il tuo percorso di Cloud Storage nella directory temporanea

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery
{
   "jobName": "JOB_NAME",
   "parameters": {
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION",
       "JSONPath": "PATH_TO_BIGQUERY_SCHEMA_JSON",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "inputFilePattern":"PATH_TO_TEXT_DATA",
       "outputTable":"BIGQUERY_TABLE",
       "bigQueryLoadingTemporaryDirectory": "PATH_TO_TEMP_DIR_ON_GCS"
   },
   "environment": { "zone": "us-central1-f" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • JAVASCRIPT_FUNCTION: Il nome della funzione definita dall'utente JavaScript che vuoi utilizzare

    Ad esempio, se il codice della funzione JavaScript è myTransform(inJson) { /*...do stuff...*/ }, il nome della funzione è myTransform. Per un esempio di UDF JavaScript, consulta Esempi di funzioni UDF.

  • PATH_TO_BIGQUERY_SCHEMA_JSON: il percorso di Cloud Storage del file JSON contenente la definizione dello schema
  • PATH_TO_JAVASCRIPT_UDF_FILE: l'URI Cloud Storage del file .js che definisce la funzione definita dall'utente JavaScript (UDF) che vuoi utilizzare, ad esempio gs://my-bucket/my-udfs/my_file.js
  • PATH_TO_TEXT_DATA: il tuo percorso di Cloud Storage verso il tuo set di dati di testo
  • BIGQUERY_TABLE: il nome della tua tabella BigQuery
  • PATH_TO_TEMP_DIR_ON_GCS: il tuo percorso di Cloud Storage nella directory temporanea

Testo di Cloud Storage in Datastore [deprecato]

Questo modello è deprecato e verrà rimosso nel primo trimestre del 2022. Esegui la migrazione al modello Cloud Storage Text to Firestore.

Il modello Cloud Storage Text to Datastore è una pipeline batch che legge dai file di testo archiviati in Cloud Storage e scrive le entità con codifica JSON in Datastore. Ogni riga nei file di testo di input deve essere nel formato JSON specificato.

Requisiti per questa pipeline:

  • Datastore deve essere abilitato nel progetto di destinazione.

Parametri del modello

Parametro Descrizione
textReadPattern Un pattern del percorso Cloud Storage che specifica la posizione dei file di dati di testo. Ad esempio, gs://mybucket/somepath/*.json.
javascriptTextTransformGcsPath (Facoltativo) L'URI Cloud Storage del file .js che definisce la funzione definita dall'utente JavaScript (UDF) che vuoi utilizzare. Ad esempio: gs://my-bucket/my-udfs/my_file.js.
javascriptTextTransformFunctionName (Facoltativo) Il nome della funzione definita dall'utente JavaScript che vuoi utilizzare. Ad esempio, se il codice della funzione JavaScript è myTransform(inJson) { /*...do stuff...*/ }, il nome della funzione è myTransform. Per un esempio di UDF JavaScript, consulta Esempi di funzioni UDF.
datastoreWriteProjectId L'ID del progetto Google Cloud di dove scrivere le entità Datastore
datastoreHintNumWorkers (Facoltativo) Suggerimento per il numero previsto di worker nel passaggio di limitazione del datastore. Il valore predefinito è 500.
errorWritePath Il file di output del log degli errori da utilizzare per gli errori di scrittura che si verificano durante l'elaborazione. Ad esempio, gs://bucket-name/errors.txt.

Esecuzione del modello Cloud Storage Text to Datastore

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Text Files on Cloud Storage to Datastore template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_Datastore \
    --region REGION_NAME \
    --parameters \
textReadPattern=PATH_TO_INPUT_TEXT_FILES,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
datastoreWriteProjectId=PROJECT_ID,\
errorWritePath=ERROR_FILE_WRITE_PATH

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • PATH_TO_INPUT_TEXT_FILES: pattern dei file di input su Cloud Storage
  • JAVASCRIPT_FUNCTION: Il nome della funzione definita dall'utente JavaScript che vuoi utilizzare

    Ad esempio, se il codice della funzione JavaScript è myTransform(inJson) { /*...do stuff...*/ }, il nome della funzione è myTransform. Per un esempio di UDF JavaScript, consulta Esempi di funzioni UDF.

  • PATH_TO_JAVASCRIPT_UDF_FILE: l'URI Cloud Storage del file .js che definisce la funzione definita dall'utente JavaScript (UDF) che vuoi utilizzare, ad esempio gs://my-bucket/my-udfs/my_file.js
  • ERROR_FILE_WRITE_PATH: percorso verso il file di errore su Cloud Storage

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Text_to_Datastore
{
   "jobName": "JOB_NAME",
   "parameters": {
       "textReadPattern": "PATH_TO_INPUT_TEXT_FILES",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION",
       "datastoreWriteProjectId": "PROJECT_ID",
       "errorWritePath": "ERROR_FILE_WRITE_PATH"
   },
   "environment": { "zone": "us-central1-f" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • PATH_TO_INPUT_TEXT_FILES: pattern dei file di input su Cloud Storage
  • JAVASCRIPT_FUNCTION: Il nome della funzione definita dall'utente JavaScript che vuoi utilizzare

    Ad esempio, se il codice della funzione JavaScript è myTransform(inJson) { /*...do stuff...*/ }, il nome della funzione è myTransform. Per un esempio di UDF JavaScript, consulta Esempi di funzioni UDF.

  • PATH_TO_JAVASCRIPT_UDF_FILE: l'URI Cloud Storage del file .js che definisce la funzione definita dall'utente JavaScript (UDF) che vuoi utilizzare, ad esempio gs://my-bucket/my-udfs/my_file.js
  • ERROR_FILE_WRITE_PATH: percorso verso il file di errore su Cloud Storage

Testo di Cloud Storage in Firestore

Il modello Cloud Storage Text to Firestore è una pipeline batch che legge da file di testo archiviati in Cloud Storage e scrive le entità con codifica JSON in Firestore. Ogni riga nei file di testo di input deve essere nel formato JSON specificato.

Requisiti per questa pipeline:

  • Firestore deve essere abilitato nel progetto di destinazione.

Parametri del modello

Parametro Descrizione
textReadPattern Un pattern del percorso Cloud Storage che specifica la posizione dei file di dati di testo. Ad esempio, gs://mybucket/somepath/*.json.
javascriptTextTransformGcsPath (Facoltativo) L'URI Cloud Storage del file .js che definisce la funzione definita dall'utente JavaScript (UDF) che vuoi utilizzare. Ad esempio: gs://my-bucket/my-udfs/my_file.js.
javascriptTextTransformFunctionName (Facoltativo) Il nome della funzione definita dall'utente JavaScript che vuoi utilizzare. Ad esempio, se il codice della funzione JavaScript è myTransform(inJson) { /*...do stuff...*/ }, il nome della funzione è myTransform. Per un esempio di UDF JavaScript, consulta Esempi di funzioni UDF.
firestoreWriteProjectId L'ID del progetto Google Cloud di dove scrivere le entità Firestore
firestoreHintNumWorkers (Facoltativo) Suggerimento per il numero previsto di worker nel passaggio di limitazione dell'applicazione graduale di Firestore. Il valore predefinito è 500.
errorWritePath Il file di output del log degli errori da utilizzare per gli errori di scrittura che si verificano durante l'elaborazione. Ad esempio, gs://bucket-name/errors.txt.

Esecuzione del modello Cloud Storage Text to Firestore

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Text Files on Cloud Storage to Firestore template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_Firestore \
    --region REGION_NAME \
    --parameters \
textReadPattern=PATH_TO_INPUT_TEXT_FILES,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=JAVASCRIPT_FUNCTION,\
firestoreWriteProjectId=PROJECT_ID,\
errorWritePath=ERROR_FILE_WRITE_PATH

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • PATH_TO_INPUT_TEXT_FILES: pattern dei file di input su Cloud Storage
  • JAVASCRIPT_FUNCTION: Il nome della funzione definita dall'utente JavaScript che vuoi utilizzare

    Ad esempio, se il codice della funzione JavaScript è myTransform(inJson) { /*...do stuff...*/ }, il nome della funzione è myTransform. Per un esempio di UDF JavaScript, consulta Esempi di funzioni UDF.

  • PATH_TO_JAVASCRIPT_UDF_FILE: l'URI Cloud Storage del file .js che definisce la funzione definita dall'utente JavaScript (UDF) che vuoi utilizzare, ad esempio gs://my-bucket/my-udfs/my_file.js
  • ERROR_FILE_WRITE_PATH: percorso verso il file di errore su Cloud Storage

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Text_to_Firestore
{
   "jobName": "JOB_NAME",
   "parameters": {
       "textReadPattern": "PATH_TO_INPUT_TEXT_FILES",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "JAVASCRIPT_FUNCTION",
       "firestoreWriteProjectId": "PROJECT_ID",
       "errorWritePath": "ERROR_FILE_WRITE_PATH"
   },
   "environment": { "zone": "us-central1-f" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • PATH_TO_INPUT_TEXT_FILES: pattern dei file di input su Cloud Storage
  • JAVASCRIPT_FUNCTION: Il nome della funzione definita dall'utente JavaScript che vuoi utilizzare

    Ad esempio, se il codice della funzione JavaScript è myTransform(inJson) { /*...do stuff...*/ }, il nome della funzione è myTransform. Per un esempio di UDF JavaScript, consulta Esempi di funzioni UDF.

  • PATH_TO_JAVASCRIPT_UDF_FILE: l'URI Cloud Storage del file .js che definisce la funzione definita dall'utente JavaScript (UDF) che vuoi utilizzare, ad esempio gs://my-bucket/my-udfs/my_file.js
  • ERROR_FILE_WRITE_PATH: percorso verso il file di errore su Cloud Storage

Testo Cloud Storage in Pub/Sub (batch)

Questo modello crea una pipeline batch che legge i record dai file di testo archiviati in Cloud Storage e li pubblica in un argomento Pub/Sub. Il modello può essere utilizzato per pubblicare record in un file delimitato da nuova riga contenente record JSON o file CSV in un argomento Pub/Sub per l'elaborazione in tempo reale. Puoi utilizzare questo modello per riprodurre i dati in Pub/Sub.

Questo modello non imposta alcun timestamp per i singoli record. La data e l'ora dell'evento corrispondono a quella dell'esecuzione durante l'esecuzione. Se la tua pipeline si basa su un orario dell'evento accurato per l'elaborazione, non devi utilizzarla.

Requisiti per questa pipeline:

  • I file da leggere devono essere in formato JSON delimitato da nuova riga o in formato CSV. I record che coprono più righe nei file di origine potrebbero causare problemi a valle, poiché ogni riga all'interno dei file verrà pubblicata come messaggio in Pub/Sub.
  • L'argomento Pub/Sub deve esistere prima dell'esecuzione della pipeline.

Parametri del modello

Parametro Descrizione
inputFilePattern Il pattern del file di input da cui leggere. Ad esempio, gs://bucket-name/files/*.json.
outputTopic L'argomento di input Pub/Sub in cui scrivere. Il nome deve essere nel formato projects/<project-id>/topics/<topic-name>.

Esecuzione del modello Cloud Storage Text to Pub/Sub (Batch)

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Text Files on Cloud Storage to Pub/Sub (Batch) template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub \
    --region REGION_NAME \
    --parameters \
inputFilePattern=gs://BUCKET_NAME/files/*.json,\
outputTopic=projects/PROJECT_ID/topics/TOPIC_NAME

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • TOPIC_NAME: il nome dell'argomento Pub/Sub
  • BUCKET_NAME: nome del bucket Cloud Storage

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub
{
   "jobName": "JOB_NAME",
   "parameters": {
       "inputFilePattern": "gs://BUCKET_NAME/files/*.json",
       "outputTopic": "projects/PROJECT_ID/topics/TOPIC_NAME"
   },
   "environment": { "zone": "us-central1-f" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • TOPIC_NAME: il nome dell'argomento Pub/Sub
  • BUCKET_NAME: nome del bucket Cloud Storage

Testo di Cloud Storage in Cloud Spanner

Il modello Cloud Storage Text to Cloud Spanner è una pipeline batch che legge i file di testo CSV da Cloud Storage e li importa in un database Cloud Spanner.

Requisiti per questa pipeline:

  • Devono essere presenti il database e la tabella Cloud Spanner target.
  • Devi avere le autorizzazioni di lettura per il bucket Cloud Storage e le autorizzazioni di scrittura per il database Cloud Spanner di destinazione.
  • Deve esistere il percorso di Cloud Storage di input contenente i file CSV.
  • Devi creare un file manifest di importazione contenente una descrizione JSON dei file CSV e archiviare il file manifest in Cloud Storage.
  • Se il database Cloud Spanner target ha già uno schema, le colonne specificate nel file manifest devono avere gli stessi tipi di dati delle colonne corrispondenti nello schema del database di destinazione.
  • Il file manifest, codificato in ASCII o UTF-8, deve corrispondere al seguente formato:

  • I file di testo da importare devono essere in formato CSV, con codifica ASCII o UTF-8. Consigliamo di non utilizzare il BOM (byte order mark) nei file con codifica UTF-8.
  • I dati devono corrispondere a uno dei seguenti tipi:

    SQL di Google

        BOOL
        INT64
        FLOAT64
        NUMERIC
        STRING
        DATE
        TIMESTAMP
        BYPES
        JSON

    PostgreSQL

        boolean
        bigint
        double precision
        numeric
        character varying, text
        date
        timestamp with time zone
        bytea

Parametri del modello

Parametro Descrizione
instanceId L'ID istanza del database Cloud Spanner.
databaseId L'ID del database Cloud Spanner.
importManifest Il percorso in Cloud Storage del file manifest di importazione.
columnDelimiter Il delimitatore di colonna utilizzato dal file di origine. Il valore predefinito è ,.
fieldQualifier Il carattere che deve includere qualsiasi valore nel file sorgente che contiene columnDelimiter. Il valore predefinito è ".
trailingDelimiter Specifica se le righe nei file di origine hanno delimitatori finali (ovvero, se il carattere columnDelimiter viene visualizzato alla fine di ogni riga, dopo l'ultimo valore della colonna). Il valore predefinito è true.
escape Il carattere di escape utilizzato dal file sorgente. Per impostazione predefinita, questo parametro non è impostato e il modello non utilizza il carattere di escape.
nullString La stringa che rappresenta un valore NULL. Per impostazione predefinita, questo parametro non è impostato e il modello non utilizza la stringa null.
dateFormat Il formato utilizzato per analizzare le colonne della data. Per impostazione predefinita, la pipeline tenta di analizzare le colonne della data come yyyy-M-d[' 00:00:00'], ad esempio 2019-01-31 o 2019-1-1 00:00:00. Se il formato della data è diverso, specifica il formato utilizzando i pattern java.time.format.DateTimeFormatter.
timestampFormat Il formato utilizzato per analizzare le colonne del timestamp. Se il timestamp è un numero intero lungo, viene analizzato come ora Unix del periodo. In caso contrario, viene analizzato come stringa utilizzando il formato java.time.format.DateTimeFormatter.ISO_INSTANT. Per altri casi, specifica la tua stringa pattern, ad esempio utilizzando MMM dd yyyy HH:mm:ss.SSSVV per i timestamp nel formato "Jan 21 1998 01:02:03.456+08:00".

Se devi utilizzare formati di data o timestamp personalizzati, assicurati che siano validi per i pattern java.time.format.DateTimeFormatter. La seguente tabella mostra ulteriori esempi di formati personalizzati per le colonne delle date e dei timestamp:

Tipo Valore inserito Formato Commento
DATE 2011-3-31 Per impostazione predefinita, il modello può analizzare questo formato. Non è necessario specificare il parametro dateFormat.
DATE 31-3-2011 00:00:00 Per impostazione predefinita, il modello può analizzare questo formato. Non è necessario specificare il formato. Se vuoi, puoi utilizzare yyyy-M-d' 00:00:00'.
DATE 1 aprile 18 gg MMM, yy
DATE Mercoledì 3 aprile 2019 EEEE, LLLL g, aaaa G
TIMESTAMP 2019-01-02T11:22:33Z
2019-01-02T11:22:33.123Z
2019-01-02T11:22:33.12356789Z
Il formato predefinito ISO_INSTANT è in grado di analizzare questo tipo di timestamp. Non è necessario fornire il parametro timestampFormat.
TIMESTAMP 1568402363 Per impostazione predefinita, il modello può analizzare questo tipo di timestamp e considerarlo come tempo Unix.
TIMESTAMP Mar, 3 giu 2008 11:05:30 GMT EEE, d MMM aaaa HH:mm:ss VV
TIMESTAMP 31/12/2018 110530.123PST aaaa/mm/gg HHmmss.SSSz
TIMESTAMP 2019-01-02T11:22:33Z oppure 2019-01-02T11:22:33.123Z aaaa-MM-gg'T'HH:mm:ss[.SSS]VV Se la colonna di input è un mix di 2019-01-02T11:22:33Z e 2019-01-02T11:22:33.123Z, il formato predefinito può analizzare questo tipo di timestamp. Non è necessario fornire un parametro di formato personalizzato. Puoi utilizzare yyyy-MM-dd'T'HH:mm:ss[.SSS]VV per gestire entrambi i casi. Non puoi utilizzare yyyy-MM-dd'T'HH:mm:ss[.SSS]'Z', perché la "Z" di correzione corretta deve essere analizzata come ID del fuso orario, non come valore letterale di caratteri. Internamente, la colonna timestamp è convertita in java.time.Instant. Pertanto, deve essere specificato nel fuso orario UTC o avere informazioni sul fuso orario associate. La data/ora locale, ad esempio 2019-01-02 11:22:33, non può essere analizzata come un elemento java.time.Instant valido.

Esecuzione del modello File di testo da Cloud Storage a Cloud Spanner

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Text Files on Cloud Storage to Cloud Spanner template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner \
    --region REGION_NAME \
    --parameters \
instanceId=INSTANCE_ID,\
databaseId=DATABASE_ID,\
importManifest=GCS_PATH_TO_IMPORT_MANIFEST

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • INSTANCE_ID: il tuo ID istanza di Cloud Spanner
  • DATABASE_ID: il tuo ID database di Cloud Spanner
  • GCS_PATH_TO_IMPORT_MANIFEST: percorso di Cloud Storage del file manifest di importazione

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner
{
   "jobName": "JOB_NAME",
   "parameters": {
       "instanceId": "INSTANCE_ID",
       "databaseId": "DATABASE_ID",
       "importManifest": "GCS_PATH_TO_IMPORT_MANIFEST"
   },
   "environment": {
       "machineType": "n1-standard-2"
   }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • INSTANCE_ID: il tuo ID istanza di Cloud Spanner
  • DATABASE_ID: il tuo ID database di Cloud Spanner
  • GCS_PATH_TO_IMPORT_MANIFEST: percorso di Cloud Storage del file manifest di importazione

Cloud Storage per Elasticsearch

Il modello Cloud Storage to Elasticsearch è una pipeline batch che legge i dati provenienti dai file CSV archiviati in un bucket Cloud Storage e li scrive in documenti Elasticsearch come JSON.

Requisiti per questa pipeline:

  • Deve esistere il bucket Cloud Storage.
  • Deve esistere un host Elasticsearch su un'istanza Google Cloud o su Elasticsearch Cloud accessibile da Dataflow.
  • Deve esistere una tabella BigQuery per l'output degli errori.

Parametri del modello

Parametro Descrizione
inputFileSpec Il pattern di file di Cloud Storage per cercare file CSV. Esempio: gs://mybucket/test-*.csv.
connectionUrl URL Elasticsearch nel formato https://hostname:[port] o specifica CloudID se utilizzi Elastic Cloud.
apiKey Chiave API codificata in Base64 utilizzata per l'autenticazione.
index L'indice Elasticsearch a cui verranno inviate le richieste, come my-index.
deadletterTable La tabella BigQuery Deadletter a cui inviare gli inserimenti non riusciti. Esempio: <your-project>:<your-dataset>.<your-table-name>.
containsHeaders (Facoltativo) Valore booleano per indicare se le intestazioni sono incluse nel file CSV. Predefinitotrue.
delimiter (Facoltativo) Il delimitatore utilizzato dal file CSV. Esempio: ,
csvFormat (Facoltativo) Il formato CSV in base al formato CSV Apache Commons. Valore predefinito: Default.
jsonSchemaPath (Facoltativo) Lo schema Percorso verso JSON. Valore predefinito: null.
largeNumFiles (Facoltativo) Impostalo su vero se il numero di file è decine di migliaia. Valore predefinito: false.
javascriptTextTransformGcsPath (Facoltativo) L'URI Cloud Storage del file .js che definisce la funzione definita dall'utente JavaScript (UDF) che vuoi utilizzare. Ad esempio: gs://my-bucket/my-udfs/my_file.js.
javascriptTextTransformFunctionName (Facoltativo) Il nome della funzione definita dall'utente JavaScript che vuoi utilizzare. Ad esempio, se il codice della funzione JavaScript è myTransform(inJson) { /*...do stuff...*/ }, il nome della funzione è myTransform. Per un esempio di UDF JavaScript, consulta Esempi di funzioni UDF.
batchSize (Facoltativo) Dimensioni del batch relative al numero di documenti. Valore predefinito: 1000.
batchSizeBytes (Facoltativo) Dimensioni del batch in numero di byte. Valore predefinito: 5242880 (5 MB).
maxRetryAttempts (Facoltativo) Numero massimo di nuovi tentativi, deve essere maggiore di 0. Predefinito: nessun nuovo tentativo.
maxRetryDuration (Facoltativo) La durata massima dei nuovi tentativi in millisecondi deve essere maggiore o uguale a 0. Predefinito: nessun nuovo tentativo.
csvFileEncoding (Facoltativo) Codifica dei file CSV.
propertyAsIndex (Facoltativo) Una proprietà nel documento che viene indicizzata il cui valore specificherà i metadati _index da includere nel documento nella richiesta collettiva (ha la precedenza su un _index UDF). Valore predefinito: nessuno.
propertyAsId (Facoltativo) Una proprietà nel documento che viene indicizzata il cui valore specificherà i metadati _id da includere nel documento nella richiesta collettiva (ha la precedenza su un _id UDF). Valore predefinito: nessuno.
javaScriptIndexFnGcsPath (Facoltativo) Percorso di Cloud Storage dell'origine JavaScript dell'UDF per una funzione che specifica i metadati _index da includere nel documento nella richiesta collettiva. Valore predefinito: nessuno.
javaScriptIndexFnName (Facoltativo) Nome della funzione JavaScript dell'UDF per la funzione che specifica i metadati _index da includere nel documento nella richiesta collettiva. Valore predefinito: nessuno.
javaScriptIdFnGcsPath (Facoltativo) Percorso di Cloud Storage dell'origine JavaScript dell'UDF per una funzione che specifica i metadati _id da includere nel documento nella richiesta collettiva. Valore predefinito: nessuno.
javaScriptIdFnName (Facoltativo) Nome della funzione JavaScript dell'UDF per la funzione che specifica i metadati _id da includere nel documento nella richiesta collettiva. Valore predefinito: nessuno.
javaScriptTypeFnGcsPath (Facoltativo) Percorso di Cloud Storage dell'origine JavaScript dell'UDF per una funzione che specifica i metadati _type da includere nel documento nella richiesta collettiva. Valore predefinito: nessuno.
javaScriptTypeFnName (Facoltativo) Nome della funzione JavaScript dell'UDF per la funzione che specifica i metadati _type da includere nel documento nella richiesta collettiva. Valore predefinito: nessuno.
javaScriptIsDeleteFnGcsPath (Facoltativo) Il percorso Cloud Storage dell'origine UDF JavaScript della funzione che determina se il documento deve essere eliminato anziché inserito o aggiornato. La funzione deve restituire il valore stringa "true" o "false". Valore predefinito: nessuno.
javaScriptIsDeleteFnName (Facoltativo) Nome della funzione JavaScript di UDF per la funzione che determina se il documento deve essere eliminato anziché inserito o aggiornato. La funzione deve restituire il valore stringa "true" o "false". Valore predefinito: nessuno.
usePartialUpdate (Facoltativo) Indica se utilizzare aggiornamenti parziali (aggiornare invece di creare o indicizzare i documenti parziali) con le richieste Elasticsearch. Valore predefinito: false.
bulkInsertMethod (Facoltativo) Indica se utilizzare INDEX (indice, possibilità di aumento) o CREATE (creazione, errori su _id duplicato) con richieste collettive Elasticsearch. Valore predefinito: CREATE.

Esecuzione di Cloud Storage in un modello Elasticsearch

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Cloud Storage to Elasticsearch template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud beta dataflow flex-template run JOB_NAME \
    --project=PROJECT_ID\
    --region=REGION_NAME \
    --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/GCS_to_Elasticsearch \
    --parameters \
inputFileSpec=INPUT_FILE_SPEC,\
connectionUrl=CONNECTION_URL,\
apiKey=APIKEY,\
index=INDEX,\
deadletterTable=DEADLETTER_TABLE,\

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • INPUT_FILE_SPEC: pattern del file di Cloud Storage.
  • CONNECTION_URL: l'URL dell'Elasticsearch.
  • APIKEY: la chiave API codificata in base64 per l'autenticazione.
  • INDEX: il tuo indice Elasticsearch.
  • DEADLETTER_TABLE: la tabella BigQuery.

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "inputFileSpec": "INPUT_FILE_SPEC",
          "connectionUrl": "CONNECTION_URL",
          "apiKey": "APIKEY",
          "index": "INDEX",
          "deadletterTable": "DEADLETTER_TABLE"
      },
      "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/GCS_to_Elasticsearch",
   }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • INPUT_FILE_SPEC: pattern del file di Cloud Storage.
  • CONNECTION_URL: l'URL dell'Elasticsearch.
  • APIKEY: la chiave API codificata in base64 per l'autenticazione.
  • INDEX: il tuo indice Elasticsearch.
  • DEADLETTER_TABLE: la tabella BigQuery.

Java Database Connectivity (JDBC) a BigQuery

Il modello da JDBC a BigQuery è una pipeline batch che copia i dati da una tabella di database relazionale in una tabella BigQuery esistente. Questa pipeline utilizza JDBC per connettersi al database relazionale. Puoi utilizzare questo modello per copiare i dati da qualsiasi database relazionale con driver JDBC disponibili in BigQuery. Per un ulteriore livello di protezione, puoi anche trasmettere una chiave Cloud KMS e i nomi utente, la password e i parametri della stringa di connessione codificati in Base64 con la chiave Cloud KMS. Per ulteriori dettagli sulla crittografia dei nomi utente, della password e dei parametri della stringa di connessione, consulta l'endpoint di crittografia dell'API Cloud KMS.

Requisiti per questa pipeline:

  • I driver JDBC per il database relazionale devono essere disponibili.
  • La tabella BigQuery deve esistere prima dell'esecuzione della pipeline.
  • La tabella BigQuery deve avere uno schema compatibile.
  • Il database relazionale deve essere accessibile dalla subnet in cui viene eseguito Dataflow.

Parametri del modello

Parametro Descrizione
driverJars L'elenco di file JAR del driver, separati da virgole. Ad esempio, gs://<my-bucket>/driver_jar1.jar,gs://<my-bucket>/driver_jar2.jar.
driverClassName Il nome della classe del driver JDBC. Ad esempio, com.mysql.jdbc.Driver.
connectionURL La stringa dell'URL di connessione JDBC. Ad esempio, jdbc:mysql://some-host:3306/sampledb. Può essere trasmesso come stringa codificata in Base64 e successivamente criptata con una chiave Cloud KMS.
query La query da eseguire sull'origine per estrarre i dati. Ad esempio, select * from sampledb.sample_table.
outputTable La posizione della tabella di output BigQuery, nel formato <my-project>:<my-dataset>.<my-table>.
bigQueryLoadingTemporaryDirectory La directory temporanea per il processo di caricamento di BigQuery. Ad esempio, gs://<my-bucket>/my-files/temp_dir.
connectionProperties (Facoltativo) Stringa di proprietà da utilizzare per la connessione JDBC. Il formato della stringa deve essere [propertyName=property;]*. Ad esempio, unicode=true;characterEncoding=UTF-8.
username (Facoltativo) Il nome utente da utilizzare per la connessione JDBC. Può essere trasmesso come stringa con codifica Base64 criptata con una chiave Cloud KMS.
password (Facoltativo) La password da utilizzare per la connessione JDBC. Può essere trasmesso come stringa con codifica Base64 criptata con una chiave Cloud KMS.
KMSEncryptionKey (Facoltativo) Chiave di crittografia Cloud KMS per decriptare il nome utente, la password e la stringa di connessione. Se viene trasmessa la chiave Cloud KMS, il nome utente, la password e la stringa di connessione devono essere tutti criptati.
disabledAlgorithms (Facoltativo) Algoritmi separati da virgola da disattivare. Se questo valore viene impostato su none, nessun algoritmo viene disattivato. Utilizzali con cautela, poiché è noto che gli algoritmi disattivati per impostazione predefinita presentino vulnerabilità o problemi di prestazioni. Ad esempio: SSLv3, RC4..
extraFilesToStage Percorsi Cloud Storage o secret di Secret Manager separati da virgole per i file da inserire nell'area temporanea nel worker. Questi file verranno salvati nella directory /extra_files in ogni worker. Ad esempio, gs://<my-bucket>/file.txt,projects/<project-id>/secrets/<secret-id>/versions/<version-id>.

Esecuzione del modello JDBC in BigQuery

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the JDBC to BigQuery template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Jdbc_to_BigQuery \
    --region REGION_NAME \
    --parameters \
driverJars=DRIVER_PATHS,\
driverClassName=DRIVER_CLASS_NAME,\
connectionURL=JDBC_CONNECTION_URL,\
query=SOURCE_SQL_QUERY,\
outputTable=PROJECT_ID:DATASET.TABLE_NAME,
bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS,\
connectionProperties=CONNECTION_PROPERTIES,\
username=CONNECTION_USERNAME,\
password=CONNECTION_PASSWORD,\
KMSEncryptionKey=KMS_ENCRYPTION_KEY

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • DRIVER_PATHS: percorso/i Cloud Storage separato da virgole dei driver JDBC
  • DRIVER_CLASS_NAME: il nome della classe di Drive
  • JDBC_CONNECTION_URL: l'URL di connessione JDBC
  • SOURCE_SQL_QUERY: la query SQL da eseguire sul database di origine
  • DATASET: il tuo set di dati BigQuery e sostituisci TABLE_NAME: il nome della tabella BigQuery
  • PATH_TO_TEMP_DIR_ON_GCS: il tuo percorso di Cloud Storage nella directory temporanea
  • CONNECTION_PROPERTIES: le proprietà della connessione JDBC, se necessario
  • CONNECTION_USERNAME: nome utente della connessione JDBC.
  • CONNECTION_PASSWORD: la password di connessione JDBC
  • KMS_ENCRYPTION_KEY: la chiave di crittografia Cloud KMS

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Jdbc_to_BigQuery
{
   "jobName": "JOB_NAME",
   "parameters": {
       "driverJars": "DRIVER_PATHS",
       "driverClassName": "DRIVER_CLASS_NAME",
       "connectionURL": "JDBC_CONNECTION_URL",
       "query": "SOURCE_SQL_QUERY",
       "outputTable": "PROJECT_ID:DATASET.TABLE_NAME",
       "bigQueryLoadingTemporaryDirectory": "PATH_TO_TEMP_DIR_ON_GCS",
       "connectionProperties": "CONNECTION_PROPERTIES",
       "username": "CONNECTION_USERNAME",
       "password": "CONNECTION_PASSWORD",
       "KMSEncryptionKey":"KMS_ENCRYPTION_KEY"
   },
   "environment": { "zone": "us-central1-f" }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • DRIVER_PATHS: percorso/i Cloud Storage separato da virgole dei driver JDBC
  • DRIVER_CLASS_NAME: il nome della classe di Drive
  • JDBC_CONNECTION_URL: l'URL di connessione JDBC
  • SOURCE_SQL_QUERY: la query SQL da eseguire sul database di origine
  • DATASET: il tuo set di dati BigQuery e sostituisci TABLE_NAME: il nome della tabella BigQuery
  • PATH_TO_TEMP_DIR_ON_GCS: il tuo percorso di Cloud Storage nella directory temporanea
  • CONNECTION_PROPERTIES: le proprietà della connessione JDBC, se necessario
  • CONNECTION_USERNAME: nome utente della connessione JDBC.
  • CONNECTION_PASSWORD: la password di connessione JDBC
  • KMS_ENCRYPTION_KEY: la chiave di crittografia Cloud KMS

Connettività Java Database (JDBC) a Pub/Sub

Il modello Java Database Connectivity (JDBC) a Pub/Sub è una pipeline batch che importa i dati da un'origine JDBC e scrive i record risultanti in un argomento Pub/Sub preesistente come stringa JSON.

Requisiti per questa pipeline:

  • L'origine JDBC deve esistere prima dell'esecuzione della pipeline.
  • L'argomento di output di Cloud Pub/Sub deve esistere prima dell'esecuzione della pipeline.

Parametri del modello

Parametro Descrizione
driverClassName Il nome della classe del driver JDBC. Ad esempio, com.mysql.jdbc.Driver.
connectionUrl La stringa dell'URL di connessione JDBC. Ad esempio, jdbc:mysql://some-host:3306/sampledb. Può essere trasmesso come stringa codificata in Base64 e successivamente criptata con una chiave Cloud KMS.
driverJars Percorsi Cloud Storage separati da virgole per i driver JDBC. Ad esempio, gs://your-bucket/driver_jar1.jar,gs://your-bucket/driver_jar2.jar.
username (Facoltativo) Il nome utente da utilizzare per la connessione JDBC. Può essere trasmesso come stringa con codifica Base64 criptata con una chiave Cloud KMS.
password (Facoltativo) La password da utilizzare per la connessione JDBC. Può essere trasmesso come stringa con codifica Base64 criptata con una chiave Cloud KMS.
connectionProperties (Facoltativo) Stringa di proprietà da utilizzare per la connessione JDBC. Il formato della stringa deve essere [propertyName=property;]*. Ad esempio, unicode=true;characterEncoding=UTF-8.
query La query da eseguire sull'origine per estrarre i dati. Ad esempio, select * from sampledb.sample_table.
outputTopic L'argomento Pub/Sub in cui pubblicare, nel formato projects/<project>/topics/<topic>.
KMSEncryptionKey (Facoltativo) Chiave di crittografia Cloud KMS per decriptare il nome utente, la password e la stringa di connessione. Se viene trasmessa la chiave Cloud KMS, il nome utente, la password e la stringa di connessione devono essere tutti criptati.
extraFilesToStage Percorsi Cloud Storage o secret di Secret Manager separati da virgole per i file da inserire nell'area temporanea nel worker. Questi file verranno salvati nella directory /extra_files in ogni worker. Ad esempio, gs://<my-bucket>/file.txt,projects/<project-id>/secrets/<secret-id>/versions/<version-id>.

Esecuzione del modello Java Database Connectivity (JDBC) in un modello Pub/Sub

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the JDBC to Pub/Sub template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/flex/Jdbc_to_PubSub \
    --region REGION_NAME \
    --parameters \
driverClassName=DRIVER_CLASS_NAME,\
connectionURL=JDBC_CONNECTION_URL,\
driverJars=DRIVER_PATHS,\
username=CONNECTION_USERNAME,\
password=CONNECTION_PASSWORD,\
connectionProperties=CONNECTION_PROPERTIES,\
query=SOURCE_SQL_QUERY,\
outputTopic=OUTPUT_TOPIC,\
KMSEncryptionKey=KMS_ENCRYPTION_KEY

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • DRIVER_CLASS_NAME: il nome della classe del conducente
  • JDBC_CONNECTION_URL: l'URL di connessione JDBC
  • DRIVER_PATHS: percorso/i Cloud Storage separato da virgole dei driver JDBC
  • CONNECTION_USERNAME: nome utente della connessione JDBC.
  • CONNECTION_PASSWORD: la password di connessione JDBC
  • CONNECTION_PROPERTIES: le proprietà della connessione JDBC, se necessario
  • SOURCE_SQL_QUERY: la query SQL da eseguire sul database di origine
  • OUTPUT_TOPIC: Pub/Sub in cui pubblicare
  • KMS_ENCRYPTION_KEY: la chiave di crittografia Cloud KMS

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "jobName": "JOB_NAME",
   "parameters": {
       "driverClassName": "DRIVER_CLASS_NAME",
       "connectionURL": "JDBC_CONNECTION_URL",
       "driverJars": "DRIVER_PATHS",
       "username": "CONNECTION_USERNAME",
       "password": "CONNECTION_PASSWORD",
       "connectionProperties": "CONNECTION_PROPERTIES",
       "query": "SOURCE_SQL_QUERY",
       "outputTopic": "OUTPUT_TOPIC",
       "KMSEncryptionKey":"KMS_ENCRYPTION_KEY"
   },
   "environment": { "zone": "us-central1-f" },
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • DRIVER_CLASS_NAME: il nome della classe del conducente
  • JDBC_CONNECTION_URL: l'URL di connessione JDBC
  • DRIVER_PATHS: percorso/i Cloud Storage separato da virgole dei driver JDBC
  • CONNECTION_USERNAME: nome utente della connessione JDBC.
  • CONNECTION_PASSWORD: la password di connessione JDBC
  • CONNECTION_PROPERTIES: le proprietà della connessione JDBC, se necessario
  • SOURCE_SQL_QUERY: la query SQL da eseguire sul database di origine
  • OUTPUT_TOPIC: Pub/Sub in cui pubblicare
  • KMS_ENCRYPTION_KEY: la chiave di crittografia Cloud KMS

Da Apache Cassandra a Cloud Bigtable

Il modello Apache Cassandra in Cloud Bigtable copia una tabella da Apache Cassandra a Cloud Bigtable. Questo modello richiede una configurazione minima e replica la struttura della tabella in Cassandra il più accuratamente possibile in Cloud Bigtable.

Il modello per la migrazione da Apache Cassandra a Cloud Bigtable è utile per:

  • Eseguire la migrazione del database Apache Cassandra in caso di tempi di inattività ridotti accettabili.
  • Replica periodicamente le tabelle di Cassandra in Cloud Bigtable per la pubblicazione globale.

Requisiti per questa pipeline:

  • La tabella Bigtable di destinazione deve esistere prima dell'esecuzione della pipeline.
  • Connessione di rete tra i worker di Dataflow e i nodi di Apache Cassandra.

Conversione dei tipi

Il modello Apache Cassandra in Cloud Bigtable converte automaticamente i tipi di dati Apache Cassandra in tipi di dati Cloud Bigtable.

La maggior parte delle primitive è rappresentata allo stesso modo in Cloud Bigtable e in Apache Cassandra; tuttavia, le seguenti primitive sono rappresentate in modo diverso:

  • Date e Timestamp vengono convertiti in oggetti DateTime
  • UUID è convertito in String
  • Varint è convertito in BigDecimal

Apache Cassandra supporta inoltre in modo nativo tipi più complessi come Tuple, List, Set e Map. Le tuple non sono supportate da questa pipeline in quanto non esiste un tipo corrispondente in Apache Beam.

Ad esempio, in Apache Cassandra puoi avere una colonna di tipo List denominata "mylist" e valori come quelli nella seguente tabella:

riga mylist
1 (a,b,c)

La pipeline espande la colonna dell'elenco in tre colonne diverse (note in Cloud Bigtable come qualificatori di colonna). Il nome delle colonne è "mylist", ma la pipeline aggiunge l'indice dell'elemento nell'elenco, ad esempio "mylist[0]".

riga mylist[0] mylist[1] mylist[2]
1 a b c

La pipeline gestisce gli stessi attributi degli elenchi, ma aggiunge un suffisso per indicare se la cella è una chiave o un valore.

riga mymap
1 {"first_key":"first_value","another_key":"different_value"}

Dopo la trasformazione, la tabella viene visualizzata come segue:

riga mymap[0].key mymap[0].value mymap[1].key mymap[1].valore
1 first_key first_value another_key different_value

Conversione della chiave primaria

In Apache Cassandra, viene definita una chiave primaria utilizzando il linguaggio di definizione dei dati. La chiave primaria è semplice, composita o composta da colonne di clustering. Cloud Bigtable supporta la creazione manuale delle chiavi riga, ordinate in modo alfabetico per l'array di byte. La pipeline raccoglie automaticamente informazioni sul tipo di chiave e ne crea una in base alle best practice per la creazione di chiavi riga basate su più valori.

Parametri del modello

Parametro Descrizione
cassandraHosts Gli host dei nodi di Apache Cassandra in un elenco separato da virgole.
cassandraPort (Facoltativo) La porta TCP per raggiungere Apache Cassandra sui nodi (il valore predefinito è 9042).
cassandraKeyspace Lo spazio chiave Apache Cassandra in cui si trova la tabella.
cassandraTable La tabella Apache Cassandra da copiare.
bigtableProjectId L'ID del progetto Google Cloud dell'istanza Bigtable in cui viene copiata la tabella Apache Cassandra.
bigtableInstanceId L'ID dell'istanza Bigtable in cui copiare la tabella Apache Cassandra.
bigtableTableId Il nome della tabella Bigtable in cui copiare la tabella Apache Cassandra.
defaultColumnFamily (Facoltativo) Il nome della famiglia di colonne della tabella Bigtable (il valore predefinito è default).
rowKeySeparator (Facoltativo) Il separatore utilizzato per creare la chiave di riga (il valore predefinito è #).

Esecuzione del modello Apache Cassandra in Cloud Bigtable

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the Cassandra to Cloud Bigtable template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/VERSION/Cassandra_To_Cloud_Bigtable \
    --region REGION_NAME \
    --parameters \
bigtableProjectId=BIGTABLE_PROJECT_ID,\
bigtableInstanceId=BIGTABLE_INSTANCE_ID,\
bigtableTableId=BIGTABLE_TABLE_ID,\
cassandraHosts=CASSANDRA_HOSTS,\
cassandraKeyspace=CASSANDRA_KEYSPACE,\
cassandraTable=CASSANDRA_TABLE

Sostituisci quanto segue:

  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • BIGTABLE_PROJECT_ID: l'ID del progetto in cui si trova Cloud Bigtable
  • BIGTABLE_INSTANCE_ID: l'ID dell'istanza Cloud Bigtable
  • BIGTABLE_TABLE_ID: il nome della tabella Cloud Bigtable
  • CASSANDRA_HOSTS: l'elenco di host di Apache Cassandra; se vengono forniti più host, segui l'istruzione su come eseguire l'escape delle virgole.
  • CASSANDRA_KEYSPACE: lo spazio chiave di Apache Cassandra in cui si trova la tabella
  • CASSANDRA_TABLE: tabella Apache Cassandra di cui è necessario eseguire la migrazione

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/templates:launch?gcsPath=gs://dataflow-templates/VERSION/Cassandra_To_Cloud_Bigtable
{
   "jobName": "JOB_NAME",
   "parameters": {
       "bigtableProjectId": "BIGTABLE_PROJECT_ID",
       "bigtableInstanceId": "BIGTABLE_INSTANCE_ID",
       "bigtableTableId": "BIGTABLE_TABLE_ID",
       "cassandraHosts": "CASSANDRA_HOSTS",
       "cassandraKeyspace": "CASSANDRA_KEYSPACE",
       "cassandraTable": "CASSANDRA_TABLE"
   },
   "environment": { "zone": "us-central1-f" }
}

Sostituisci quanto segue:

  • PROJET_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • BIGTABLE_PROJECT_ID: l'ID del progetto in cui si trova Cloud Bigtable
  • BIGTABLE_INSTANCE_ID: l'ID dell'istanza Cloud Bigtable
  • BIGTABLE_TABLE_ID: il nome della tabella Cloud Bigtable
  • CASSANDRA_HOSTS: l'elenco di host di Apache Cassandra; se vengono forniti più host, segui l'istruzione su come eseguire l'escape delle virgole.
  • CASSANDRA_KEYSPACE: lo spazio chiave di Apache Cassandra in cui si trova la tabella
  • CASSANDRA_TABLE: tabella Apache Cassandra di cui è necessario eseguire la migrazione

MongoDB in BigQuery

Il modello MongoDB in BigQuery è una pipeline batch che legge i documenti da MongoDB e li scrive in BigQuery come specificato dal parametro userOption.

Requisiti per questa pipeline

  • Deve esistere il set di dati BigQuery di destinazione.
  • L'istanza MongoDB di origine deve essere accessibile dalle macchine worker di Dataflow.

Parametri del modello

Parametro Descrizione
mongoDbUri URI di connessione MongoDB nel formato mongodb+srv://:@.
database Database in MongoDB da cui leggere la raccolta. Ad esempio: my-db.
collection Nome della raccolta all'interno del database MongoDB. Ad esempio: my-collection.
outputTableSpec Tabella BigQuery in cui scrivere. Ad esempio, bigquery-project:dataset.output_table.
userOption FLATTEN o NONE. FLATTEN appiattisce i documenti al primo livello. NONE archivia l'intero documento come stringa JSON.

Esecuzione del modello MongoDB in BigQuery

Console

  1. Vai alla pagina Crea job da modello di Dataflow.
  2. Vai a Crea job da modello
  3. Nel campo Nome job, inserisci un nome univoco per il job.
  4. (Facoltativo) Per Endpoint a livello di regione, seleziona un valore dal menu a discesa. L'endpoint della regione predefinito è us-central1.

    Per un elenco delle regioni in cui puoi eseguire un job Dataflow, consulta le località di Dataflow.

  5. Dal menu a discesa Modello Dataflow, seleziona the MongoDB to BigQuery template.
  6. Nei campi dei parametri forniti, inserisci i valori dei parametri.
  7. Fai clic su Esegui job.

gcloud

Nella shell o nel terminale, esegui il modello:

gcloud beta dataflow flex-template run JOB_NAME \
    --project=PROJECT_ID \
    --region=REGION_NAME \
    --template-file-gcs-location=gs://dataflow-templates/VERSION/flex/MongoDB_to_BigQuery \
    --parameters \
outputTableSpec=OUTPUT_TABLE_SPEC,\
mongoDbUri=MONGO_DB_URI,\
database=DATABASE,\
collection=COLLECTION,\
userOption=USER_OPTION

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • REGION_NAME: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • OUTPUT_TABLE_SPEC: il nome della tabella BigQuery di destinazione.
  • MONGO_DB_URI: l'URI MongoDB.
  • DATABASE: il tuo database MongoDB.
  • COLLECTION: la tua raccolta MongoDB.
  • USER_OPTION: FLATTEN o NESSUNO.

API

Per eseguire il modello utilizzando l'API REST, invia una richiesta POST HTTP. Per maggiori informazioni sull'API e sui suoi ambiti di autorizzazione, consulta projects.templates.launch.

POST https://dataflow.googleapis.com/v1b3/projects/PROJECT_ID/locations/LOCATION/flexTemplates:launch
{
   "launch_parameter": {
      "jobName": "JOB_NAME",
      "parameters": {
          "inputTableSpec": "INPUT_TABLE_SPEC",
          "mongoDbUri": "MONGO_DB_URI",
          "database": "DATABASE",
          "collection": "COLLECTION",
          "userOption": "USER_OPTION"
      },
      "containerSpecGcsPath": "gs://dataflow-templates/VERSION/flex/MongoDB_to_BigQuery",
   }
}

Sostituisci quanto segue:

  • PROJECT_ID: l'ID del progetto Cloud in cui vuoi eseguire il job Dataflow
  • JOB_NAME: un nome job univoco a tua scelta
  • LOCATION: l'endpoint a livello di area geografica in cui vuoi eseguire il deployment del tuo job Dataflow, ad esempio us-central1
  • VERSION: la versione del modello che vuoi utilizzare

    Puoi utilizzare i seguenti valori:

    • latest per utilizzare la versione più recente del modello, disponibile nella cartella principale senza data del bucket: gs://dataflow-templates/latest/
    • Il nome della versione, come 2021-09-20-00_RC00, per utilizzare una versione specifica del modello, che può essere nidificata nella rispettiva cartella padre con data nel bucket: gs://dataflow-templates/
  • OUTPUT_TABLE_SPEC: il nome della tabella BigQuery di destinazione.
  • MONGO_DB_URI: l'URI MongoDB.
  • DATABASE: il tuo database MongoDB.
  • COLLECTION: la tua raccolta MongoDB.
  • USER_OPTION: FLATTEN o NESSUNO.