Condividi tramite


Dove azure Databricks scrive i dati?

Questo articolo illustra in dettaglio le posizioni in cui Azure Databricks scrive i dati con operazioni e configurazioni quotidiane. Poiché Azure Databricks ha una suite di strumenti che si estendono su molte tecnologie e interagiscono con le risorse cloud in un modello di responsabilità condivisa, le posizioni predefinite usate per archiviare i dati variano in base all'ambiente di esecuzione, alle configurazioni e alle librerie.

Le informazioni contenute in questo articolo consentono di comprendere i percorsi predefiniti per varie operazioni e come le configurazioni potrebbero modificare queste impostazioni predefinite. Gli amministratori e gli amministratori dei dati che cercano indicazioni sulla configurazione e il controllo dell'accesso ai dati dovrebbero vedere Governance dei dati con Unity Catalog.

Per informazioni sulla configurazione dell'archiviazione oggetti e di altre origini dati, vedere Connettersi alle origini dati.

Che cos'è l'archiviazione di oggetti?

Nel cloud computing, l'archiviazione oggetti o l'archiviazione BLOB si riferisce a contenitori di archiviazione che mantengono i dati come oggetti, con ogni oggetto costituito da dati, metadati e un URI (Global Unique Resource Identifier). Le operazioni di manipolazione dei dati di archiviazione degli oggetti sono spesso limitate alla creazione, alla lettura, all'aggiornamento e all'eliminazione (CRUD) tramite un'interfaccia API REST. Alcune offerte di archiviazione di oggetti includono funzionalità come il controllo delle versioni e la gestione del ciclo di vita. L'archiviazione di oggetti offre i vantaggi seguenti:

  • Disponibilità elevata, durabilità e affidabilità.
  • Costi di archiviazione inferiori rispetto alla maggior parte delle altre opzioni di archiviazione.
  • Scalabilità infinita (limitata dalla quantità totale di spazio di archiviazione disponibile in una determinata area cloud).

La maggior parte dei data lake basati sul cloud si basa sui formati di dati open source nell'archiviazione di oggetti cloud.

In che modo Azure Databricks usa l'archiviazione di oggetti?

L'archiviazione di oggetti è la forma principale di archiviazione usata da Azure Databricks per la maggior parte delle operazioni. È possibile configurare l'accesso all'archiviazione di oggetti cloud usando le credenziali di archiviazione del catalogo unity e le posizioni esterne. Questi percorsi vengono quindi usati per archiviare i file di dati che eseguono il backup di tabelle e volumi. Vedere Connettersi all'archiviazione di oggetti cloud e ai servizi usando il catalogo unity.

A meno che non si configuri specificamente una tabella in un sistema dati esterno, tutte le tabelle create in Azure Databricks archiviano i dati nell'archiviazione di oggetti cloud.

I file Delta Lake archiviati nell'archiviazione di oggetti cloud forniscono le basi dei dati per una databricks lakehouse.

Che cos'è l'archiviazione a blocchi?

Nel cloud computing, l'archiviazione a blocchi o l'archiviazione su disco si riferisce a volumi di archiviazione che corrispondono a unità disco rigido tradizionali (HDD) o unità SSD (Solid State Drive), note anche come "dischi rigidi". Quando si distribuisce l'archiviazione a blocchi in un ambiente di cloud computing, in genere viene distribuita una partizione logica di una o più unità fisiche. Le implementazioni variano leggermente tra le offerte di prodotti e i fornitori di servizi cloud, ma le caratteristiche seguenti sono in genere disponibili nelle implementazioni:

  • Tutte le macchine virtuali richiedono un volume di archiviazione a blocchi collegato.
  • I file e i programmi installati in un volume di archiviazione a blocchi vengono mantenuti finché il volume di archiviazione a blocchi persiste.
  • I volumi di archiviazione a blocchi vengono spesso usati per l'archiviazione temporanea dei dati.
  • I volumi di archiviazione in blocchi collegati alle macchine virtuali vengono in genere eliminati insieme alle macchine virtuali.

In che modo Azure Databricks usa l'archiviazione a blocchi?

Quando si attivano le risorse di calcolo, Azure Databricks configura e distribuisce le macchine virtuali e collega volumi di archiviazione a blocchi. Questa risorsa di archiviazione a blocchi viene usata per archiviare i file di dati temporanei per la durata della risorsa di calcolo. Questi file includono il sistema operativo, le librerie installate e i dati usati dalla cache del disco. Anche se Apache Spark usa l'archiviazione a blocchi in background per un'efficiente parallelizzazione e caricamento dei dati, la maggior parte del codice eseguita in Azure Databricks non salva o carica direttamente i dati nell'archiviazione a blocchi.

