Domande frequenti su Azure Synapse Link for Dataverse

Questo articolo fornisce informazioni sulle domande frequenti relative all'esportazione dei dati di tabella di Microsoft Dataverse a Azure Synapse Analytics e Azure Data Lake.

Posso eseguire manualmente attività come la creazione, l'aggiornamento, l'eliminazione o l'impostazione di criteri di eliminazione automatica per i file di dati nell'archiviazione di Azure connessa?

I file di dati non devono essere modificati da un cliente e nessun file del cliente deve essere inserito nelle cartelle di dati.

Nota

Per eliminare i dati obsoleti e stagnanti nel data Lake senza interrompere Azure Synapse Link, prendi in considerazione l'utilizzo della funzionalità Esegui query e analizza gli aggiornamenti incrementali

Come posso accedere alla tabella delle relazioni?

Per accedere alle relazioni molti-a-molti, la relazione sarà disponibile come tabella da selezionare dalla pagina Aggiungi tabelle per un nuovo collegamento e da Gestisci tabelle per un collegamento esistente.

Nota

Tutti i dati Relazioni sono in modalità di sola aggiunta per impostazione predefinita quando scritti in formato CSV.

Azure Synapse Link è una funzionalità gratuita con Dataverse. L'utilizzo di Azure Synapse Link for Dataverse non comporta costi aggiuntivi a Dataverse. Tuttavia, considera costi potenziali per il servizio di Azure:

Cosa succede quando aggiungo una colonna?

Quando aggiungi una nuova colonna a una tabella nell'origine, viene aggiunta anche alla fine del file nella destinazione nella partizione del file corrispondente. Mentre le righe che esistevano prima dell'aggiunta della colonna non mostreranno la nuova colonna, le righe nuove o aggiornate mostreranno la colonna appena aggiunta.

Cosa succede quando elimino una colonna?

Quando elimini una colonna da una tabella nell'origine, la colonna non viene eliminata dalla destinazione. Le righe non vengono più aggiornate e vengono contrassegnate come null pur conservando le righe precedenti.

Cosa succede se cambio il tipo di dati di una colonna?

La modifica del tipo di dati di una colonna è una modifica sostanziale e sarà necessario scollegare e ricollegare.

Cosa succede quando elimino una riga?

L'eliminazione di una riga viene gestita in modo diverso in base alle opzioni di scrittura dei dati scelte:

  • Aggiornamento sul posto con formato CSV: questa è la modalità predefinita. Quando si elimina una riga di tabella in questa modalità, la riga viene eliminata anche dalla partizione dati corrispondente in Azure Data Lake. In altre parole, i dati vengono eliminati definitivamente dalla destinazione.
  • Solo aggiunta con formato CSV e aggiornamento della cartella incrementale: in questa modalità, quando una riga della tabella Dataverse viene eliminata, non viene eliminata definitivamente dalla destinazione. Viene invece aggiunta una riga e impostata come isDeleted=True per il file nella partizione dati corrispondente in Azure Data Lake.
  • Esporta nel formato Delta Lake: Azure Synapse Link esegue un'eliminazione temporanea dei dati durante il successivo ciclo di sincronizzazione delta, seguita da un'eliminazione definitiva dopo 30 giorni.

Perché non viene visualizzata un'intestazione di colonna nel file esportato?

Azure Synapse Link segue il Common Data Model per rendere possibile la condivisione dei dati e del relativo significato tra applicazioni e processi aziendali come Microsoft Power Apps, Power BI, Dynamics 365 e Azure. In ogni cartella CDM, i metadati, ad esempio un'intestazione di colonna, vengono archiviati nel file model.json. Ulteriori informazioni: Common Data Model e Azure Data Lake Storage Gen2 | Microsoft Learn

Perché il file Model.json aumenta o modifica la lunghezza per i tipi di dati e non mantiene ciò che è definito in Dataverse?

Model.json mantiene la lunghezza del database per le dimensioni della colonna. Dataverse ha un concetto di lunghezza del database per ogni colonna. Se crei una colonna con una dimensione di 200 e successivamente la riduci a 100, Dataverse consente comunque la presenza dei dati esistenti in Dataverse. Lo fa mantenendo DBLength su 200 e MaxLength su 100. Ciò che vedi in Model.json è DBLength e se lo usi per i processi downstream non fornirai mai meno spazio per le tue colonne Dataverse.

