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.
Se aplica a:✅Almacén en Microsoft Fabric
El lenguaje Transact-SQL ofrece opciones que puede usar para cargar datos a gran escala desde tablas existentes en su lakehouse y su almacén de datos a nuevas tablas en su almacén de datos. Estas opciones son convenientes si necesita crear nuevas versiones de una tabla con datos agregados, versiones de tablas con un subconjunto de filas o para crear una tabla como resultado de una consulta compleja. Pongamos algunos ejemplos.
Elige una sentencia de ingestión de T-SQL
El lenguaje T-SQL ofrece un conjunto completo de sentencias que puedes usar para cargar y transformar datos en tu almacén. Puedes cargar datos en tablas nuevas o existentes, añadir nuevas filas, transformar datos durante la ingesta o sincronizar los cambios con los datos existentes. Warehouse en Microsoft Fabric soporta las siguientes sentencias de ingestión de T-SQL:
- Instrucción
CREATE TABLE AS SELECT(CTAS) que permite crear una nueva tabla en tu almacén a partir del resultado de una instrucciónSELECT. -
SELECT INTOcláusula query que permite seleccionar los resultados de cualquier origen de tabla y redirigir los resultados a una nueva tabla. Se trata de una característica estándar en el lenguaje T-SQL. -
INSERT ... SELECTAñade los resultados de la consulta a la tabla de destino. Usa esta sentencia cuando quieras cargar un nuevo lote o un subconjunto incremental en una tabla cuyo esquema controlas. -
MERGEcompara las filas de origen y destino e inserta, actualiza o elimina condicionalmente las filas de destino. Utiliza esta instrucción cuando necesites sincronizar filas nuevas y modificadas, o conciliar un destino con una instantánea completa del origen.
Elige una sentencia en función de si la tabla de destino ya existe y si quieres crear, añadir o sincronizar datos. La fuente de cada sentencia es una consulta T-SQL. Puedes usar expresiones, funciones, filtros, uniones y agregaciones soportadas para moldear los datos durante la ingestión. Puedes utilizar las siguientes fuentes de datos para leer los datos de tus sentencias T-SQL:
- Leer una tabla de almacenamiento, como una tabla de almacenamiento provisional.
- Lectura de una carpeta Lakehouse Delta Lake utilizando una tabla generada automáticamente en el punto de enlace de SQL Analytics para Lakehouse.
- Lectura de archivos CSV, Parquet o JSONL directamente desde Azure Data Lake o Azure Blob Storage mediante la
OPENROWSETfunción .
Utiliza CTAS para crear una tabla
CTAS crea la tabla de destino y carga los resultados de la consulta en una operación.
En el primer ejemplo se muestra cómo crear una nueva tabla que es una copia de la tabla existente dbo.TaxiTrips , pero filtrada para incluir solo los datos del año 2023:
CREATE TABLE dbo.TaxiTrips_2023
AS
SELECT *
FROM dbo.TaxiTrips
WHERE DATEPART(YEAR, tpep_pickup_datetime) = '2023';
Utiliza CTAS para crear y rellenar una nueva tabla a partir de los resultados de la consulta. Este método es útil cuando la tabla de destino no existe o cuando se quiere materializar datos transformados o combinados de una o más fuentes.
Utiliza SELECT INTO para crear una tabla
SELECT ... INTO también crea una tabla de destino a partir de los resultados de la consulta:
SELECT *
INTO dbo.TaxiTrips_2023
FROM MyLakehouse.dbo.TaxiTrips
WHERE DATEPART(YEAR, tpep_pickup_datetime) = '2023';
Tanto CTAS como SELECT ... INTO infieren columnas de destino a partir del resultado de la consulta. Convierte explícitamente las expresiones cuando el destino requiere un tipo de dato específico, precisión o longitud.
Utiliza INSERT ... SELECT para añadir datos
INSERT ... SELECT carga los resultados de la consulta en una tabla existente.
Puedes añadir datos a una tabla transformando datos de un archivo Parquet externo y público:
INSERT INTO dbo.<table name>
SELECT *
FROM OPENROWSET(BULK 'https://<storage account>.blob.core.windows.net/public/<subfolder>/<file name>.parquet') AS data;
Utiliza MERGE para sincronizar datos
MERGE Hace coincidir las filas de origen y destino mediante una clave estable. El siguiente patrón asume que dbo.DimCustomer ya existe con las columnas usadas por la sentencia. Asegúrate de que la fuente no devuelva más de una fila por cada clave de destino.
MERGE dbo.DimCustomer AS target
USING staging.Customers AS source
ON target.CustomerID = source.CustomerID
WHEN MATCHED AND source.ModifiedDate > target.ModifiedDate THEN
UPDATE SET CustomerName = source.CustomerName, City = source.City,
ModifiedDate = source.ModifiedDate
WHEN NOT MATCHED BY TARGET THEN
INSERT (CustomerID, CustomerName, City, ModifiedDate)
VALUES (source.CustomerID, source.CustomerName, source.City, source.ModifiedDate);
Use WHEN NOT MATCHED BY SOURCE THEN DELETE solo cuando la consulta de origen representa el conjunto de datos autorizado completo para las filas del alcance. No uses esa cláusula con un lote de origen incremental, porque las filas de destino ausentes del lote podrían eliminarse.
Elegir un origen de datos
Las sentencias de ingestión funcionan de forma consistente entre los tipos de origen compatibles. Solo cambia la referencia de origen.
Archivos en un lago de datos
Use OPENROWSET para leer archivos Parquet, CSV o JSONL en OneLake, Azure Data Lake Storage o Azure Blob Storage. Puedes apuntar a un archivo, varios archivos con comodines o carpetas particionadas.
Para rutas de archivos, inferencia de esquemas, filtrado de particiones, funciones de metadatos y ejemplos para las cuatro sentencias de ingestión, véase Ingest and transform lake data with OPENROWSET and T-SQL.
Tablas Delta en un lakehouse
El endpoint de analítica SQL de un lakehouse expone tablas Delta en su área /Tables. Desde un almacén en el mismo espacio de trabajo, haz referencia a una tabla usando el nombre <lakehouse>.<schema>.<table>de tres partes .
Esto no se limita a las tablas Delta almacenadas físicamente en el lakehouse. Las tablas expuestas a través de accesos directos de OneLake en la /Tables zona también pueden referenciar datos almacenados en otros lugares, incluyendo el área de lakehouse /Files, almacenamiento externo como ADLS o Amazon S3, datos espejados y datos de OneLake en otros espacios de trabajo.
Usando esta arquitectura, puedes consultar datos respaldados por accesos directos a través del endpoint de análisis SQL de Lakehouse sin copiar los datos al lakehouse.
Para ejemplos de creación de tablas, cargas incrementales y sincronización, véase Ingest Delta Lake tables with T-SQL.
Tablas en el almacén actual
Utiliza un nombre de dos partes, como <schema>.<table> para ingerir datos de una tabla en el almacén actual.
Para ejemplos de Bronce a Plata a Oro que unen, agregan e incrementalmente cargan tablas dentro de un mismo almacén, véase Ingesta desde tablas de almacén y bases de datos espejadas con T-SQL.
Bases de datos espejadas y otros elementos del espacio de trabajo
Para ingerir datos de una base de datos espejada, otro almacén de datos u otro elemento soportado en el mismo espacio de trabajo, añade el elemento al Explorador y utiliza el nombre <item>.<schema>.<table>de tres partes.
Para obtener más información sobre las consultas entre almacenamientos, consulte Escribir una consulta SQL entre bases de datos.
Para ejemplos que utilizan ambos patrones de nombres, véase Ingerir desde tablas de almacenamiento de datos y bases de datos reflejadas con T-SQL.
Auditoría y supervisión de la ingesta de T-SQL
CTAS, SELECT ... INTO, INSERT ... SELECT, y MERGE operaciones aparecen en el historial/actividad de consultas del almacén. Utiliza información de consultas para revisar los detalles de la ejecución y solucionar problemas de las consultas de ingesta.
Opciones de ingesta de datos
Utiliza la ingestión T-SQL cuando la carga incluye filtrado, conversión de tipos, uniones, cálculos, agregación o sincronización. Elige otra opción. Otras formas de ingerir datos en tu almacén son:
- Ingesta de datos mediante la instrucción COPY
- Ingesta de datos mediante canalizaciones
- Ingesta de datos mediante un flujo de datos
Contenido relacionado
- Ingesta de datos en el almacén
- Solucionar problemas de errores de ingesta
- Escribir una consulta SQL entre bases de datos
- Ingesta y transformación de datos del lago de datos con OPENROWSET y T-SQL
- Importar tablas Delta Lake con T-SQL
- Ingesta desde tablas de almacén y bases de datos espejeadas con T-SQL