Plantillas por lotes proporcionadas por Google

Google ofrece un conjunto de plantillas de código abierto de Cloud Dataflow. Para obtener información general sobre las plantillas, consulta la página que brinda una descripción general. Para obtener una lista de todas las plantillas proporcionadas por Google, consulta la página sobre cómo comenzar con las plantillas proporcionadas por Google.

En esta página se documentan las plantillas por lotes:

Cloud Bigtable a Cloud Storage Avro

La plantilla de Cloud Bigtable a Cloud Storage Avro es una canalización que lee datos de una tabla de Cloud Bigtable y los escribe en un depósito de Cloud Storage en formato Avro. Puedes usar la plantilla para mover datos de Cloud Bigtable a Cloud Storage.

Requisitos para esta canalización:

  • La tabla de Cloud Bigtable ya debe existir.
  • El depósito de Cloud Storage de salida debe existir antes de ejecutar la canalización.

Parámetros de la plantilla

Parámetro Descripción
bigtableProjectId ID del proyecto de GCP en la instancia de Cloud Bigtable desde la que quieres leer datos.
bigtableInstanceId ID de la instancia de Cloud Bigtable que contiene la tabla.
bigtableTableId ID de la tabla de Cloud Bigtable para exportar.
outputDirectory Ruta de acceso de Cloud Storage donde se deben escribir los datos. Por ejemplo, gs://mybucket/somefolder.
filenamePrefix Prefijo del nombre del archivo Avro. Por ejemplo, output-.

Ejecuta la plantilla de archivos de Cloud Bigtable a Cloud Storage Avro

CONSOLE

Ejecuta desde Google Cloud Platform Console
  1. Ve a la página Cloud Dataflow en GCP Console.
  2. Ir a la página Cloud Dataflow
  3. Haz clic en Crear un trabajo a partir de una plantilla (Create job from template).
  4. Botón Crear un trabajo a partir de una plantilla de Cloud Platform Console
  5. Selecciona en el menú desplegable Plantilla de Cloud Dataflow.
  6. Ingresa un nombre para el trabajo en el campo Nombre del trabajo. El nombre de tu trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  7. Ingresa los valores de parámetros en los campos de parámetros provistos.
  8. Haz clic en Ejecutar trabajo.

GCLOUD

Ejecuta desde la herramienta de línea de comandos de gcloud

Nota: Si quieres usar la herramienta de línea de comandos de gcloud para ejecutar plantillas, debes tener la versión 138.0.0 o superior del SDK de Cloud.

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/

Usa esta solicitud de ejemplo como se documenta en la página sobre cómo usar la API de REST. Esta solicitud requiere autorización, y debes especificar una tempLocation en la que tienes permisos de escritura. En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza [YOUR_PROJECT_ID] por el ID del proyecto.
  • Reemplaza [JOB_NAME] por un nombre a elección para el trabajo. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza [PROJECT_ID] por el ID del proyecto de GCP de la instancia de Cloud Bigtable de la que quieres leer datos.
  • Reemplaza [INSTANCE_ID] por el ID de la instancia de Cloud Bigtable que contiene la tabla.
  • Reemplaza [TABLE_ID] por el ID de la tabla de Cloud Bigtable para exportar.
  • Reemplaza [OUTPUT_DIRECTORY] por la ruta de acceso de Cloud Storage donde se deben escribir los datos. Por ejemplo, gs://mybucket/somefolder.
  • Reemplaza [FILENAME_PREFIX] por el prefijo del nombre del archivo Avro. Por ejemplo, output-.
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location gs://dataflow-templates/latest/ \
    --parameters bigtableProjectId=[PROJECT_ID],bigtableInstanceId=[INSTANCE_ID],bigtableTableId=[TABLE_ID],outputDirectory=[OUTPUT_DIRECTORY],filenamePrefix=[FILENAME_PREFIX]

API

Ejecuta desde la API de REST

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/

Para ejecutar esta plantilla con una solicitud a la API de REST, envía una solicitud HTTP POST con tu ID del proyecto. Esta solicitud requiere autorización.

Usa esta solicitud de ejemplo como se documenta en la página sobre cómo usar la API de REST. Esta solicitud requiere autorización, y debes especificar una tempLocation en la que tienes permisos de escritura. En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza [YOUR_PROJECT_ID] por el ID del proyecto.
  • Reemplaza [JOB_NAME] por un nombre a elección para el trabajo. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza [PROJECT_ID] por el ID del proyecto de GCP de la instancia de Cloud Bigtable de la que quieres leer datos.
  • Reemplaza [INSTANCE_ID] por el ID de la instancia de Cloud Bigtable que contiene la tabla.
  • Reemplaza [TABLE_ID] por el ID de la tabla de Cloud Bigtable para exportar.
  • Reemplaza [OUTPUT_DIRECTORY] por la ruta de acceso de Cloud Storage donde se deben escribir los datos. Por ejemplo, gs://mybucket/somefolder.
  • Reemplaza [FILENAME_PREFIX] por el prefijo del nombre del archivo Avro. Por ejemplo, output-.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/latest/
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "bigtableProjectId": "[PROJECT_ID]",
       "bigtableInstanceId": "[INSTANCE_ID]",
       "bigtableTableId": "[TABLE_ID]",
       "outputDirectory": "[OUTPUT_DIRECTORY]",
       "filenamePrefix": "[FILENAME_PREFIX]",
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Bigtable a Cloud Storage SequenceFile

La plantilla de Cloud Bigtable a Cloud Storage SequenceFile es una canalización que lee datos de una tabla de Cloud Bigtable y los escribe en un depósito de Cloud Storage en formato SequenceFile. Puedes usar la plantilla para copiar datos de Cloud Bigtable a Cloud Storage.

Requisitos para esta canalización:

  • La tabla de Cloud Bigtable ya debe existir.
  • El depósito de Cloud Storage de salida debe existir antes de ejecutar la canalización.

Parámetros de la plantilla

Parámetro Descripción
bigtableProject ID del proyecto de GCP en la instancia de Cloud Bigtable desde la que quieres leer datos.
bigtableInstanceId ID de la instancia de Cloud Bigtable que contiene la tabla.
bigtableTableId ID de la tabla de Cloud Bigtable para exportar.
bigtableAppProfileId ID del perfil de la aplicación de Cloud Bigtable que se usa para exportar. Si no especificas un perfil de app, Cloud Bigtable usa el perfil predeterminado de la app de la instancia.
destinationPath Ruta de acceso de Cloud Storage donde se deben escribir los datos. Por ejemplo, gs://mybucket/somefolder.
filenamePrefix Prefijo del nombre del archivo SequenceFile. Por ejemplo, output-.

Ejecuta la plantilla de Cloud Bigtable a Cloud Storage SequenceFile

CONSOLE

Ejecuta desde Google Cloud Platform Console
  1. Ve a la página Cloud Dataflow en GCP Console.
  2. Ir a la página Cloud Dataflow
  3. Haz clic en Crear un trabajo a partir de una plantilla (Create job from template).
  4. Botón Crear un trabajo a partir de una plantilla de Cloud Platform Console
  5. Selecciona en el menú desplegable Plantilla de Cloud Dataflow.
  6. Ingresa un nombre para el trabajo en el campo Nombre del trabajo. El nombre de tu trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  7. Ingresa los valores de parámetros en los campos de parámetros provistos.
  8. Haz clic en Ejecutar trabajo.

GCLOUD

Ejecuta desde la herramienta de línea de comandos de gcloud

Nota: Si quieres usar la herramienta de línea de comandos de gcloud para ejecutar plantillas, debes tener la versión 138.0.0 o superior del SDK de Cloud.

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/

Usa esta solicitud de ejemplo como se documenta en la página sobre cómo usar la API de REST. Esta solicitud requiere autorización, y debes especificar una tempLocation en la que tienes permisos de escritura. En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza [YOUR_PROJECT_ID] por el ID del proyecto.
  • Reemplaza [JOB_NAME] por un nombre a elección para el trabajo. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza [PROJECT_ID] por el ID del proyecto de GCP de la instancia de Cloud Bigtable de la que quieres leer datos.
  • Reemplaza [INSTANCE_ID] por el ID de la instancia de Cloud Bigtable que contiene la tabla.
  • Reemplaza [TABLE_ID] por el ID de la tabla de Cloud Bigtable para exportar.
  • Reemplaza [APPLICATION_PROFILE_ID] por el ID del perfil de la aplicación de Cloud Bigtable que se usa para exportar.
  • Reemplaza [DESTINATION_PATH] por la ruta de acceso de Cloud Storage donde se deben escribir los datos. Por ejemplo, gs://mybucket/somefolder.
  • Reemplaza [FILENAME_PREFIX] por el prefijo del nombre del archivo SequenceFile. Por ejemplo, output-.
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location gs://dataflow-templates/latest/ \
    --parameters bigtableProject=[PROJECT_ID],bigtableInstanceId=[INSTANCE_ID],bigtableTableId=[TABLE_ID],bigtableAppProfileId=[APPLICATION_PROFILE_ID],destinationPath=[DESTINATION_PATH],filenamePrefix=[FILENAME_PREFIX]

API

Ejecuta desde la API de REST

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/

Para ejecutar esta plantilla con una solicitud a la API de REST, envía una solicitud HTTP POST con tu ID del proyecto. Esta solicitud requiere autorización.

