Este artigo fornece informações sobre perguntas frequentes sobre a exportação de dados de tabela do Microsoft Dataverse para o Azure Synapse Analytics e Azure Data Lake.
Posso executar manualmente tarefas como criar, atualizar, eliminar ou definir políticas de eliminar automaticamente para ficheiros de dados no armazenamento do Azure ligado?
Os ficheiros de dados não devem ser modificados por um cliente e nenhum ficheiro de cliente deve ser colocado nas pastas de dados.
Nota
Para remover dados obsoletos e estagnados no data lake sem quebrar o Azure Synapse Link, considere utilizar a caraterística Consultar e analisar as atualizações incrementais
Como posso aceder às minhas relações de tabela?
Para aceder a relações muitos para muitos, a relação está disponível como uma tabela para selecionar na página Adicionar tabelas para uma nova ligação e em Gerir tabelas para uma ligação pré-existente.
Nota
Por predefinição, todos os dados de relações estão no modo Só anexar quando escritos no formato CSV.
Como posso obter custos estimados antes de adicionar o Azure Synapse Link?
Azure Synapse Link é uma funcionalidade gratuita com o Dataverse. A utilização do Azure Synapse Link for Dataverse não implica custos adicionais com o Dataverse. No entanto, considere os custos potenciais do serviço Azure:
- Armazenamento de dados no Azure Data Lake Storage Gen2: Preços do Azure Storage Data Lake Gen2 | Microsoft Azure
- Custo de consumo de dados (como Synapse Workspace): Preços - Azure Synapse Analytics | Microsoft Azure Para obter informações abrangentes sobre o Microsoft Cost Management, aceda a: Planear para gerir os custos do Azure - Microsoft Cost Management | Microsoft Learn
O que acontece quando adiciono uma coluna?
Quando adiciona uma nova coluna a uma tabela na origem, também é adicionada no final do ficheiro no destino na partição de ficheiro correspondente. Embora as linhas que existiam antes da adição da coluna não sejam mostradas na nova coluna, linhas novas ou atualizadas mostram a coluna recém-adicionada.
O que acontece quando elimino uma coluna?
Quando elimina uma coluna de uma tabela na origem, a coluna não é retirada do destino. Em vez disso, as linhas já não são atualizadas e são marcadas como nulas, preservando as linhas anteriores.
O que acontece se alterar o tipo de dados de uma coluna?
Alterar o tipo de dados de uma coluna é uma alteração interruptiva e terá de desassociá-la e reassociá-la.
O que acontece quando elimino uma linha?
A eliminação de uma linha é processada de forma diferente com base nas opções de escrita de dados que escolhe:
- Atualização no local com formato CSV: este é o modo predefinido. Quando elimina uma linha de tabela neste modo, a linha também é eliminada da partição de dados correspondente no Azure Data Lake. Por outras palavras, os dados são eliminados definitivamente do destino.
- Só anexar com formato CSV e atualização de pasta incremental: neste modo, quando uma linha de tabela do Dataverse é eliminada, não é eliminada definitivamente do destino. Em vez disso, uma linha é adicionada e definida como
isDeleted=True
ao ficheiro na partição de dados correspondente no Azure Data Lake. - Formato Exportar para Delta Lake: o Azure Synapse Link efetua uma eliminação recuperável nos dados durante o próximo ciclo de sincronização delta, seguida de uma eliminação definitiva após 30 dias.
Por que não encontro um cabeçalho de coluna no ficheiro exportado?
O Azure Synapse Link segue o Common Data Model para que os dados e o seu significado possam ser partilhados em aplicações e processos empresariais, como o Microsoft Power Apps, Power BI, Dynamics 365 e Azure. Em cada pasta do CDM, metadados como um cabeçalho de coluna são armazenados no ficheiro model.json. Mais informações: Common Data Model e Azure Data Lake Storage Gen2 | Microsoft Learn
Porque é que o ficheiro Model.json aumenta ou altera o comprimento para os tipos de dados e não mantém o que está definido no Dataverse?
O Model.json mantém o comprimento da base de dados para o tamanho da coluna. O Dataverse tem um conceito de comprimento de base de dados para cada coluna. Se criar uma coluna com um tamanho de 200 e, mais tarde, a reduzir para 100, o Dataverse ainda permite a presença dos seus dados existentes no Dataverse. Fá-lo ao manter DBLength
como 200 e MaxLength
como 100. O que vê em Model.json é DBLength
que, se utilizar isso para processos a jusante, nunca aprovisionará menos espaço para as suas colunas do Dataverse.
Nota
Os campos de memorando são definidos como varchar(max)
com um comprimento máximo predefinido de 9999.
Que formatos de data e hora podem ser esperados nas tabelas do Dataverse exportadas?
Existem três formatos de data e hora que podem ser esperados nas tabelas do Dataverse exportadas.
Nome da Coluna | Formato | Tipo de Dados | Exemplo |
---|---|---|---|
SinkCreatedOn e SinkModifiedOn | M/d/AAAA H:mm:ss tt | datetime | 28/06/2021 16:34:35 |
CreatedOn | aaaa-MM-dd'T'HH:mm:ss.sssssssXXX | datetimeOffset | 2018-05-25T16:21:09.0000000+00:00 |
Todas as Outras Colunas | aaaa-MM-dd'T'HH:mm:ss'Z' | datetime | 2021-06-25T16:21:12Z |
Nota
Tipo de dados CreatedOn alterado de datetime
para datetimeOffset
em 29/07/2022. Para editar o formato do tipo de dados de uma tabela criada antes da alteração, elimine e adicione novamente a tabela.
Pode escolher diferentes comportamentos de coluna para uma coluna Data e Hora no Dataverse, o que atualiza o formato do tipo de dados. Mais informações: Comportamento e formato da coluna de Data e Hora
Porque é que estou a ver nomes de ficheiro 1.csv ou 1_001.csv em vez de nomes de ficheiros particionados de data e hora normais para algumas tabelas do Dataverse?
Este comportamento é esperado quando escolhe o modo de exportação só para acrescentar e tem tabelas sem uma coluna válida CreatedOn . Os blobs são organizados em ficheiros como 1.csv, 2.csv (utilizando a criação de partições personalizada devido à ausência de uma data de criação válida). Quando qualquer partição se aproxima de 95% do MaxBlockPerBlobLimit, o sistema gera automaticamente um ficheiro novo, ilustrado aqui como 1_001.csv.
Quando devo usar uma estratégia de partição anual ou mensal?
Para tabelas do Dataverse onde o volume de dados é elevado dentro de um ano, recomendamos que utilize partições mensais. Fazê-lo, resulta em ficheiros mais pequenos e melhor desempenho. Além disso, se as linhas nas tabelas do Dataverse forem atualizadas frequentemente, dividi-las em vários ficheiros mais pequenos ajuda a melhorar o desempenho no caso dos cenários de atualização no local. O Delta Lake só está disponível com partição anual devido ao seu desempenho superior em comparação com o formato CSV.
O que é o modo anexar apenas e qual é a diferença entre o modo anexar apenas e no local?
No modo anexar apenas, dados incrementais de tabelas do Dataverse são anexados à partição de ficheiros correspondente no lake. Para mais informações: Opções de Configuração Avançadas no Azure Synapse Link
Quando é que utilizo o modo anexar apenas para uma vista histórica das mudanças?
O modo Só anexar é a opção recomendada para escrever dados de tabela do Dataverse para o lake, especialmente quando os volumes de dados são elevados dentro de uma partição com dados frequentemente alterados. Mais uma vez, esta é uma opção usada com frequência e altamente recomendada para clientes empresariais. Além disso, pode optar por utilizar este modo para cenários em que a intenção é rever gradualmente as alterações a partir do Dataverse e processar as alterações para os cenários ETL, IA e ML. O modo Só anexar fornece um histórico de alterações, em vez da mais recente alteração ou atualização colocada, e permite várias séries temporais a partir de cenários de IA, como predição ou a análise de previsão com base em valores históricos.
Como obtenho a linha mais atualizada de cada registo e excluo linhas eliminadas quando exporto dados apenas no modo anexar apenas?
No modo Só anexar, deverá identificar a versão mais recente do registo com o mesmo ID utilizando VersionNumber
e SinkModifiedOn
e, em seguida, aplicar isDeleted=0
na versão mais recente.
Porque é que vejo números de versão duplicados quando exporto dados utilizando o modo anexar apenas?
Para o modo só de anexar, se o Azure Synapse Link for Dataverse não recebe um reconhecimento do Azure Data Lake de que os dados foram consolidados por qualquer motivo, como atrasos na rede, o Azure Synapse Link tentará novamente nesses cenários e consolidará os dados novamente. O consumo a jusante deverá ser tornado resiliente para este cenário através da filtragem de dados utilizando SinkModifiedOn
.
Por que estou a ver diferenças nas colunas Sinkmodifiedon e Modifiedon?
É esperado. Modifiedon
é o datetime em que o registo está a ser alterado no Dataverse; Sinkmodifiedon
é a data e a hora em que o registo é modificado no data lake.
Que tabelas do Dataverse não são suportadas para exportação?
Qualquer tabela que não tenha o controlo de alterações ativado não será suportada para além das seguintes tabelas do sistema:
- Anexo
- Calendário
- Calendarrule
Nota
Pode adicionar a tabela de auditoria para exportação com o Azure Synapse Link for Dataverse. No entanto, a exportação da tabela de auditoria só é suportada com Perfis Delta Lake.
Estou a utilizar a funcionalidade exportar para delta lake; posso parar a tarefa Apache Spark ou alterar o tempo de execução?
A tarefa de conversão do Delta Lake é acionada quando há uma alteração de dados no intervalo de tempo configurado. Não existe nenhuma opção para parar ou colocar em pausa o conjunto Apache Spark. No entanto, pode modificar o intervalo de tempo após a criação da ligação em Gerir tabelas > Intervalo de tempo avançado.
O Azure Synapse Link suporta colunas de pesquisa?
As colunas de pesquisa são compostas por um ID e um valor. Os valores de pesquisa só mudam na tabela raiz. Para refletir melhor o valor de uma coluna de pesquisa, recomendamos juntar-se à tabela raiz original para obter o valor mais recente.
O Azure Synapse Link suporta colunas calculadas?
No Dataverse, as colunas calculadas mantêm apenas as informações da fórmula e o valor real depende da coluna da tabela base. Assim, as colunas calculadas só são suportadas quando todas as colunas estão localizadas na mesma tabela exportada.
Que tabelas do Dataverse utilizam o modo anexar apenas por predefinição?
Todas as tabelas que não tenham um campo createdOn são sincronizadas através do modo Acrescentar apenas por predefinição. Isto inclui tabelas de relações e a tabela ActivityParty.
Porque é que vejo a mensagem de erro — O conteúdo do diretório no caminho não pode ser listado?
- Os dados do Dataverse são armazenados no contentor de armazenamento ligado. Precisa da função "Contribuidor de Dados de Blobs de Armazenamento" na conta de armazenamento ligada para efetuar operações de leitura e consulta através da Synapse Workspace.
- Se optar por exportar dados com o formato Delta Lake, o ficheiro CSV é limpo após a conversão do Delta Lake. Necessita de consultar dados com tabelas non_partitioned tabelas através do Synapse Workspace.
Porque é que vejo a mensagem de erro - não é possível efetuar o carregamento em massa porque o ficheiro está incompleto ou não pôde ser lido (apenas ficheiro CSV)?
Os dados do Dataverse podem mudar continuamente através de atualizações de criação, atualização e eliminação. Este erro é causado pelo ficheiro subjacente que está a ser alterado quando lê dados a partir dele. Por isso, para tabelas com alterações contínuas, altere o pipeline de consumo para utilizar dados do instantâneo (tabelas particionadas) a consumir. Mais informações: Solucionar problemas do conjunto de SQL sem servidor
Como posso utilizar o Azure Synapse Link para arquivar dados críticos?
O Azure Synapse Link for Dataverse foi concebido para fins de análise. Recomendamos que os clientes utilizem a retenção de longo prazo para fins de arquivo. Mais informações: Descrição geral da retenção de dados de longo prazo do Dataverse
Porque é que não vejo alterações aos dados no data lake quando os registos foram eliminados no Dataverse?
Para que qualquer chamada SQL direta remova um registo, o serviço Azure Synapse Link for Dataverse não é acionado porque BPO.Delete não está a ser chamado. Para uma funcionalidade de exemplo, vá para Como limpar o acesso herdado.