Incorporación de datos de Azure Data Lake Storage Gen2

En este artículo se describe cómo incorporar datos a una nuevo área de trabajo de Azure Databricks desde Azure Data Lake Storage Gen2. Aprenderá a acceder de forma segura a los datos de origen en una ubicación de almacenamiento de objetos en la nube que se corresponda con un volumen del Unity Catalogy (recomendado) o una ubicación externa de Unity Catalog. A continuación, aprenderá a ingerir los datos de forma incremental en una tabla administrada de Unity Catalog mediante el cargador automático con Delta Live Tables.

Nota:

Para incorporar datos en Databricks SQL en lugar de en un cuaderno, consulte Carga de datos mediante tablas de transmisión en Databricks SQL.

Antes de empezar

Si no es administrador, en este artículo se supone que un administrador le ha proporcionado lo siguiente:

  • Acceso a un área de trabajo de Azure Databricks con Unity Catalog habilitado. Para más información, consulte Configuración y administración de Unity Catalog.

  • El permiso de READ FILES en el volumen externo de Unity Catalog o la ubicación externa de Unity Catalog que corresponde a la ubicación de almacenamiento en la nube que contiene los datos de origen. Para más información, consulte Creación de una ubicación externa para conectar el almacenamiento en la nube a Azure Databricks.

  • La ruta de acceso a los datos de origen.

    Ejemplo de ruta de acceso del volumen: /Volumes/<catalog>/<schema>/<volume>/<path>/<folder>

    Ejemplo de ruta de acceso de ubicación externa: abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>

  • Los privilegios USE SCHEMA y CREATE TABLE en el esquema en el que desea cargar datos.

  • Permiso de creación de clústeres o acceso a una directiva de clúster que define un clúster de canalización de Delta Live Tables (campo cluster_type establecido en dlt).

    Si la ruta de acceso a los datos de origen es una ruta de acceso de volumen, el clúster debe ejecutar Databricks Runtime 13.3 LTS o superior.

Importante

Si tiene alguna pregunta sobre estos requisitos previos, póngase en contacto con el administrador de la cuenta.

Paso 1: creación de un clúster

Para crear un clúster, haga lo siguiente:

  1. Inicie sesión en su área de trabajo de Azure Databricks.
  2. En la barra lateral, haga clic en Nuevo>Cluster.
  3. En la interfaz de usuario de clústeres, especifique un nombre único para el clúster.
  4. Si la ruta de acceso a los datos de origen es una ruta de acceso de volumen, para versión del runtime de Databricks Runtime, seleccione 13.2 o superior.
  5. Haga clic en Crear clúster.

Paso 2: Creación de un cuaderno de exploración de datos

En esta sección se describe cómo crear un cuaderno de exploración de datos para que pueda comprender los datos antes de crear la canalización de datos.

  1. En la barra lateral, haga clic en +Nuevo>Cuaderno.

    El cuaderno se adjunta automáticamente al último clúster que usó (en este caso, el clúster que creó en el Paso 1: Crear un clúster).

  2. Proporcionar un nombre para el cuaderno.

  3. Haga clic en el botón de idioma y, a continuación, seleccione Python o SQL en el menú desplegable. Python está seleccionado de forma predeterminada.

  4. Para confirmar el acceso a los datos de origen en ADLS Gen2, pegue el código siguiente en una celda del cuaderno, haga clic en Ejecutar menú y, a continuación, haga clic en Ejecutar celda.

    SQL

    LIST '<path-to-source-data>'
    

    Python

    %fs ls '<path-to-source-data>'
    

    Reemplace <path-to-source-data> por la ruta de acceso al directorio que contiene los datos.

    Esto muestra el contenido del directorio que contiene el conjunto de datos.

  5. Para ver un ejemplo de los registros para comprender mejor el contenido y el formato de cada registro, pegue lo siguiente en una celda del cuaderno, haga clic en Ejecutar menú y, a continuación, haga clic en Ejecutar celda.

    SQL

    SELECT * from read_files('<path-to-source-data>', format => '<file-format>') LIMIT 10
    

    Python

    spark.read.format('<file-format>').load('<path-to-source-data>').limit(10).display()
    

    Reemplace los siguientes valores:

    • <file-format>: un formato de archivo compatible. Consulte Opciones de formato de archivo.
    • <path to source data>: ruta de acceso a un archivo del directorio que contiene los datos.

    Esto muestra los diez primeros registros del archivo especificado.