Usa esta solicitud de ejemplo como se documenta en la página sobre cómo usar la API de REST. Esta solicitud requiere autorización, y debes especificar una tempLocation en la que tienes permisos de escritura. En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza [YOUR_PROJECT_ID] por el ID del proyecto.
  • Reemplaza [JOB_NAME] por un nombre a elección para el trabajo. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza [PROJECT_ID] por el ID del proyecto de GCP de la instancia de Cloud Bigtable de la que quieres leer datos.
  • Reemplaza [INSTANCE_ID] por el ID de la instancia de Cloud Bigtable que contiene la tabla.
  • Reemplaza [TABLE_ID] por el ID de la tabla de Cloud Bigtable para exportar.
  • Reemplaza [APPLICATION_PROFILE_ID] por el ID del perfil de la aplicación de Cloud Bigtable que se usa para exportar.
  • Reemplaza [DESTINATION_PATH] por la ruta de acceso de Cloud Storage donde se deben escribir los datos. Por ejemplo, gs://mybucket/somefolder.
  • Reemplaza [FILENAME_PREFIX] por el prefijo del nombre del archivo SequenceFile. Por ejemplo, output-.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/latest/
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "bigtableProject": "[PROJECT_ID]",
       "bigtableInstanceId": "[INSTANCE_ID]",
       "bigtableTableId": "[TABLE_ID]",
       "bigtableAppProfileId": "[APPLICATION_PROFILE_ID]",
       "destinationPath": "[DESTINATION_PATH]",
       "filenamePrefix": "[FILENAME_PREFIX]",
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Datastore a Cloud Storage Text

La plantilla de Cloud Datastore a Cloud Storage Text es una canalización por lotes que lee entidades de Cloud Datastore y las escribe en Cloud Storage como archivos de texto. Puedes proporcionar una función para procesar cada entidad como una string JSON. Si no proporcionas esa función, cada línea en el archivo de salida será una entidad serializada JSON.

Requisitos para esta canalización:

Cloud Datastore debe configurarse en el proyecto antes de ejecutar la canalización.

Parámetros de la plantilla

Parámetro Descripción
datastoreReadGqlQuery Consulta de GQL que especifica qué entidades tomar. Por ejemplo, SELECT * FROM MyKind.
datastoreReadProjectId ID del proyecto de GCP de la instancia de Cloud Datastore de la que quieres leer datos.
datastoreReadNamespace Espacio de nombres de las entidades solicitadas. Para usar el espacio de nombres predeterminado, deja este parámetro en blanco.
javascriptTextTransformGcsPath Ruta de acceso de Cloud Storage que contiene el código de JavaScript. Por ejemplo, gs://mybucket/mytransforms/*.js. Si no quieres proporcionar una función, deja este parámetro en blanco.
javascriptTextTransformFunctionName Nombre de la función de JavaScript que se invocará. Por ejemplo, si tu función de JavaScript es function myTransform(inJson) { ...dostuff...}, el nombre de la función es myTransform. Si no quieres proporcionar una función, deja este parámetro en blanco.
textWritePrefix Prefijo de la ruta de acceso de Cloud Storage donde se especifican los datos que se deben escribir. Por ejemplo, gs://mybucket/somefolder/.

Ejecuta la plantilla de Cloud Datastore a Cloud Storage Text

CONSOLE

Ejecuta desde Google Cloud Platform Console
  1. Ve a la página Cloud Dataflow en GCP Console.
  2. Ir a la página Cloud Dataflow
  3. Haz clic en Crear un trabajo a partir de una plantilla (Create job from template).
  4. Botón Crear un trabajo a partir de una plantilla de Cloud Platform Console
  5. Selecciona the Cloud Datastore to Cloud Storage Text template en el menú desplegable Plantilla de Cloud Dataflow.
  6. Ingresa un nombre para el trabajo en el campo Nombre del trabajo. El nombre de tu trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  7. Ingresa los valores de parámetros en los campos de parámetros provistos.
  8. Haz clic en Ejecutar trabajo.

GCLOUD

Ejecuta desde la herramienta de línea de comandos de gcloud

Nota: Si quieres usar la herramienta de línea de comandos de gcloud para ejecutar plantillas, debes tener la versión 138.0.0 o superior del SDK de Cloud.

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/Datastore_to_GCS_Text

En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza YOUR_PROJECT_ID por el ID del proyecto.
  • Reemplaza JOB_NAME por el nombre de trabajo que prefieras. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza YOUR_BUCKET_NAME por el nombre del depósito de Cloud Storage.
  • Reemplaza YOUR_DATASTORE_KIND por el tipo de tus entidades de Datastore.
  • Reemplaza YOUR_DATASTORE_NAMESPACE por el espacio de nombres de tus entidades de Datastore.
  • Reemplaza YOUR_JAVASCRIPT_FUNCTION por el nombre de la función de JavaScript.
  • Reemplaza PATH_TO_JAVASCRIPT_UDF_FILE por la ruta de Cloud Storage al archivo .js que contiene tu código JavaScript.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Datastore_to_GCS_Text \
    --parameters \
datastoreReadGqlQuery="SELECT * FROM YOUR_DATASTORE_KIND",\
datastoreReadProjectId=YOUR_PROJECT_ID,\
datastoreReadNamespace=YOUR_DATASTORE_NAMESPACE,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=YOUR_JAVASCRIPT_FUNCTION,\
textWritePrefix=gs://YOUR_BUCKET_NAME/output/

API

Ejecuta desde la API de REST

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/Datastore_to_GCS_Text

Para ejecutar esta plantilla con una solicitud a la API de REST, envía una solicitud HTTP POST con tu ID del proyecto. Esta solicitud requiere autorización.

En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza YOUR_PROJECT_ID por el ID del proyecto.
  • Reemplaza JOB_NAME por el nombre de trabajo que prefieras. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza YOUR_BUCKET_NAME por el nombre del depósito de Cloud Storage.
  • Reemplaza YOUR_DATASTORE_KIND por el tipo de tus entidades de Datastore.
  • Reemplaza YOUR_DATASTORE_NAMESPACE por el espacio de nombres de tus entidades de Datastore.
  • Reemplaza YOUR_JAVASCRIPT_FUNCTION por el nombre de la función de JavaScript.
  • Reemplaza PATH_TO_JAVASCRIPT_UDF_FILE por la ruta de Cloud Storage al archivo .js que contiene tu código JavaScript.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Datastore_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "datastoreReadGqlQuery": "SELECT * FROM YOUR_DATASTORE_KIND"
       "datastoreReadProjectId": "YOUR_PROJECT_ID",
       "datastoreReadNamespace": "YOUR_DATASTORE_NAMESPACE",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "YOUR_JAVASCRIPT_FUNCTION",
       "textWritePrefix": "gs://YOUR_BUCKET_NAME/output/"
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Spanner a Cloud Storage Avro

La plantilla de Cloud Spanner a Cloud Storage Avro es una canalización por lotes que exporta bases de datos completas de Cloud Spanner a Cloud Storage en formato Avro. Exportar una base de datos de Cloud Spanner crea una carpeta en el depósito que selecciones. La carpeta contiene estos archivos:

  • Un archivo spanner-export.json.
  • Un archivo TableName-manifest.json para cada tabla de la base de datos que exportaste.
  • Uno o más archivos TableName.avro-#####-of-#####.

Por ejemplo, cuando se exporta una base de datos con dos tablas, Singers y Albums, se crea el siguiente conjunto de archivos:

  • 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

Requisitos para esta canalización:

  • La base de datos de Cloud Spanner debe existir.
  • El depósito de salida de Cloud Storage debe existir.
  • Además de las funciones de Cloud IAM necesarias para ejecutar los trabajos de Cloud Dataflow, debes tener las funciones de Cloud IAM apropiadas a fin de leer tus datos de Cloud Spanner y escribir en el depósito de Cloud Storage.

Parámetros de la plantilla

Parámetro Descripción
instanceId ID de instancia de la base de datos de Cloud Spanner que quieres exportar.
databaseId ID de la base de datos de Cloud Spanner que quieres exportar.
outputDir Ruta de acceso de Cloud Storage desde la que quieres exportar los archivos Avro. El trabajo de exportación crea un directorio nuevo en esta ruta de acceso que contiene los archivos exportados.

Ejecuta la plantilla

CONSOLE

Ejecuta desde Google Cloud Platform Console
  1. Ve a la página Cloud Dataflow en GCP Console.
  2. Ir a la página Cloud Dataflow
  3. Haz clic en Crear un trabajo a partir de una plantilla (Create job from template).
  4. Botón Crear un trabajo a partir de una plantilla de Cloud Platform Console
  5. Selecciona the Cloud Spanner to Cloud Storage Avro template en el menú desplegable Plantilla de Cloud Dataflow.
  6. Ingresa un nombre para el trabajo en el campo Nombre del trabajo.
    • El nombre de tu trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
    • El nombre del trabajo debe coincidir con el formato export cloud-spanner--[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] para que aparezca en la sección de Cloud Spanner en GCP Console.
  7. Ingresa los valores de parámetros en los campos de parámetros provistos.
  8. Haz clic en Ejecutar trabajo.

GCLOUD

Ejecuta desde la herramienta de línea de comandos de gcloud

Nota: Si quieres usar la herramienta de línea de comandos de gcloud para ejecutar plantillas, debes tener la versión 138.0.0 o superior del SDK de Cloud.

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro

