Udostępnij za pośrednictwem


Gdzie usługa Azure Databricks zapisuje dane?

Ten artykuł zawiera szczegółowe informacje o lokalizacjach, w których usługa Azure Databricks zapisuje dane z codziennymi operacjami i konfiguracjami. Ponieważ usługa Azure Databricks ma zestaw narzędzi obejmujących wiele technologii i współdziała z zasobami w chmurze w modelu wspólnej odpowiedzialności, domyślne lokalizacje używane do przechowywania danych różnią się w zależności od środowiska wykonywania, konfiguracji i bibliotek.

Informacje przedstawione w tym artykule ułatwiają zrozumienie domyślnych ścieżek dla różnych operacji i sposobu, w jaki konfiguracje mogą zmienić te ustawienia domyślne. Opiekunowie danych i administratorzy, poszukujący wskazówek dotyczących konfigurowania i kontrolowania dostępu do danych, powinni zapoznać się z zarządzaniem danymi przy użyciu Unity Catalog.

Aby dowiedzieć się więcej na temat konfigurowania magazynu obiektów i innych źródeł danych, zobacz Nawiązywanie połączenia ze źródłami danych.

Co to jest magazyn obiektów?

W przetwarzaniu w chmurze magazyn obiektów blob odnosi się do kontenerów magazynowych, które przechowują dane jako obiekty, z których każdy składa się z danych, metadanych i globalnie unikatowego identyfikatora zasobu (URI). Operacje manipulowania danymi magazynu obiektów są często ograniczone do tworzenia, odczytywania, aktualizowania i usuwania (CRUD) za pośrednictwem interfejsu API REST. Niektóre oferty magazynu obiektów obejmują funkcje, takie jak przechowywanie wersji i zarządzanie cyklem życia. Magazyn obiektów ma następujące korzyści:

  • Wysoka dostępność, trwałość i niezawodność.
  • Niższe koszty magazynowania w porównaniu z większością innych opcji magazynu.
  • Nieskończenie skalowalne (ograniczone przez łączną ilość miejsca do magazynowania dostępnego w danym regionie chmury).

Większość magazynów danych opartych na chmurze jest oparta na formatach danych typu open source w magazynie obiektów w chmurze.

Jak usługa Azure Databricks używa magazynu obiektów?

Magazyn obiektów to główna forma magazynu używana przez usługę Azure Databricks dla większości operacji. Konfigurujesz dostęp do obiektowego magazynu w chmurze przy użyciu poświadczeń magazynu Unity Catalog i lokalizacji zewnętrznych. Te lokalizacje są następnie używane do przechowywania plików danych wspierających tabele i woluminy. Zobacz Połącz się z chmurową pamięcią masową obiektów i usługami za pomocą Unity Catalog.

Jeśli tabela nie zostanie specjalnie skonfigurowana względem zewnętrznego systemu danych, wszystkie tabele utworzone w usłudze Azure Databricks przechowują dane w magazynie obiektów w chmurze.

Pliki usługi Delta Lake przechowywane w magazynie obiektów w chmurze zapewniają podstawę danych dla usługi Databricks Lakehouse.

Co to jest magazyn blokowy?

W przypadku przetwarzania w chmurze magazyn blokowy lub magazyn dyskowy odnosi się do woluminów magazynu, które odpowiadają tradycyjnym dyskom twardym (HDD) lub dyskom półprzewodnikowym (SSD), nazywanym również "dyskami twardymi". Podczas wdrażania magazynu blokowego w środowisku przetwarzania w chmurze zwykle wdrażana jest partycja logiczna jednego lub większej liczby dysków fizycznych. Implementacje różnią się nieco między ofertami produktów a dostawcami usług w chmurze, ale w implementacjach zwykle występują następujące cechy:

  • Wszystkie maszyny wirtualne wymagają dołączonego woluminu magazynu blokowego.
  • Pliki i programy zainstalowane na woluminie magazynu blokowego są utrwalane, o ile wolumin magazynu blokowego będzie się powtarzać.
  • Woluminy magazynu blokowego są często używane do przechowywania danych tymczasowych.
  • Blokowe woluminy magazynu dołączone do maszyn wirtualnych są zwykle usuwane wraz z maszynami wirtualnymi.

W jaki sposób usługa Azure Databricks korzysta z magazynu blokowego?

Po włączeniu zasobów obliczeniowych usługa Azure Databricks konfiguruje i wdraża maszyny wirtualne oraz dołącza woluminy magazynu blokowego. Ten magazyn blokowy służy do przechowywania efemerycznych plików danych przez okres istnienia zasobu obliczeniowego. Te pliki obejmują system operacyjny, zainstalowane biblioteki i dane używane przez pamięć podręczną dysku. Podczas gdy platforma Apache Spark używa magazynu blokowego w tle do wydajnego przetwarzania równoległego i ładowania danych, większość kodu uruchamiana w usłudze Azure Databricks nie zapisuje bezpośrednio ani nie ładuje danych do magazynu blokowego.

