Tutorial: Cargar datos externos mediante Microsoft Entra ID
En este artículo se explica cómo crear tablas externas mediante el tránsito de Microsoft Entra ID.
Requisitos previos
Los recursos siguientes son necesarios para completar este tutorial:
- Un grupo de SQL dedicado y un área de trabajo de Azure Synapse Analytics
Conceder a la cuenta de Microsoft Entra ID acceso a la cuenta de almacenamiento
En este ejemplo se usa una cuenta de Microsoft Entra ID (o grupo) para autenticarse en los datos de origen.
Para habilitar el acceso a los datos en cuentas de Azure Data Lake Storage (ADLS) Gen2, debe conceder a la cuenta de Microsoft Entra ID (o grupo) acceso a la cuenta de origen. Para conceder los permisos adecuados, siga estos pasos:
- En Azure Portal, busque la cuenta de almacenamiento.
- Seleccione Almacenamiento de datos ->Contenedoresy vaya a la carpeta donde se encuentran los datos de origen a los que necesita acceder la tabla externa.
- Seleccione Control de acceso (IAM).
- Seleccione Agregar -> Agregar asignación de roles.
- En la lista de roles de función de trabajo, seleccione Lector de datos de blobs de almacenamiento y seleccione Siguiente.
- En la página Agregar asignación de roles, seleccione + Seleccionar miembros. Se abre el panel Seleccionar miembros en la esquina derecha.
- Escriba el nombre de la cuenta de Microsoft Entra ID deseada. Cuando se muestre, elija la cuenta deseada y elija Seleccionar.
- En la página Agregar asignación de roles, asegúrese de que la lista de miembros incluya la cuenta de Microsoft Entra ID deseada. Una vez comprobado, seleccione Revisar y asignar.
- En la página de confirmación, revise los cambios y seleccione Revisar y asignar.
La cuenta o grupo de Microsoft Entra ID ahora es miembro del rol Lector de datos de blob de almacenamiento y tiene acceso a la carpeta de origen.
Ingesta de datos mediante COPY INTO
La instrucción T-SQL COPY INTO
proporciona ingesta de datos flexible y de alto rendimiento en las tablas y es la estrategia principal para ingerir datos en las tablas de grupo de SQL dedicadas. Permite a los usuarios ingerir datos de ubicaciones externas sin tener que crear ninguno de los objetos de base de datos adicionales necesarios para las tablas externas.
La instrucción COPY INTO
usa el argumento CREDENTIAL
para especificar el método de autenticación que se usa para conectarse a la cuenta de origen. Sin embargo, al autenticarse mediante Microsoft Entra ID o en una cuenta de almacenamiento pública, no es necesario especificar CREDENTIAL
. Para ejecutar la instrucción COPY INTO
mediante una identidad administrada del área de trabajo para la autenticación, use el siguiente comando de T-SQL:
COPY INTO <TableName>
FROM 'https://<AccountName>.dfs.core.windows.net/<Container>/<Folder>/ '
WITH
(
[<CopyIntoOptions>]
);
Donde:
<TableName>
es el nombre de la tabla en la que ingerir datos.<AccountName>
es el nombre de la cuenta de ADLS Gen2.<Container>
es el nombre del contenedor dentro de la cuenta de almacenamiento donde se almacenan los datos de origen.<Folder>
es la carpeta (o ruta de acceso con subcarpetas) donde se almacenan los datos de origen dentro del contenedor. También puede proporcionar un nombre de archivo si apunta directamente a un único archivo.<CopyIntoOptions>
es la lista de cualquier otra opción que desee proporcionar a la instrucciónCOPY INTO
.
Para obtener más información y explorar la sintaxis completa, consulte COPY INTO (Transact-SQL).
Creación de los objetos de base de datos necesarios
Las tablas externas requieren que se creen los siguientes objetos:
- Origen de datos externo que apunte a la carpeta de origen
- Formato de archivo externo que defina el formato de los archivos de origen
- Definición de tabla externa que se usa para las consultas
Para seguir estos pasos, debe usar el editor de SQL en el área de trabajo de Azure Synapse o el cliente SQL preferido conectado al grupo de SQL dedicado. Echemos un vistazo a estos pasos en detalle.
Creación del origen de datos externo
El siguiente paso consiste en crear un origen de datos externo que especifique dónde residen los datos de origen utilizados por la tabla externa.
Para crear el origen de datos externo, use el siguiente comando T-SQL:
CREATE EXTERNAL DATA SOURCE <ExternalDataSourceName>
WITH (
TYPE = HADOOP,
LOCATION = 'abfss://<Container>@<AccountName>.dfs.core.windows.net/<Folder>/
);
Donde:
<ExternalDataSourceName>
es el nombre que desea usar para el origen de datos externo.<AccountName>
es el nombre de la cuenta de ADLS Gen2.<Container>
es el nombre del contenedor dentro de la cuenta de almacenamiento donde se almacenan los datos de origen.<Folder>
es la carpeta (o ruta de acceso con subcarpetas) donde se almacenan los datos de origen dentro del contenedor.
Para obtener más información sobre los orígenes de datos externos, consulte Crear origen de datos externos (Transact-SQL).
Creación del formato de archivo externo
El siguiente paso es crear el formato de archivo externo. Especifica el diseño real de los datos a los que hace referencia la tabla externa.
Para crear el formato de archivo externo, use el siguiente comando T-SQL. Reemplace <FileFormatName>
por el nombre que desea usar para el formato de archivo externo.
CREATE EXTERNAL FILE FORMAT <FileFormatName>
WITH (
FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS (
FIELD_TERMINATOR = ',',
STRING_DELIMITER = '"',
FIRST_ROW = 2,
USE_TYPE_DEFAULT = True
)
);
En este ejemplo, ajuste parámetros como FIELD_TERMINATOR
, STRING_DELIMITER
, FIRST_ROW
y otros según sea necesario de acuerdo con los datos de origen. Para obtener más opciones de formato y obtener más información, vea Crear formato de archivo externo (Transact-SQL).
Creación de la tabla externa
Ahora que se han creado los objetos necesarios que contienen los metadatos para acceder de forma segura a los datos externos, es el momento de crear la tabla externa. Para crear la tabla externa, use el siguiente comando T-SQL:
-- Adjust the table name and columns to your desired name and external table schema
CREATE EXTERNAL TABLE <ExternalTableName> (
Col1 INT,
Col2 NVARCHAR(100),
Col4 INT
)
WITH
(
LOCATION = '<Path>',
DATA_SOURCE = <ExternalDataSourceName>,
FILE_FORMAT = <FileFormatName>
);
Donde:
<ExternalTableName>
es el nombre que desea usar para la tabla externa.<Path>
es la ruta de acceso de los datos de origen, en relación con la ubicación especificada en el origen de datos externo.<ExternalDataSourceName>
es el nombre del origen de datos externo que creó.<FileFormatName>
es el nombre del formato de archivo externo que creó.
Asegúrese de ajustar el nombre y el esquema de la tabla al nombre deseado y al esquema de los datos de los archivos de origen.
En este momento, se crean todos los metadatos necesarios para acceder a la tabla externa. Para probar la tabla externa, use una consulta como el ejemplo de T-SQL siguiente para validar el trabajo:
SELECT TOP 10 Col1, Col2 FROM <ExternalTableName>;
Si todo se configuró correctamente, debería ver los datos de los datos de origen como resultado de esta consulta.
Para obtener más información sobre CREATE EXTERNAL TABLE
, vea Crear tabla externa (Transact-SQL).