Ingesta de datos en el almacenamiento

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 INSERT por compatibilidad. En Fabric Data Warehouse, esta instrucción se corresponde con el comportamiento de COPY INTO con las opciones de carga clásicas.
    • La instrucción COPY en Warehouse admite orígenes de datos de cuentas de almacenamiento de Azure y carpetas de OneLake lakehouse.
  • 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# SqlBulkCopy y Java SQLServerBulkCopy.
    • Para la ingesta basada en archivos de mayor rendimiento, prefiera COPY INTO siempre 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 INTO o CREATE 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 /OPENROWSET que 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) admite actualmente los formatos de archivo CSV, JSONL y PARQUET. Para orígenes de datos, actualmente se admiten Azure Data Lake Storage (ADLS) Gen2 y Azure Blob Storage.

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.

procedimientos recomendados

El comando COPY de Warehouse en Microsoft Fabric proporciona una interfaz sencilla, flexible y rápida para la ingesta de datos de alto rendimiento para cargas de trabajo de SQL. En la versión actual, solo admite la carga de datos desde cuentas de almacenamiento externas.

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 singleton INSERT para la ingesta de datos consecutivamente, cree una nueva tabla utilizando los patrones de CREATE TABLE AS SELECT (CTAS) o INSERT...SELECT, quite la tabla original y, luego, recree su tabla a partir de la que ha creado usando CREATE 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 SELECT se 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 con SELECTs después de un valor grande INSERT, actualice las estadísticas de las columnas mencionadas en SELECT.

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é método de autenticación usa el comando COPY si no se especifica una credencial?

De forma predeterminada, COPY INTO usa el Microsoft Entra ID del usuario en ejecución.