Możesz uruchomić dowolny kod, taki jak python lub polecenia powłoki Bash, które używają magazynu blokowego dołączonego do węzła sterownika. Zobacz Praca z plikami w magazynie efemerycznym dołączonym do węzła sterownika.

Gdzie usługa Unity Catalog przechowuje pliki danych?

Katalog Unity korzysta z administratorów w celu konfigurowania relacji między magazynem w chmurze oraz obiektami relacyjnymi. Dokładna lokalizacja, w której znajdują się dane, zależy od tego, jak administratorzy skonfigurowali relacje.

Dane zapisywane lub przesyłane do obiektów podlegających katalogowi Unity są przechowywane w jednej z następujących lokalizacji:

Gdzie usługa Databricks przechowuje tabele kopii zapasowych danych?

Po uruchomieniu instrukcji CREATE TABLE w Databricks SQL skonfigurowanym przy użyciu Unity Catalog, domyślnym zachowaniem jest przechowywanie plików danych w zarządzanej lokalizacji magazynu skonfigurowanej z użyciem tego samego Unity Catalog. Zobacz Gdzie katalog Unity przechowuje pliki danych?.

Starszy katalog hive_metastore działa według innych zasad. Zobacz Praca z katalogiem Unity i starszym metadanych Hive.

Gdzie usługa Delta Live Tables przechowuje pliki danych?

Usługa Databricks zaleca używanie Unity Catalog podczas tworzenia potoków DLT. Dane są przechowywane w katalogach w zarządzanej lokalizacji magazynu skojarzonej ze schematem docelowym.

Opcjonalnie można skonfigurować potoki DLT przy użyciu magazynu metadanych Hive. Po skonfigurowaniu przy użyciu magazynu metadanych Hive można określić lokalizację magazynu w systemie plików DBFS lub magazynie obiektów w chmurze. Jeśli nie określisz lokalizacji, do potoku zostanie przypisana lokalizacja w katalogu głównym systemu plików DBFS.

Gdzie platforma Apache Spark zapisuje pliki danych?

Databricks zaleca używanie nazw obiektów za pomocą Unity Catalog do operacji odczytu i zapisu danych. Pliki można również zapisywać w woluminach Unity Catalog przy użyciu następującego wzorca: /Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>. Musisz mieć wystarczające uprawnienia do przesyłania, tworzenia, aktualizowania lub wstawiania danych do obiektów zarządzanych przez Unity Catalog.

Opcjonalnie możesz użyć uniwersalnych wskaźników zasobów (URI), aby określić ścieżki do plików danych. Identyfikatory URI różnią się w zależności od dostawcy usług w chmurze. Musisz również mieć uprawnienia do zapisu skonfigurowane dla bieżącego zasobu obliczeniowego w celu zapisu w magazynie obiektów w chmurze.

Usługa Azure Databricks używa systemu plików usługi Databricks do mapowania poleceń odczytu i zapisu platformy Apache Spark z powrotem do magazynu obiektów w chmurze. Każdy obszar roboczy usługi Azure Databricks ma główną lokalizację magazynu systemu plików DBFS skonfigurowaną na koncie chmury przydzielonym dla obszaru roboczego, do którego wszyscy użytkownicy mogą uzyskać dostęp do odczytu i zapisywania danych. Usługa Databricks nie zaleca używania głównego systemu plików DBFS do przechowywania żadnych danych produkcyjnych. Zobacz Co to jest system DBFS? i Zalecenia dotyczące pracy z katalogiem głównym systemu plików DBFS.

Gdzie biblioteka pandas zapisuje pliki danych w usłudze Azure Databricks?

W środowisku Databricks Runtime 14.0 lub nowszym domyślnym bieżącym katalogem roboczym (CWD) dla wszystkich lokalnych operacji odczytu i zapisu w języku Python jest katalog zawierający notes. Jeśli podasz tylko nazwę pliku podczas zapisywania pliku danych, biblioteka pandas zapisuje ten plik danych jako plik obszaru roboczego równolegle do aktualnie uruchomionego notesu.

Nie wszystkie wersje środowiska Databricks Runtime obsługują pliki obszaru roboczego, a niektóre wersje środowiska Databricks Runtime mają różne zachowanie w zależności od tego, czy używasz notesów, czy folderów Git. Zobacz Co to jest domyślny bieżący katalog roboczy?.

Gdzie należy zapisywać pliki tymczasowe w usłudze Azure Databricks?

Jeśli musisz zapisać pliki tymczasowe, które nie chcesz przechowywać po zamknięciu klastra, zapisywanie plików tymczasowych w celu $TEMPDIR uzyskania lepszej wydajności niż zapisywanie w bieżącym katalogu roboczym (CWD), jeśli CWD znajduje się w systemie plików obszaru roboczego. Można również uniknąć przekroczenia limitów rozmiaru gałęzi, jeśli kod jest uruchamiany w repozytorium. Aby uzyskać więcej informacji, zobacz Limity plików i repozytoriów.

Zapisz, /local_disk0 jeśli ilość danych do zapisania jest duża i chcesz, aby magazyn był skalowany automatycznie.