Solução de problemas de ingestão do Microsoft Dynamics 365
Esta página fornece orientações de solução de problemas para questões comuns com o conector do Microsoft Dynamics 365 no Lakeflow Connect. Para orientações gerais de solução de problemas que se aplicam a todos os pipelines de ingestão gerenciados, consulte Solucionar problemas de pipelines de ingestão gerenciados.
Como o conector lê o que o Azure Synapse Link exporta para o ADLS Gen2, a maioria das falhas de ingestão começa com a exportação, e não com o pipeline. Confirme se o Synapse Link está em execução e gravando arquivos antes de investigar o próprio pipeline.
O Synapse Link não está exportando dados
Sintomas : Nenhuma pasta aparece no seu contêiner ADLS Gen2 após configurar o Synapse Link, os timestamps das pastas param de atualizar ou as execuções de pipeline falham com erros de "No data found".
Causa : A conexão do Synapse Link está pausada ou interrompida, as permissões da account de armazenamento do Azure estão incorretas, as tabelas selecionadas não estão configuradas para exportação ou o Synapse Link encontrou um erro durante a exportação.
Resolução :
-
Verifique o status do Synapse Link:
- Faça login no Power Apps.
- Vá para Azure Synapse Link no seu ambiente.
- Verifique se sua conexão exibe o status "Ativo".
- Se estiver pausado, clique em Retomar para reiniciar a exportação.
-
Verificar permissões de armazenamento:
- No portal do Azure, vá para sua conta de armazenamento.
- Clique em Controle de acesso (IAM) .
- Verifique se a identidade gerenciada do Synapse Link tem a função Storage Blob Data Contributor .
- Se a função estiver ausente, adicione a atribuição de função.
-
Verifique a configuração da tabela:
- No Power Apps, selecione sua conexão Synapse Link.
- Revise a lista de tabelas selecionadas e verifique se as tabelas que deseja ingerir estão incluídas.
- Adicione as tabelas ausentes e aguarde de 5 a 15 minutos para a exportação inicial.
-
Revise os logs do Synapse Link:
- No Power Apps, selecione sua conexão Synapse Link.
- Clique em Ver logs ou Histórico .
- Procure mensagens de erro que indiquem falhas de exportação e resolva os erros específicos (por exemplo, cota de armazenamento ou permissões).
O Synapse Link está ativo, mas os arquivos não estão aparecendo
Sintomas : O Synapse Link mostra o status “Ativo”, mas nenhum arquivo aparece no seu container ADLS Gen2, ou as execuções de pipeline falham com erros de “Nenhum dado encontrado”.
Causa : o Synapse Link não concluiu sua exportação inicial, o perfil do Synapse Link está em pausa ou encontrou um erro de exportação, ou as permissões da conta de armazenamento estão incorretas.
Resolução :
O conector oferece suporte à exportação de CSV e Parquet e detecta automaticamente qual formato o Synapse Link grava, portanto, você não precisa reconfigurar o formato de exportação se os arquivos estiverem ausentes. A ingestão de Parquet está em Beta. Para solucionar problemas, confirme se o Synapse Link está realmente exportando dados:
-
Verifique se os arquivos existem no ADLS Gen2:
- No portal do Azure, vá para sua account de armazenamento ADLS Gen2 e contêiner.
- Abra uma pasta de tabela e confirme se ela contém arquivos de dados. Para exportação CSV, os arquivos têm uma extensão
.csv. Para exportação Parquet, o Synapse Link grava cada tabela como uma tabela Delta no formato Parquet em<profileRoot>/deltalake/<tableName>/. - Se as pastas estiverem vazias, a exportação inicial ainda pode estar em andamento.
-
Verifique o status do Synapse Link:
- No Power Apps, abra seu perfil do Synapse Link e confirme se ele mostra o status "Active".
- Se estiver pausado ou parado, clique em Retomar para reiniciar a exportação.
- Analise os logs ou a história do Synapse Link em busca de erros de exportação e resolva quaisquer erros que aparecerem (por exemplo, cota de armazenamento ou permissões).
-
Aguarde a conclusão da exportação:
- A exportação inicial do Synapse Link pode levar horas para datasets grandes.
- Após os arquivos aparecerem em seu contêiner, tente novamente a execução do seu pipeline.
Erro: FILE_PATH_DOES_NOT_EXIST
Sintomas : as execuções do pipeline falham com um erro FILE_PATH_DOES_NOT_EXIST, o conector não consegue encontrar os arquivos esperados no ADLS Gen2 ou o erro indica pastas ou caminhos de arquivo ausentes.
Causa : A opção Ativar Estrutura de Pasta de Atualização Incremental não foi ativada quando o Synapse Link foi configurado, portanto, o conector não encontra arquivos onde espera que eles estejam.
Resolução :
-
Ative a estrutura de pastas de atualização incremental:
- No Power Apps, edite sua conexão do Synapse Link.
- Clique em Avançado para exibir as configurações de configuração avançadas.
- Ative Enable Incremental Update Folder Structure .
- Salve a configuração.
- Aguarde o Synapse Link regenerar a estrutura de pastas. Isso pode levar várias horas para datasets grandes.
-
Verifique a estrutura de pastas:
- No portal do Azure, vá para sua account de armazenamento ADLS Gen2 e contêiner.
- Verifique se as pastas de tabela agora contêm subpastas de timestamp (por exemplo,
2025-12-19T10-30-00-000Z). Estas pastas Timestamp contêm as atualizações incrementais de que o conector necessita.
-
Tente executar o pipeline novamente. O conector agora encontra arquivos nos locais esperados.
O registro de alterações do Synapse Link está ausente versionnumber
Sintomas : as execuções de pipeline falham com erros de "versionnumber field not found", a ingestão incremental não funciona ou apenas o refresh completo é bem-sucedido.
Causa : o Synapse Link não está configurado para exportar logs de alterações, o acompanhamento de alterações não está ativado para suas tabelas ou sua versão do Synapse Link está desatualizada.
Resolução :
-
Ative o acompanhamento de alterações:
- No Power Apps, edite sua conexão do Synapse Link.
- Verifique se Ativar acompanhamento de alterações está selecionado.
- Salve e aguarde até 30 minutos para que o Synapse Link regenere as exportações.
-
Verifique os arquivos do log de alterações:
- No portal do Azure, vá para o seu contêiner ADLS Gen2.
- Abra uma pasta de tabela e localize a subpasta
SynapseLink. - Abra um arquivo de changelog recente (CSV ou JSON) e verifique se ele contém uma coluna
versionnumber. - Se a coluna estiver ausente, entre em contato com o suporte da Microsoft para ativar o acompanhamento de alterações.
-
Atualize o Synapse Link. Verifique se você está usando o Azure Synapse Link para Dataverse versão 1.0 ou posterior, pois versões mais antigas podem não oferecer suporte a
versionnumber. -
Execute um refresh completo. Se o acompanhamento de alterações não puder ser ativado, você só poderá usar o modo de refresh completo. O refresh completo recarrega todos os dados a cada execução, o que é mais lento e mais caro.
Erro: The selected storage account has restricted network access
Sintomas : a configuração do Synapse Link falha com o seguinte erro:
The selected storage account has restricted network access. To proceed, please setup an enterprise policy and connect it to your Dataverse environment. Once done, please enable the 'Select Enterprise Policy with Managed Service Identity' option below.
Causa : seu local de preparo do ADLS está protegido por um firewall e o Dataverse não consegue acessá-lo.
Resolução : configure uma identidade gerenciada (anteriormente identidade de serviço gerenciado) para acessar seus dados. Consulte Usar identidades gerenciadas para o Azure com seu armazenamento de data lake do Azure na documentação da Microsoft.
A autenticação do Microsoft Entra ID falha
Sintomas : A criação do pipeline falha com erros de "Authentication failed", o teste de conexão falha no Catalog Explorer ou as execuções de pipeline falham com erros de "401 Unauthorized".
Causa : O ID do tenant, o ID do cliente ou o segredo do cliente está incorreto, o segredo do cliente expirou, o aplicativo não possui as permissões necessárias ou o escopo está incorreto.
Resolução :
-
Verifique os parâmetros de autenticação:
- No portal do Azure, vá para Microsoft Entra ID > Registros de aplicativo .
- Localize seu aplicativo e verifique se o ID do aplicativo (cliente) e o ID do diretório (tenant) correspondem à sua configuração de conexão.
- Copie os valores corretos e atualize sua conexão, se necessário.
-
Verifique a expiração do segredo do cliente:
- No seu aplicativo, clique em Certificados e segredos .
- Verifique se a sua chave secreta não expirou.
- Se ele expirou, clique em + Novo segredo do cliente , insira uma descrição e um período de expiração, copie o valor do segredo e atualize sua conexão com o novo segredo.
-
Verifique o escopo. Sua conexão deve usar o escopo
https://storage.azure.com/.default, que concede acesso ao Azure Storage em vez de conceder acesso diretamente ao Microsoft Dynamics 365. -
Teste a conexão:
- No Explorador de Catálogos, vá para sua conexão.
- Clique em Testar conexão para verificar a autenticação.
- Caso o teste falhe, revise a mensagem de erro para obter orientações específicas.
Se a autenticação ainda falhar, use os scripts a seguir em um Notebooks do Databricks para isolar onde ocorre a falha.
Depuração de scripts
Confirme se o ID do cliente e o segredo do cliente estão funcionando corretamente:
%pip install azure-storage-blob==12.22.0 azure-identity==1.17.1 azure-storage-file-datalake==12.16.0
%restart_python
# Required libraries
from azure.identity import ClientSecretCredential
from azure.storage.blob import BlobServiceClient
# --- Your Azure Credentials and Storage Details ---
# Replace the placeholder values with your actual information
# Entra ID (Azure Active Directory) details
tenant_id = "<tenant-id>"
client_id = "<client-id>"
client_secret = "<client-secret>"
# Azure Storage details
storage_account_name = "<storage-account>"
container_name = "<container-name>"
# --- Script to List Folders ---
# Construct the Blob Storage URL
storage_account_url = f"https://{storage_account_name}.blob.core.windows.net"
# 1. Authenticate using the service principal
# The ClientSecretCredential object will handle the OAuth 2.0 flow
try:
credential = ClientSecretCredential(tenant_id, client_id, client_secret)
except Exception as e:
print(f"Error creating credential: {e}")
# You may want to stop execution if credentials are not valid
dbutils.notebook.exit("Failed to create credentials")
# 2. Create a BlobServiceClient
# This client is the main entry point for interacting with the Blob service
try:
blob_service_client = BlobServiceClient(account_url=storage_account_url, credential=credential)
except Exception as e:
print(f"Error creating BlobServiceClient: {e}")
dbutils.notebook.exit("Failed to create BlobServiceClient")
# 3. Get a client for the specific container
try:
container_client = blob_service_client.get_container_client(container_name)
except Exception as e:
print(f"Error getting container client for '{container_name}': {e}")
dbutils.notebook.exit("Failed to get container client")
# 4. List the "folders" in the container
# Folders in Blob Storage are virtual and are represented by prefixes in blob names.
# This code iterates through the blobs and extracts the top-level directory names.
try:
blob_list = container_client.list_blobs()
folder_list = set()
for blob in blob_list:
if "/" in blob.name:
folder_name = blob.name.split('/')[0]
folder_list.add(folder_name)
# Print the list of unique folder names
if folder_list:
print(f"Folders found in container '{container_name}':")
for folder in sorted(list(folder_list)):
print(folder)
else:
print(f"No folders found in container '{container_name}'.")
except Exception as e:
print(f"An error occurred while listing blobs: {e}")
Confirme se a conexão com o Unity Catalog consegue enviar o access token:
import requests
import json
import os
# --- Databricks Notebook Context and API Token Retrieval ---
# This section securely retrieves the necessary API token from your Databricks environment
# to interact with Unity Catalog.
notebook_context = dbutils.notebook.entry_point.getDbutils().notebook().getContext()
WORKSPACE_URL = notebook_context.apiUrl().get()
API_TOKEN = notebook_context.apiToken().get()
# --- Unity Catalog Connection Configuration ---
# IMPORTANT: Replace with the name of your Unity Catalog external connection to ADLS Gen2.
# This connection must be configured in Unity Catalog and granted necessary permissions
# to access your Azure Data Lake Storage Gen2 account.
CONNECTION_NAME = "<uc-connection-name>"
def get_uc_connection_access_token(connection_name: str, api_token: str) -> str:
"""
Retrieves the access token for a Unity Catalog external connection to ADLS Gen2.
"""
url = f"{WORKSPACE_URL}/api/2.1/unity-catalog/foreign-credentials"
body = '{{"securables": [{{"type": "CONNECTION", "full_name": "{}"}}]}}'.format(
connection_name
)
headers = {
"Authorization": "Bearer {}".format(api_token),
"Content-Type": "application/json",
}
response = requests.post(url=url, headers=headers, data=body)
response.raise_for_status() # Raise an exception for HTTP errors (e.g., 401, 403, 404)
print(response.json())
credentials = response.json()["securable_to_credentials"][0]["credentials"]["foreign_credential"]["options"]["options"]
access_token = credentials["access_token"]
return access_token
print(get_uc_connection_access_token(CONNECTION_NAME, API_TOKEN))
Verifique se você consegue listar o conteúdo do contêiner usando a conexão do Unity Catalog:
import requests
import json
import os
from datetime import datetime, timedelta
from azure.core.credentials import AccessToken, TokenCredential
from azure.storage.filedatalake import DataLakeServiceClient
notebook_context = dbutils.notebook.entry_point.getDbutils().notebook().getContext()
WORKSPACE_URL = notebook_context.apiUrl().get()
API_TOKEN = notebook_context.apiToken().get()
CONNECTION_NAME = "<uc-connection-name>"
storage_account_name = "<storage-account-name>"
container_name = "<container-name>"
# --- Custom Credential Object for Azure SDK ---
class StaticTokenCredential(TokenCredential):
"""
A simple credential class to wrap an existing access token for Azure SDKs.
The expiration is set arbitrarily for the SDK's internal logic;
your token's real expiry is governed by its issuer.
"""
def __init__(self, token: str):
self._token = AccessToken(token, expires_on=(datetime.now() + timedelta(hours=1)).timestamp())
def get_token(self, *scopes, **kwargs) -> AccessToken:
return self._token
# ==================== Main Logic to List Top-Level Folders ====================
try:
# --- Input Validation ---
if CONNECTION_NAME == "<uc-connection-name>":
raise ValueError("Please update 'CONNECTION_NAME' with the name of your Unity Catalog connection.")
if storage_account_name == "<storage-account-name>":
raise ValueError("Please update 'storage_account_name' with your Azure Storage Account Name.")
if container_name == "<container-name>":
raise ValueError("Please update 'container_name' with your ADLS Gen2 Container Name.")
print(f"Retrieving access token from Unity Catalog connection: '{CONNECTION_NAME}'...")
access_token_string = get_uc_connection_access_token(CONNECTION_NAME, API_TOKEN)
print("Access token retrieved successfully.")
# 1. Initialize the DataLakeServiceClient using the retrieved token
account_url = f"https://{storage_account_name}.dfs.core.windows.net"
credential = StaticTokenCredential(access_token_string)
datalake_service_client = DataLakeServiceClient(account_url=account_url, credential=credential)
file_system_client = datalake_service_client.get_file_system_client(file_system=container_name)
print(f"\nSuccessfully connected to ADLS Gen2 container: '{container_name}' in storage account: '{storage_account_name}'.")
# 2. Get and print only the top-level directories
print("\n--- Listing Top-Level Folders ---")
all_paths = file_system_client.get_paths(path="/")
for path in all_paths:
print(path.name)
except Exception as e:
print(f"An unexpected error occurred during execution.")
print(f"Error details: {e}")
Não é possível acessar o armazenamento ADLS Gen2
Sintomas : as execuções de pipeline falham com erros "403 Forbidden" ou "Access denied", o teste de conexão é bem-sucedido, mas o pipeline falha, ou algumas tabelas funcionam enquanto outras falham.
Causa : A aplicação Microsoft Entra ID não possui a função Colaborador de Dados de Blob de Armazenamento , a atribuição de função está definida para o contêiner ou caminho incorreto, ou restrições de rede e regras de firewall da conta de armazenamento bloqueiam o acesso ao Databricks.
Resolução :
-
Verifique a atribuição da função:
- No portal do Azure, vá para sua conta de armazenamento.
- Clique em Controle de acesso (IAM) e, em seguida, em Atribuições de função .
- Verifique se o seu aplicativo Microsoft Entra ID tem a função Storage Blob Data Contributor .
- Verifique se o Escopo está definido para toda a account de armazenamento em vez de um contêiner específico.
-
Adicione a função ausente:
- Clique em + Adicionar > Adicionar atribuição de função .
- Pesquisar por Contribuidor de Dados do Blob de Armazenamento .
- Clique em Próximo e adicione seu aplicativo.
- Clique em Revisar + atribuir e aguarde de 5 a 10 minutos para que as alterações de permissão se propaguem.
-
Verifique as restrições de rede:
- Em sua storage account, clique em Networking .
- Verifique se o Acesso à rede pública está definido como Habilitado de todas as redes ou inclui intervalos de IP do Databricks.
- Se você usar endpoints privados, verifique se o Databricks consegue rotear para eles.
-
Revise as regras de firewall:
- Em Rede , revise as configurações de Firewall .
- Adicione endereços IP do Databricks à lista de permissões, se necessário, ou ative Permitir serviços do Azure na lista de serviços confiáveis .
Entidades virtuais não aparecendo na descoberta de esquema
Sintomas : As entidades virtuais não aparecem ao listar tabelas, a criação do pipeline falha com erros de "Table not found" para entidades virtuais ou apenas tabelas nativas do Dataverse são detectáveis.
Causa : As entidades virtuais não estão configuradas ou sincronizadas, o Synapse Link não as está exportando ou os nomes das entidades virtuais não correspondem à configuração da sua tabela.
Resolução :
-
Verifique a configuração da entidade virtual:
- No centro de administração do Power Platform, acesse seu ambiente.
- Acesse Configurações > produto > recurso .
- Verifique se a fonte de dados de entidade virtual está ativada.
- Verifique se suas entidades virtuais F&O estão configuradas e ativas.
-
Aguarde a sincronização. As entidades virtuais geralmente levam até 15 minutos para sincronizar após a configuração, mas podem levar até 30 minutos para aparecer no Dataverse. Verifique novamente após esse período.
-
Verifique se o Synapse Link inclui entidades virtuais:
- No Power Apps, edite sua conexão do Synapse Link.
- Revise as tabelas selecionadas e verifique se as entidades virtuais estão incluídas na lista de exportação.
- Adicione as entidades virtuais que faltam e salve.
-
Verifique os nomes das entidades virtuais. Os nomes lógicos das entidades virtuais podem diferir dos nomes das tabelas do F&O. No Power Apps, vá para Tables , localize suas entidades virtuais, copie o Logical name exato e use-o na configuração do seu pipeline.
Alterações no esquema de entidade virtual não refletidas
Sintomas : Novas colunas no F&O não aparecem nas tabelas Delta de destino, as execuções de pipeline são bem-sucedidas, mas os dados estão incompletos, ou avisos de drift de esquema aparecem nos logs do pipeline.
Causa : os metadados da entidade virtual não foram atualizados no Dataverse, o Synapse Link está usando um esquema em cache ou limitações de evolução do esquema se aplicam a entidades virtuais.
Resolução :
-
refresh os metadados da entidade virtual:
- No centro de administração do Power Platform, acesse seu ambiente.
- Acesse as configurações de entidades virtuais .
- Clique em Refresh de metadados para as entidades virtuais afetadas.
- Aguarde até 30 minutos para que os metadados sejam sincronizados.
-
Recrie a exportação do Synapse Link:
- No Power Apps, edite sua conexão do Synapse Link.
- Remova a entidade virtual afetada da lista de exportação, salve e aguarde 5 minutos.
- Adicione a entidade virtual de volta à lista de exportação, salve e aguarde a conclusão da exportação inicial.
-
Execute um refresh completo. As alterações no esquema de entidade virtual geralmente exigem um refresh completo. Interrompa seu pipeline, exclua as tabelas Delta de destino para as entidades virtuais afetadas e, em seguida, reinicie o pipeline para recriar as tabelas com o esquema atualizado.
O conector não suporta a evolução do esquema automatizada, portanto, as alterações no esquema de origem exigem intervenção manual. See evolução do esquema.
Alterações no tipo de dados causam falhas no pipeline
Sintomas : as execuções do pipeline falham com erros de "Type mismatch" ou "Cannot cast", a ingestão para após uma atualização ou alteração de configuração do Dynamics 365, ou as mensagens de erro fazem referência a colunas e tipos de dados específicos.
Causa : Um tipo de dados de coluna foi alterado no Dynamics 365 (por exemplo, de string para inteiro), portanto, o esquema da tabela Delta de destino é incompatível com os novos dados.
Resolução :
-
Identifique a coluna alterada:
-
Revise os logs de erro do pipeline para encontrar a coluna e a tabela afetadas.
-
No Power Apps, verifique a definição da tabela para o tipo de dados atual da coluna.
-
Compare-o com o esquema da sua tabela Delta de destino:
SQLDESCRIBE main.d365_data.tablename;
-
-
Execute um refresh completo. Alterações no tipo de dados exigem um refresh completo para recriar as tabelas. Interrompa o pipeline afetado, descarte a tabela de destino e, em seguida, reinicie o pipeline para recriar a tabela com o novo esquema:
SQLDROP TABLE IF EXISTS main.d365_data.tablename; -
Evite problemas futuros. Coordene com seu administrador do Dynamics 365 antes de alterações de esquema, teste as alterações de esquema primeiro em um ambiente que não seja de produção e programe refresh completos durante as janelas de manutenção.
O conector do Dynamics 365 não lida automaticamente com alterações de tipo de dados. Você deve realizar um refresh completo para atualizar os esquemas das tabelas. See evolução do esquema.
Renomeações de coluna não tratadas corretamente
Sintomas : colunas renomeadas aparecem como novas colunas com valores NULL, dados de colunas antigas são perdidos ou as tabelas de destino possuem nomes de colunas antigos e novos.
Causa : O conector trata uma renomeação de coluna como uma operação de exclusão e adição, sem migração automática de dados do nome da coluna antiga para a nova.
Resolução :
-
Antes que a renomeação ocorra, coordene com o administrador do Dynamics 365 para realizar um refresh completo, o que preserva a data histórica sob o novo nome de coluna.
-
Após a renomeação, execute um refresh completo para recarregar todos os dados com os novos nomes de coluna. A data histórica então preenche a nova coluna.
-
Se um refresh completo não for viável, migre os dados manualmente:
SQL-- Copy data from old column to new column
UPDATE main.d365_data.tablename
SET new_column_name = old_column_name
WHERE new_column_name IS NULL AND old_column_name IS NOT NULL;
-- Drop old column after verification
ALTER TABLE main.d365_data.tablename DROP COLUMN old_column_name;
Para minimizar interrupções, planeje a renomeação de colunas durante janelas de manutenção programadas e execute uma atualização completa imediatamente após.
A sincronização inicial está demorando muito
Sintomas : Um pipeline é executado por horas sem ser concluído, a sincronização inicial é mais lenta do que o esperado, ou o pipeline atinge o tempo limite ou falha durante a primeira execução.
Causa : Grande volume de dados nas tabelas de origem, uma exportação lenta do Synapse Link, limitações de largura de banda de rede ou muitas tabelas em um único pipeline.
Resolução :
- Comece com menos tabelas. Crie um pipeline com 5 a 10 tabelas, verifique se funciona corretamente e, em seguida, adicione mais tabelas incrementalmente.
- Aguarde a exportação do Synapse Link. Verifique se o Synapse Link concluiu a exportação inicial antes de executar o pipeline. No portal do Azure, verifique se todas as pastas de tabela contêm arquivos de dados. A exportação inicial pode levar horas para datasets grandes.
- Divida o trabalho em vários pipelines. Em vez de um pipeline com 100 tabelas, crie 5 pipelines com 20 tabelas cada e execute-os em paralelo ou sequencialmente com base na disponibilidade de recursos. Isso reduz o tempo de execução individual do pipeline.
- Monitore a largura de banda do Azure. Verifique as métricas do Azure Storage quanto a limites de limitação ou largura de banda. Se você sofrer limitação, aumente o nível da account de armazenamento ou adicione capacidade de rede.
Atualizações incrementais são lentas
Sintomas : as execuções incrementais de pipeline levam mais tempo do que o esperado, o desempenho do pipeline degrada com o tempo ou um alto volume de alterações causa atrasos.
Causa : Arquivos de log de alterações grandes, muitas pastas acumuladas no ADLS Gen2 ou alterações de alta frequência criando muitas pastas pequenas.
Resolução :
- Aumente a frequência de execução do pipeline. Arquivos de changelog menores e mais frequentes são processados mais rapidamente do que os grandes. Para ambientes com muitas alterações, execute a cada 5 a 15 minutos em vez de a cada hora.
- Revise a frequência de exportação do Synapse Link. No Power Apps, verifique sua programação de exportação do Synapse Link. O Synapse Link cria pastas em intervalos regulares, normalmente a cada 5 a 15 minutos. Alinhe suas execuções de pipeline com essa frequência.
- Limpe as pastas de exportação antigas. Configure políticas de ciclo de vida em sua account de armazenamento para excluir exportações antigas, retendo apenas os últimos 7 a 30 dias com base em suas necessidades de recuperação. Isso reduz o número de pastas que o conector deve verificar.
- Reduza o volume de alterações. Analise os processos do Dynamics 365 que geram atualizações de alta frequência e atualizações em lotes sempre que possível para reduzir eventos de alteração individuais.
Registros ausentes após a ingestão
Sintomas : As contagens de linhas nas tabelas de destino não correspondem às tabelas de origem, registros específicos estão ausentes ou há lacunas de dados intermitentes.
Causa : a exportação do Synapse Link está incompleta, o pipeline ignorou pastas devido a erros, a filtragem ou as permissões no sistema de origem restringem a visibilidade, ou o Synapse Link não está exportando registros de exclusão.
Resolução :
-
Compare as contagens de registros. Verifique a contagem de linhas no Dynamics 365:
SQLSELECT COUNT(*) FROM account;Em seguida, verifique a contagem de linhas na tabela Delta de destino e identifique a magnitude da discrepância:
SQLSELECT COUNT(*) FROM main.d365_data.account; -
Verifique se a exportação do Synapse Link está concluída. No ADLS Gen2, verifique se todas as pastas de tabela possuem pastas de timestamp recentes. Procure por lacunas nos Timestamp das pastas, o que pode indicar que o Synapse Link parou temporariamente.
-
Verifique a filtragem. Algumas tabelas do Dynamics 365 possuem filtros de segurança que restringem quais registros são visíveis. Verifique se sua account de serviço do Synapse Link tem permissão para ver todos os registros e verifique se a propriedade do registro ou filtros de unidade de negócios se aplicam.
-
Execute um refresh completo. Se os registros estiverem faltando consistentemente, execute um refresh completo para recarregar todos os dados e, em seguida, compare as contagens novamente.
-
Verifique o tratamento de exclusão. Se os registros ausentes foram excluídos no Dynamics 365, verifique se o Synapse Link exporta exclusões. No Power Apps, verifique as configurações do Synapse Link para o acompanhamento de exclusão. Se as exclusões não forem exportadas, os registros excluídos não serão refletidos em suas tabelas de destino.
Os metadados do anexo estão incompletos
Sintomas : as tabelas de anexo (por exemplo, annotation ou attachment) apresentam dados ausentes ou incompletos, ou os nomes de arquivo e metadados estão incorretos.
Causa : O Synapse Link não está exportando as tabelas de anexo, as permissões de anexo restringem a visibilidade ou os dados de anexo estão armazenados em tabelas diferentes.
Resolução :
-
Verifique se as tabelas de anexo foram exportadas. No Power Apps, verifique sua conexão do Synapse Link e confirme se as tabelas relacionadas a anexos estão incluídas; em seguida, adicione as que estiverem faltando e aguarde a exportação:
annotationpara notas e anexos de arquivoattachmentpara anexos de emailactivitymimeattachmentpara anexos de atividade
-
Verifique as permissões de anexo. Verifique se a sua serviço account do Synapse Link pode ler registros de anexo, pois alguns anexos podem estar restritos por funções de segurança.
-
Entenda a limitação de somente metadados. O conector ingere metadados de anexo em vez do conteúdo do arquivo. Para fazer download de arquivos, use a API Web do Dynamics 365 separadamente. Consulte Anexos e arquivos.
-
Verifique se você está consultando os campos de anexo corretos:
SQLSELECT
annotationid,
objectid,
subject,
filename,
filesize,
mimetype,
documentbody -- Usually NULL; binary content not ingested
FROM main.d365_data.annotation;
Suporte adicional
Se a orientação acima não resolver o seu problema, colete diagnósticos antes de entrar em contato com o suporte.
-
Coletar diagnósticos:
- ID do pipeline e registros de data e hora de execução.
- Mensagens de erro completas dos logs do pipeline.
- logs e status Azure Synapse Link.
- Capturas de tela de mensagens de erro ou configurações.
-
Verifique problemas conhecidos. Revise Problemas conhecidos para problemas conhecidos e verifique as notas sobre a versão do Databricks para atualizações recentes.
-
Criar um ticket de suporte. No seu workspace, vá para Ajuda > Contatar Suporte , selecione Suporte Técnico e forneça uma descrição clara do problema, os passos para reproduzi-lo, as informações de diagnóstico que você coletou, além do impacto e da urgência.
-
Forneça feedback. Compartilhe seu feedback com sua equipe de conta Databricks, incluindo bugs, solicitações de recurso ou problemas de documentação.