Usa esta solicitud de ejemplo como se documenta en la página sobre cómo usar la API de REST. Esta solicitud requiere autorización y debes especificar una tempLocation en la que tienes permisos de escritura. En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza [DATAFLOW_REGION] por la región en la que deseas que se ejecute el trabajo de Cloud Dataflow (como us-central1).
  • Reemplaza [YOUR_INSTANCE_ID] por el ID de la instancia de Cloud Spanner.
  • Reemplaza [YOUR_DATABASE_ID] por el ID de la base de datos de Cloud Spanner.
  • Reemplaza [YOUR_GCS_DIRECTORY] por la ruta de Cloud Storage a la que deben exportarse los archivos Avro . Se importaron .
  • Reemplaza [JOB_NAME] por un nombre a elección para el trabajo.
    • El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
    • El nombre del trabajo debe coincidir con el formato export cloud-spanner--[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] para aparecer en la parte de Cloud Spanner de GCP Console.
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location='gs://dataflow-templates/[VERSION]/Cloud_Spanner_to_GCS_Avro' \
    --region=[DATAFLOW_REGION] \
    --parameters='instanceId=[YOUR_INSTANCE_ID],databaseId=[YOUR_DATABASE_ID],outputDir=[YOUR_GCS_DIRECTORY]

API

Ejecutar desde la API de REST

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/Cloud_Spanner_to_GCS_Avro

Usa esta solicitud de ejemplo como se documenta en la página sobre cómo usar la API de REST. Esta solicitud requiere autorización y debes especificar una tempLocation en la que tienes permisos de escritura. En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza [YOUR_PROJECT_ID] por el ID del proyecto.
  • Reemplaza [DATAFLOW_REGION] por la región en la que deseas que se ejecute el trabajo de Cloud Dataflow (como us-central1).
  • Reemplaza [YOUR_INSTANCE_ID] por el ID de la instancia de Cloud Spanner.
  • Reemplaza [YOUR_DATABASE_ID] por el ID de la base de datos de Cloud Spanner.
  • Reemplaza [YOUR_GCS_DIRECTORY] por la ruta de Cloud Storage a la que deben exportarse los archivos Avro . Se importaron .
  • Reemplaza [JOB_NAME] por un nombre a elección para el trabajo.
    • El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
    • El nombre del trabajo debe coincidir con el formato export cloud-spanner--[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] para aparecer en la parte de Cloud Spanner de GCP Console.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/locations/[DATAFLOW_REGION]/templates:launch?gcsPath=gs://dataflow-templates/[VERSION]/Cloud_Spanner_to_GCS_Avro
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "instanceId": "[YOUR_INSTANCE_ID]",
       "databaseId": "[YOUR_DATABASE_ID]",
       "outputDir": "gs://[YOUR_GCS_DIRECTORY]"
   }
}

Cloud Spanner a Cloud Storage Text

La plantilla de Cloud Spanner a Cloud Storage Text es una canalización por lotes que lee datos desde una tabla de Cloud Spanner; puede transformar de manera opcional los datos mediante una Función definida por el usuario de JavaScript (UDF) que proporcionas y escribirlos en Cloud Storage como archivos de texto CSV.

Requisitos para esta canalización:

  • La tabla de entrada de Cloud Spanner debe existir antes de ejecutar la canalización.

Parámetros de la plantilla

Parámetro Descripción
spannerProjectId ID del proyecto de GCP de la base de datos de Cloud Spanner desde la que quieres leer datos.
spannerDatabaseId Base de datos de la tabla solicitada.
spannerInstanceId Instancia de la tabla solicitada.
spannerTable Tabla para exportar.
textWritePrefix Directorio de salida donde se escribirán los archivos de texto de salida. Agrega una / al final. Por ejemplo: gs://mybucket/somefolder/.
javascriptTextTransformGcsPath (Opcional) Ruta de acceso de Cloud Storage que contiene el código de JavaScript. Por ejemplo, gs://mybucket/mytransforms/*.js. Si no quieres proporcionar una función, deja este parámetro en blanco.
javascriptTextTransformFunctionName (Opcional) Nombre de la función de JavaScript que se invocará. Por ejemplo, si tu función de JavaScript es function myTransform(inJson) { ...dostuff...}, el nombre de la función es myTransform. Si no quieres proporcionar una función, deja este parámetro en blanco.

Ejecuta la plantilla de Cloud Spanner a Cloud Storage Text

CONSOLE

Ejecuta desde Google Cloud Platform Console
  1. Ve a la página Cloud Dataflow en GCP Console.
  2. Ir a la página Cloud Dataflow
  3. Haz clic en Crear un trabajo a partir de una plantilla (Create job from template).
  4. Botón Crear un trabajo a partir de una plantilla de Cloud Platform Console
  5. Selecciona the Cloud Spanner to Cloud Storage Text template en el menú desplegable Plantilla de Cloud Dataflow.
  6. Ingresa un nombre para el trabajo en el campo Nombre del trabajo. El nombre de tu trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  7. Ingresa los valores de parámetros en los campos de parámetros provistos.
  8. Haz clic en Ejecutar trabajo.

GCLOUD

Ejecuta desde la herramienta de línea de comandos de gcloud

Nota: Si quieres usar la herramienta de línea de comandos de gcloud para ejecutar plantillas, debes tener la versión 138.0.0 o superior del SDK de Cloud.

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text

En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza YOUR_PROJECT_ID por el ID del proyecto.
  • Reemplaza JOB_NAME por el nombre de trabajo que prefieras. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza YOUR_DATABASE_ID por el ID de la base de datos de Cloud Spanner.
  • Reemplaza YOUR_BUCKET_NAME por el nombre del depósito de Cloud Storage.
  • Reemplaza YOUR_INSTANCE_ID por el ID de instancia de Cloud Spanner.
  • Reemplaza YOUR_TABLE_ID por el ID de la tabla de Cloud Spanner.
  • Reemplaza PATH_TO_JAVASCRIPT_UDF_FILE por la ruta de acceso de Cloud Storage al archivo .js que contiene tu código JavaScript.
  • Reemplaza YOUR_JAVASCRIPT_FUNCTION por el nombre de la función de JavaScript.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Spanner_to_GCS_Text \
    --parameters \
spannerProjectId=YOUR_PROJECT_ID,\
spannerDatabaseId=YOUR_DATABASE_ID,\
spannerInstanceId=YOUR_INSTANCE_ID,\
spannerTable=YOUR_TABLE_ID,\
textWritePrefix=gs://YOUR_BUCKET_NAME/output/,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=YOUR_JAVASCRIPT_FUNCTION

API

Ejecuta desde la API de REST

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text

Para ejecutar esta plantilla con una solicitud a la API de REST, envía una solicitud HTTP POST con tu ID del proyecto. Esta solicitud requiere autorización.

