Copiar e transformar dados no Microsoft Fabric Warehouse usando o Azure Data Factory ou o Azure Synapse Analytics
APLICA-SE A: Azure Data Factory Azure Synapse Analytics
Gorjeta
Experimente o Data Factory no Microsoft Fabric, uma solução de análise tudo-em-um para empresas. O Microsoft Fabric abrange tudo, desde a movimentação de dados até ciência de dados, análises em tempo real, business intelligence e relatórios. Saiba como iniciar uma nova avaliação gratuitamente!
Este artigo descreve como usar a Atividade de Cópia para copiar dados de e para o Microsoft Fabric Warehouse. Para saber mais, leia o artigo introdutório do Azure Data Factory ou do Azure Synapse Analytics.
Capacidades suportadas
Este conector do Microsoft Fabric Warehouse é suportado para os seguintes recursos:
Capacidades suportadas | IR | Ponto final privado gerido |
---|---|---|
Atividade de cópia (origem/coletor) | (1) (2) | ✓ |
Mapeando o fluxo de dados (origem/coletor) | (1) | ✓ |
Atividade de Pesquisa | (1) (2) | ✓ |
Atividade GetMetadata | (1) (2) | ✓ |
Atividade de script | (1) (2) | ✓ |
Atividade de procedimento armazenado | (1) (2) | ✓ |
(1) Tempo de execução de integração do Azure (2) Tempo de execução de integração auto-hospedado
Começar agora
Para executar a atividade Copiar com um pipeline, você pode usar uma das seguintes ferramentas ou SDKs:
- A ferramenta Copiar dados
- O portal do Azure
- O SDK do .NET
- O SDK do Python
- Azure PowerShell
- A API REST
- O modelo do Azure Resource Manager
Criar um serviço vinculado do Microsoft Fabric Warehouse usando a interface do usuário
Use as etapas a seguir para criar um serviço vinculado do Microsoft Fabric Warehouse na interface do usuário do portal do Azure.
Navegue até a guia Gerenciar em seu espaço de trabalho do Azure Data Factory ou Synapse e selecione Serviços Vinculados e, em seguida, selecione Novo:
Procure por Armazém e selecione o conector.
Configure os detalhes do serviço, teste a conexão e crie o novo serviço vinculado.
Detalhes de configuração do conector
As seções a seguir fornecem detalhes sobre as propriedades usadas para definir entidades do Data Factory específicas do Microsoft Fabric Warehouse.
Propriedades do serviço vinculado
O conector do Microsoft Fabric Warehouse suporta os seguintes tipos de autenticação. Consulte as seções correspondentes para obter detalhes:
Autenticação do principal de serviço
Para usar a autenticação da entidade de serviço, siga estas etapas.
Registre um aplicativo na plataforma Microsoft Identity e adicione um segredo do cliente. Depois, anote esses valores, que você usa para definir o serviço vinculado:
- ID do aplicativo (cliente), que é o ID da entidade de serviço no serviço vinculado.
- Valor secreto do cliente, que é a chave principal do serviço no serviço vinculado.
- ID de Inquilino do
Conceda à entidade de serviço pelo menos a função de Colaborador no espaço de trabalho do Microsoft Fabric. Siga estes passos:
Vá para o espaço de trabalho do Microsoft Fabric, selecione Gerenciar acesso na barra superior. Em seguida, selecione Adicionar pessoas ou grupos.
No painel Adicionar pessoas , insira o nome da entidade de serviço e selecione a entidade de serviço na lista suspensa.
Especifique a função como Colaborador ou superior (Administrador, Membro) e selecione Adicionar.
A entidade de serviço é exibida no painel Gerenciar acesso .
Estas propriedades são suportadas para o serviço vinculado:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type deve ser definida como Warehouse. | Sim |
endpoint | O ponto de extremidade do servidor do Microsoft Fabric Warehouse. | Sim |
workspaceId | A ID do espaço de trabalho do Microsoft Fabric. | Sim |
artifactId | A ID do objeto Microsoft Fabric Warehouse. | Sim |
tenant | Especifique as informações do locatário (nome de domínio ou ID do locatário) sob as quais seu aplicativo reside. Recupere-o passando o mouse no canto superior direito do portal do Azure. | Sim |
servicePrincipalId | Especifique o ID do cliente do aplicativo. | Sim |
servicePrincipalCredentialType | O tipo de credencial a ser usado para autenticação da entidade de serviço. Os valores permitidos são ServicePrincipalKey e ServicePrincipalCert. | Sim |
servicePrincipalCredential | A credencial da entidade de serviço. Ao usar ServicePrincipalKey como o tipo de credencial, especifique o valor de segredo do cliente do aplicativo. Marque este campo como SecureString para armazená-lo com segurança ou faça referência a um segredo armazenado no Cofre de Chaves do Azure. Ao usar ServicePrincipalCert como credencial, faça referência a um certificado no Cofre da Chave do Azure e verifique se o tipo de conteúdo do certificado é PKCS #12. |
Sim |
ConecteVia | O tempo de execução de integração a ser usado para se conectar ao armazenamento de dados. Você pode usar o tempo de execução de integração do Azure ou um tempo de execução de integração auto-hospedado se seu armazenamento de dados estiver em uma rede privada. Se não for especificado, o tempo de execução de integração padrão do Azure será usado. | Não |
Exemplo: usando a autenticação de chave da entidade de serviço
Você também pode armazenar a chave principal do serviço no Cofre de Chaves do Azure.
{
"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"
}
}
}
Propriedades do conjunto de dados
Para obter uma lista completa de seções e propriedades disponíveis para definir conjuntos de dados, consulte o artigo Conjuntos de dados.
As seguintes propriedades são suportadas para o conjunto de dados do Microsoft Fabric Warehouse:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type do conjunto de dados deve ser definida como WarehouseTable. | Sim |
esquema | Nome do esquema. | Não para a fonte, Sim para o lavatório |
tabela | Nome da tabela/vista. | Não para a fonte, Sim para o lavatório |
Exemplo de propriedades de conjunto de dados
{
"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>"
}
}
}
Propriedades da atividade Copy
Para obter uma lista completa de seções e propriedades disponíveis para definir atividades, consulte Copiar configurações de atividade e Pipelines e atividades. Esta seção fornece uma lista de propriedades suportadas pela origem e pelo coletor do Microsoft Fabric Warehouse.
Microsoft Fabric Warehouse como origem
Gorjeta
Para carregar dados do Microsoft Fabric Warehouse de forma eficiente usando o particionamento de dados, saiba mais em Cópia paralela do Microsoft Fabric Warehouse.
Para copiar dados do Microsoft Fabric Warehouse, defina a propriedade type na fonte Copy Activity como WarehouseSource. As seguintes propriedades são suportadas na seção Copiar fonte de atividade:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type da fonte Copy Activity deve ser definida como WarehouseSource. | Sim |
sqlReaderQuery | Use a consulta SQL personalizada para ler dados. Exemplo: select * from MyTable . |
Não |
sqlReaderStoredProcedureName | O nome do procedimento armazenado que lê dados da tabela de origem. A última instrução SQL deve ser uma instrução SELECT no procedimento armazenado. | Não |
storedProcedureParameters | Parâmetros para o procedimento armazenado. Os valores permitidos são pares de nome ou valor. Os nomes e o invólucro dos parâmetros devem corresponder aos nomes e invólucros dos parâmetros do procedimento armazenado. |
Não |
queryTimeout | Especifica o tempo limite para a execução do comando de consulta. O padrão é 120 minutos. | Não |
Nível de isolamento | Especifica o comportamento de bloqueio de transação para a fonte SQL. O valor permitido é Snapshot. Se não for especificado, o nível de isolamento padrão do banco de dados será usado. Para obter mais informações, consulte system.data.isolationlevel. | Não |
partitionOptions | Especifica as opções de particionamento de dados usadas para carregar dados do Microsoft Fabric Warehouse. Os valores permitidos são: Nenhum (padrão) e DynamicRange. Quando uma opção de partição é habilitada (ou seja, não None ), o grau de paralelismo para carregar simultaneamente dados de um Microsoft Fabric Warehouse é controlado pela parallelCopies configuração na atividade de cópia. |
Não |
partitionSettings | Especifique o grupo de configurações para particionamento de dados. Aplique quando a opção de partição não None for . |
Não |
Em partitionSettings : |
||
partitionColumnName | Especifique o nome da coluna de origem no número inteiro ou no tipo data/data/hora (int , smallint , bigint , date datetime2 , ) que será usado pelo particionamento de intervalo para cópia paralela. Se não for especificado, o índice ou a chave primária da tabela é detetado automaticamente e usado como a coluna de partição.Aplique quando a opção de partição for DynamicRange . Se você usar uma consulta para recuperar os dados de origem, conecte ?DfDynamicRangePartitionCondition a cláusula WHERE. Para obter um exemplo, consulte a seção Cópia paralela do Microsoft Fabric Warehouse . |
Não |
partiçãoUpperBound | O valor máximo da coluna de partição para divisão do intervalo de partições. Esse valor é usado para decidir a passada da partição, não para filtrar as linhas na tabela. Todas as linhas na tabela ou no resultado da consulta serão particionadas e copiadas. Se não for especificado, a atividade de cópia detetará automaticamente o valor. Aplique quando a opção de partição for DynamicRange . Para obter um exemplo, consulte a seção Cópia paralela do Microsoft Fabric Warehouse . |
Não |
partiçãoLowerBound | O valor mínimo da coluna de partição para divisão do intervalo de partições. Esse valor é usado para decidir a passada da partição, não para filtrar as linhas na tabela. Todas as linhas na tabela ou no resultado da consulta serão particionadas e copiadas. Se não for especificado, a atividade de cópia detetará automaticamente o valor. Aplique quando a opção de partição for DynamicRange . Para obter um exemplo, consulte a seção Cópia paralela do Microsoft Fabric Warehouse . |
Não |
Nota
Ao usar o procedimento armazenado na origem para recuperar dados, observe se o procedimento armazenado foi projetado como retornando esquema diferente quando um valor de parâmetro diferente é passado, você pode encontrar falha ou ver um resultado inesperado ao importar esquema da interface do usuário ou ao copiar dados para o Microsoft Fabric Warehouse com criação automática de tabela.
Exemplo: usando a 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>"
}
}
}
]
Exemplo: usando procedimento armazenado
"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>"
}
}
}
]
Exemplo de procedimento armazenado:
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 um tipo de pia
Suporte a pipelines do Azure Data Factory e Synapse Use a instrução COPY para carregar dados no Microsoft Fabric Warehouse.
Para copiar dados para o Microsoft Fabric Warehouse, defina o tipo de coletor em Copiar atividade como WarehouseSink. As seguintes propriedades são suportadas na seção Copiar coletor de atividade:
Property | Descrição | Obrigatório |
---|---|---|
tipo | A propriedade type do coletor Copy Activity deve ser definida como WarehouseSink. | Sim |
allowCopyCommand | Indica se a instrução COPY deve ser usada para carregar dados no Microsoft Fabric Warehouse. Consulte a seção Usar instrução COPY para carregar dados no Microsoft Fabric Warehouse para obter restrições e detalhes. O valor permitido é True. |
Sim |
copyCommandSettings | Um grupo de propriedades que podem ser especificadas quando allowCopyCommand a propriedade é definida como TRUE. |
Não |
writeBatchTimeout | Esta propriedade especifica o tempo de espera para que a operação de inserção, upsert e procedimento armazenado seja concluída antes que ela atinja o tempo limite. Os valores permitidos são para o período de tempo. Um exemplo é "00:30:00" por 30 minutos. Se nenhum valor for especificado, o tempo limite será padronizado como "00:30:00" |
Não |
pré-CopyScript | Especifique uma consulta SQL para que a Atividade de Cópia seja executada antes de gravar dados no Microsoft Fabric Warehouse em cada execução. Use essa propriedade para limpar os dados pré-carregados. | Não |
tableOption | Especifica se a tabela de coletor deve ser criada automaticamente se não existir com base no esquema de origem. Os valores permitidos são: none (padrão), autoCreate . |
Não |
disableMetricsCollection | O serviço coleta métricas para otimização de desempenho de cópia e recomendações, que introduzem acesso adicional ao banco de dados mestre. Se você estiver preocupado com esse comportamento, especifique true para desativá-lo. |
Não (o padrão é false ) |
Exemplo: Coletor do 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
}
}
}
]
Cópia paralela do Microsoft Fabric Warehouse
O conector do Microsoft Fabric Warehouse na atividade de cópia fornece particionamento de dados interno para copiar dados em paralelo. Você pode encontrar opções de particionamento de dados na guia Origem da atividade de cópia.
Quando você habilita a cópia particionada, a atividade de cópia executa consultas paralelas na origem do Microsoft Fabric Warehouse para carregar dados por partições. O grau paralelo é controlado pela parallelCopies
configuração na atividade de cópia. Por exemplo, se você definir parallelCopies
como quatro, o serviço gerará e executará simultaneamente quatro consultas com base na opção e nas configurações de partição especificadas, e cada consulta recuperará uma parte dos dados do Microsoft Fabric Warehouse.
Sugere-se que habilite a cópia paralela com particionamento de dados, especialmente quando você carrega uma grande quantidade de dados do Microsoft Fabric Warehouse. A seguir estão sugeridas configurações para diferentes cenários. Ao copiar dados para o armazenamento de dados baseado em arquivo, é recomendável gravar em uma pasta como vários arquivos (especifique apenas o nome da pasta), caso em que o desempenho é melhor do que gravar em um único arquivo.
Cenário | Configurações sugeridas |
---|---|
Carga completa a partir de uma tabela grande, enquanto com uma coluna inteira ou datetime para particionamento de dados. | Opções de partição: Partição de intervalo dinâmico. Coluna de partição (opcional): especifique a coluna usada para particionar dados. Se não for especificado, o índice ou a coluna de chave primária será usado. Limite superior da partição e limite inferior da partição (opcional): Especifique se deseja determinar o passo da partição. Isso não é para filtrar as linhas na tabela, e todas as linhas na tabela serão particionadas e copiadas. Se não for especificado, a atividade de cópia detetará automaticamente os valores. Por exemplo, se a coluna de partição "ID" tiver valores que variam de 1 a 100 e você definir o limite inferior como 20 e o limite superior como 80, com cópia paralela como 4, o serviço recuperará dados por 4 partições - IDs no intervalo <=20, [21, 50], [51, 80] e >=81, respectivamente. |
Carregue uma grande quantidade de dados usando uma consulta personalizada, enquanto com uma coluna inteira ou data/data/hora para particionamento de dados. | Opções de partição: Partição de intervalo dinâmico. Consulta: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> .Coluna de partição: especifique a coluna usada para particionar dados. Limite superior da partição e limite inferior da partição (opcional): Especifique se deseja determinar o passo da partição. Isso não serve para filtrar as linhas na tabela, e todas as linhas no resultado da consulta serão particionadas e copiadas. Se não for especificado, a atividade de cópia detetará automaticamente o valor. Por exemplo, se a coluna de partição "ID" tiver valores que variam de 1 a 100 e você definir o limite inferior como 20 e o limite superior como 80, com cópia paralela como 4, o serviço recuperará dados por 4 partições - IDs no intervalo <=20, [21, 50], [51, 80] e >=81, respectivamente. Aqui estão mais consultas de exemplo para diferentes cenários: 1. Consulte toda a tabela: SELECT * FROM <TableName> WHERE ?DfDynamicRangePartitionCondition 2. Consulta a partir de uma tabela com seleção de colunas e filtros adicionais de cláusula where: SELECT <column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> 3. Consulta com subconsultas: SELECT <column_list> FROM (<your_sub_query>) AS T WHERE ?DfDynamicRangePartitionCondition AND <your_additional_where_clause> 4. Consulta com partição em subconsulta: SELECT <column_list> FROM (SELECT <your_sub_query_column_list> FROM <TableName> WHERE ?DfDynamicRangePartitionCondition) AS T |
Práticas recomendadas para carregar dados com a opção de partição:
- Escolha uma coluna distinta como coluna de partição (como chave primária ou chave exclusiva) para evitar distorção de dados.
- Se você usar o Tempo de Execução de Integração do Azure para copiar dados, poderá definir "Unidades de Integração de Dados (DIU)" (>4) maiores para utilizar mais recursos de computação. Verifique os cenários aplicáveis lá.
- "Grau de paralelismo de cópia" controlar os números de partição, definir este número muito grande às vezes prejudica o desempenho, recomendo definir este número como (DIU ou número de nós IR auto-hospedados) * (2 a 4).
- Observe que o Microsoft Fabric Warehouse pode executar um máximo de 32 consultas por momento, definir "Grau de paralelismo de cópia" muito grande pode causar um problema de limitação do Warehouse.
Exemplo: consulta com partição de intervalo dinâmico
"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>"
}
}
Use a instrução COPY para carregar dados no Microsoft Fabric Warehouse
Usar a instrução COPY é uma maneira simples e flexível de carregar dados no Microsoft Fabric Warehouse com alta taxa de transferência. Para saber mais detalhes, verifique Dados de carregamento em massa usando a instrução COPY
- Se os dados de origem estiverem no Blob do Azure ou no Azure Data Lake Storage Gen2 e o formato for compatível com a instrução COPY, você poderá usar a atividade de cópia para invocar diretamente a instrução COPY para permitir que o Microsoft Fabric Warehouse extraia os dados da origem. Para obter detalhes, consulte Cópia direta usando a instrução COPY.
- Se o armazenamento de dados de origem e o formato não forem originalmente suportados pela instrução COPY, use o recurso Cópia em etapas usando a instrução COPY. O recurso de cópia em estágios também oferece uma melhor taxa de transferência. Ele converte automaticamente os dados em formato compatível com a instrução COPY, armazena os dados no armazenamento de Blob do Azure e, em seguida, chama a instrução COPY para carregar dados no Microsoft Fabric Warehouse.
Gorjeta
Ao usar a instrução COPY com o Azure Integration Runtime, as Unidades de Integração de Dados (DIU) efetivas são sempre 2. Ajustar a DIU não afeta o desempenho.
Cópia direta usando a instrução COPY
A instrução COPY do Microsoft Fabric Warehouse suporta diretamente o Azure Blob, o Azure Data Lake Storage Gen1 e o Azure Data Lake Storage Gen2. Se os dados de origem atenderem aos critérios descritos nesta seção, use a instrução COPY para copiar diretamente do armazenamento de dados de origem para o Microsoft Fabric Warehouse. Caso contrário, use Cópia em etapas usando a instrução COPY. O serviço verifica as configurações e falha na execução da atividade de cópia se os critérios não forem atendidos.
O serviço vinculado de origem e o formato estão com os seguintes tipos e métodos de autenticação:
Tipo de armazenamento de dados de origem suportado Formato suportado Tipo de autenticação de origem suportado Azure Blob Texto delimitado Autenticação de chave de conta, autenticação de assinatura de acesso compartilhado Parquet Autenticação de chave de conta, autenticação de assinatura de acesso compartilhado Azure Data Lake Storage Gen2 (Armazenamento do Azure Data Lake Gen2) Texto delimitado
ParquetAutenticação de chave de conta, autenticação de assinatura de acesso compartilhado As configurações de formato são as seguintes:
- Para Parquet:
compression
pode ser sem compressão, Snappy ouGZip
. - Para o texto delimitado:
rowDelimiter
é explicitamente definido como caractere único ou "\r\n", o valor padrão não é suportado.nullValue
é deixado como padrão ou definido como string vazia ("").encodingName
é deixado como padrão ou definido como utf-8 ou utf-16.escapeChar
deve ser igual aquoteChar
, e não está vazio.skipLineCount
é deixado como padrão ou definido como 0.compression
pode ser sem compressão ouGZip
.
- Para Parquet:
Se a origem for uma pasta,
recursive
a atividade de cópia deve ser definida como true ewildcardFilename
precisa ser*
ou*.*
.wildcardFolderPath
,wildcardFilename
(exceto*
ou*.*
),modifiedDateTimeStart
, ,modifiedDateTimeEnd
prefix
, eenablePartitionDiscovery
additionalColumns
não são especificados.
As seguintes configurações de instrução COPY são suportadas em allowCopyCommand
atividade de cópia:
Property | Descrição | Obrigatório |
---|---|---|
defaultValues | Especifica os valores padrão para cada coluna de destino no Microsoft Fabric Warehouse. Os valores padrão na propriedade substituem a restrição DEFAULT definida no data warehouse, e a coluna de identidade não pode ter um valor padrão. | Não |
opções adicionais | Opções adicionais que serão passadas para uma instrução COPY do Microsoft Fabric Warehouse diretamente na cláusula "Com" na instrução COPY. Cote o valor conforme necessário para alinhar com os requisitos da instrução COPY. | Não |
"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
}
}
]
Cópia em etapas usando a instrução COPY
Quando os dados de origem não forem nativamente compatíveis com a instrução COPY, habilite a cópia de dados por meio de um Blob do Azure de preparo provisório ou do Azure Data Lake Storage Gen2 (não pode ser o Armazenamento Premium do Azure). Nesse caso, o serviço converte automaticamente os dados para atender aos requisitos de formato de dados da instrução COPY. Em seguida, ele invoca a instrução COPY para carregar dados no Microsoft Fabric Warehouse. Finalmente, ele limpa seus dados temporários do armazenamento. Consulte Cópia em etapas para obter detalhes sobre como copiar dados por meio de um preparo.
Para usar esse recurso, crie um serviço vinculado do Armazenamento de Blobs do Azure ou um serviço vinculado do Azure Data Lake Storage Gen2 com chave de conta ou autenticação de identidade gerenciada pelo sistema que se refere à conta de armazenamento do Azure como o armazenamento provisório.
Importante
- Ao usar a autenticação de identidade gerenciada para seu serviço vinculado de preparo, aprenda as configurações necessárias para o Blob do Azure e o Azure Data Lake Storage Gen2 , respectivamente.
- Se o seu Armazenamento do Azure de preparo estiver configurado com o ponto de extremidade do serviço VNet, você deverá usar a autenticação de identidade gerenciada com "permitir serviço confiável da Microsoft" habilitado na conta de armazenamento, consulte Impacto do uso de Pontos de Extremidade de Serviço VNet com o armazenamento do Azure.
Importante
Se o Armazenamento do Azure de preparo estiver configurado com o Ponto de Extremidade Privado Gerenciado e tiver o firewall de armazenamento habilitado, você deverá usar a autenticação de identidade gerenciada e conceder permissões de Leitor de Dados de Blob de Armazenamento ao SQL Server Synapse para garantir que ele possa acessar os arquivos em estágios durante o carregamento da instrução 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"
}
}
}
}
]
Mapeando propriedades de fluxo de dados
Ao transformar dados em mapeamento de fluxo de dados, você pode ler e gravar em tabelas do Microsoft Fabric Warehouse. Para obter mais informações, consulte a transformação de origem e a transformação de coletor no mapeamento de fluxos de dados.
Microsoft Fabric Warehouse como origem
As configurações específicas do Microsoft Fabric Warehouse estão disponíveis na guia Opções de origem da transformação de origem.
Nome | Descrição | Obrigatório | Valores Permitidos | Propriedade do script de fluxo de dados |
---|---|---|---|---|
Entrada | Selecione se você aponta sua fonte para uma tabela (equivalente a Selecionar * do nome da tabela) ou insira uma consulta SQL personalizada ou recupere dados de um Procedimento Armazenado. Consulta: Se você selecionar Consulta no campo de entrada, insira uma consulta SQL para sua fonte. Essa configuração substitui qualquer tabela escolhida no conjunto de dados. As cláusulas Order By não são suportadas aqui, mas você pode definir uma instrução SELECT FROM completa. Você também pode usar funções de tabela definidas pelo usuário. select * from udfGetData() é um UDF em SQL que retorna uma tabela. Essa consulta produzirá uma tabela de origem que você pode usar em seu fluxo de dados. Usar consultas também é uma ótima maneira de reduzir linhas para testes ou pesquisas. Exemplo de SQL: Select * from MyTable where customerId > 1000 and customerId < 2000 |
Sim | Tabela ou consulta ou procedimento armazenado | Formato: 'Tabela' |
Tamanho do lote | Insira um tamanho de lote para fragmentar dados grandes em leituras. Em fluxos de dados, essa configuração será usada para definir o cache colunar do Spark. Este é um campo de opção, que usará os padrões do Spark se for deixado em branco. | Não | Valores numéricos | Tamanho do lote: 1234 |
Nível de isolamento | O padrão para fontes SQL no mapeamento do fluxo de dados é ler sem confirmação. Você pode alterar o nível de isolamento aqui para um destes valores:• Ler comprometido • Ler não confirmado • Leitura repetível • Serializável • Nenhum (ignorar nível de isolamento) | Sim | • Leitura confirmada • Leitura não confirmada • Leitura repetível • Serializável • Nenhuma (ignorar o nível de isolamento) | Nível de isolamento |
Nota
Não há suporte para leitura via preparo. O suporte CDC para a origem do Microsoft Fabric Warehouse não está disponível no momento.
Microsoft Fabric Warehouse como a pia
As configurações específicas do Microsoft Fabric Warehouse estão disponíveis na guia Configurações da transformação do coletor.
Nome | Descrição | Obrigatório | Valores Permitidos | Propriedade do script de fluxo de dados |
---|---|---|---|---|
Método de atualização | Determina quais operações são permitidas no destino do banco de dados. O padrão é permitir apenas inserções. Para atualizar, atualizar ou excluir linhas, uma transformação de linha de alteração é necessária para marcar linhas para essas ações. Para atualizações, upserts e exclusões, uma coluna ou colunas de chave devem ser definidas para determinar qual linha alterar. | Sim | verdadeiro ou falso | inserível deletable upsertable atualizável |
Ação da tabela | Determina se todas as linhas da tabela de destino devem ser recriadas ou removidas antes de escrever.• Nenhuma: nenhuma ação será executada na tabela. • Recriar: A tabela será descartada e recriada. Necessário se criar uma nova tabela dinamicamente.• Truncate: Todas as linhas da tabela de destino serão removidas. | Não | Nenhum ou recriar ou truncar | recriar: true truncate: true |
Ativar o teste | O armazenamento de preparo é configurado na atividade Executar fluxo de dados. Ao usar a autenticação de identidade gerenciada para seu serviço vinculado de armazenamento, aprenda as configurações necessárias para o Blob do Azure e o Azure Data Lake Storage Gen2 , respectivamente. Se o seu Armazenamento do Azure estiver configurado com o ponto de extremidade do serviço VNet, você deverá usar a autenticação de identidade gerenciada com "permitir serviço confiável da Microsoft" habilitado na conta de armazenamento, consulte Impacto do uso de Pontos de Extremidade de Serviço VNet com o armazenamento do Azure. | Não | verdadeiro ou falso | encenado: verdadeiro |
Tamanho do lote | Controla quantas linhas estão sendo escritas em cada bucket. Lotes maiores melhoram a compactação e a otimização da memória, mas correm o risco de exceções de falta de memória ao armazenar dados em cache. | Não | Valores numéricos | Tamanho do lote: 1234 |
Usar esquema de coletor | Por padrão, uma tabela temporária será criada sob o esquema de coletor como preparação. Como alternativa, você pode desmarcar a opção Usar esquema de coletor e, em vez disso, em Selecionar esquema de banco de dados do usuário, especificar um nome de esquema sob o qual o Data Factory criará uma tabela de preparo para carregar dados upstream e limpá-los automaticamente após a conclusão. Verifique se você tem permissão para criar tabela no banco de dados e alterar permissão no esquema. | Não | verdadeiro ou falso | stagingSchemaName |
Scripts pré e pós SQL | Insira scripts SQL de várias linhas que serão executados antes (pré-processamento) e depois que os dados (pós-processamento) forem gravados no banco de dados do Sink | Não | Scripts SQL | preSQLs:['set IDENTITY_INSERT mytable ON'] postSQLs:['set IDENTITY_INSERT mytable OFF'], |
Processamento da linha de erro
Por padrão, uma execução de fluxo de dados falhará no primeiro erro que receber. Você pode optar por Continuar no erro que permite que o fluxo de dados seja concluído mesmo que linhas individuais tenham erros. O serviço fornece diferentes opções para você lidar com essas linhas de erro.
Confirmação de transação: escolha se seus dados são gravados em uma única transação ou em lotes. Uma única transação proporcionará um melhor desempenho e nenhum dado gravado será visível para outras pessoas até que a transação seja concluída. As transações em lote têm pior desempenho, mas podem funcionar para grandes conjuntos de dados.
Dados rejeitados de saída: se habilitado, você pode gerar as linhas de erro em um arquivo csv no Armazenamento de Blobs do Azure ou em uma conta do Azure Data Lake Storage Gen2 de sua escolha. Isso gravará as linhas de erro com três colunas adicionais: a operação SQL como INSERT ou UPDATE, o código de erro de fluxo de dados e a mensagem de erro na linha.
Relatar erro bem-sucedido: Se habilitado, o fluxo de dados será marcado como um sucesso, mesmo se forem encontradas linhas de erro.
Nota
Para o Serviço Vinculado de Armazém do Microsoft Fabric, o tipo de autenticação suportado para a Entidade de Serviço é 'Chave'; A autenticação de 'certificado' não é suportada.
Propriedades da atividade de pesquisa
Para saber detalhes sobre as propriedades, verifique Atividade de pesquisa.
Propriedades de atividade GetMetadata
Para saber detalhes sobre as propriedades, verifique a atividade GetMetadata
Mapeamento de tipo de dados para o Microsoft Fabric Warehouse
Quando você copia dados do Microsoft Fabric Warehouse, os mapeamentos a seguir são usados de tipos de dados do Microsoft Fabric Warehouse para tipos de dados provisórios dentro do serviço internamente. Para saber como a atividade de cópia mapeia o esquema de origem e o tipo de dados para o coletor, consulte Mapeamentos de esquema e tipo de dados.
Tipo de dados do Microsoft Fabric Warehouse | Tipo de dados provisórios do Data Factory |
---|---|
bigint | Int64 |
binário | Byte[] |
bit | Boolean |
char | String, Char[] |
data | DateTime |
datetime2 | DateTime |
Decimal | Decimal |
Atributo FILESTREAM (varbinary(max)) | Byte[] |
Float | Duplo |
número inteiro | Int32 |
numérico | Decimal |
real | Única |
smallint | Int16 |
hora | TimeSpan |
uniqueidentifier | GUID |
Varbinary | Byte[] |
varchar | String, Char[] |
Próximos passos
Para obter uma lista de armazenamentos de dados suportados como fontes e coletores pela atividade de cópia, consulte Armazenamentos de dados suportados.