Ingesta de datos en el almacén

Esto se aplica a: almacén en Microsoft Fabric

El almacén de Microsoft Fabric ofrece herramientas integradas de ingesta de datos que permiten a los usuarios ingerir datos en almacenes a escala mediante experiencias sin código o enriquecidas con código.

Opciones de ingesta de datos

Es posible ingerir datos en un almacén mediante una de las siguientes opciones:

  • COPY (Transact-SQL): la instrucción COPY ofrece ingesta de datos flexible y de alto rendimiento desde una cuenta de almacenamiento de Azure externa. Es posible usar la instrucción COPY como parte de la lógica ETL/ELT existente en código Transact-SQL.
  • Canalizaciones de datos: las canalizaciones ofrecen una experiencia sin código o de bajo código para la ingesta de datos. Mediante canalizaciones, puede organizar flujos de trabajo sólidos para una experiencia completa de extracción, transformación y carga (ETL) que incluye actividades para ayudar a preparar el entorno de destino, ejecutar instrucciones Transact-SQL personalizadas, realizar búsquedas o copiar datos de un origen a un destino.
  • Flujos de datos: alternativa a las canalizaciones, los flujos de datos permiten una fácil preparación, limpieza y transformación de los datos a través de una experiencia sin código.
  • Ingesta entre almacenes: también es posible la ingesta de datos de orígenes del área de trabajo. Este escenario podría ser necesario cuando se quiera crear una nueva tabla con un subconjunto de una tabla diferente, o como resultado de combinar tablas diferentes en el almacén y en el lago. Para la ingesta entre almacenes, además de las opciones mencionadas, características de Transact-SQL, como INSERT...SELECT, SELECT INTO o CREATE TABLE AS SELECT (CTAS) funcionan entre almacenes dentro de la misma área de trabajo.

Decidir qué herramienta de ingesta de datos usar

Para decidir qué opción de ingesta de datos usar, puede utilizar los criterios siguientes:

  • Use la instrucción COPY (Transact-SQL) para operaciones de ingesta de datos enriquecidas con código, para obtener el mayor rendimiento de ingesta de datos posible, o bien cuando necesite agregar la ingesta de datos como parte de una lógica de Transact-SQL. Para sintaxis, consulte COPY INTO (Transact-SQL).
  • Use canalizaciones de datos para flujos de trabajo de ingesta de datos sólidos, sin código o de bajo código que se ejecuten repetidamente, según una programación o que impliquen grandes volúmenes de datos. Para obtener más información, consulte Ingesta de datos mediante canalizaciones de datos.
  • Use flujos de datos para una experiencia sin código que permita transformaciones personalizadas a los datos de origen antes de ingerirlos. 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. Para obtener más información, consulte Flujos de datos.
  • Use la ingesta entre almacenes para experiencias enriquecidas con código para crear nuevas tablas con datos de origen en la misma área de trabajo. Para obtener más información, consulte Ingesta de datos mediante Transact-SQL y Escritura de una consulta entre bases de datos.

Nota:

La instrucción COPY de Warehouse solo admite orígenes de datos en cuentas de almacenamiento de Azure, con autenticación mediante firma de acceso compartido (SAS), clave de cuenta de almacenamiento (SAK) o cuentas con acceso público. Para conocer otras limitaciones, consulte COPY (Transact-SQL).

Orígenes y formatos de datos admitidos

La ingesta de datos para el almacén de Microsoft Fabric ofrece un gran número de formatos de datos y orígenes que se pueden usar. Cada una de las opciones descritas incluye su propia lista de tipos de conectores de datos y formatos de datos admitidos.

Para la ingesta entre almacenes, los orígenes de datos deberán estar dentro de la misma área de trabajo de Microsoft Fabric. Las consultas se pueden realizar mediante la nomenclatura de tres partes para los datos de origen.

Por ejemplo, supongamos que hubiera dos almacenes denominados Inventario y Ventas en un área de trabajo. Una consulta como la siguiente, crearía una nueva tabla en el almacén Inventario con el contenido de una tabla en el almacén Inventario, combinada con una tabla en el almacén Ventas:

CREATE TABLE Inventory.dbo.RegionalSalesOrders
AS
SELECT s.SalesOrders, i.ProductName
FROM Sales.dbo.SalesOrders s
JOIN Inventory.dbo.Products i
WHERE s.ProductID = i.ProductID
    AND s.Region = 'West region'

La instrucción COPY (Transact-SQL) admite actualmente los formatos de archivo PARQUET y .csv. Para orígenes de datos, actualmente se admiten Azure Data Lake Storage (ADLS) Gen2 y Azure Blob Storage.

Las canalizaciones de datos y los flujos de datos admiten una amplia variedad de orígenes de datos y formatos de datos. Para obtener más información, consulte Canalizaciones de datos y Flujos de datos.

procedimientos recomendados

La característica de comando COPY del almacén de Microsoft Fabric usa 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 se admite la carga de datos desde cuentas de almacenamiento externas.

También es posible usar TSQL para crear una nueva tabla, para después insertarla y, a continuación, actualizar y eliminar filas de datos. Los datos se pueden insertar desde cualquier base de datos del área de trabajo de Microsoft Fabric mediante consultas entre bases de datos. Si desea ingerir datos de una instancia de Lakehouse en un almacén, podría hacerlo con una consulta entre bases de datos. Por ejemplo:

INSERT INTO MyWarehouseTable
SELECT * FROM MyLakehouse.dbo.MyLakehouseTable;
  • Evite la ingesta de datos mediante instrucciones INSERT singleton, ya que esto provocaría un rendimiento deficiente en las consultas y las actualizaciones. Si se usaron las instrucciones INSERT singleton para la ingesta de datos de forma consecutiva, se recomienda crear una nueva tabla mediante los patrones CREATE TABLE AS SELECT (CTAS) o INSERT...SELECT, quitar la tabla original y, a continuación, crear la tabla de nuevo a partir de la tabla que creó con CREATE TABLE AS SELECT (CTAS) o INSERT...SELECT.
  • Al trabajar con datos externos en archivos, se recomienda que los archivos sean de, 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 una instrucción SELECT estaba dentro de una transacción y estaba precedido por inserciones de datos, las estadísticas generadas automáticamente pueden ser inexactas después de 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 SELECT después de una instrucción INSERT grande, actualice las estadísticas de las columnas mencionadas en su instrucción SELECT.

Nota:

Independientemente de cómo se ingieren datos en almacenes, los archivos parquet generados por la tarea de ingesta de datos se optimizarán mediante la optimización de escritura de V-Order. V-Order optimiza los archivos parquet para permitir lecturas rápidas bajo los motores de proceso 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, lo que garantiza que los archivos parquet son 100 % compatibles con su especificación de código abierto. A diferencia de Fabric Data Engineering, V-Order es una configuración global en Synapse Data Warehouse que no se puede deshabilitar.