È possibile eseguire codice arbitrario, ad esempio i comandi Python o Bash che usano l'archiviazione a blocchi collegata al nodo driver. Vedere Usare i file nell'archiviazione temporanea collegata al nodo del driver.

Dove archivia i file di dati di Unity Catalog?

Il catalogo unity si basa sugli amministratori per configurare le relazioni tra l'archiviazione cloud e gli oggetti relazionali. La posizione esatta in cui risiedono i dati dipende dal modo in cui gli amministratori hanno configurato le relazioni.

I dati scritti o caricati in oggetti regolati da Unity Catalog vengono archiviati in una delle posizioni seguenti:

Dove Databricks SQL archivia le tabelle di backup dei dati?

Quando si esegue un'istruzione CREATE TABLE con Databricks SQL configurato con Unity Catalog, il comportamento predefinito consiste nell'archiviare i file di dati in un percorso di archiviazione gestito configurato con Unity Catalog. Vedere Dove unity Catalog archivia i file di dati?.

Il catalogo legacy hive_metastore segue regole diverse. Vedere Usare il catalogo unity e il metastore Hive legacy.

Dove vengono archiviati i file di dati nelle tabelle live Delta?

Databricks consiglia di usare Unity Catalog durante la creazione di pipeline DLT. I dati vengono archiviati nelle directory nel percorso di archiviazione gestito associato allo schema di destinazione.

Facoltativamente, è possibile configurare le pipeline DLT usando il metastore Hive. Se configurato con il metastore Hive, è possibile specificare un percorso di archiviazione in DBFS o nell'archiviazione di oggetti cloud. Se non si specifica un percorso, alla pipeline viene assegnato un percorso nella radice DBFS.

Dove apache Spark scrive i file di dati?

Databricks consiglia di usare i nomi degli oggetti con Unity Catalog per la lettura e la scrittura di dati. È anche possibile scrivere file in volumi del catalogo Unity usando il modello seguente: /Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>. È necessario disporre di privilegi sufficienti per caricare, creare, aggiornare o inserire dati in oggetti regolati da Unity Catalog.

Facoltativamente, è possibile usare gli URI (Universal Resource Indicator) per specificare i percorsi dei file di dati. Gli URI variano a seconda del provider di servizi cloud. È anche necessario disporre delle autorizzazioni di scrittura configurate per la risorsa di calcolo corrente per scrivere nell'archiviazione di oggetti cloud.

Azure Databricks usa il file system di Databricks per eseguire il mapping dei comandi di lettura e scrittura di Apache Spark all'archiviazione di oggetti cloud. Ogni area di lavoro di Azure Databricks ha una posizione di archiviazione radice DBFS configurata nell'account cloud allocato per l'area di lavoro, a cui tutti gli utenti possono accedere per la lettura e la scrittura di dati. Databricks non consiglia di usare la radice DBFS per archiviare i dati di produzione. Vedere Che cos'è DBFS? e Raccomandazioni per l'uso della radice DBFS.

Dove pandas scrive i file di dati in Azure Databricks?

In Databricks Runtime 14.0 e versioni successive, la directory di lavoro corrente predefinita (CWD) per tutte le operazioni di lettura e scrittura python locali è la directory contenente il notebook. Se si specifica solo un nome file durante il salvataggio di un file di dati, pandas salva tale file di dati come file di area di lavoro parallelo al notebook attualmente in esecuzione.

Non tutte le versioni di Databricks Runtime supportano i file dell'area di lavoro e alcune versioni di Databricks Runtime hanno un comportamento diverso a seconda che si usino notebook o cartelle Git. Vedere Informazioni sul valore predefinito: directory di lavoro corrente del progetto.

Dove è necessario scrivere file temporanei in Azure Databricks?

Se è necessario scrivere file temporanei che non si desidera mantenere dopo l'arresto del cluster, scrivere i file temporanei per ottenere prestazioni migliori rispetto alla $TEMPDIR scrittura nella directory di lavoro corrente (CWD) se CWD si trova nel file system dell'area di lavoro. È anche possibile evitare di superare i limiti delle dimensioni dei rami se il codice viene eseguito in un repository. Per altre informazioni, vedere Limiti per file e repository.

Scrivere in /local_disk0 se la quantità di dati da scrivere è di grandi dimensioni e si vuole che lo spazio di archiviazione venga ridimensionato automaticamente.