Paso 3: Ingesta de datos sin procesar

Para ingerir datos sin procesar, haga lo siguiente:

  1. En la barra lateral, haga clic en Nuevo>Cuaderno.

    El cuaderno se adjunta automáticamente al último clúster que usó (en este caso, el clúster que creó anteriormente en este artículo).

  2. Proporcionar un nombre para el cuaderno.

  3. Haga clic en el botón de idioma y, a continuación, seleccione Python o SQL en el menú desplegable. Python está seleccionado de forma predeterminada.

  4. Pegue el código siguiente en una celda del cuaderno:

    SQL

    CREATE OR REFRESH STREAMING TABLE
      <table-name>
    AS SELECT
      *
    FROM
      STREAM read_files(
        '<path-to-source-data>',
        format => '<file-format>'
      )
    

    Python

    @dlt.table(table_properties={'quality': 'bronze'})
    def <table-name>():
      return (
         spark.readStream.format('cloudFiles')
         .option('cloudFiles.format', '<file-format>')
         .load(f'{<path-to-source-data>}')
     )
    

    Reemplace los siguientes valores:

    • <table-name>: un nombre para la tabla que contendrá los registros ingeridos.
    • <path-to-source-data>: ruta de acceso a los datos de origen.
    • <file-format>: un formato de archivo compatible. Consulte Opciones de formato de archivo.

Nota:

Delta Live Tables no está diseñado para ejecutarse de forma interactiva en celdas de cuaderno. La ejecución de una celda que contiene la sintaxis de Delta Live Tables en un cuaderno devuelve un mensaje sobre si la consulta es válida sintácticamente, pero no ejecuta lógica de consulta. En el paso siguiente se describe cómo crear una canalización a partir del cuaderno de ingesta que acaba de crear.

Paso 4: Creación y publicación de una canalización

Para crear una canalización y publicarla en Unity Catalog, haga lo siguiente:

  1. En la barra lateral, haga clic en Flujos de trabajo, haga clic en la pestaña Delta Live Tables y, a continuación, haga clic en Crear canalización.
  2. Escriba un nombre para la canalización.
  3. En modo de canalización, seleccione Desencadenado.
  4. En Código fuente, seleccione el cuaderno que contiene el código fuente de la canalización.
  5. En Destino, seleccione Unity Catalog.
  6. Para asegurarse de que Unity Catalog administra la tabla y cualquier usuario con acceso al esquema primario puede consultarla, seleccione un catálogo y un esquema de destino en las listas desplegables.
  7. Si no tiene permiso de creación de clústeres, seleccione una directiva de clúster que admita Delta Live Tables en la lista desplegable.
  8. En Opciones avanzadas, establezca el canal en Versión preliminar.
  9. Acepte todos los demás valores predeterminados y haga clic en Crear.

Paso 5: Programar la canalización

Para programar la canalización, haga lo siguiente:

  1. En la barra lateral, haga clic en Delta Live Tables.
  2. Haga clic en el nombre de la canalización que desea programar.
  3. Haga clic en Programar>Agregar una programación.
  4. En Nombre del trabajo, escriba un nombre para el trabajo.
  5. Establezca la Programación en Programado.
  6. Especifique el período, la hora de inicio y la zona horaria.
  7. Configure una o varias direcciones de correo electrónico para recibir alertas sobre el inicio, el éxito o el error de la canalización.
  8. Haga clic en Crear.

Pasos siguientes