Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Esto se aplica a:✅ almacén en Microsoft Fabric
El almacenamiento en Microsoft Fabric proporciona herramientas integradas de ingesta de datos. Use estas herramientas para ingerir datos en almacenes a escala mediante experiencias sin código o enriquecidas con código.
Elección de una herramienta de ingesta de datos
Elija una opción de ingesta de datos en función de los criterios siguientes:
- Use la instrucción COPY (Transact-SQL) para las operaciones de ingesta de datos enriquecidos con código. Proporciona el mayor rendimiento de ingesta de datos. Úselo cuando necesite agregar la ingesta de datos como parte de la lógica de Transact-SQL.
- Para empezar, consulte Ingesta de datos mediante la instrucción COPY.
- El Warehouse también admite la sentencia tradicional
BULK INSERTpor compatibilidad. En Fabric Data Warehouse, esta instrucción se corresponde con el comportamiento deCOPY INTOcon las opciones de carga clásicas. - La instrucción
COPYen Warehouse admite orígenes de datos de cuentas de almacenamiento de Azure y carpetas de OneLake lakehouse. - Especifique
Workspace Identityen la cláusulaCREDENTIALpara suplantar la identidad del área de trabajo de Fabric al acceder al origen. Por ejemplo:CREDENTIAL = (IDENTITY = 'Workspace Identity'). La declaración continúa ejecutándose en el contexto de seguridad SQL del usuario actual.
- Use la API de BCP (versión preliminar) para la ingesta directa del lado cliente cuando los datos están en el nivel de aplicación y no se pueden almacenar provisionalmente los archivos primero.
- Para empezar, consulte Ingesta de datos mediante BCP API (versión preliminar).
- BCP API admite scripts de bcp.exe y API de aplicación, como C#
SqlBulkCopyy JavaSQLServerBulkCopy. - Para la ingesta basada en archivos de mayor rendimiento, prefiera
COPY INTOsiempre que sea posible el almacenamiento provisional.
- Usa canalizaciones para flujos de trabajo de ingesta de datos robustos sin código o de bajo código que se ejecuten repetidamente, en un horario o que impliquen grandes volúmenes de datos.
- Para empezar, consulte Ingesta de datos en el almacenamiento mediante canalizaciones.
- Mediante el uso de canalizaciones, puede organizar flujos de trabajo sólidos para obtener una experiencia completa de extracción, transformación y carga (ETL). Esta experiencia incluye actividades para ayudar a preparar el entorno de destino, ejecutar instrucciones de Transact-SQL personalizadas, realizar búsquedas o copiar datos de un origen a un destino.
- Use flujos de datos para una experiencia sin código que permita transformaciones personalizadas para generar datos antes de la ingesta.
- Para empezar, consulte Ingesta de datos mediante un flujo de datos.
- Estas transformaciones incluyen (pero no se limitan a) cambiar los tipos de datos, agregar o quitar columnas, o bien usar funciones para generar columnas calculadas.
- Utiliza la ingesta de T-SQL para experiencias ricas en código, para crear tablas nuevas o actualizar las existentes con datos fuente dentro del mismo espacio de trabajo o almacenamiento externo.
- Para empezar, consulte Ingesta de datos en el almacenamiento mediante Transact-SQL.
- Use características de Transact-SQL como
INSERT...SELECT,SELECT INTOoCREATE TABLE AS SELECT (CTAS)para leer datos de tablas que hacen referencia a otros almacenes, almacenes de lago o bases de datos reflejadas dentro del mismo área de trabajo. También puede usar estas características para leer datos de la función /OPENROWSETque hace referencia a archivos de cuentas de almacenamiento de Azure externas. - También puede escribir consultas entre diferentes bases de datos entre almacenes diferentes del área de trabajo de Fabric.
Orígenes y formatos de datos admitidos
La ingesta de datos para Warehouse en Microsoft Fabric admite muchos formatos de datos y orígenes. Cada opción que se describe en este artículo incluye su propia lista de tipos de conectores de datos y formatos de datos admitidos.
Para la ingesta de T-SQL, los orígenes de datos de tabla deben estar dentro del mismo área de trabajo de Microsoft Fabric y los orígenes de datos de archivos deben estar en Azure Data Lake o Azure Blob Storage. Puede consultar datos mediante la nomenclatura de tres partes o la OPENROWSET función para los datos de origen. Los orígenes de datos de tabla pueden hacer referencia a conjuntos de datos de Delta Lake, mientras que OPENROWSET pueden hacer referencia a archivos Parquet, CSV o JSONL en Azure Data Lake o Azure Blob Storage.
Por ejemplo, supongamos que un área de trabajo tiene dos almacenes, denominados Inventory y Sales. Una consulta como la siguiente crea una nueva tabla en el Inventory almacén con el contenido de una tabla en el Inventory almacén unido a una tabla en el Sales almacén y con archivos externos que contienen información del cliente:
CREATE TABLE Inventory.dbo.RegionalSalesOrders
AS
SELECT
s.SalesOrders,
i.ProductName,
c.CustomerName
FROM Sales.dbo.SalesOrders s
JOIN Inventory.dbo.Products i
ON s.ProductID = i.ProductID
JOIN OPENROWSET( BULK 'abfss://<container>@<storage>.dfs.core.windows.net/<customer-file>.csv' ) AS c
ON s.CustomerID = c.CustomerID
WHERE s.Region = 'West region';
Note
La lectura de datos mediante OPENROWSET puede ser más lenta que consultar datos de una tabla. Si planea acceder repetidamente a los mismos datos externos, considere la posibilidad de ingerirlos en una tabla dedicada para mejorar el rendimiento y la eficacia de las consultas.
La instrucción COPY (Transact-SQL) soporta los formatos de archivo CSV, JSONL y PARQUET. Las fuentes de datos soportadas incluyen Azure Data Lake Storage (ADLS) Gen2, Azure Blob Storage y OneLake.
Para escenarios directos de ingesta del lado cliente, BCP API (versión preliminar) admite herramientas y API como bcp.exe, C# SqlBulkCopyy Java SQLServerBulkCopy a través de conexiones SQL sin archivos de almacenamiento provisional primero.
Las canalizaciones y los flujos de datos admiten una amplia variedad de orígenes de datos y formatos de datos. Para más información, consulte Canalizaciones y flujos de datos.
Usa la identidad del espacio de trabajo con COPY INTO
Utiliza Identidad del espacio de trabajo con COPY INTO para separar el acceso a los datos de origen del permiso para escribir en la tabla del almacén de datos de destino. Workspace Identity está compatible con Azure Blob Storage, ADLS Gen2 y fuentes OneLake. La instrucción se ejecuta en el contexto de seguridad SQL del usuario actual. La cláusula WITH (CREDENTIAL = (IDENTITY = 'Workspace Identity')) permite a COPY INTO suplantar la identidad del espacio de trabajo solo cuando accede al origen. Todos los permisos SQL y la atribución de auditoría permanecen asociados al usuario que ejecuta.
Sin la Identidad del espacio de trabajo, un usuario que recibe acceso al almacén mediante el uso compartido de elementos puede ejecutar COPY INTO siempre que tenga, como mínimo, permiso de lectura del elemento y los permisos de SQL necesarios.
Completa la siguiente configuración antes de ejecutar COPY INTO con Identidad del Espacio de Trabajo:
- Configura una identidad de espacio de trabajo para el espacio de trabajo que contiene el almacén objetivo.
- Concede acceso a la identidad del espacio de trabajo a la fuente:
- Para Azure Blob Storage y ADLS Gen2, busca la identidad del espacio de trabajo junto al nombre del espacio de trabajo y asigna el rol Storage Blob Data Reader en la cuenta o contenedor de almacenamiento. Para el acceso a nivel de directorio de ADLS Gen2, concede los permisos ACL requeridos. Asigna permisos a la identidad del espacio de trabajo como harías con un usuario de Microsoft Entra.
- Para OneLake, busque la identidad del espacio de trabajo a partir del nombre del espacio de trabajo, añádala al espacio de trabajo que contiene los datos de origen y asígnele al menos el rol de colaborador del espacio de trabajo.
- Asigna al usuario ejecutante al menos el rol Visor en el espacio de trabajo que contiene el almacén objetivo. Los permisos de elemento por sí solos no autorizan a un usuario a suplantar la identidad del espacio de trabajo. El requisito de rol de espacio de trabajo solo se aplica cuando el usuario especifica la Identidad del Espacio de Trabajo.
- Otorgue permisos al usuario que ejecuta
INSERTsobre la tabla de destino. Cuando la credencial es Identidad del Espacio de Trabajo,ADMINISTER DATABASE BULK OPERATIONSno se requiere permiso.
El siguiente ejemplo carga un archivo CSV desde OneLake haciéndose pasar por Identidad de Espacio de Trabajo para acceder al código fuente:
COPY INTO dbo.SalesOrders
FROM 'https://onelake.dfs.fabric.microsoft.com/<workspace-id>/<item-id>/Files/orders/*.csv'
WITH (
FILE_TYPE = 'CSV',
FIRSTROW = 2,
CREDENTIAL = (IDENTITY = 'Workspace Identity')
);
Importante
Las políticas de etiquetas de sensibilidad varían según la organización.
COPY INTO puede fallar cuando el destino tiene una etiqueta de sensibilidad con restricciones que impiden la operación. Si una etiqueta de sensibilidad causa el fallo, elimina la etiqueta del destino antes de volver a intentar el comando.
procedimientos recomendados
El COPY comando en Warehouse en Microsoft Fabric proporciona una interfaz sencilla, flexible y rápida para la ingesta de datos de alto rendimiento para cargas de trabajo SQL desde Azure Storage y OneLake.
También puede usar el lenguaje T-SQL para crear una nueva tabla y, a continuación, insertarla y, a continuación, actualizar y eliminar filas de datos. Puede insertar datos desde cualquier base de datos dentro del área de trabajo de Microsoft Fabric mediante consultas entre bases de datos. Si desea importar datos de una instancia de Lakehouse a un almacén, puede hacerlo con una consulta interbase de datos. Por ejemplo:
INSERT INTO MyWarehouseTable
SELECT * FROM MyLakehouse.dbo.MyLakehouseTable;
- Evite la ingesta de datos mediante instrucciones singleton
INSERT, ya que este enfoque provoca un rendimiento deficiente en las consultas y actualizaciones. Si usa instrucciones singletonINSERTpara la ingesta de datos consecutivamente, cree una nueva tabla utilizando los patrones deCREATE TABLE AS SELECT (CTAS)oINSERT...SELECT, quite la tabla original y, luego, recree su tabla a partir de la que ha creado usandoCREATE TABLE AS SELECT (CTAS).- Eliminar su tabla existente impacta su modelo semántico, incluidas las medidas personalizadas o cualquier personalización que haya realizado.
- Al trabajar con datos externos en archivos, asegúrese de que los archivos tienen al menos 4 MB de tamaño.
- Para archivos .csv comprimidos de gran tamaño, considere la posibilidad de dividirlos en varios archivos.
- Azure Data Lake Storage (ADLS) Gen2 ofrece un mejor rendimiento que Azure Blob Storage (heredado). Considere la posibilidad de usar una cuenta de ADLS Gen2 siempre que sea posible.
- En el caso de las canalizaciones que se ejecuten con frecuencia, considere la posibilidad de aislar la cuenta de Azure Storage de otros servicios que podrían acceder a los mismos archivos al mismo tiempo.
- Las transacciones explícitas permiten agrupar varios cambios de datos para que solo sean visibles al leer una o varias tablas cuando la transacción se confirme por completo. También tiene la capacidad de revertir la transacción si se produjese un error en alguno de los cambios.
- Si un
SELECTse encuentra dentro de una transacción y si antes se insertaron datos, las estadísticas generadas automáticamente pueden ser inexactas tras una reversión. Las estadísticas inexactas pueden dar lugar a planes de consulta no optimizados y tiempos de ejecución. Si revierte una transacción conSELECTs después de un valor grandeINSERT, actualice las estadísticas de las columnas mencionadas enSELECT.
Note
Independientemente de cómo se ingrese la información en los almacenes de datos, la tarea de ingesta de datos optimiza los archivos Parquet que genera mediante la optimización de escritura V-Order. V-Order optimiza los archivos Parquet para permitir lecturas ultrarrápidas en los motores de procesamiento de Microsoft Fabric, como Power BI, SQL, Spark y otros. Las consultas de almacenamiento en general se benefician de tiempos de lectura más rápidos para las consultas con esta optimización, a la vez que garantizan que los archivos parquet sean 100% compatibles con su especificación de código abierto. No deshabilite V-Order, ya que podría afectar al rendimiento de lectura. Para obtener más información sobre el V-Order, consulte Descripción y administración de V-Order para el almacén.
Preguntas más frecuentes sobre la ingesta de datos para Fabric Data Warehouse
¿Cuál es el procedimiento para dividir archivos a la hora de cargar archivos .csv comprimidos con el comando COPY?
Considere la posibilidad de dividir archivos CSV grandes, especialmente cuando el número de archivos es pequeño, pero mantenga los archivos como mínimo de 4 MB cada uno para mejorar el rendimiento.
¿Cuál es el procedimiento para dividir archivos a la hora de cargar archivos Parquet con el comando COPY?
Considere dividir archivos Parquet grandes, especialmente cuando el número de archivos es pequeño.
¿Hay alguna limitación en el número o el tamaño de los archivos?
No hay limitaciones en el número o el tamaño de los archivos. Sin embargo, para obtener el mejor rendimiento, use archivos que tienen al menos 4 MB.
¿Qué credencial usa el comando COPY si no especifico ninguna?
Por defecto, COPY INTO utiliza la identidad Microsoft Entra del usuario que ejecuta para el acceso fuente.