Programa secuencias de comandos y notebooks de SQL

Programar secuencias de comandos y notebooks de SQL te permite poner en funcionamiento los recursos que se crearon en el Workbench de exploración de datos (Explorar).

Programar una secuencia de comandos de SQL o un notebook crea una tarea de Dataplex que se ejecuta a una hora predeterminada, una vez o de forma recurrente. En cada ejecución, se crea un trabajo que captura los metadatos de ejecución, como la hora de inicio y finalización, el estado, los registros y los resultados generados.

Cuando se activa una ejecución para una secuencia de comandos de SQL o un notebook programados, se ejecuta la versión actual del notebook o la secuencia de comandos de SQL. Esto significa que, si programas un notebook o una secuencia de comandos SQL y, luego, actualizas su contenido, la actualización también se refleja en las ejecuciones programadas del notebook o la secuencia de comandos SQL.

Costos

Las secuencias de comandos de SQL y los notebooks programados activan la ejecución de trabajos con Dataproc Serverless. Los usos se cobran según el modelo de precios y los cargos de Dataproc. aparecerán en Dataproc y no en Dataplex.

Antes de comenzar

Revisa y completa los requisitos previos que se describen en los siguientes documentos:

  • La sección Antes de comenzar de Cómo usar la mesa de trabajo de exploración de datos
  • La sección Antes de comenzar de Programa tareas personalizadas de Spark y SparkSQL

Si una secuencia de comandos de SQL o una programación de notebooks usan la API de BigQuery, debes otorgarle a la cuenta de servicio el rol de consumidor de uso del servicio (roles/serviceusage.serviceUsageConsumer).

Limitaciones conocidas

  • Cuando se programa un notebook con la consola de Google Cloud, los paquetes adicionales de Python que se configure en el entorno seleccionado no estará disponible en el entorno de ejecución para el notebook programado. Para que estén disponibles en el entorno de ejecución, debes crear un programa de notebook que haga referencia a un de contenedor con los paquetes adicionales necesarios. Para obtener más información, consulta Programa notebooks con paquetes personalizados.

  • No se admite el uso de la consola de Google Cloud para hacer referencia a imágenes de contenedores personalizados cuando se programan notebooks. En su lugar, usa gcloud CLI.

  • No puedes editar una programación una vez creada. Para actualizar los parámetros del programa, debes volver a crear el programa con parámetros nuevos.

  • No puedes definir una versión específica de una secuencia de comandos o notebook de SQL para usar en un cronograma. Cuando se activa el programa, se usa la versión actual de la secuencia de comandos de SQL o el notebook.

  • Cuando se programan secuencias de comandos y notebooks de SQL con la consola de Google Cloud, se usa la subred predeterminada. Para especificar otra red o subred, usa gcloud CLI.

Además, revisa las limitaciones conocidas de Explorar.

Crea y administra programaciones para secuencias de comandos de SQL

Configuración del entorno de ejecución para secuencias de comandos de SQL programadas

Cuando se programa una secuencia de comandos de SQL, se ejecuta como una tarea de Dataplex. Cuando se crea un programa con la consola de Google Cloud, los parámetros correspondientes del entorno de ejecución de la tarea para la SQL programada se heredan del entorno de esa secuencia de comandos de SQL en función del siguiente asignación:

Parámetro de configuración del entorno Parámetro de configuración de la tarea de la secuencia de comandos de SQL programada
Tamaño del disco principal Imagen / propiedades del contenedor:
spark.dataproc.driver.disk.size
spark.dataproc.executor.disk.size
Cantidad de nodos Recuento por lotes o ejecutores
Cantidad máxima de nodos Recuento de ejecutores por lotes o máximo
Versión de la imagen No se hereda
Archivos JAR Imagen de contenedor o archivos JAR de Java
Paquetes de Python No se hereda
Propiedades adicionales Imagen o propiedades del contenedor

Programa una secuencia de comandos de SQL