Nota

I campi promemoria sono definiti come varchar(max) con una lunghezza massima predefinita di 9.999.

Quali formati di data e ora possono essere previsti nell'esportazione di tabelle Dataverse?

Ci sono tre formati di data e ora che possono essere previsti nell'esportazione di tabelle Dataverse.

Nome colonna Formatta Tipo di dati Esempio
SinkCreatedOn e SinkModifiedOn M/d/yyyy H:mm:ss tt datetime 6/28/2021 4:34:35 PM
CreatedOn yyyy-MM-dd'T'HH:mm:ss.sssssssXXX datetimeOffset 2018-05-25T16:21:09.0000000+00:00
Tutte le altre colonne yyyy-MM-dd'T'HH:mm:ss'Z' datetime 2021-06-25T16:21:12Z

Nota

Tipo di dati CreatedOn modificato da datetime a datetimeOffset il 29/07/2022. Per modificare il formato del tipo di dati per una tabella creata prima della modifica, rilascia e aggiungi nuovamente la tabella.

Puoi scegliere comportamenti di colonna diversi per una colonna Data e ora in Dataverse, che aggiorna il formato del tipo di dati. Ulteriori informazioni: Comportamento e formato della colonna Data e ora

Perché per alcune tabelle Dataverse vengono visualizzati nomi di file 1.csv o 1_001.csv anziché i normali nomi di file partizionati con data e ora?