En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza YOUR_PROJECT_ID por el ID del proyecto.
  • Reemplaza JOB_NAME por el nombre de trabajo que prefieras. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza YOUR_DATABASE_ID por el ID de la base de datos de Cloud Spanner.
  • Reemplaza YOUR_BUCKET_NAME por el nombre del depósito de Cloud Storage.
  • Reemplaza YOUR_INSTANCE_ID por el ID de instancia de Cloud Spanner.
  • Reemplaza YOUR_TABLE_ID por el ID de la tabla de Cloud Spanner.
  • Reemplaza PATH_TO_JAVASCRIPT_UDF_FILE por la ruta de acceso de Cloud Storage al archivo .js que contiene tu código JavaScript.
  • Reemplaza YOUR_JAVASCRIPT_FUNCTION por el nombre de la función de JavaScript.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Spanner_to_GCS_Text
{
   "jobName": "JOB_NAME",
   "parameters": {
       "spannerProjectId": "YOUR_PROJECT_ID",
       "spannerDatabaseId": "YOUR_DATABASE_ID",
       "spannerInstanceId": "YOUR_INSTANCE_ID",
       "spannerTable": "YOUR_TABLE_ID",
       "textWritePrefix": "gs://YOUR_BUCKET_NAME/output/",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "YOUR_JAVASCRIPT_FUNCTION"
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Storage Avro a Cloud Bigtable

La plantilla de Cloud Storage Avro a Cloud Bigtable es una canalización que lee datos de archivos Avro en un depósito de Cloud Storage y los escribe en una tabla de Cloud Bigtable. Puedes usar la plantilla para copiar datos de Cloud Storage a Cloud Bigtable.

Requisitos para esta canalización:

  • La tabla de Cloud Bigtable debe existir y tener las mismas familias de columnas que las exportadas en los archivos Avro.
  • Los archivos Avro de entrada deben existir en un depósito de Cloud Storage antes de ejecutar la canalización.
  • Cloud Bigtable espera un esquema específico de los archivos Avro de entrada.

Parámetros de la plantilla

Parámetro Descripción
bigtableProjectId ID del proyecto de GCP de la instancia de Cloud Bigtable a la que quieres escribir datos.
bigtableInstanceId ID de la instancia de Cloud Bigtable que contiene la tabla.
bigtableTableId ID de la tabla de Cloud Bigtable para importar.
inputFilePattern Patrón de la ruta de acceso de Cloud Storage donde se encuentran los datos. Por ejemplo, gs://mybucket/somefolder/prefix*.

Ejecuta la plantilla de archivo de Cloud Storage Avro a Cloud Bigtable

CONSOLE

Ejecuta desde Google Cloud Platform Console
  1. Ve a la página Cloud Dataflow en GCP Console.
  2. Ir a la página Cloud Dataflow
  3. Haz clic en Crear un trabajo a partir de una plantilla (Create job from template).
  4. Botón Crear un trabajo a partir de una plantilla de Cloud Platform Console
  5. Selecciona the Cloud Spanner to Cloud Storage Text template en el menú desplegable Plantilla de Cloud Dataflow.
  6. Ingresa un nombre para el trabajo en el campo Nombre del trabajo. El nombre de tu trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  7. Ingresa los valores de parámetros en los campos de parámetros provistos.
  8. Haz clic en Ejecutar trabajo.

GCLOUD

Ejecuta desde la herramienta de línea de comandos de gcloud

Nota: Si quieres usar la herramienta de línea de comandos de gcloud para ejecutar plantillas, debes tener la versión 138.0.0 o superior del SDK de Cloud.

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text

Usa esta solicitud de ejemplo como se documenta en la página sobre cómo usar la API de REST. Esta solicitud requiere autorización, y debes especificar una tempLocation en la que tienes permisos de escritura. En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza [YOUR_PROJECT_ID] por el ID del proyecto.
  • Reemplaza [JOB_NAME] por un nombre a elección para el trabajo. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza [PROJECT_ID] por el ID del proyecto de GCP de la instancia de Cloud Bigtable de la que quieres leer datos.
  • Reemplaza [INSTANCE_ID] por el ID de la instancia de Cloud Bigtable que contiene la tabla.
  • Reemplaza [TABLE_ID] por el ID de la tabla de Cloud Bigtable para exportar.
  • Reemplaza [INPUT_FILE_PATTERN] por la ruta de acceso de Cloud Storage donde se encuentran los datos. Por ejemplo, gs://mybucket/somefolder/prefix*.
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location gs://dataflow-templates/latest/Spanner_to_GCS_Text \
    --parameters bigtableProjectId=[PROJECT_ID],bigtableInstanceId=[INSTANCE_ID],bigtableTableId=[TABLE_ID],inputFilePattern=[INPUT_FILE_PATTERN]

API

Ejecuta desde la API de REST

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/Spanner_to_GCS_Text

Para ejecutar esta plantilla con una solicitud a la API de REST, envía una solicitud HTTP POST con tu ID del proyecto. Esta solicitud requiere autorización.

Usa esta solicitud de ejemplo como se documenta en la página sobre cómo usar la API de REST. Esta solicitud requiere autorización, y debes especificar una tempLocation en la que tienes permisos de escritura. En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza [YOUR_PROJECT_ID] por el ID del proyecto.
  • Reemplaza [JOB_NAME] por un nombre a elección para el trabajo. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza [PROJECT_ID] por el ID del proyecto de GCP de la instancia de Cloud Bigtable de la que quieres leer datos.
  • Reemplaza [INSTANCE_ID] por el ID de la instancia de Cloud Bigtable que contiene la tabla.
  • Reemplaza [TABLE_ID] por el ID de la tabla de Cloud Bigtable para exportar.
  • Reemplaza [INPUT_FILE_PATTERN] por la ruta de acceso de Cloud Storage donde se encuentran los datos. Por ejemplo, gs://mybucket/somefolder/prefix*.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/latest/Spanner_to_GCS_Text
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "bigtableProjectId": "[PROJECT_ID]",
       "bigtableInstanceId": "[INSTANCE_ID]",
       "bigtableTableId": "[TABLE_ID]",
       "inputFilePattern": "[INPUT_FILE_PATTERN]",
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Storage Avro a Cloud Spanner

La plantilla de Cloud Storage Avro a Cloud Spanner es una canalización por lotes que lee archivos Avro desde Cloud Storage y los importa a una base de datos de Cloud Spanner.

Requisitos para esta canalización:

  • La base de datos de destino de Cloud Spanner debe existir y estar vacía.
  • Debes tener permisos de lectura para el depósito de Cloud Storage y permisos de escritura para la base de datos de destino de Cloud Spanner.
  • La ruta de entrada a Cloud Storage debe existir y debe incluir un archivo spanner-export.json que contenga una descripción JSON de los archivos que se importarán.

Parámetros de la plantilla

Parámetro Descripción
instanceId ID de la instancia de la base de datos de Cloud Spanner.
databaseId ID de la base de datos de Cloud Spanner.
inputDir Ruta de acceso de Cloud Storage desde donde se deben importar los archivos Avro.

Ejecuta la plantilla

CONSOLE

Ejecuta desde Google Cloud Platform Console
  1. Ve a la página Cloud Dataflow en GCP Console.
  2. Ir a la página Cloud Dataflow
  3. Haz clic en Crear un trabajo a partir de una plantilla (Create job from template).
  4. Botón Crear un trabajo a partir de una plantilla de Cloud Platform Console
  5. Selecciona the Cloud Storage Avro to Cloud Spanner template en el menú desplegable Plantilla de Cloud Dataflow.
  6. Ingresa un nombre para el trabajo en el campo Nombre del trabajo.
    • El nombre de tu trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
    • El nombre del trabajo debe coincidir con el formato import cloud-spanner--[YOUR_INSTANCE_ID]-[YOUR_DATABASE_ID] para que aparezca en la sección de Cloud Spanner en GCP Console.
  7. Ingresa los valores de parámetros en los campos de parámetros provistos.
  8. Haz clic en Ejecutar trabajo.

GCLOUD

Ejecuta desde la herramienta de línea de comandos de gcloud

Nota: Si quieres usar la herramienta de línea de comandos de gcloud para ejecutar plantillas, debes tener la versión 138.0.0 o superior del SDK de Cloud.

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner

Usa esta solicitud de ejemplo como se documenta en la página sobre cómo usar la API de REST. Esta solicitud requiere autorización, y debes especificar una tempLocation en la que tienes permisos de escritura. En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza [YOUR_PROJECT_ID] por el ID del proyecto.
  • Reemplaza [JOB_NAME] por un nombre a elección para el trabajo. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza [PROJECT_ID] por el ID del proyecto de GCP de la instancia de Cloud Bigtable de la que quieres leer datos.
  • Reemplaza [INSTANCE_ID] por el ID de la instancia de Cloud Bigtable que contiene la tabla.
  • Reemplaza [TABLE_ID] por el ID de la tabla de Cloud Bigtable para exportar.
  • Reemplaza [INPUT_FILE_PATTERN] por la ruta de acceso de Cloud Storage donde se encuentran los datos. Por ejemplo, gs://mybucket/somefolder/prefix*.
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location='gs://dataflow-templates/[VERSION]/GCS_Avro_to_Cloud_Spanner' \
    --region=[DATAFLOW_REGION] \
    --parameters='instanceId=[YOUR_INSTANCE_ID],databaseId=[YOUR_DATABASE_ID],inputDir=[YOUR_GCS_DIRECTORY]'

API

Ejecutar desde la API de REST

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner

Usa esta solicitud de ejemplo como se documenta en la página sobre cómo usar la API de REST. Esta solicitud requiere autorización, y debes especificar una tempLocation en la que tienes permisos de escritura. En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza [YOUR_PROJECT_ID] por el ID del proyecto.
  • Reemplaza [JOB_NAME] por un nombre a elección para el trabajo. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza [PROJECT_ID] por el ID del proyecto de GCP de la instancia de Cloud Bigtable de la que quieres leer datos.
  • Reemplaza [INSTANCE_ID] por el ID de la instancia de Cloud Bigtable que contiene la tabla.
  • Reemplaza [TABLE_ID] por el ID de la tabla de Cloud Bigtable para exportar.
  • Reemplaza [INPUT_FILE_PATTERN] por la ruta de acceso de Cloud Storage donde se encuentran los datos. Por ejemplo, gs://mybucket/somefolder/prefix*.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/locations/[DATAFLOW_REGION]/templates:launch?gcsPath=gs://dataflow-templates/[VERSION]/GCS_Avro_to_Cloud_Spanner
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "instanceId": "[YOUR_INSTANCE_ID]",
       "databaseId": "[YOUR_DATABASE_ID]",
       "inputDir": "gs://[YOUR_GCS_DIRECTORY]"
   },
   "environment": {
       "machineType": "n1-standard-2"
   }
}

Cloud Storage SequenceFile a Cloud Bigtable

La plantilla de Cloud Storage SequenceFile a Cloud Bigtable es una canalización que lee datos de SequenceFiles en un depósito de Cloud Storage y escribe los datos en una tabla de Cloud Bigtable. Puedes usar la plantilla para copiar datos de Cloud Storage a Cloud Bigtable.

Requisitos para esta canalización:

  • La tabla de Cloud Bigtable ya debe existir.
  • Los SequenceFiles de entrada deben existir en un depósito de Cloud Storage antes de ejecutar la canalización.
  • Los SequenceFiles de entrada deben haberse exportado desde Cloud Bigtable o HBase.

Parámetros de la plantilla

Parámetro Descripción
bigtableProject ID del proyecto de GCP de la instancia de Cloud Bigtable a la que quieres escribir datos.
bigtableInstanceId ID de la instancia de Cloud Bigtable que contiene la tabla.
bigtableTableId ID de la tabla de Cloud Bigtable para importar.
bigtableAppProfileId ID del perfil de la aplicación de Cloud Bigtable que se usa para importar. Si no especificas un perfil de app, Cloud Bigtable usa el perfil predeterminado de la app de la instancia.
sourcePattern Patrón de la ruta de acceso de Cloud Storage donde se encuentran los datos. Por ejemplo, gs://mybucket/somefolder/prefix*.