Console

  1. En la consola de Google Cloud, ve a la página Explorar de Dataplex.

    Ir a Explorar de Dataplex

  2. Selecciona una secuencia de comandos de SQL que quieras programar, ya sea seleccionando una sola Secuencia de comandos de SQL de la lista de Secuencias de comandos de Spark SQL o abriendo una secuencia de comandos de SQL en el Editor de Spark SQL

  3. En el menú Programación, haz clic en Crear programación.

  4. En el campo Nombre de la programación, ingresa un nombre para la instancia programada.

  5. En la sección Opciones de programación, selecciona si quieres ejecutar la secuencia de comandos de SQL. solo una vez o de forma recurrente:

    1. Si seleccionas Ejecutar una vez, especifica si quieres ejecutar la secuencia de comandos de SQL de inmediato. o en una hora programada con las opciones del menú Inicio. En el caso de una ejecución programada, especifica la fecha de inicio y la hora de ejecución.

    2. Si seleccionas Repetir, especifica si quieres ejecutar la secuencia de comandos de SQL a diario, semanalmente mensual o según un programa personalizado que se especifique con la expresión cron. Además, especifica la fecha de inicio y la hora de ejecución de la ejecución programada inicial.

  6. En la sección Destino de los resultados, haz lo siguiente:

    1. En el campo Nombre de la carpeta de salida, haz clic en Explorar y selecciona una carpeta El bucket de Cloud Storage en el que quieres que se almacenen los resultados de la secuencia de comandos.

    2. Haz clic en Seleccionar.

    3. Selecciona el Formato de salida de la secuencia de comandos. Los formatos admitidos son CSV, JSON, ORC y Parquet.

  7. En la sección Credenciales de la secuencia de comandos programada, selecciona una cuenta de servicio del menú Cuenta de servicio del usuario.

  8. Haga clic en Programar (Schedule).

gcloud

Para obtener información sobre cómo programar secuencias de comandos de SQL con gcloud CLI, consulta Programa una tarea de SparkSQL.

REST

Utiliza el Explorador de APIs para crear una tarea.

Administra las programaciones de secuencias de comandos de SQL

Console

Abre la lista de todas las programaciones de secuencias de comandos de SQL

  1. En a consola de Google Cloud, ve a la página Proceso de Dataplex.

  2. Haz clic en la pestaña Consultas programadas para ver la lista de programaciones de secuencias de comandos SQL.

Abre la lista de todas las programaciones de una secuencia de comandos de SQL específica.

  1. En la consola de Google Cloud, ve a la página Explorar de Dataplex.

  2. Selecciona la secuencia de comandos de SQL requerida.

  3. En el menú Programación, haz clic en Ver programaciones.

    Se abrirá la pestaña Consultas programadas con una lista de programaciones de secuencias de comandos de SQL filtradas con la secuencia de comandos de SQL seleccionada.

Consulta los detalles de una programación de secuencia de comandos de SQL

  1. Ve a la pestaña Consultas programadas y selecciona el programa de secuencia de comandos de SQL requerido.

  2. Haz clic en la pestaña Detalles para ver los detalles del programa de secuencia de comandos de SQL y una vista previa del contenido de la secuencia de comandos de SQL programada.

Activa y desactiva una programación de secuencia de comandos de SQL

  1. Ve a la pestaña Consultas programadas y selecciona el programa de secuencia de comandos de SQL requerido.

  2. Haz clic en Inhabilitar para desactivar una programación activa de secuencias de comandos SQL.

  3. Haz clic en Habilitar para activar una programación de secuencia de comandos de SQL inactiva.

Borra una programación de secuencia de comandos de SQL existente

  1. Ve a la pestaña Consultas programadas y selecciona el programa de secuencia de comandos de SQL requerido.

  2. Haz clic en Borrar para borrar de forma permanente una programación de secuencia de comandos de SQL existente.

Consulta registros y administra un programa de secuencias de comandos de SQL

  1. Ve a la pestaña Consultas programadas y selecciona la programación de la secuencia de comandos de SQL requerida.

  2. Haz clic en la pestaña Trabajos y, luego, en el ID de trabajo de la instancia de SQL programada. de secuencia de comandos que quieres ver.

  3. Haz clic en Ver registros para ver los registros relacionados con la secuencia de comandos de SQL programada que se ejecutó en Cloud Logging.

  4. Haz clic en el ID de lote de Dataproc para abrir la página de Dataproc en la consola de Google Cloud. Accede a los detalles de la sesión de Dataproc Serverless correspondiente.

  5. Haz clic en Administrar en Cloud Storage junto a la etiqueta Salida para abrir la página de Cloud Storage. en la consola de Google Cloud. Accede a los detalles del bucket correspondiente de Cloud Storage que contiene el resultado de la ejecución de la secuencia de comandos de SQL.

