Compartir a través de


Carga de datos mediante COPY INTO con una entidad de servicio

En este artículo se describe cómo usar el COPY INTO comando para cargar datos desde un contenedor de Azure Data Lake Storage (ADLS) en la cuenta de Azure en una tabla de Databricks SQL.

En los pasos de este artículo se supone que tu administrador ha configurado un almacén de datos SQL para usar un principal de servicio de Azure Databricks para que puedas acceder a tus archivos de origen en ADLS. Si el administrador configuró una ubicación externa del catálogo de Unity con una credencial de almacenamiento, consulte Cómo cargar datos mediante COPY INTO con volúmenes de Unity Catalog o ubicaciones externas en su lugar. Si el administrador le dio credenciales temporales (un token SAS de Blob), siga los pasos descritos en Carga de datos mediante COPY INTO con credenciales temporales.

Databricks recomienda usar el comando COPY INTO para la carga incremental y masiva de datos con Databricks SQL.

Nota:

COPY INTO funciona bien para orígenes de datos que contienen miles de archivos. Databricks recomienda usar el Cargador automático para cargar millones de archivos, que no se admiten en Databricks SQL.

Antes de empezar

Antes de cargar los datos en Azure Databricks, asegúrese de tener lo siguiente:

  • Acceso a los datos de ADLS. El administrador debe completar primero los pasos descritos en Configuración del acceso a los datos para la ingesta, para que la instancia de Databricks SQL Warehouse pueda leer los archivos de origen.
  • Un almacén de Databricks SQL.
  • Permiso Can manage (Puede administrar) en SQL Warehouse.
  • Ruta de acceso a los datos de un contenedor de ADLS.
  • Estar familiarizado con la interfaz de usuario de Databricks SQL.

Paso 1: Confirmar el acceso a los datos en el almacenamiento en la nube

Para confirmar que tiene acceso a los datos correctos en el almacenamiento de objetos en la nube, haga lo siguiente:

  1. En la barra lateral, haga clic en Create > Query.

  2. En la barra de menús del editor de SQL, seleccione una instancia de SQL Warehouse.

  3. Pegue el siguiente código en el editor de SQL:

    select * from csv.<path>
    

    Reemplace por <path> la ruta de acceso del contenedor de ADLS que recibió del administrador. Por ejemplo, abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>.

  4. Haga clic en Ejecutar.

Paso 2: Crear una tabla

En este paso, se describe cómo crear una tabla en el área de trabajo de Azure Databricks para almacenar los datos entrantes.

  1. Pegue el siguiente código en el editor de SQL:

    CREATE TABLE <catalog_name>.<schema_name>.<table_name> (
      tpep_pickup_datetime  TIMESTAMP,
      tpep_dropoff_datetime TIMESTAMP,
      trip_distance DOUBLE,
      fare_amount DOUBLE,
      pickup_zip INT,
      dropoff_zip INT
    );
    
  2. Haga clic en Ejecutar.

Paso 3: Cargar los datos desde el almacenamiento en la nube en la tabla

En este paso se describe cómo cargar datos de un contenedor de ADLS en la tabla del área de trabajo de Azure Databricks.

  1. En la barra lateral, haga clic en Create > Query.

  2. En la barra de menús del editor de SQL, seleccione un SQL Warehouse y asegúrese de que el SQL Warehouse se esté ejecutando.

  3. Pegue el siguiente código en el editor de SQL. En este código, reemplace:

    • <container> con el nombre del contenedor de ADLS dentro de la cuenta de almacenamiento.
    • <storage-account> con el nombre de la cuenta de almacenamiento de ADLS.
    • <folder> con el nombre de la carpeta que contiene los datos.
    • <blob-sas-token> con el valor del token de SAS de blob que recibió del administrador.
    COPY INTO <catalog-name>.<schema-name>.<table-name>
    FROM 'abfss://<container>@<storage-account>.dfs.core.windows.net/<folder>'
    FILEFORMAT = CSV
    FORMAT_OPTIONS (
      'header' = 'true',
      'inferSchema' = 'true'
    );
    
    SELECT * FROM <catalog-name>.<schema-name>.<table-name>;
    

    Nota:

    FORMAT_OPTIONS es diferente de FILEFORMAT. En este caso, la opción header indica a Azure Databricks que trate la primera fila del archivo .csv como encabezado y las opciones inferSchema indican a Azure Databricks que determine automáticamente el tipo de datos de cada campo del archivo .csv.

  4. Haga clic en Ejecutar.

    Nota:

    Si hace clic en Run de nuevo, no se cargan datos nuevos en la tabla. Esto se debe a que el comando COPY INTO solo procesa lo que considera nuevos datos.

Limpieza

Puede limpiar los recursos asociados del área de trabajo si ya no quiere conservarlos.

Eliminación de las tablas

  1. En la barra lateral, haga clic en Create > Query.

  2. Seleccione una instancia de SQL Warehouse y asegúrese de que se está ejecutando SQL Warehouse.

  3. Pegue el código siguiente:

    DROP TABLE <catalog-name>.<schema-name>.<table-name>;
    
  4. Haga clic en Ejecutar.

  5. Mantenga el puntero sobre la pestaña de esta consulta y, a continuación, haga clic en el icono X.

Eliminación de las consultas en el editor de SQL

  1. En la barra lateral, haga clic en Editor de SQL.
  2. En la barra de menús del editor de SQL, mantenga el puntero sobre la pestaña de cada consulta que creó para este tutorial y, a continuación, haga clic en el icono X .

Recursos adicionales