Udostępnij za pośrednictwem


Gdzie usługa Azure Databricks zapisuje dane?

W tym artykule szczegółowo opisano lokalizacje, w których usługa Azure Databricks zapisuje dane przy użyciu typowych operacji i konfiguracji. Ponieważ usługa Azure Databricks udostępnia 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. Stewardzy danych i administratorzy szukają wskazówek dotyczących konfigurowania i kontrolowania dostępu do danych, powinni zobaczyć temat Zarządzanie danymi za pomocą usługi Unity Catalog.

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

Co to jest magazyn obiektów?

W przypadku przetwarzania w chmurze magazyn obiektów lub magazyn obiektów blob odnosi się do kontenerów magazynu, które utrzymują dane jako obiekty, z każdym obiektem składającym się z danych, metadanych i globalnie unikatowy identyfikator zasobu (URI). Operacje manipulowania danymi w magazynie obiektów są często ograniczone do tworzenia, odczytu, 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ższy koszt magazynu 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. System plików usługi Databricks (DBFS) umożliwia użytkownikom usługi Azure Databricks interakcję z plikami w magazynie obiektów, podobnie jak w przypadku dowolnego innego systemu plików. 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 odnoszą 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 wdrażana jest zazwyczaj partycja logiczna jednego lub większej liczby dysków fizycznych. Implementacje różnią się nieznacznie między ofertami produktów a dostawcami usług w chmurze, ale następujące cechy są zwykle spotykane w różnych implementacjach:

  • 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 na okres istnienia obliczeń. Te pliki obejmują system operacyjny i zainstalowane biblioteki oprócz danych używanych 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 katalog aparatu Unity przechowuje pliki danych?

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

Dane zapisywane lub przekazywane do obiektów podlegających wykazowi aparatu Unity są przechowywane w jednej z następujących lokalizacji:

Gdzie usługa Databricks przechowuje tabele kopii zapasowych danych?

Po uruchomieniu CREATE TABLE instrukcji z usługą Databricks SQL skonfigurowanym przy użyciu wykazu aparatu Unity domyślne zachowanie polega na przechowywaniu plików danych w zarządzanej lokalizacji magazynu skonfigurowanej za pomocą wykazu aparatu Unity. Zobacz Gdzie katalog aparatu Unity przechowuje pliki danych?.

Starszy hive_metastore wykaz jest zgodny z różnymi regułami. Zobacz Praca z wykazem aparatu Unity i starszym magazynem metadanych Hive.

Gdzie usługa Delta Live Tables przechowuje pliki danych?

Usługa Databricks zaleca używanie wykazu aparatu Unity 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?

Usługa Databricks zaleca używanie nazw obiektów z wykazem aparatu Unity do odczytywania i zapisywania danych. Pliki można również zapisywać w woluminach wykazu aparatu Unity przy użyciu następującego wzorca: /Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>. Musisz mieć wystarczające uprawnienia do przekazywania, tworzenia, aktualizowania lub wstawiania danych do obiektów podlegających wykazowi aparatu Unity.

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 środowiska obliczeniowego do 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 jest dostarczany z główną lokalizacją magazynu systemu plików DBFS skonfigurowaną na koncie chmury przydzielonym dla obszaru roboczego, do którego wszyscy użytkownicy mogą uzyskiwać dostęp do odczytu i zapisywania danych. Usługa Databricks nie zaleca używania katalogu głównego 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 mają być przechowywane 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 rozmiaru plików i repozytorium.

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