gcloud

Para obtener información sobre la supervisión de secuencias de comandos de SQL programadas con gcloud CLI, consulta la pestaña gcloud en Supervisa tu tarea.

Para obtener información sobre cómo administrar secuencias de comandos de SQL programadas con gcloud CLI, consulta la pestaña gcloud en Administra la programación.

REST

Para obtener información sobre cómo supervisar secuencias de comandos de SQL programadas con REST, consulta la pestaña REST en Supervisa tu tarea.

Para obtener información sobre cómo administrar secuencias de comandos programadas de SQL con REST, consulta la pestaña REST en Administra la programación.

Salida de una secuencia de comandos de SQL programada

El resultado de cada ejecución de una secuencia de comandos de SQL programada se almacena en la ubicación que especificaste para la carpeta de Cloud Storage, en la siguiente estructura:

CLOUD_STORAGE_FOLDER_LOCATION/projects/PROJECT_ID/locations/LOCATION_ID/lakes/LAKE_ID/tasks/TASK_ID/JOB_ID/QUERY_NUMBER

Crea y administra programas para notebooks

Configuración del entorno de ejecución para notebooks programados

Cuando se programa un notebook, se ejecuta como una tarea de Dataplex. Cuando se crea un programa con la consola de Google Cloud, el entorno de ejecución de la tarea correspondiente Los parámetros para notebooks programados se heredan del entorno de ese notebook con base en la siguiente asignación:

Parámetro de configuración del entorno Parámetro de configuración de la tarea del notebook programada
Tamaño del disco principal Imagen / propiedades del contenedor:
spark.dataproc.driver.disk.size
spark.dataproc.executor.disk.size
Cantidad de nodos Recuento por lotes o ejecutores
Cantidad máxima de nodos Recuento de ejecutores por lotes o máximo
Versión de la imagen No se hereda
Archivos JAR Imagen de contenedor o archivos JAR de Java
Paquetes de Python No se hereda
Propiedades adicionales Imagen o propiedades del contenedor

Programa notebooks con paquetes personalizados

Para los notebooks interactivos, cuando configuras un entorno, Dataplex te permite especificar paquetes personalizados de Python para instalar en sesiones de usuario aprovisionadas para el entorno. Cuando se programa un notebook de este tipo, los paquetes personalizados de Python configurados en su entorno no están disponibles en el entorno de ejecución para notebook programado y el entorno de ejecución predeterminado solo tiene los componentes de la versión 1.0 del entorno de ejecución de Spark sin servidores de Dataproc. Para que los paquetes de Python personalizados estén disponibles en el entorno de ejecución de los notebooks programados, proporciona una imagen de contenedor personalizada con los paquetes personalizados necesarios.

No se admite especificar una imagen de contenedor personalizada cuando se programa un notebook con la consola de Google Cloud. En su lugar, usa gcloud CLI. Para obtener más información, consulta Programa un notebook.

Si programas un notebook con un entorno que tiene paquetes personalizados configurados, recibirás la siguiente advertencia:

Selected environment  has additional Python packages configured.
These packages will not be available in the default runtime for the scheduled notebook
when scheduling in the Console. To make the required additional Python packages
available in the runtime, please create Notebook Schedule using gcloud command
instead, referencing a container image with required additional packages.

Compila una imagen de contenedor personalizada para notebooks programados

Si deseas obtener información para establecer una imagen de contenedor para notebooks programados y instalar los paquetes de Python personalizados necesarios en el Dockerfile de la imagen de contenedor, consulta Compila una imagen de contenedor personalizada para Dataproc Serverless para Spark.

Asegúrate de haber instalado los siguientes paquetes de conda en la imagen del contenedor:

  • gcsfs
  • google-cloud-bigquery
  • google-cloud-storage
  • google-auth
  • ipykernel
  • papermill

Para instalar los componentes de gcloud en una imagen de contenedor, abre el archivo Dockerfile de la imagen de contenedor y completa los siguientes pasos:

  1. Agrega el paquete google-cloud-sdk a la lista de paquetes conda que se instalarán.

  2. Agrega las siguientes líneas después del paso de instalación de paquetes de conda:

    # (Optional) Installing gcloud components
    RUN gcloud components install alpha beta bq
    

Programa un notebook

