Condividi tramite


Metadati condivisi di Azure Synapse Analytics

Azure Synapse Analytics consente ai diversi motori di calcolo dell'area di lavoro di condividere database e tabelle tra pool di Apache Spark e pool SQL serverless.

La condivisione supporta il cosiddetto modello di data warehouse moderno e consente ai motori SQL dell'area di lavoro di accedere ai database e alle tabelle create con Spark. Consente anche ai motori SQL di creare i propri oggetti che non vengono condivisi con gli altri motori.

Importante

Le tabelle create in Spark con più di 1.024 colonne possono essere visualizzate in Esplora oggetti, ma non possono essere sottoposte a query dal pool SQL serverless a causa della sincronizzazione incompleta dei metadati.

Soluzione alternativa: evitare di creare tabelle Spark con più di 1.024 colonne se è necessario eseguire query dal pool SQL serverless. Riprogettare lo schema e ricreare la tabella.

Supportare il data warehouse moderno

Il modello di metadati condivisi supporta il modello di data warehouse moderno nel modo seguente:

  1. I dati del Data Lake vengono preparati e strutturati in modo efficiente con Spark, archiviando i dati preparati in tabelle eventualmente partizionate basate su Parquet, che possono essere contenute in diversi database.

  2. I database creati da Spark e tutte le tabelle diventano visibili in qualsiasi istanza del pool di Spark dell'area di lavoro di Azure Synapse e possono essere usati da qualsiasi processo Spark. Questa funzionalità è soggetta alle autorizzazioni perché tutti i pool di Spark in un'area di lavoro condividono lo stesso archivio metastore del catalogo sottostante.

  3. I database creati da Spark e le relative tabelle basate su Parquet o CSV diventano visibili nel pool SQL serverless dell'area di lavoro. I database vengono creati automaticamente nei metadati del pool SQL serverless e le tabelle esterne e gestite create da un processo Spark vengono rese accessibili come tabelle esterne nei metadati del pool SQL serverless nello dbo schema del database corrispondente.

La sincronizzazione degli oggetti viene eseguita in modo asincrono. Gli oggetti avranno un lieve ritardo di alcuni secondi fino a quando non vengono visualizzati nel contesto SQL. Una volta visualizzate, possono essere sottoposte a query, ma non aggiornate né modificate dai motori SQL a cui è possibile accedere.

Oggetti metadati condivisi

Spark consente di creare database, tabelle esterne, tabelle gestite e viste. Poiché le viste Spark richiedono un motore Spark per elaborare l'istruzione Spark SQL e non possono essere elaborate da un motore SQL, solo i database e le tabelle esterne e gestite contenute che usano il formato di archiviazione Parquet o CSV vengono condivisi con il motore SQL dell'area di lavoro. Le visualizzazioni Spark vengono condivise solo tra le istanze del pool di Spark.

Modello di sicurezza a colpo d'occhio

I database e le tabelle Spark, insieme alle relative rappresentazioni sincronizzate nel motore SQL, sono protetti a livello di archiviazione sottostante. Quando la tabella viene sottoposta a query da uno dei motori che l'utente che ha inviato la query è autorizzato a usare, l'entità di sicurezza di tale utente viene passata ai file sottostanti. Le autorizzazioni vengono controllate a livello di file system.

Per altre informazioni, vedere Database condiviso di Azure Synapse Analytics.

Modifica della manutenzione

Se un oggetto metadati viene eliminato o modificato con Spark, le modifiche vengono prelevate e propagate al pool SQL serverless. La sincronizzazione è asincrona e le modifiche vengono riflesse nel motore SQL dopo un breve ritardo.

Passaggi successivi