Questo comportamento è previsto quando si sceglie la modalità di esportazione "Sola aggiunta" e si dispone di tabelle senza una colonna CreatedOn valida. I blob sono organizzati in file, ad esempio 1.csv, 2.csv (che utilizzano il partizionamento personalizzato a causa dell'assenza di una data di creazione valida). Quando una partizione si avvicina al 95% di MaxBlockPerBlobLimit, il sistema genera automaticamente un nuovo file, illustrato qui come 1_001.csv.

Quando devo utilizzare una strategia di partizione annuale o mensile?

Per le tabelle Dataverse in cui il volume di dati è elevato entro un anno, si consiglia di utilizzare partizioni mensili. In questo modo si ottengono file più piccoli e prestazioni migliori. Inoltre, se le righe nelle tabelle Dataverse vengono aggiornate frequentemente, la suddivisione in più file più piccoli aiuta a migliorare le prestazioni in caso di scenari di aggiornamento sul posto. Delta Lake è disponibile solo con partizione annuale grazie alle sue prestazioni superiori rispetto al formato CSV.

Che cos'è la modalità di sola aggiunta e qual è la differenza tra la modalità di sola aggiunta e quella di aggiornamento sul posto?

Nella modalità di sola aggiunta, i dati incrementali dalle tabelle Dataverse vengono aggiunti alla partizione di file corrispondente nel lake. Per ulteriori informazioni: Opzioni di configurazione avanzate in Azure Synapse Link

Quando utilizzo la modalità di sola aggiunta per una visualizzazione cronologica delle modifiche?

La modalità Aggiungi solo è l'opzione consigliata per la scrittura di tabella Dataverse nel data lake, soprattutto quando i volumi di dati sono elevati all'interno di una partizione con dati che cambiano frequentemente. Ancora una volta, questa è un'opzione comunemente utilizzata e altamente consigliata per i clienti aziendali. Inoltre, puoi scegliere di utilizzare questa modalità per scenari in cui l'intento è quello di rivedere in modo incrementale le modifiche da Dataverse ed elaborare le modifiche per gli scenari ETL, IA e ML. La modalità Aggiungi solo fornisce una cronologia delle modifiche, invece dell'ultima modifica o dell'aggiornamento sul posto, e abilita diverse serie temporali da scenari IA, come previsione o analisi di previsione basate su valori storici.

Come posso recuperare la riga più aggiornata di ogni record ed escludere le righe eliminate quando esporto i dati in modalità di sola aggiunta?

Nella modalità di sola aggiunta, devi identificare la versione più recente del record con lo stesso ID utilizzando VersionNumber e SinkModifiedOn quindi applica isDeleted=0 alla versione più recente.

Perché vedo numeri di versione duplicati quando esporto i dati utilizzando la modalità di sola aggiunta?

Per la modalità di sola aggiunta, se Azure Synapse Link for Dataverse non riceve una conferma dal data lake di Azure che i dati sono stati impegnati per qualsiasi motivo, ad esempio ritardi di rete, Azure Synapse Link riproverà in questi scenari e impegnerà nuovamente i dati. Il consumo downstream dovrebbe essere reso resiliente a questo scenario filtrando i dati utilizzando SinkModifiedOn.

Perché si notano differenze nelle colonne Sinkmodifiedon e Modifiedon?

È previsto. Modifiedon è la data e l'ora in cui il record viene modificato in Dataverse; Sinkmodifiedon è la data e l'ora in cui il record viene modificato nel Data Lake.

Quali tabelle Dataverse non sono supportate per l'esportazione?

Qualsiasi tabella per cui non è abilitato il rilevamento delle modifiche non sarà supportata oltre alle seguenti tabelle di sistema:

  • Attachment
  • Calendari
  • Calendarrule

Nota

È possibile aggiungere la tabella di controllo per l'esportazione utilizzando Azure Synapse Link for Dataverse. Tuttavia l'esportazione della tabella di controllo è supportata solo con i profili del delta lake.

Sto usando la funzionalità di esportazione in delta lake, posso interrompere il processo Apache Spark o modificare il tempo di esecuzione?

Il processo di conversione Delta Lake viene attivato quando si verifica una modifica dei dati nell'intervallo di tempo configurato. Non è possibile interrompere o mettere in pausa il pool Apache Spark. Tuttavia, è possibile modificare l'intervallo di tempo dopo la creazione del collegamento in Gestisci tabelle > Intervallo di tempo avanzato.

Le colonne di ricerca sono costituite da un ID e un valore. I valori di ricerca cambiano solo nella tabella radice. Per riflettere meglio il valore di una colonna di ricerca, ti consigliamo l'unione alla tabella radice originale per ottenere il valore più recente.

In Dataverse, le colonne calcolate mantengono solo le informazioni sulla formula e il valore reale dipende dalla colonna della tabella di base. Pertanto le colonne calcolate sono supportate solo quando tutte le colonne si trovano all'interno della stessa tabella esportata.

Quali tabelle Dataverse usano la modalità di sola aggiunta per impostazione predefinita?

Tutte le tabelle che non dispongono di un campo createdOn verranno sincronizzate utilizzando la modalità Solo aggiunta per impostazione predefinita. Ciò include le tabelle delle relazioni e la tabella ActivityParty.

Perché viene visualizzato il messaggio di errore: Impossibile elencare il contenuto della directory nel percorso?

  • I dati Dataverse vengono archiviati nel contenitore di archiviazione connesso. È necessario il ruolo "Collaboratore dati BLOB di archiviazione" nell'account di archiviazione collegato per eseguire operazioni di lettura e query tramite Synapse Workspace.
  • Se scegli di esportare i dati con il formato Delta Lake, il tuo file CSV verrà ripulito dopo la conversione di Delta Lake. È necessario eseguire query sui dati con tabelle non_partizionate tramite un'area di lavoro Synapse.

Perché viene visualizzato il messaggio di errore: impossibile caricare in blocco perché il file è incompleto o non può essere letto (Solo file CSV)?

I dati Dataverse possono cambiare continuamente mediante transazioni di creazione, aggiornamento ed eliminazione. Questo errore è causato dalla modifica del file sottostante durante la lettura dei dati da esso. Pertanto, per le tabelle con modifiche continue, è necessario modificare la pipeline di consumo per utilizzare i dati di snapshot (tabelle partizionate) da utilizzare. Ulteriori informazioni: Risolvere i problemi del pool SQL serverless

Azure Synapse Link for Dataverse è progettato per scopi di analisi. È consigliabile che i clienti utilizzino la conservazione a lungo termine per scopi di archiviazione. Maggiori informazioni: Panoramica sulla conservazione dei dati Dataverse a lungo termine

Perché non vedo alcuna modifica ai dati nel data Lake quando i record sono stati eliminati in Dataverse?

Per qualsiasi chiamata SQL diretta per rimuovere un record, il servizio Azure Synapse Link for Dataverse non si attiva perché non viene chiamato BPO.Delete. Per una funzionalità di esempio, vai a Come eseguire la pulizia degli accessi ereditati.