Console

  1. En la consola de Google Cloud, ve a la página Explorar de Dataplex.

    Ir a Explorar de Dataplex

  2. Selecciona el notebook que deseas programar. Para ello, selecciona un solo notebook en la vista Notebooks o abre uno en la página de detalles del notebook.

  3. En el menú Programación, haz clic en Crear programación.

  4. En el campo Nombre de la programación, ingresa un nombre para la instancia programada.

  5. En la sección Schedule Options, selecciona si quieres ejecutar el notebook solo una vez o de forma recurrente:

    1. Si seleccionas Run Once, especifica si quieres ejecutar el notebook de inmediato o a una hora programada con las opciones del menú Start. En el caso de una ejecución programada, especifica la fecha de inicio y la hora de ejecución.

    2. Si seleccionas Repetir, especifica si deseas ejecutar el notebook a diario, semanalmente, mensualmente o en un programa personalizado especificado con la expresión cron. Además, especifica la fecha de inicio y la hora de ejecución de la ejecución programada inicial.

  6. En la sección Destino de los resultados, elige una ubicación en la que desees que se almacene el resultado del notebook:

    1. En el campo Nombre de la carpeta de salida, haz clic en Explorar y selecciona una carpeta en un bucket de Cloud Storage en la que deseas que se almacene el resultado del notebook.

    2. Haz clic en Seleccionar.

    3. Selecciona el Formato de salida de la secuencia de comandos. Los formatos compatibles son CSV, JSON, ORC y Parquet.

  7. En la sección Credenciales de notebook programadas, selecciona una cuenta de servicio del menú Cuenta de servicio del usuario.

  8. En la sección Parámetros, agrega parámetros de ejecución para el notebook como par clave-valor. pares haciendo clic en Agregar nuevo.

  9. Haga clic en Programar (Schedule).

gcloud

Ejecuta el comando de gcloud CLI descrito en Programa una tarea de Spark (Java o Python) con los siguientes parámetros adicionales:

Parámetro Descripción
--notebook Es la ruta de acceso al contenido de un notebook para el notebook de entrada. Se puede acceder a los argumentos de ejecución como variables de entorno. Por ejemplo, TASK_key=value.
Nota: En la documentación de referencia de gcloud para programar notebooks como tareas, se menciona que el valor del parámetro --notebook puede ser el URI de Cloud Storage del archivo de notebook. No se admite esta opción. Solo debes especificar la ruta de acceso al notebook Contenido para el parámetro --notebook.
--notebook-archive-uris Los URI de Cloud Storage de los archivos que se extraerán en el directorio de trabajo de cada uno ejecutor. Los tipos de archivo compatibles son JAR, tar, tar.gz, tgz y zip.
--notebook-file-uris Los URI de Cloud Storage de los archivos que se colocarán en el directorio de trabajo de cada ejecutor.
Calcula los recursos necesarios para una tarea cuando se usa Dataproc Serverless.
--notebook-batch-executors-count Cantidad de ejecutores de trabajos.
--notebook-batch-max-executors-count Cantidad máxima de ejecutores configurables.
Si notebook-batch-max-executors-count es mayor que notebook-batch-executors-count, se habilita el ajuste de escala automático.
Configuración del entorno de ejecución de la imagen de contenedor
--notebook-container-image Opcional: Es la imagen de contenedor personalizada para la tarea.
--notebook-container-image-java-jars Una lista de archivos JAR de Java para agregar a la ruta de clase. La entrada válida incluye URIs de Cloud Storage para objetos binarios JAR. Por ejemplo, gs://BUCKET_NAME/my/path/to/file.jar.
--notebook-container-image-properties Son las propiedades que se deben establecer en los archivos de configuración del daemon.
Las claves de propiedad se especifican en el formato prefix:property. Por ejemplo,:
core:hadoop.tmp.dir.
Para obtener más información, consulta Propiedades del clúster.
Red de VPC de Cloud que se usa para ejecutar la infraestructura
--notebook-vpc-network-tags Lista de etiquetas de red para aplicar al trabajo.
El identificador de la red de VPC de Cloud Puedes especificar como máximo una de las siguientes opciones.
--notebook-vpc-network-name La red de VPC de Cloud en la que se ejecuta el trabajo. De forma predeterminada, la red de VPC de Cloud llamada Se usa la configuración predeterminada dentro del proyecto.
--notebook-vpc-sub-network-name La subred de VPC de Cloud en la que se ejecuta el trabajo.
Ubicación de los resultados del notebook
--execution-args Para las tareas de notebook, el siguiente argumento es obligatorio y necesita se pasará como TASK_ARGS.
--execution-args=^::^TASK_ARGS="--output_location,CLOUD_STORAGE_URI_OF_OUTPUT_DIRECTORY"