Ejecuta la plantilla de Cloud Storage SequenceFile a Cloud Bigtable

CONSOLE

Ejecuta desde Google Cloud Platform Console
  1. Ve a la página Cloud Dataflow en GCP Console.
  2. Ir a la página Cloud Dataflow
  3. Haz clic en Crear un trabajo a partir de una plantilla (Create job from template).
  4. Botón Crear un trabajo a partir de una plantilla de Cloud Platform Console
  5. Selecciona the Cloud Storage Avro to Cloud Spanner template en el menú desplegable Plantilla de Cloud Dataflow.
  6. Ingresa un nombre para el trabajo en el campo Nombre del trabajo. El nombre de tu trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  7. Ingresa los valores de parámetros en los campos de parámetros provistos.
  8. Haz clic en Ejecutar trabajo.

GCLOUD

Ejecuta desde la herramienta de línea de comandos de gcloud

Nota: Si quieres usar la herramienta de línea de comandos de gcloud para ejecutar plantillas, debes tener la versión 138.0.0 o superior del SDK de Cloud.

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner

Usa esta solicitud de ejemplo como se documenta en la página sobre cómo usar la API de REST. Esta solicitud requiere autorización, y debes especificar una tempLocation en la que tienes permisos de escritura. En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza [YOUR_PROJECT_ID] por el ID del proyecto.
  • Reemplaza [JOB_NAME] por un nombre a elección para el trabajo. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza [PROJECT_ID] por el ID del proyecto de GCP de la instancia de Cloud Bigtable de la que quieres leer datos.
  • Reemplaza [INSTANCE_ID] por el ID de la instancia de Cloud Bigtable que contiene la tabla.
  • Reemplaza [TABLE_ID] por el ID de la tabla de Cloud Bigtable para exportar.
  • Reemplaza [APPLICATION_PROFILE_ID] por el ID del perfil de la aplicación de Cloud Bigtable que se usa para exportar.
  • Reemplaza [SOURCE_PATTERN] por la ruta de acceso de Cloud Storage donde se encuentran los datos. Por ejemplo, gs://mybucket/somefolder/prefix*.
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location gs://dataflow-templates/latest/GCS_Avro_to_Cloud_Spanner \
    --parameters bigtableProject=[PROJECT_ID],bigtableInstanceId=[INSTANCE_ID],bigtableTableId=[TABLE_ID],bigtableAppProfileId=[APPLICATION_PROFILE_ID],sourcePattern=[SOURCE_PATTERN]

API

Ejecuta desde la API de REST

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/GCS_Avro_to_Cloud_Spanner

Para ejecutar esta plantilla con una solicitud a la API de REST, envía una solicitud HTTP POST con tu ID del proyecto. Esta solicitud requiere autorización.

Usa esta solicitud de ejemplo como se documenta en la página sobre cómo usar la API de REST. Esta solicitud requiere autorización, y debes especificar una tempLocation en la que tienes permisos de escritura. En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza [YOUR_PROJECT_ID] por el ID del proyecto.
  • Reemplaza [JOB_NAME] por un nombre a elección para el trabajo. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza [PROJECT_ID] por el ID del proyecto de GCP de la instancia de Cloud Bigtable de la que quieres leer datos.
  • Reemplaza [INSTANCE_ID] por el ID de la instancia de Cloud Bigtable que contiene la tabla.
  • Reemplaza [TABLE_ID] por el ID de la tabla de Cloud Bigtable para exportar.
  • Reemplaza [APPLICATION_PROFILE_ID] por el ID del perfil de la aplicación de Cloud Bigtable que se usa para exportar.
  • Reemplaza [SOURCE_PATTERN] por la ruta de acceso de Cloud Storage donde se encuentran los datos. Por ejemplo, gs://mybucket/somefolder/prefix*.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Avro_to_Cloud_Spanner
{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "bigtableProject": "[PROJECT_ID]",
       "bigtableInstanceId": "[INSTANCE_ID]",
       "bigtableTableId": "[TABLE_ID]",
       "bigtableAppProfileId": "[APPLICATION_PROFILE_ID]",
       "sourcePattern": "[SOURCE_PATTERN]",
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Storage Text a BigQuery

La canalización de Cloud Storage Text a BigQuery es una canalización por lotes que te permite leer archivos de texto almacenados en Cloud Storage, transformarlos con una Función definida por el usuario de JavaScript (UDF) que proporcionas y enviar el resultado a BigQuery.

IMPORTANTE: Si vuelves a usar una tabla de BigQuery existente, se reemplazará la tabla.

Requisitos para esta canalización:

  • Crea un archivo JSON que describa tu esquema de BigQuery.

    Asegúrate de que haya un arreglo JSON de nivel superior titulado BigQuery Schema y que su contenido siga el patrón {"name": "COLUMN_NAME", "type": "DATA_TYPE"}. Por ejemplo:

    {
      "BigQuery Schema": [
        {
          "name": "location",
          "type": "STRING"
        },
        {
          "name": "name",
          "type": "STRING"
        },
        {
          "name": "age",
          "type": "STRING"
        },
        {
          "name": "color",
          "type": "STRING"
        },
        {
          "name": "coffee",
          "type": "STRING"
        }
      ]
    }
    
  • Crea un archivo JavaScript (.js) con tu función UDF que proporciona la lógica para transformar las líneas de texto. Ten en cuenta que tu función debe mostrar una string JSON.

    Por ejemplo, esta función divide cada línea de un archivo CSV y muestra una string JSON después de transformar los valores.

    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;
    }
    

Parámetros de la plantilla

Parámetro Descripción
javascriptTextTransformFunctionName Nombre de la función a la que deseas llamar desde el archivo .js.
JSONPath Ruta gs:// al archivo JSON que define el esquema BigQuery, almacenado en Cloud Storage. Por ejemplo, gs://path/to/my/schema.json.
javascriptTextTransformGcsPath Ruta gs:// al archivo JavaScript que define tu UDF. Por ejemplo, gs://path/to/my/javascript_function.js.
inputFilePattern Ruta gs:// al texto en Cloud Storage que deseas procesar. Por ejemplo, gs://path/to/my/text/data.txt.
outputTable Nombre de la tabla de BigQuery que quieres crear para almacenar los datos procesados. Si vuelves a usar una tabla de BigQuery existente, se reemplazará la tabla. Por ejemplo, my-project-name:my-dataset.my-table.
bigQueryLoadingTemporaryDirectory Directorio temporal para el proceso de carga de BigQuery. Por ejemplo, gs://my-bucket/my-files/temp_dir.

Ejecuta la plantilla de Cloud Storage Text a BigQuery

CONSOLE

Ejecuta desde Google Cloud Platform Console
  1. Ve a la página Cloud Dataflow en GCP Console.
  2. Ir a la página Cloud Dataflow
  3. Haz clic en Crear un trabajo a partir de una plantilla (Create job from template).
  4. Botón Crear un trabajo a partir de una plantilla de Cloud Platform Console
  5. Selecciona the Cloud Storage Text to BigQuery template en el menú desplegable Plantilla de Cloud Dataflow.
  6. Ingresa un nombre para el trabajo en el campo Nombre del trabajo. El nombre de tu trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  7. Ingresa los valores de parámetros en los campos de parámetros provistos.
  8. Haz clic en Ejecutar trabajo.

GCLOUD

Ejecuta desde la herramienta de línea de comandos de gcloud

Nota: Si quieres usar la herramienta de línea de comandos de gcloud para ejecutar plantillas, debes tener la versión 138.0.0 o superior del SDK de Cloud.

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery

En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza YOUR_PROJECT_ID por el ID del proyecto.
  • Reemplaza JOB_NAME por el nombre de trabajo que prefieras. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza YOUR_JAVASCRIPT_FUNCTION por el nombre de tu UDF.
  • Reemplaza PATH_TO_BIGQUERY_SCHEMA_JSON por la ruta de acceso de Cloud Storage al archivo JSON que contiene la definición de esquema.
  • Reemplaza PATH_TO_JAVASCRIPT_UDF_FILE por la ruta de Cloud Storage al archivo .js que contiene tu código JavaScript.
  • Reemplaza PATH_TO_YOUR_TEXT_DATA por tu ruta de Cloud Storage al conjunto de datos de texto.
  • Reemplaza BIGQUERY_TABLE por el nombre de la tabla de BigQuery.
  • Reemplaza PATH_TO_TEMP_DIR_ON_GCS por la ruta de Cloud Storage al directorio temporal.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_BigQuery \
    --parameters \
javascriptTextTransformFunctionName=YOUR_JAVASCRIPT_FUNCTION,\
JSONPath=PATH_TO_BIGQUERY_SCHEMA_JSON,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
inputFilePattern=PATH_TO_YOUR_TEXT_DATA,\
outputTable=BIGQUERY_TABLE,\
bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS

API

Ejecuta desde la API de REST

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/GCS_Text_to_BigQuery

Para ejecutar esta plantilla con una solicitud a la API de REST, envía una solicitud HTTP POST con tu ID del proyecto. Esta solicitud requiere autorización.

