Formato de Modelo de Dados Comum no Azure Data Factory e 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!
O sistema de metadados Common Data Model (CDM) possibilita que os dados e seu significado sejam facilmente compartilhados entre aplicativos e processos de negócios. Para saber mais, consulte a Visão geral do Modelo de Dados Comum.
Nos pipelines do Azure Data Factory e do Synapse, os usuários podem transformar dados de entidades CDM no formato model.json e manifesto armazenados no Azure Data Lake Store Gen2 (ADLS Gen2) usando fluxos de dados de mapeamento. Você também pode coletar dados no formato CDM usando referências de entidade CDM que colocarão seus dados no formato CSV ou Parquet em pastas particionadas.
Mapeando propriedades de fluxo de dados
O Common Data Model está disponível como um conjunto de dados embutido no mapeamento de fluxos de dados como fonte e coletor.
Nota
Ao escrever entidades CDM, você deve ter uma definição de entidade CDM existente (esquema de metadados) já definida para usar como referência. O coletor de fluxo de dados lerá esse arquivo de entidade CDM e importará o esquema para o coletor para mapeamento de campo.
Propriedades de origem
A tabela abaixo lista as propriedades suportadas por uma fonte CDM. Você pode editar essas propriedades na guia Opções de origem .
Nome | Descrição | Obrigatório | Valores permitidos | Propriedade do script de fluxo de dados |
---|---|---|---|---|
Formato | O formato deve ser cdm |
sim | cdm |
format |
Formato dos metadados | Onde está localizada a referência da entidade aos dados. Se estiver usando o CDM versão 1.0, escolha manifesto. Se estiver usando uma versão do CDM anterior à 1.0, escolha model.json. | Sim | 'manifest' ou 'model' |
manifestType |
Localização da raiz: recipiente | Nome do contêiner da pasta CDM | sim | String | Sistema de arquivos |
Local da raiz: caminho da pasta | Localização da pasta raiz da pasta CDM | sim | String | folderPath |
Arquivo de manifesto: caminho da entidade | Caminho da pasta da entidade dentro da pasta raiz | não | String | entityPath |
Arquivo de manifesto: Nome do manifesto | Nome do arquivo de manifesto. O valor padrão é 'default' | Não | String | manifestName |
Filtrar por última modificação | Opte por filtrar ficheiros com base na data em que foram alterados pela última vez | não | Carimbo de Data/Hora | modificadoApós modificadoAntes |
Serviço vinculado de esquema | O serviço ligado onde o corpus está localizado | Sim, se estiver usando manifesto | 'adlsgen2' ou 'github' |
corpusLoja |
Contêiner de referência de entidade | O corpus do contentor está em | sim, se usar manifesto e corpus no ADLS Gen2 | String | adlsgen2_fileSystem |
Repositório de referência de entidade | Nome do repositório do GitHub | Sim, se estiver usando manifesto e corpus no GitHub | String | github_repository |
Sucursal de referência da entidade | Ramificação do repositório GitHub | Sim, se estiver usando manifesto e corpus no GitHub | String | github_branch |
Pasta Corpus | a localização da raiz do corpus | Sim, se estiver usando manifesto | String | corpusPath |
Entidade Corpus | Caminho para a referência da entidade | sim | String | entidade |
Não permitir que nenhum arquivo seja encontrado | Se verdadeiro, um erro não é lançado se nenhum arquivo for encontrado | não | true ou false |
ignoreNoFilesFound |
Ao selecionar "Referência de entidade" nas transformações Origem e Coletor, você pode selecionar entre estas três opções para o local da referência de entidade:
- Local usa a entidade definida no arquivo de manifesto que já está sendo usado pelo serviço
- Personalizado solicitará que você aponte para um arquivo de manifesto de entidade que seja diferente do arquivo de manifesto que o serviço está usando
- O padrão usará uma referência de entidade da biblioteca padrão de entidades CDM mantidas no
GitHub
.
Configurações do coletor
- Aponte para o arquivo de referência de entidade CDM que contém a definição da entidade que você deseja escrever.
- Defina o caminho da partição e o formato dos arquivos de saída que você deseja que o serviço use para escrever suas entidades.
- Defina o local do arquivo de saída e o local e o nome do arquivo de manifesto.
Esquema de importação
O CDM só está disponível como um conjunto de dados embutido e, por padrão, não tem um esquema associado. Para obter metadados de coluna, clique no botão Importar esquema na guia Projeção . Isto permitir-lhe-á fazer referência aos nomes das colunas e aos tipos de dados especificados pelo corpus. Para importar o esquema, uma sessão de depuração de fluxo de dados deve estar ativa e você deve ter um arquivo de definição de entidade CDM existente para apontar.
Ao mapear colunas de fluxo de dados para propriedades de entidade na transformação Coletor, clique na guia "Mapeamento" e selecione "Importar esquema". O serviço lerá a referência de entidade que você apontou em suas opções de coletor, permitindo que você mapeie para o esquema CDM de destino.
Nota
Ao usar model.json tipo de fonte que se origina de fluxos de dados do Power BI ou Power Platform, você pode encontrar erros "caminho de corpus é nulo ou vazio" da transformação de origem. Isso provavelmente se deve a problemas de formatação do caminho do local da partição no arquivo model.json. Para corrigir isso, execute as seguintes etapas:
- Abrir o arquivo model.json em um editor de texto
- Encontre as partições. Propriedade de localização
- Alterar "blob.core.windows.net" para "dfs.core.windows.net"
- Corrija qualquer codificação "%2F" no URL para "/"
- Se estiver usando Fluxos de Dados do ADF, os caracteres especiais no caminho do arquivo de partição deverão ser substituídos por valores alfanuméricos ou alternar para os Fluxos de Dados do Azure Synapse
Exemplo de script de fluxo de dados de origem CDM
source(output(
ProductSizeId as integer,
ProductColor as integer,
CustomerId as string,
Note as string,
LastModifiedDate as timestamp
),
allowSchemaDrift: true,
validateSchema: false,
entity: 'Product.cdm.json/Product',
format: 'cdm',
manifestType: 'manifest',
manifestName: 'ProductManifest',
entityPath: 'Product',
corpusPath: 'Products',
corpusStore: 'adlsgen2',
adlsgen2_fileSystem: 'models',
folderPath: 'ProductData',
fileSystem: 'data') ~> CDMSource
Propriedades do lavatório
A tabela abaixo lista as propriedades suportadas por um coletor CDM. Você pode editar essas propriedades na guia Configurações .
Nome | Descrição | Obrigatório | Valores permitidos | Propriedade do script de fluxo de dados |
---|---|---|---|---|
Formato | O formato deve ser cdm |
sim | cdm |
format |
Localização da raiz: recipiente | Nome do contêiner da pasta CDM | sim | String | Sistema de arquivos |
Local da raiz: caminho da pasta | Localização da pasta raiz da pasta CDM | sim | String | folderPath |
Arquivo de manifesto: caminho da entidade | Caminho da pasta da entidade dentro da pasta raiz | não | String | entityPath |
Arquivo de manifesto: Nome do manifesto | Nome do arquivo de manifesto. O valor padrão é 'default' | Não | String | manifestName |
Serviço vinculado de esquema | O serviço ligado onde o corpus está localizado | sim | 'adlsgen2' ou 'github' |
corpusLoja |
Contêiner de referência de entidade | O corpus do contentor está em | sim, se corpus no ADLS Gen2 | String | adlsgen2_fileSystem |
Repositório de referência de entidade | Nome do repositório do GitHub | Sim, se corpus no GitHub | String | github_repository |
Sucursal de referência da entidade | Ramificação do repositório GitHub | Sim, se corpus no GitHub | String | github_branch |
Pasta Corpus | a localização da raiz do corpus | sim | String | corpusPath |
Entidade Corpus | Caminho para a referência da entidade | sim | String | entidade |
Caminho da partição | Local onde a partição será gravada | não | String | partitionPath |
Limpar a pasta | Se a pasta de destino for limpa antes da gravação | não | true ou false |
truncate |
Tipo de formato | Opte por especificar o formato do parquet | não | parquet se especificado |
subformato |
Delimitador de coluna | Se estiver escrevendo em DelimitedText, como delimitar colunas | Sim, se escrever para DelimitedText | String | columnDelimiter |
Primeira linha como cabeçalho | Se estiver usando DelimitedText, se os nomes das colunas forem adicionados como um cabeçalho | não | true ou false |
columnNamesAsHeader |
Exemplo de script de fluxo de dados do coletor CDM
O script de fluxo de dados associado é:
CDMSource sink(allowSchemaDrift: true,
validateSchema: false,
entity: 'Product.cdm.json/Product',
format: 'cdm',
entityPath: 'ProductSize',
manifestName: 'ProductSizeManifest',
corpusPath: 'Products',
partitionPath: 'adf',
folderPath: 'ProductSizeData',
fileSystem: 'cdm',
subformat: 'parquet',
corpusStore: 'adlsgen2',
adlsgen2_fileSystem: 'models',
truncate: true,
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> CDMSink
Conteúdos relacionados
Crie uma transformação de origem no mapeamento do fluxo de dados.