El siguiente es un ejemplo del comando gcloud que se usa para programar notebooks:

gcloud dataplex tasks create sample-task --project=sample-project --location=us-central1 --lake=my-lake --trigger-type=ON_DEMAND --notebook="projects/my-project-id/locations/us-central1/lakes/my-lake/content/my-notebook.ipynb" --execution-service-account=associated-service-account@sample-project.iam.gserviceaccount.com  --execution-args=^::^TASK_ARGS="--output_location,gs://my-bucket/Demo" --notebook-batch-executors-count=2 --notebook-batch-max-executors-count=5 --notebook-container-image=container-image --notebook-container-image-java-jars=java-jar1,java-jar-2

REST

Usa el Explorador de API para crear una tarea.

Administra las programaciones de notebooks

Console

Abrir la lista de todos los programas de notebooks

  1. En a consola de Google Cloud, ve a la página Proceso de Dataplex.

  2. Haz clic en la pestaña Cuadernos programados para ver la lista de programaciones de secuencias de comandos SQL.

Abrir la lista de todos los programas de un notebook específico

  1. En la consola de Google Cloud, ve a la página Explorar de Dataplex.

  2. Selecciona el notebook requerido.

  3. En el menú Programación, haz clic en Ver programaciones.

    Se abrirá la pestaña Consultas programadas con una lista de programas de notebooks filtrados según el notebook seleccionado.

Visualiza los detalles de un programa de notebook

  1. Ve a la pestaña Notebooks programados y selecciona el programa de notebooks requerido.

  2. Haz clic en los detalles de Detalles del programa del notebook y una vista previa de su contenido.

Activa y desactiva un programa de notebooks

  1. Ve a la pestaña Notebook programado y selecciona el programa del notebook requerido.

  2. Haz clic en Inhabilitar para desactivar un programa de notebook activo.

  3. Haz clic en Habilitar para activar una programación de notebook inactiva.

Borrar un programa de notebook existente

  1. Ve a la pestaña Cuaderno programado y selecciona el programa de cuaderno requerido.

  2. Haz clic en Borrar para borrar de forma permanente una programación de notebook existente.

Consulta registros y administra una programación de notebooks

  1. Ve a la pestaña Notebook programado y selecciona el programa del notebook requerido.

  2. Haz clic en la pestaña Trabajos y, luego, en el ID de trabajo de la ejecución programada del notebook que deseas ver.

  3. En la sección Preview Output, revisa el resultado de la ejecución del notebook.

  4. Haz clic en Ver registros para ver los registros relacionados con la ejecución de notebook programada seleccionada en Cloud Logging.

  5. Haz clic en el ID de lote de Dataproc para abrir la página de Dataproc en la consola de Google Cloud. Accede a los detalles de la sesión de Dataproc Serverless correspondiente.

  6. Haz clic en Administrar en Cloud Storage junto a la etiqueta Salida para abrir la página de Cloud Storage. en la consola de Google Cloud. Acceder a los detalles del servicio de Cloud Storage correspondiente bucket que contiene el resultado de la ejecución del notebook.

gcloud

Para obtener información sobre cómo supervisar notebooks programados con la CLI de gcloud, consulta la pestaña gcloud en Supervisa tu tarea.

Para obtener información sobre cómo administrar notebooks programados con gcloud CLI, consulta la pestaña gcloud en Administra la programación.

REST

Para obtener información sobre cómo supervisar notebooks programados con REST, consulta la pestaña REST en Supervisa tu tarea.

Para obtener información sobre cómo administrar notebooks programados con REST, consulta la pestaña REST en Administra la programación.

Salida de un notebook programado

El resultado de cada ejecución de un notebook programado se almacena en la ubicación que especificaste para la carpeta de Cloud Storage, en la siguiente estructura:

CLOUD_STORAGE_FOLDER_LOCATION/projects/PROJECT_ID/locations/LOCATION_ID/lakes/LAKE_ID/tasks/TASK_ID/JOB_ID/QUERY_NUMBER

¿Qué sigue?