Copia y transformación de datos en Microsoft Fabric Warehouse mediante Azure Data Factory o Azure Synapse Analytics
SE APLICA A: Azure Data Factory Azure Synapse Analytics
Sugerencia
Pruebe Data Factory en Microsoft Fabric, una solución de análisis todo en uno para empresas. Microsoft Fabric abarca todo, desde el movimiento de datos hasta la ciencia de datos, el análisis en tiempo real, la inteligencia empresarial y los informes. Obtenga información sobre cómo iniciar una nueva evaluación gratuita.
En este artículo se describe cómo usar la actividad de copia para copiar datos con origen y destino de Microsoft Fabric Warehouse. Para obtener más información, lea el artículo de introducción para Azure Data Factory o Azure Synapse Analytics.
Funcionalidades admitidas
Este conector de Microsoft Fabric Warehouse es compatible con las funcionalidades siguientes:
Funcionalidades admitidas | IR | Puntos de conexión privados administrados de Synapse (versión preliminar) |
---|---|---|
Actividad de copia (origen/receptor) | ① ② | ✓ |
Flujo de datos de asignación (origen/receptor) | ① | ✓ |
Actividad de búsqueda | ① ② | ✓ |
Actividad GetMetadata | ① ② | ✓ |
Actividad de script | ① ② | ✓ |
Actividad de procedimiento almacenado | ① ② | ✓ |
① Azure Integration Runtime ② Entorno de ejecución de integración autohospedado
Introducción
Para realizar la actividad de copia con una canalización, puede usar una de los siguientes herramientas o SDK:
- La herramienta Copiar datos
- Azure Portal
- El SDK de .NET
- El SDK de Python
- Azure PowerShell
- API REST
- La plantilla de Azure Resource Manager
Creación de un servicio vinculado de Microsoft Fabric Warehouse mediante la interfaz de usuario
Siga estos pasos para crear un servicio vinculado de Microsoft Fabric Warehouse en la interfaz de usuario de Azure Portal.
Vaya a la pestaña Administrar de su área de trabajo de Azure Data Factory o Synapse, y seleccione Servicios vinculados; a continuación, seleccione Nuevo:
Busque Warehouse y seleccione el conector.
Configure los detalles del servicio, pruebe la conexión y cree el nuevo servicio vinculado.
Detalles de configuración del conector
En las secciones siguientes se proporcionan detalles sobre las propiedades que se usan para definir entidades de Data Factory específicas para Microsoft Fabric Warehouse.
Propiedades del servicio vinculado
Este conector de Microsoft Fabric Warehouse admite los siguientes tipos de autenticación. Consulte las secciones correspondientes para más información:
Autenticación de entidad de servicio
Antes de usar la autenticación de entidad de servicio, siga estos pasos.
Registro de una aplicación con la plataforma de identidad de Microsoft y adición de un secreto de cliente. Después, anote estos valores; los usará para definir el servicio vinculado:
- Id. de aplicación (cliente), que es el identificador de entidad de servicio en el servicio vinculado.
- Valor de secreto de cliente, que es la clave de entidad de servicio del servicio vinculado.
- Id. de inquilino
Conceda a la entidad de servicio al menos el rol de colaborador en el área de trabajo de Microsoft Fabric. Siga estos pasos:
Vaya al área de trabajo de Microsoft Fabric y seleccione Administrar acceso en la barra superior. Luego seleccione Agregar personas o grupos.
En el panel Agregar personas, escriba el nombre de la entidad de servicio y seleccione la entidad de servicio en la lista desplegable.
Especifique el rol como Colaborador o superior (Administrador, Miembro) y seleccione Agregar.
La entidad de servicio se muestra en el panel Administrar acceso.
Estas propiedades son compatibles con el servicio vinculado:
Propiedad | Descripción | Obligatorio |
---|---|---|
type | La propiedad type debe establecerse en Warehouse. | Sí |
endpoint | Punto de conexión del servidor de Microsoft Fabric Warehouse. | Sí |
workspaceId | Identificador del área de trabajo de Microsoft Fabric. | Sí |
artifactId | Identificador de objeto de Microsoft Fabric Warehouse. | Sí |
tenant | Especifique la información del inquilino (nombre de dominio o identificador de inquilino) en el que reside la aplicación. Para recuperarlo, mantenga el puntero del mouse en la esquina superior derecha de Azure Portal. | Sí |
servicePrincipalId | Especifique el id. de cliente de la aplicación. | Sí |
servicePrincipalCredentialType | Tipo de credencial que se usará para la autenticación de entidades de servicio. Los valores válidos son ServicePrincipalKey y ServicePrincipalCert. | Sí |
servicePrincipalCredential | Credencial de entidad de servicio. Al usar ServicePrincipalKey como tipo de credenciales, especifique el valor del secreto de cliente de la aplicación. Marque este campo como SecureString para almacenarlo de forma segura, o bien haga referencia a un secreto almacenado en Azure Key Vault. Cuando use ServicePrincipalCert como credencial, haga referencia a un certificado en Azure Key Vault y asegúrese de que el tipo de contenido del certificado sea PKCS #12. |
Sí |
connectVia | El entorno de ejecución de integración que se usará para conectarse al almacén de datos. Si el almacén de datos está en una red privada, se puede usar Azure Integration Runtime o un entorno de ejecución de integración autohospedado. Si no se especifica, se usa el valor predeterminado de Azure Integration Runtime. | No |
Ejemplo: uso de la autenticación de claves de entidad de servicio
También puede almacenar la clave de entidad de servicio en Azure Key Vault.
{
"name": "MicrosoftFabricWarehouseLinkedService",
"properties": {
"type": "Warehouse",
"typeProperties": {
"endpoint": "<Microsoft Fabric Warehouse server endpoint>",
"workspaceId": "<Microsoft Fabric workspace ID>",
"artifactId": "<Microsoft Fabric Warehouse object ID>",
"tenant": "<tenant info, e.g. microsoft.onmicrosoft.com>",
"servicePrincipalId": "<service principal id>",
"servicePrincipalCredentialType": "ServicePrincipalKey",
"servicePrincipalCredential": {
"type": "SecureString",
"value": "<service principal key>"
}
},
"connectVia": {
"referenceName": "<name of Integration Runtime>",
"type": "IntegrationRuntimeReference"
}
}
}
Propiedades del conjunto de datos
Si desea ver una lista completa de las secciones y propiedades disponibles para definir conjuntos de datos, consulte el artículo sobre conjuntos de datos.
Se admiten las siguientes propiedades para el conjunto de datos de Microsoft Fabric Warehouse:
Propiedad | Descripción | Obligatorio |
---|---|---|
type | La propiedad type del conjunto de datos se debe establecer en WarehouseTable. | Sí |
esquema | Nombre del esquema. | No para el origen, sí para el receptor |
table | Nombre de la tabla o vista. | No para el origen, sí para el receptor |
Ejemplo de propiedades de un conjunto de datos
{
"name": "FabricWarehouseTableDataset",
"properties": {
"type": "WarehouseTable",
"linkedServiceName": {
"referenceName": "<Microsoft Fabric Warehouse linked service name>",
"type": "LinkedServiceReference"
},
"schema": [ < physical schema, optional, retrievable during authoring >
],
"typeProperties": {
"schema": "<schema_name>",
"table": "<table_name>"
}
}
}
Propiedades de la actividad de copia
Para ver una lista completa de las secciones y propiedades disponibles para definir actividades, consulte los artículos sobre configuraciones de actividades de copia y canalizaciones y actividades. En esta sección se proporciona una lista de las propiedades que el receptor y el origen de Microsoft Fabric Warehouse admiten.
Microsoft Fabric Warehouse como origen
Sugerencia
Para cargar datos desde Microsoft Fabric Warehouse de manera eficaz mediante la creación de particiones de datos, vea Copia en paralelo desde Microsoft Fabric Warehouse.
Para copiar datos de Microsoft Fabric Warehouse, establezca la propiedad type en el origen de la actividad de copia en WarehouseSource. La sección source de la actividad de copia admite las siguientes propiedades:
Propiedad | Descripción | Obligatorio |
---|---|---|
type | La propiedad type del origen de la actividad de copia debe establecerse en WarehouseSource. | Sí |
sqlReaderQuery | Use la consulta SQL personalizada para leer los datos. Ejemplo: select * from MyTable . |
No |
sqlReaderStoredProcedureName | Nombre del procedimiento almacenado que lee datos de la tabla de origen. La última instrucción SQL debe ser una instrucción SELECT del procedimiento almacenado. | No |
storedProcedureParameters | Parámetros del procedimiento almacenado. Los valores permitidos son pares de nombre o valor. Los nombres y las mayúsculas y minúsculas de los parámetros deben coincidir con las mismas características de los parámetros de procedimiento almacenado. |
No |
queryTimeout | Especifica el tiempo de espera para la ejecución del comando de consulta. El valor predeterminado es 120 minutos. | No |
isolationLevel | Especifica el comportamiento de bloqueo de transacción para el origen de SQL. El valor permitido es Snapshot. Si no se especifica, se utiliza el nivel de aislamiento predeterminado de la base de datos. Para obtener más información, consulte system.data.isolationlevel. | No |
partitionOptions | Especifica las opciones de creación de particiones de datos que se usan para cargar datos desde Microsoft Fabric Warehouse. Los valores permitidos son: None (valor predeterminado) y DynamicRange. Cuando se habilita una opción de partición (es decir, no None ), el grado de paralelismo para cargar simultáneamente datos de Microsoft Fabric Warehouse se controla mediante la configuración parallelCopies en la actividad de copia. |
No |
partitionSettings | Especifique el grupo de configuración para la creación de particiones de datos. Se aplica si la opción de partición no es None . |
No |
En partitionSettings : |
||
partitionColumnName | Especifique el nombre de la columna de origen de tipo entero o date/datetime (int , smallint , bigint , date , datetime2 ) que va a usar la creación de particiones por rangos para la copia en paralelo. Si no se especifica, el índice o la clave primaria de la tabla se detectan automáticamente y se usan como columna de partición.Se aplica si la opción de partición es DynamicRange . Si usa una consulta para recuperar datos de origen, enlace ?DfDynamicRangePartitionCondition en la cláusula WHERE. Para ver un ejemplo, consulte la sección Copia en paralelo desde Microsoft Fabric Warehouse. |
No |
partitionUpperBound | Valor máximo de la columna de partición para la división del rango de partición. Este valor se usa para decidir el intervalo de particiones, no para filtrar las filas de la tabla. Se crean particiones de todas las filas de la tabla o el resultado de la consulta y se copian. Si no se especifica, la actividad de copia detecta automáticamente el valor. Se aplica si la opción de partición es DynamicRange . Para ver un ejemplo, consulte la sección Copia en paralelo desde Microsoft Fabric Warehouse. |
No |
partitionLowerBound | Valor mínimo de la columna de partición para la división del rango de partición. Este valor se usa para decidir el intervalo de particiones, no para filtrar las filas de la tabla. Se crean particiones de todas las filas de la tabla o el resultado de la consulta y se copian. Si no se especifica, la actividad de copia detecta automáticamente el valor. Se aplica si la opción de partición es DynamicRange . Para ver un ejemplo, consulte la sección Copia en paralelo desde Microsoft Fabric Warehouse. |
No |
Nota:
Al usar el procedimiento almacenado del origen para recuperar datos, tenga en cuenta que, si está diseñado para devolver otro esquema cuando se pasa un valor de parámetro diferente, es posible que encuentre un error o vea un resultado inesperado al importar el esquema desde la interfaz de usuario, o bien al copiar datos en Microsoft Fabric Warehouse con la creación automática de tablas.
Ejemplo: con la consulta SQL
"activities":[
{
"name": "CopyFromMicrosoftFabricWarehouse",
"type": "Copy",
"inputs": [
{
"referenceName": "<Microsoft Fabric Warehouse input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "WarehouseSource",
"sqlReaderQuery": "SELECT * FROM MyTable"
},
"sink": {
"type": "<sink type>"
}
}
}
]
Ejemplo: con el procedimiento almacenado
"activities":[
{
"name": "CopyFromMicrosoftFabricWarehouse",
"type": "Copy",
"inputs": [
{
"referenceName": "<Microsoft Fabric Warehouse input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "WarehouseSource",
"sqlReaderStoredProcedureName": "CopyTestSrcStoredProcedureWithParameters",
"storedProcedureParameters": {
"stringData": { "value": "str3" },
"identifier": { "value": "$$Text.Format('{0:yyyy}', <datetime parameter>)", "type": "Int"}
}
},
"sink": {
"type": "<sink type>"
}
}
}
]
Ejemplo de procedimiento almacenado:
CREATE PROCEDURE CopyTestSrcStoredProcedureWithParameters
(
@stringData varchar(20),
@identifier int
)
AS
SET NOCOUNT ON;
BEGIN
select *
from dbo.UnitTestSrcTable
where dbo.UnitTestSrcTable.stringData != stringData
and dbo.UnitTestSrcTable.identifier != identifier
END
GO
Microsoft Fabric Warehouse como tipo de receptor
Las canalizaciones de Azure Data Factory y Synapse admiten la instrucción Use COPY para cargar datos en Microsoft Fabric Warehouse.
Para copiar datos en Microsoft Fabric Warehouse, establezca el tipo de receptor de la actividad de copia en WarehouseSink. La sección sink de la actividad de copia admite las siguientes propiedades:
Propiedad | Descripción | Obligatorio |
---|---|---|
type | La propiedad type del receptor de la actividad de copia se debe establecer en WarehouseSink. | Sí |
allowCopyCommand | Indica si se va a usar la instrucción COPY para cargar datos en Microsoft Fabric Warehouse. Consulte Uso de la instrucción COPY para cargar datos en Microsoft Fabric Warehouse para ver restricciones y más información. El valor permitido es True. |
Sí |
copyCommandSettings | Un grupo de propiedades que se pueden especificar cuando el valor de la propiedad allowCopyCommand está establecido en TRUE. |
No |
writeBatchTimeout | Esta propiedad especifica el tiempo de espera para que la operación de inserción, upsert y procedimiento almacenado se complete antes de que se agote el tiempo de espera. Los valores permitidos son para el intervalo de tiempo. Un ejemplo es "00:30:00" para 30 minutos. Si no se especifica ningún valor, el valor predeterminado es "00:30:00" |
No |
preCopyScript | Especifique una consulta SQL para que la actividad de copia se ejecute antes de escribir datos en Microsoft Fabric Warehouse en cada ejecución. Esta propiedad se usa para limpiar los datos cargados previamente. | No |
tableOption | Especifica si se crea automáticamente la tabla de receptores según el esquema de origen, si no existe. Los valores permitidos son: none (valor predeterminado), autoCreate . |
No |
disableMetricsCollection | El servicio recopila métricas para la optimización del rendimiento de copia y la obtención de recomendaciones, que proporcionan acceso adicional a la base de datos maestra. Si le preocupa este comportamiento, especifique true para desactivarlo. |
No (el valor predeterminado es false ) |
Ejemplo: receptor de Microsoft Fabric Warehouse
"activities":[
{
"name": "CopyToMicrosoftFabricWarehouse",
"type": "Copy",
"inputs": [
{
"referenceName": "<input dataset name>",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "<Microsoft Fabric Warehouse output dataset name>",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "<source type>"
},
"sink": {
"type": "WarehouseSink",
"allowCopyCommand": true,
"tableOption": "autoCreate",
"disableMetricsCollection": false
}
}
}
]
Copia en paralelo desde Microsoft Fabric Warehouse
En la actividad de copia, el conector de Microsoft Fabric Warehouse proporciona creación de particiones de datos integrada para copiar los datos en paralelo. Puede encontrar las opciones de creación de particiones de datos en la pestaña Origen de la actividad de copia.
Al habilitar la copia con particiones, la actividad de copia ejecuta consultas en paralelo en el origen de Microsoft Fabric Warehouse para cargar los datos por particiones. El grado en paralelo se controla mediante el valor parallelCopies
de la actividad de copia. Por ejemplo, si establece parallelCopies
en cuatro, el servicio genera y ejecuta al mismo tiempo cuatro consultas de acuerdo con la configuración y la opción de partición que ha especificado, y cada consulta recupera una porción de datos de Microsoft Fabric Warehouse.
Se sugiere habilitar la copia en paralelo con la creación de particiones de datos, especialmente si se cargan grandes cantidades de datos de Microsoft Fabric Warehouse. Estas son algunas configuraciones sugeridas para diferentes escenarios. Cuando se copian datos en un almacén de datos basado en archivos, se recomienda escribirlos en una carpeta como varios archivos (solo especifique el nombre de la carpeta), en cuyo caso el rendimiento es mejor que escribirlos en un único archivo.
Escenario | Configuración sugerida |
---|---|
Carga completa de una tabla grande, aunque con una columna de tipo entero o datetime para la creación de particiones de datos. | Opciones de partición: partición por rangos dinámica. Columna de partición (opcional): especifique la columna usada para crear la partición de datos. Si no se especifica, se usa la columna de índice o clave principal. Límite de partición superior y límite de partición inferior (opcional): especifique si quiere determinar el intervalo de la partición. No es para filtrar las filas de la tabla, se crean particiones de todas las filas de la tabla y se copian. Si no se especifica, la actividad de copia detecta automáticamente los valores. Por ejemplo, si la columna de partición "ID" tiene valores que van de 1 a 100 y establece el límite inferior en 20 y el superior en 80, con la copia en paralelo establecida en 4, el servicio recupera los datos en 4 particiones: identificadores del rango <=20, del rango [21, 50], del rango [51, 80] y del rango >=81, respectivamente. |
Carga de grandes cantidades de datos mediante una consulta personalizada, aunque con una columna de tipo entero o date/datetime para la creación de particiones de datos. | Opciones de partición: partición por rangos dinámica. Consulta: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> .Columna de partición: especifique la columna usada para crear la partición de datos. Límite de partición superior y límite de partición inferior (opcional): especifique si quiere determinar el intervalo de la partición. No es para filtrar las filas de la tabla, se crean particiones de todas las filas del resultado de la consulta y se copian. Si no se especifica, la actividad de copia detecta automáticamente el valor. Por ejemplo, si la columna de partición "ID" tiene valores que van de 1 a 100 y establece el límite inferior en 20 y el superior en 80, con la copia en paralelo establecida en 4, el servicio recupera los datos en 4 particiones: identificadores del rango <=20, del rango [21, 50], del rango [51, 80] y del rango >=81, respectivamente. A continuación se muestran más consultas de ejemplo para distintos escenarios: 1. Consulta de la tabla completa: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition 2. Consulta de una tabla con selección de columnas y filtros adicionales de la cláusula where: SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> 3. Consulta con subconsultas: SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> 4. Consulta con partición en subconsulta: SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T |
Procedimientos recomendados para cargar datos con la opción de partición:
- Seleccione una columna distintiva como columna de partición (como clave principal o clave única) para evitar la asimetría de datos.
- Si usa Azure Integration Runtime para copiar datos, puede establecer "unidades de integración de datos (DIU)" mayores (>4) para usar más recursos de cálculo. Compruebe los escenarios aplicables allí.
- "Grado de paralelismo de copia" controla los números de partición. Si se establece en un número demasiado grande, puede resentirse el rendimiento, así que se recomienda establecerlo como (DIU o número de nodos de IR autohospedados) * (2 a 4).
- Tenga en cuenta que Microsoft Fabric Warehouse puede ejecutar un máximo de 32 consultas en un momento dado; si "Grado de paralelismo de copia" se establece en un número demasiado grande, puede producirse un problema de límite de Warehouse.
Ejemplo: consulta con partición por rangos dinámica
"source": {
"type": "WarehouseSource",
"query": "SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause>",
"partitionOption": "DynamicRange",
"partitionSettings": {
"partitionColumnName": "<partition_column_name>",
"partitionUpperBound": "<upper_value_of_partition_column (optional) to decide the partition stride, not as data filter>",
"partitionLowerBound": "<lower_value_of_partition_column (optional) to decide the partition stride, not as data filter>"
}
}
Uso de la instrucción COPY para cargar datos en Microsoft Fabric Warehouse
El uso de la instrucción COPY constituye un método sencillo y flexible para cargar datos en Microsoft Fabric Warehouse con un alto rendimiento. Para más información, consulte Inicio rápido: carga masiva de datos mediante la instrucción COPY.
- Si los datos de origen están en Azure Blob o Azure Data Lake Storage Gen2 y el formato es compatible con la instrucción COPY, puede usar la actividad de copia para invocar directamente esta instrucción y permitir que Microsoft Fabric Warehouse extraiga los datos del origen. Consulte Copia directa mediante la instrucción COPY para obtener detalles.
- Si el formato y el almacén de datos de origen no es compatible originalmente con la instrucción COPY, use en su lugar la característica Copia almacenada provisionalmente mediante la instrucción COPY . La característica de copia almacenada provisionalmente también proporciona un mejor rendimiento. Convierte automáticamente los datos en formato compatible con la instrucción COPY, almacena los datos en Azure Blob Storage y llama a la instrucción COPY para cargar los datos en Microsoft Fabric Warehouse.
Sugerencia
Cuando se usa la instrucción COPY con Azure Integration Runtime, las unidades de integración de datos (DIU) eficaces siempre son dos. El ajuste de la DIU no afecta al rendimiento.
Copia directa mediante la instrucción COPY
La instrucción COPY de Microsoft Fabric Warehouse admite directamente Azure Blob, Azure Data Lake Storage Gen1 y Azure Data Lake Storage Gen2. Si los datos de origen cumplen los criterios descritos en esta sección, use la instrucción COPY para copiar directamente desde el almacén de datos de origen a Microsoft Fabric Warehouse. De lo contrario, use Copia almacenada provisionalmente mediante la instrucción COPY. El servicio comprueba la configuración y produce un error en la ejecución de la actividad de copia si no se cumplen los criterios.
El formato y el servicio vinculado de origen tienen los siguientes tipos y métodos de autenticación:
Tipo de almacén de datos de origen admitido Formato admitido Tipo de autenticación de origen admitido Azure Blob Texto delimitado Autenticación de clave de cuenta, autenticación de firma de acceso compartido Parquet Autenticación de clave de cuenta, autenticación de firma de acceso compartido Azure Data Lake Storage Gen2 Texto delimitado
ParquetAutenticación de clave de cuenta, autenticación de firma de acceso compartido Esta es la configuración de formato:
- Para Parquet:
compression
puede ser no compression, Snappy oGZip
. - Para Texto delimitado:
rowDelimiter
se establece explícitamente como carácter único o " \r\n"; no se admite el valor predeterminado.nullValue
se deja con el valor predeterminado o se establece en cadena vacía ("").encodingName
se deja con el valor predeterminado o se establece en utf-8 o utf-16.escapeChar
debe ser igual quequoteChar
y no está vacío.skipLineCount
se deja como valor predeterminado o se establece en 0.compression
puede establecerse como sin compresión oGZip
.
- Para Parquet:
Si el origen es una carpeta,
recursive
de la actividad de copia se debe establecer en True ywildcardFilename
tiene que ser*
o*.*
.wildcardFolderPath
,wildcardFilename
(distinto de*
o*.*
),modifiedDateTimeStart
,modifiedDateTimeEnd
,prefix
,enablePartitionDiscovery
yadditionalColumns
no se especifican.
Esta configuración de la instrucción COPY es compatible con allowCopyCommand
en la actividad de copia:
Propiedad | Descripción | Obligatorio |
---|---|---|
defaultValues | Especifica los valores predeterminados para cada columna de destino en Microsoft Fabric Warehouse. Los valores predeterminados de la propiedad sobrescriben el conjunto de restricciones predeterminado en el almacenamiento de datos, y la columna de identidad no puede tener un valor predeterminado. | No |
additionalOptions | Opciones adicionales que se pasarán directamente a la instrucción COPY de Microsoft Fabric Warehouse en la cláusula "With" de la instrucción COPY. Incluye el valor entre comillas si es necesario para ajustarlo a los requisitos de la instrucción COPY. | No |
"activities":[
{
"name": "CopyFromAzureBlobToMicrosoftFabricWarehouseViaCOPY",
"type": "Copy",
"inputs": [
{
"referenceName": "ParquetDataset",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "MicrosoftFabricWarehouseDataset",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "ParquetSource",
"storeSettings":{
"type": "AzureBlobStorageReadSettings",
"recursive": true
}
},
"sink": {
"type": "WarehouseSink",
"allowCopyCommand": true,
"copyCommandSettings": {
"defaultValues": [
{
"columnName": "col_string",
"defaultValue": "DefaultStringValue"
}
],
"additionalOptions": {
"MAXERRORS": "10000",
"DATEFORMAT": "'ymd'"
}
}
},
"enableSkipIncompatibleRow": true
}
}
]
Copia almacenada provisionalmente mediante la instrucción COPY
Si los datos de origen no son compatibles de forma nativa con la instrucción COPY, habilite la copia de datos a través de una instancia provisional de Azure Blob o Azure Data Lake Storage Gen2 (no puede ser Azure Premium Storage). En este caso, el servicio convierte automáticamente los datos para satisfacer los requisitos del formato de datos de la instrucción COPY. A continuación, invoca la instrucción COPY para cargar datos en Microsoft Fabric Warehouse. Por último, limpia los datos temporales del almacenamiento. Consulte Copia almacenada provisionalmente para obtener más información sobre cómo copiar datos mediante el almacenamiento provisional.
Para usar esta característica, cree un servicio vinculado de Azure Blob Storage o Azure Data Lake Storage Gen2 con clave de cuenta o autenticación de identidad administrada por el sistema que haga referencia a la cuenta de almacenamiento de Azure como almacenamiento provisional.
Importante
- Cuando use la autenticación de identidad administrada para el servicio vinculado de almacenamiento provisional, obtenga información sobre las configuraciones necesarias para Azure Blob y Azure Data Lake Storage Gen2, respectivamente.
- Si el almacenamiento provisional de Azure Storage está configurado con el punto de conexión de servicio de red virtual, tiene que utilizar la autenticación de identidad administrada con la opción para permitir el servicio de Microsoft de confianza habilitada en la cuenta de almacenamiento; consulte Efectos del uso de puntos de conexión de servicio de la red virtual con Azure Storage.
Importante
Si el almacenamiento provisional de Azure Storage está configurado con un punto de conexión privado administrado y tiene el firewall de almacenamiento habilitado, debe usar la autenticación de identidad administrada y conceder permisos de lector de datos de Storage Blob a la instancia de Synapse SQL Server para asegurarse de que puede acceder a los archivos almacenados provisionalmente durante la carga de la instrucción COPY.
"activities":[
{
"name": "CopyFromSQLServerToMicrosoftFabricWarehouseViaCOPYstatement",
"type": "Copy",
"inputs": [
{
"referenceName": "SQLServerDataset",
"type": "DatasetReference"
}
],
"outputs": [
{
"referenceName": "MicrosoftFabricWarehouseDataset",
"type": "DatasetReference"
}
],
"typeProperties": {
"source": {
"type": "SqlSource",
},
"sink": {
"type": "WarehouseSink",
"allowCopyCommand": true
},
"stagingSettings": {
"linkedServiceName": {
"referenceName": "MyStagingStorage",
"type": "LinkedServiceReference"
}
}
}
}
]
Propiedades de Asignación de instancias de Data Flow
Al transformar datos en el flujo de datos de asignación, puede leer y escribir en tablas de Microsoft Fabric Warehouse. Para más información, vea la transformación de origen y la transformación de receptor en los flujos de datos de asignación.
Microsoft Fabric Warehouse como origen
La configuración específica de Microsoft Fabric Warehouse está disponible en la pestaña Source Options de la transformación de origen.
Nombre | Descripción | Obligatorio | Valores permitidos | Propiedad de script de flujo de datos |
---|---|---|---|---|
Entrada | Seleccione si apunta el origen en una tabla (equivalente a Select * from tablename), escribe una consulta SQL personalizada o recupera datos de un procedimiento almacenado. Consultar Si selecciona Consulta en el campo de entrada, escriba una consulta SQL para el origen. Esta configuración invalidará cualquier tabla que haya elegido en el conjunto de datos. Las cláusulas Ordenar por no se admiten aquí, pero puede establecer una instrucción SELECT FROM completa. También puede usar las funciones de tabla definidas por el usuario. select * from udfGetData() es un UDF in SQL que devuelve una tabla. Esta consulta genera una tabla de origen que puede usar en el flujo de datos. El uso de consultas también es una excelente manera de reducir las filas para pruebas o búsquedas. Ejemplo de SQL: Select * from MyTable where customerId > 1000 and customerId < 2000 . |
Sí | Tabla, consulta o procedimiento almacenado | format: 'table' |
Tamaño de lote | escriba un tamaño de lote para fragmentar datos grandes en lecturas. En los flujos de datos, se usará esta configuración para establecer el almacenamiento en caché de columnas de Spark. Se trata de un campo de opción que usará los valores predeterminados de Spark si se deja en blanco. | No | Valores numéricos | batchSize: 1234 |
Nivel de aislamiento | El valor predeterminado de los orígenes de SQL en Mapping Data Flow es de lectura no confirmada. Puede cambiar el nivel de aislamiento aquí a uno de estos valores: • Read Committed • Read Uncommitted • Repeatable Read • Serializable • None (omitir el nivel de aislamiento) | Sí | • Read Committed • Read Uncommitted • Repeatable Read • Serializable • None (omitir el nivel de aislamiento) | isolationLevel |
Nota:
No se admite la lectura mediante el almacenamiento provisional. La compatibilidad CDC con el origen de Microsoft Fabric Warehouse no está disponible actualmente.
Microsoft Fabric Warehouse como receptor
La configuración específica de Microsoft Fabric Warehouse está disponible en la pestaña Settings de la transformación de receptor.
Nombre | Descripción | Obligatorio | Valores permitidos | Propiedad de script de flujo de datos |
---|---|---|---|---|
Método de actualización | determina qué operaciones se permiten en el destino de la base de datos. El valor predeterminado es permitir solamente las inserciones. Para realizar las operaciones update, upsert o delete rows, se requiere una transformación de alteración de filas para etiquetar esas acciones. En el caso de las actualizaciones, upserts y eliminaciones, se debe establecer una o varias columnas de clave para determinar la fila que se va a modificar. | Sí | true o false | permite insertar permite eliminar permite hacer upsert permite actualizar |
Acción Table | Determina si se deben volver a crear o quitar todas las filas de la tabla de destino antes de escribir. • Ninguna: no se realizará ninguna acción en la tabla. Volver a crear: se quitará la tabla y se volverá a crear. Obligatorio si se crea una nueva tabla dinámicamente.• Truncar: se quitarán todas las filas de la tabla de destino. | No | Ninguno o volver a crear o truncar | volver a crear: true truncar: true |
Enable staging (Habilitar almacenamiento provisional) | El almacenamiento provisional se configura en Actividad de ejecución de Data Flow. Al usar la autenticación de identidad administrada para el servicio vinculado de almacenamiento, obtenga información sobre las configuraciones necesarias para Azure Blob y Azure Data Lake Storage Gen2, respectivamente. Si Azure Storage está configurado con el punto de conexión de servicio de red virtual, tiene que utilizar la autenticación de identidad administrada con la opción para permitir el servicio de Microsoft de confianza habilitada en la cuenta de almacenamiento. Consulte Impacto del uso de puntos de conexión de servicio de red virtual con Azure Storage. | No | true o false | preconfigurado: true |
Tamaño de lote | controla el número de filas que se escriben en cada cubo. Los tamaños de lote más grandes mejoran la compresión y la optimización de memoria, pero se arriesgan a obtener excepciones de memoria al almacenar datos en caché. | No | Valores numéricos | batchSize: 1234 |
Uso del esquema de receptor | De forma predeterminada, se creará una tabla temporal en el esquema receptor como almacenamiento provisional. También puede desactivar la opción Usar esquema receptor y, en su lugar, en Seleccionar esquema de base de datos de usuario, especifique un nombre de esquema con el que Data Factory creará una tabla de almacenamiento provisional para cargar datos ascendentes y limpiarlos automáticamente al finalizar. Asegúrese de que tiene permiso para crear tablas en la base de datos y modificar permisos en el esquema. | No | true o false | stagingSchemaName |
Scripts SQL anteriores y posteriores | escriba scripts de SQL de varias líneas que se ejecutarán antes (preprocesamiento) y después (procesamiento posterior) de que los datos se escriban en la base de datos del receptor. | No | Scripts de SQL | preSQLs:['set IDENTITY_INSERT mytable ON'] postSQLs:['set IDENTITY_INSERT mytable OFF'], |
Control de filas de errores
De forma predeterminada, la ejecución de un flujo de datos no funcionará al recibir el primer error. Puede optar por Continuar en caso de error, que permite que el flujo de datos se complete, aunque haya filas individuales con errores. El servicio proporciona diferentes opciones para controlar estas filas de error.
Transaction Commit (Confirmación de transacción): elija si los datos se escriben en una única transacción o en lotes. Una sola transacción proporcionará mejor rendimiento y ningún dato escrito será visible para otros usuarios hasta que finalice la transacción. Las transacciones por lotes tienen un rendimiento peor, pero pueden funcionar con grandes conjuntos de datos.
Output rejected data (Datos rechazados de salida): si está habilitada, puede generar las filas de error en un archivo CSV en Azure Blob Storage o en una cuenta de Azure Data Lake Storage Gen2 de su elección. Las filas de error se escribirán con tres columnas adicionales: la operación SQL, como INSERT o UPDATE, el código de error de flujo de datos y el mensaje de error de la fila.
Report success on error (Notificar éxito cuando hay error): si está habilitada, el flujo de datos se marcará como correcto, aunque se encuentren filas de error.
Nota:
Para el servicio vinculado de Microsoft Fabric Warehouse, el tipo de autenticación admitido para la entidad de servicio es "Clave"; no se admite la autenticación de 'Certificado'.
Propiedades de la actividad de búsqueda
Para obtener información detallada sobre las propiedades, consulte Actividad de búsqueda.
Propiedades de la actividad GetMetadata
Para información detallada sobre las propiedades, consulte Actividad de obtención de metadatos.
Asignación de tipos de datos para Microsoft Fabric Warehouse
Al copiar datos desde Microsoft Fabric Warehouse, se usan las siguientes asignaciones de tipos de datos de Microsoft Fabric Warehouse en los tipos de datos provisionales del servicio. Para más información acerca de la forma en que la actividad de copia asigna el tipo de datos y el esquema de origen al receptor, consulte el artículo sobre asignaciones de tipos de datos y esquema.
Tipo de datos de Microsoft Fabric Warehouse | Tipo de datos provisionales de Data Factory |
---|---|
bigint | Int64 |
binary | Byte[] |
bit | Boolean |
char | String, Char[] |
date | DateTime |
datetime2 | DateTime |
Decimal | Decimal |
FILESTREAM attribute (varbinary(max)) | Byte[] |
Float | Double |
int | Int32 |
numérico | Decimal |
real | Single |
smallint | Int16 |
time | TimeSpan |
UNIQUEIDENTIFIER | Guid |
varbinary | Byte[] |
varchar | String, Char[] |
Pasos siguientes
Para obtener una lista de almacenes de datos que la actividad de copia admite como orígenes y receptores, vea Almacenes de datos que se admiten.