En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza YOUR_PROJECT_ID por el ID del proyecto.
  • Reemplaza JOB_NAME por el nombre de trabajo que prefieras. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza YOUR_JAVASCRIPT_FUNCTION por el nombre de tu UDF.
  • Reemplaza PATH_TO_BIGQUERY_SCHEMA_JSON por la ruta de acceso de Cloud Storage al archivo JSON que contiene la definición de esquema.
  • Reemplaza PATH_TO_JAVASCRIPT_UDF_FILE por la ruta de Cloud Storage al archivo .js que contiene tu código JavaScript.
  • Reemplaza PATH_TO_YOUR_TEXT_DATA por tu ruta de Cloud Storage al conjunto de datos de texto.
  • Reemplaza BIGQUERY_TABLE por el nombre de la tabla de BigQuery.
  • Reemplaza PATH_TO_TEMP_DIR_ON_GCS por la ruta de Cloud Storage al directorio temporal.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Text_to_BigQuery
{
   "jobName": "JOB_NAME",
   "parameters": {
       "javascriptTextTransformFunctionName": "YOUR_JAVASCRIPT_FUNCTION",
       "JSONPath": "PATH_TO_BIGQUERY_SCHEMA_JSON",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "inputFilePattern":"PATH_TO_YOUR_TEXT_DATA",
       "outputTable":"BIGQUERY_TABLE",
       "bigQueryLoadingTemporaryDirectory": "PATH_TO_TEMP_DIR_ON_GCS"
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Storage Text a Cloud Datastore

La plantilla de Cloud Storage Text a Cloud Datastore es una canalización por lotes que lee archivos de texto almacenados en Cloud Storage y escribe entidades codificadas en JSON en Cloud Datastore. Cada línea en los archivos de texto de entrada debe tener especificado el formato JSON en https://cloud.google.com/datastore/docs/reference/rest/v1/Entity.

Requisitos para esta canalización:

  • Se debe habilitar Datastore en el proyecto de destino.

Parámetros de la plantilla

Parámetro Descripción
textReadPattern Patrón de la ruta de acceso del archivo de Cloud Storage que especifica la ubicación de tus archivos de datos de texto. Por ejemplo, gs://mybucket/somepath/*.json.
javascriptTextTransformGcsPath Patrón de la ruta de acceso de Cloud Storage que contiene el código de JavaScript. Por ejemplo, gs://mybucket/mytransforms/*.js. Si no quieres proporcionar una función, deja este parámetro en blanco.
javascriptTextTransformFunctionName Nombre de la función de JavaScript que se invocará. Por ejemplo, si tu función de JavaScript es function myTransform(inJson) { ...dostuff...}, el nombre de la función es myTransform. Si no quieres proporcionar una función, deja este parámetro en blanco.
datastoreWriteProjectId ID del proyecto de GCP donde se escriben las entidades de Cloud Datastore.
errorWritePath Archivo de resultado de registro de errores para las fallas de escritura que ocurren durante el procesamiento. Por ejemplo, gs://bucket-name/errors.txt.

Ejecuta la plantilla de texto Cloud Storage a Datastore

CONSOLE

Ejecuta desde Google Cloud Platform Console
  1. Ve a la página Cloud Dataflow en GCP Console.
  2. Ir a la página Cloud Dataflow
  3. Haz clic en Crear un trabajo a partir de una plantilla (Create job from template).
  4. Botón Crear un trabajo a partir de una plantilla de Cloud Platform Console
  5. Selecciona the Cloud Storage Text to Datastore template en el menú desplegable Plantilla de Cloud Dataflow.
  6. Ingresa un nombre para el trabajo en el campo Nombre del trabajo. El nombre de tu trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  7. Ingresa los valores de parámetros en los campos de parámetros provistos.
  8. Haz clic en Ejecutar trabajo.

GCLOUD

Ejecuta desde la herramienta de línea de comandos de gcloud

Nota: Si quieres usar la herramienta de línea de comandos de gcloud para ejecutar plantillas, debes tener la versión 138.0.0 o superior del SDK de Cloud.

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/GCS_Text_to_Datastore

En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza YOUR_PROJECT_ID por el ID del proyecto.
  • Reemplaza JOB_NAME por el nombre de trabajo que prefieras. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza PATH_TO_INPUT_TEXT_FILES por el patrón de archivos de entrada en Cloud Storage.
  • Reemplaza YOUR_JAVASCRIPT_FUNCTION por el nombre de la función de JavaScript.
  • Reemplaza PATH_TO_JAVASCRIPT_UDF_FILE por la ruta de Cloud Storage al archivo .js que contiene tu código JavaScript.
  • Reemplaza ERROR_FILE_WRITE_PATH por la ruta de acceso deseada al archivo de error en Cloud Storage.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_Datastore \
    --parameters \
textReadPattern=PATH_TO_INPUT_TEXT_FILES,\
javascriptTextTransformGcsPath=PATH_TO_JAVASCRIPT_UDF_FILE,\
javascriptTextTransformFunctionName=YOUR_JAVASCRIPT_FUNCTION,\
datastoreWriteProjectId=YOUR_PROJECT_ID,\
errorWritePath=ERROR_FILE_WRITE_PATH

API

Ejecuta desde la API de REST

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/GCS_Text_to_Datastore

Para ejecutar esta plantilla con una solicitud a la API de REST, envía una solicitud HTTP POST con tu ID del proyecto. Esta solicitud requiere autorización.

En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza YOUR_PROJECT_ID por el ID del proyecto.
  • Reemplaza JOB_NAME por el nombre de trabajo que prefieras. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza PATH_TO_INPUT_TEXT_FILES por el patrón de archivos de entrada en Cloud Storage.
  • Reemplaza YOUR_JAVASCRIPT_FUNCTION por el nombre de la función de JavaScript.
  • Reemplaza PATH_TO_JAVASCRIPT_UDF_FILE por la ruta de Cloud Storage al archivo .js que contiene tu código JavaScript.
  • Reemplaza ERROR_FILE_WRITE_PATH por la ruta de acceso deseada al archivo de error en Cloud Storage.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Text_to_Datastore
{
   "jobName": "JOB_NAME",
   "parameters": {
       "textReadPattern": "PATH_TO_INPUT_TEXT_FILES",
       "javascriptTextTransformGcsPath": "PATH_TO_JAVASCRIPT_UDF_FILE",
       "javascriptTextTransformFunctionName": "YOUR_JAVASCRIPT_FUNCTION",
       "datastoreWriteProjectId": "YOUR_PROJECT_ID",
       "errorWritePath": "ERROR_FILE_WRITE_PATH"
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Storage Text a Cloud Pub/Sub (lote)

Esta plantilla crea una canalización por lotes que lee registros desde los archivos de texto almacenados en Cloud Storage y los publica en un tema de Cloud Pub/Sub. Se puede usar para publicar registros en un archivo delimitado por saltos de línea que contiene registros JSON o un archivo CSV en un tema de Cloud Pub/Sub para el procesamiento en tiempo real. Puedes usar esta plantilla para reproducir datos en Cloud Pub/Sub.

Ten en cuenta que esta plantilla no establece una marca de tiempo en los registros individuales. Es por eso que la hora del evento será la misma que la hora de publicación durante la ejecución. Si tu canalización depende de la hora precisa del evento para el procesamiento, no debes usar esta canalización.

Requisitos para esta canalización:

  • Los archivos para leer deben tener el formato JSON delimitado por saltos de línea o CSV. Los registros que abarcan varias líneas en los archivos de origen pueden causar problemas de procesamiento posterior, ya que cada línea dentro de los archivos se publicará como un mensaje en Cloud Pub/Sub.
  • El tema de Cloud Pub/Sub debe existir antes de ejecutar la canalización.

Parámetros de la plantilla

Parámetro Descripción
inputFilePattern Patrón del archivo de entrada en el que se desea leer. Por ejemplo, gs://bucket-name/files/*.json.
outputTopic Tema de entrada de Cloud Pub/Sub en el que se desea escribir. El nombre debe tener el formato projects/<project-id>/topics/<topic-name>.

Ejecuta la plantilla de Cloud Storage Text a Cloud Pub/Sub (lote)

CONSOLE

Ejecuta desde Google Cloud Platform Console
  1. Ve a la página Cloud Dataflow en GCP Console.
  2. Ir a la página Cloud Dataflow
  3. Haz clic en Crear un trabajo a partir de una plantilla (Create job from template).
  4. Botón Crear un trabajo a partir de una plantilla de Cloud Platform Console
  5. Selecciona the Cloud Storage Text to Cloud Pub/Sub (Batch) template en el menú desplegable Plantilla de Cloud Dataflow.
  6. Ingresa un nombre para el trabajo en el campo Nombre del trabajo. El nombre de tu trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  7. Ingresa los valores de parámetros en los campos de parámetros provistos.
  8. Haz clic en Ejecutar trabajo.

GCLOUD

Ejecuta desde la herramienta de línea de comandos de gcloud

Nota: Si quieres usar la herramienta de línea de comandos de gcloud para ejecutar plantillas, debes tener la versión 138.0.0 o superior del SDK de Cloud.

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub

En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza YOUR_PROJECT_ID por el ID del proyecto.
  • Reemplaza JOB_NAME por el nombre de trabajo que prefieras. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza [YOUR_TOPIC_NAME] por el nombre de tu tema de Cloud Pub/Sub.
  • Reemplaza [YOUR_BUCKET_NAME] por el nombre de tu depósito de Cloud Storage.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/GCS_Text_to_Cloud_PubSub \
    --parameters \
inputFilePattern=gs://YOUR_BUCKET_NAME/files/*.json,\
outputTopic=projects/YOUR_PROJECT_ID/topics/YOUR_TOPIC_NAME

API

Ejecuta desde la API de REST

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_PubSub

Para ejecutar esta plantilla con una solicitud a la API de REST, envía una solicitud HTTP POST con tu ID del proyecto. Esta solicitud requiere autorización.

En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza YOUR_PROJECT_ID por el ID del proyecto.
  • Reemplaza JOB_NAME por el nombre de trabajo que prefieras. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza [YOUR_TOPIC_NAME] por el nombre de tu tema de Cloud Pub/Sub.
  • Reemplaza [YOUR_BUCKET_NAME] por el nombre de tu depósito de Cloud Storage.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/GCS_Text_to_Cloud_PubSub
{
   "jobName": "JOB_NAME",
   "parameters": {
       "inputFilePattern": "gs://YOUR_BUCKET_NAME/files/*.json",
       "outputTopic": "projects/YOUR_PROJECT_ID/topics/YOUR_TOPIC_NAME"
   },
   "environment": { "zone": "us-central1-f" }
}

Cloud Storage Text a Cloud Spanner

La plantilla de Cloud Storage Text a Cloud Spanner es una canalización por lotes que lee archivos de texto CSV de Cloud Storage y los importa a una base de datos de Cloud Spanner.

Requisitos para esta canalización:

  • La base de datos y la tabla de destino de Cloud Spanner deben existir.
  • Debes tener permisos de lectura para el depósito de Cloud Storage y permisos de escritura para la base de datos de destino de Cloud Spanner.
  • La ruta de entrada de Cloud Storage que contiene los archivos CSV debe existir.
  • Debes crear un archivo de manifiesto de importación que contenga una descripción JSON de los archivos CSV y debes almacenar ese manifiesto en Cloud Storage.
  • Si la base de datos de destino de Cloud Spanner ya tiene un esquema, las columnas especificadas en el archivo de manifiesto deben tener los mismos tipos de datos que sus columnas correspondientes en el esquema de la base de datos de destino.
  • El archivo de manifiesto, codificado en ASCII o UTF-8, debe coincidir con el siguiente formato:

  • Los archivos de texto que se importarán deben estar en formato CSV, con codificación ASCII o UTF-8. Recomendamos no usar la marca de orden de bytes (BOM) en archivos con codificación UTF-8.
  • Los datos deben coincidir con uno de los siguientes tipos:
    • INT64
    • FLOAT64
    • BOOL
    • STRING
    • DATE
    • TIMESTAMP

Parámetros de la plantilla

Parámetro Descripción
instanceId ID de la instancia de la base de datos de Cloud Spanner.
databaseId ID de la base de datos de Cloud Spanner.
importManifest Ruta de Cloud Storage al archivo de manifiesto de importación.
columnDelimiter Delimitador de columnas que usa el archivo de origen. El valor predeterminado es ,.
fieldQualifier Carácter que debe rodear a cualquier valor en el archivo de origen que contiene el columnDelimiter. El valor predeterminado es ".
trailingDelimiter Especifica si las líneas en los archivos de origen tienen delimitadores finales (es decir, si el carácter columnDelimiter aparece al final de cada línea, después del último valor de columna). El valor predeterminado es true.
escape Carácter de escape que usa el archivo de origen. De forma predeterminada, este parámetro no está configurado y la plantilla no usa el carácter de escape.
nullString String que representa un valor NULL. De manera predeterminada, este parámetro no está configurado y la plantilla no usa la string nula.
dateFormat Formato que se usa para analizar las columnas de fecha. De forma predeterminada, la canalización intenta analizar las columnas de fecha como yyyy-M-d[' 00:00:00'], por ejemplo, como 2019-01-31 o 2019-1-1 00:00:00. Si tu formato de fecha es diferente, especifica el formato mediante los patrones java.time.format.DateTimeFormatter.
timestampFormat Formato que se usa para analizar las columnas de marca de tiempo. Si la marca de tiempo es un número entero largo, se analiza como época Unix. De lo contrario, se analiza como una string con el formato java.time.format.DateTimeFormatter.ISO_INSTANT. En otros casos, especifica tu propia string de patrón, por ejemplo, con MMM dd yyyy HH:mm:ss.SSSVV para marcas de tiempo en el formato de "Jan 21 1998 01:02:03.456+08:00"..

Si necesitas usar formatos personalizados de fecha o marca de tiempo, asegúrate de que sean patrones java.time.format.DateTimeFormatter válidos. En la siguiente tabla, se muestran ejemplos adicionales de formatos personalizados para columnas de fecha y marca de tiempo:

Tipo Valor de entrada Formato Observación
DATE 2011-3-31 De forma predeterminada, la plantilla puede analizar este formato. No necesitas especificar el parámetro dateFormat.
DATE 2011-3-31 00:00:00 De forma predeterminada, la plantilla puede analizar este formato. No necesitas especificar el formato. Si lo deseas, puedes usar yyyy-M-d' 00:00:00'.
DATE 01 abr, 18 dd MMM, yy
DATE Miércoles, abril 3, 2019 D.C. EEEE, LLLL d, yyyy G
TIMESTAMP 2019-01-02T11:22:33Z
2019-01-02T11:22:33.123Z 2019-01-02T11:22:33.12356789Z
El formato predeterminado ISO_INSTANT puede analizar este tipo de marca de tiempo. No es necesario que proporciones el parámetro timestampFormat.
TIMESTAMP 1568402363 De forma predeterminada, la plantilla puede analizar este tipo de marca de tiempo y tratarla como el tiempo de época de Unix.
TIMESTAMP Mar, 3 jun 2008 11:05:30 GMT EEE, d MMM yyyy HH:mm:ss VV
TIMESTAMP 2018/12/31 110530.123PST yyyy/MM/dd HHmmss.SSSz
TIMESTAMP 2019-01-02T11:22:33Z o 2019-01-02T11:22:33.123Z yyyy-MM-dd'T'HH:mm:ss[.SSS]VV Si la columna de entrada es una combinación de 2019-01-02T11:22:33Z y 2019-01-02T11:22:33.123Z, el formato predeterminado puede analizar este tipo de marca de tiempo. No necesitas proporcionar tu propio parámetro de formato. Sin embargo, puedes usar yyyy-MM-dd'T'HH:mm:ss[.SSS]VV para manejar ambos casos. Ten en cuenta que no puedes usar yyyy-MM-dd'T'HH:mm:ss[.SSS]'Z', ya que el sufijo “Z” debe analizarse como un ID de zona horaria, no como un literal de caracteres. De forma interna, la columna de marca de tiempo se convierte en java.time.Instant. Por lo tanto, debe especificarse en UTC o tener información de zona horaria asociada. La fecha y hora local, como 2019-01-02 11:22:33, no se puede analizar como una java.time.Instant válida.

Ejecuta la plantilla

Console

Ejecuta en Google Cloud Platform Console
  1. Ve a la página Cloud Dataflow en GCP Console.
  2. Ir a la página Cloud Dataflow
  3. Haz clic en Crear un trabajo a partir de una plantilla (Create job from template).
  4. Botón Crear un trabajo a partir de una plantilla de Cloud Platform Console
  5. Selecciona the Cloud Storage Text to Cloud Spanner template en el menú desplegable Plantilla de Cloud Dataflow.
  6. Ingresa un nombre para el trabajo en el campo Nombre del trabajo. El nombre de tu trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  7. Ingresa los valores de parámetros en los campos de parámetros provistos.
  8. Haz clic en Ejecutar trabajo.

gcloud

Ejecutar con la herramienta de línea de comandos de gcloud

Nota: Si quieres usar la herramienta de línea de comandos de gcloud para ejecutar plantillas, debes tener la versión 138.0.0 o superior del SDK de Cloud.

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner

Usa esta solicitud de ejemplo como se documenta en la página sobre cómo usar la API de REST. Esta solicitud requiere autorización y debes especificar una tempLocation en la que tienes permisos de escritura. En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza [DATAFLOW_REGION] por la región en la que deseas que se ejecute el trabajo de Cloud Dataflow (como us-central1).
  • Reemplaza [YOUR_INSTANCE_ID] por el ID de la instancia de Cloud Spanner.
  • Reemplaza [YOUR_DATABASE_ID] por el ID de la base de datos de Cloud Spanner.
  • Reemplaza [GCS_PATH_TO_IMPORT_MANIFEST] por la ruta de Cloud Storage al archivo de manifiesto de importación.
  • Reemplaza [JOB_NAME] por un nombre a elección para el trabajo. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para que sea válido.
gcloud dataflow jobs run [JOB_NAME] \
    --gcs-location='gs://dataflow-templates/[VERSION]/GCS_Text_to_Cloud_Spanner' \
    --region=[DATAFLOW_REGION] \
    --parameters='instanceId=[YOUR_INSTANCE_ID],databaseId=[YOUR_DATABASE_ID],importManifest=[GCS_PATH_TO_IMPORT_MANIFEST]'

API

Ejecutar con la API de REST

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/GCS_Text_to_Cloud_Spanner

Usa esta solicitud de ejemplo como se documenta en la página sobre cómo usar la API de REST. Esta solicitud requiere autorización y debes especificar una tempLocation en la que tienes permisos de escritura. En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza [DATAFLOW_REGION] por la región en la que deseas que se ejecute el trabajo de Cloud Dataflow (como us-central1).
  • Reemplaza [YOUR_INSTANCE_ID] por el ID de la instancia de Cloud Spanner.
  • Reemplaza [YOUR_DATABASE_ID] por el ID de la base de datos de Cloud Spanner.
  • Reemplaza [GCS_PATH_TO_IMPORT_MANIFEST] por la ruta de Cloud Storage al archivo de manifiesto de importación.
  • Reemplaza [JOB_NAME] por un nombre a elección para el trabajo. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para que sea válido.
POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/locations/[DATAFLOW_REGION]/templates:launch?gcsPath=gs://dataflow-templates/[VERSION]/GCS_Text_to_Cloud_Spanner

{
   "jobName": "[JOB_NAME]",
   "parameters": {
       "instanceId": "[YOUR_INSTANCE_ID]",
       "databaseId": "[YOUR_DATABASE_ID]",
       "importManifest": "[GCS_PATH_TO_IMPORT_MANIFEST]"
   },
   "environment": {
       "machineType": "n1-standard-2"
   }
}

Conectividad a bases de datos de Java (JDBC) para BigQuery

La plantilla de JDBC a BigQuery es una canalización por lotes que copia los datos de una tabla de base de datos relacional a una tabla de BigQuery existente. Esta canalización utiliza JDBC para conectarse a las bases de datos relacionales. Puedes usar esta plantilla para copiar datos desde cualquier base de datos relacional con controladores de JDBC disponibles en BigQuery. Para obtener una capa adicional de protección, también puedes pasar una clave de Cloud KMS junto con un nombre de usuario, contraseña y parámetros de string de conexión codificados en Base64 encriptados con la clave de Cloud KMS. Consulta el extremo de encriptación de la API de Cloud KMS para obtener más información sobre cómo encriptar tus parámetros de nombre de usuario, contraseña y string de conexión.

Requisitos para esta canalización:

  • Los controladores de JDBC de la base de datos relacional deben estar disponibles.
  • La tabla de BigQuery debe existir antes de que se ejecute la canalización.
  • La tabla de BigQuery debe tener un esquema compatible.
  • La base de datos relacional debe ser accesible desde la subred donde se ejecuta Cloud Dataflow.

Parámetros de la plantilla

Parámetro Descripción
driverJars Lista separada por comas de los archivos jar del controlador. Por ejemplo, gs://<my-bucket>/driver_jar1.jar,gs://<my-bucket>/driver_jar2.jar.
driverClassName Nombre de la clase del controlador de JDBC. Por ejemplo, com.mysql.jdbc.Driver.
connectionURL String de la URL de la conexión de JDBC. Por ejemplo, jdbc:mysql://some-host:3306/sampledb. Se puede pasar como una string codificada en Base64 encriptada con una clave de Cloud KMS.
query Consulta que se ejecutará en la fuente para extraer los datos. Por ejemplo, select * from sampledb.sample_table.
outputTable Ubicación de la tabla de resultados de BigQuery, en el formato de <my-project>:<my-dataset>.<my-table>.
bigQueryLoadingTemporaryDirectory Directorio temporal para el proceso de carga de BigQuery. Por ejemplo, gs://<my-bucket>/my-files/temp_dir.
connectionProperties (Opcional) String de propiedades para usar en la conexión de JDBC. Por ejemplo, unicode=true&characterEncoding=UTF-8.
username (Opcional) Nombre de usuario para usar en la conexión de JDBC. Se puede pasar como una string codificada en Base64 encriptada con una clave de Cloud KMS.
password (Opcional) Contraseña para usar en la conexión de JDBC. Se puede pasar como una string codificada en Base64 encriptada con una clave de Cloud KMS.
KMSEncryptionKey (Opcional) Clave de encriptación de Cloud KMS para desencriptar el nombre de usuario, la contraseña y la string de conexión. Si se pasa la clave de Cloud KMS, el nombre de usuario, la contraseña y la string de conexión deben pasarse encriptados.

Ejecuta la plantilla de JDBC a BigQuery

CONSOLE

Ejecuta desde Google Cloud Platform Console
  1. Ve a la página Cloud Dataflow en GCP Console.
  2. Ir a la página Cloud Dataflow
  3. Haz clic en Crear un trabajo a partir de una plantilla (Create job from template).
  4. Botón Crear un trabajo a partir de una plantilla de Cloud Platform Console
  5. Selecciona the JDBC to BigQuery template en el menú desplegable Plantilla de Cloud Dataflow.
  6. Ingresa un nombre para el trabajo en el campo Nombre del trabajo. El nombre de tu trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  7. Ingresa los valores de parámetros en los campos de parámetros provistos.
  8. Haz clic en Ejecutar trabajo.

GCLOUD

Ejecuta desde la herramienta de línea de comandos de gcloud

Nota: Si quieres usar la herramienta de línea de comandos de gcloud para ejecutar plantillas, debes tener la versión 138.0.0 o superior del SDK de Cloud.

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/Jdbc_to_BigQuery

En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza YOUR_PROJECT_ID por el ID del proyecto.
  • Reemplaza JOB_NAME por el nombre de trabajo que prefieras. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza DRIVER_PATHS por las rutas de Cloud Storage separadas por comas de los controladores de JDBC.
  • Reemplaza DRIVER_CLASS_NAME por el nombre de la clase del controlador.
  • Reemplaza JDBC_CONNECTION_URL por la URL de conexión de JDBC.
  • Reemplaza SOURCE_SQL_QUERY por la consulta de SQL que se ejecutará en la base de datos de origen.
  • Reemplaza YOUR_DATASET por tu conjunto de datos de BigQuery y reemplaza YOUR_TABLE_NAME por el nombre de la tabla de BigQuery.
  • Reemplaza PATH_TO_TEMP_DIR_ON_GCS por la ruta de Cloud Storage al directorio temporal.
  • Si es necesario, reemplaza CONNECTION_PROPERTIES por las propiedades de conexión de JDBC.
  • Reemplaza CONNECTION_USERNAME por el nombre de usuario de conexión de JDBC.
  • Reemplaza CONNECTION_PASSWORD por la contraseña de la conexión de JDBC.
  • Reemplaza KMS_ENCRYPTION_KEY por la clave de encriptación de Cloud KMS.
gcloud dataflow jobs run JOB_NAME \
    --gcs-location gs://dataflow-templates/latest/Jdbc_to_BigQuery \
    --parameters \
driverJars=DRIVER_PATHS,\
driverClassName=DRIVER_CLASS_NAME,\
connectionURL=JDBC_CONNECTION_URL,\
query=SOURCE_SQL_QUERY,\
outputTable=YOUR_PROJECT_ID:YOUR_DATASET.YOUR_TABLE_NAME,
bigQueryLoadingTemporaryDirectory=PATH_TO_TEMP_DIR_ON_GCS,\
connectionProperties=CONNECTION_PROPERTIES,\
username=CONNECTION_USERNAME,\
password=CONNECTION_PASSWORD,\
KMSEncryptionKey=KMS_ENCRYPTION_KEY

API

Ejecuta desde la API de REST

Cuando ejecutes esta plantilla, necesitarás la ruta de acceso de Cloud Storage a ella:

gs://dataflow-templates/VERSION/Jdbc_to_BigQuery

Para ejecutar esta plantilla con una solicitud a la API de REST, envía una solicitud HTTP POST con tu ID del proyecto. Esta solicitud requiere autorización.

En este ejemplo, debes reemplazar los siguientes valores:

  • Reemplaza YOUR_PROJECT_ID por el ID del proyecto.
  • Reemplaza JOB_NAME por el nombre de trabajo que prefieras. El nombre del trabajo debe coincidir con la expresión regular [a-z]([-a-z0-9]{0,38}[a-z0-9])? para ser válido.
  • Reemplaza DRIVER_PATHS por las rutas de Cloud Storage separadas por comas de los controladores de JDBC.
  • Reemplaza DRIVER_CLASS_NAME por el nombre de la clase del controlador.
  • Reemplaza JDBC_CONNECTION_URL por la URL de conexión de JDBC.
  • Reemplaza SOURCE_SQL_QUERY por la consulta de SQL que se ejecutará en la base de datos de origen.
  • Reemplaza YOUR_DATASET por tu conjunto de datos de BigQuery y reemplaza YOUR_TABLE_NAME por el nombre de la tabla de BigQuery.
  • Reemplaza PATH_TO_TEMP_DIR_ON_GCS por la ruta de Cloud Storage al directorio temporal.
  • Si es necesario, reemplaza CONNECTION_PROPERTIES por las propiedades de conexión de JDBC.
  • Reemplaza CONNECTION_USERNAME por el nombre de usuario de conexión de JDBC.
  • Reemplaza CONNECTION_PASSWORD por la contraseña de la conexión de JDBC.
  • Reemplaza KMS_ENCRYPTION_KEY por la clave de encriptación de Cloud KMS.
POST https://dataflow.googleapis.com/v1b3/projects/YOUR_PROJECT_ID/templates:launch?gcsPath=gs://dataflow-templates/latest/Jdbc_to_BigQuery
{
   "jobName": "JOB_NAME",
   "parameters": {
       "driverJars": "DRIVER_PATHS",
       "driverClassName": "DRIVER_CLASS_NAME",
       "connectionURL": "JDBC_CONNECTION_URL",
       "query": "SOURCE_SQL_QUERY",
       "outputTable": "YOUR_PROJECT_ID:YOUR_DATASET.YOUR_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" }
}
¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

¿Necesitas ayuda? Visita nuestra página de asistencia.