Megosztás a következőn keresztül:


Hol ír adatokat az Azure Databricks?

Ez a cikk részletesen ismerteti azOkat a helyeket, ahol az Azure Databricks gyakran használt műveleteket és konfigurációkat tartalmazó adatokat ír. Mivel az Azure Databricks számos technológiát felölelő és megosztott felelősségű modellben használható felhőerőforrásokat tartalmazó eszközkészletet biztosít, az adatok tárolására használt alapértelmezett helyek a végrehajtási környezettől, a konfigurációktól és a táraktól függően változnak.

A cikkben található információk segítenek megérteni a különböző műveletek alapértelmezett elérési útját, és azt, hogy a konfigurációk hogyan módosíthatják ezeket az alapértelmezett értékeket. Az adatgondnokoknak és rendszergazdáknak, akik útmutatást keresnek az adatokhoz való hozzáférés konfigurálásához és szabályozásához, tekintse meg az adatszabályozást a Unity Catalogban.

Az objektumtárolás és más adatforrások konfigurálásáról további információt az adatforrások Csatlakozás című témakörben talál.

Mi az objektumtárolás?

A felhőalapú számítástechnikában az objektumtárolás vagy a blobtároló olyan tárolókra vonatkozik, amelyek objektumként tartják fenn az adatokat, és minden objektum adatból, metaadatokból és globálisan egyedi erőforrás-azonosítóból (URI) áll. Az objektumtárolókban végzett adatkezelési műveletek gyakran a REST API-felületen keresztüli létrehozásra, olvasásra, frissítésre és törlésre (CRUD) korlátozódnak. Egyes objektumtárolási ajánlatok olyan funkciókat tartalmaznak, mint a verziószámozás és az életciklus-kezelés. Az objektumtárolás az alábbi előnyökkel jár:

  • Magas rendelkezésre állás, tartósság és megbízhatóság.
  • Alacsonyabb tárolási költség a legtöbb más tárolási lehetőséghez képest.
  • Végtelenül méretezhető (a felhő egy adott régiójában rendelkezésre álló tárterület teljes mennyisége korlátozza).

A legtöbb felhőalapú adattó nyílt forráskód felhőalapú objektumtároló adatformátumára épül.

Hogyan használja az Azure Databricks az objektumtárolást?

Az Objektumtárolás az Azure Databricks által a legtöbb művelethez használt tárolás fő formája. A Databricks Fájlrendszer (DBFS) lehetővé teszi az Azure Databricks-felhasználók számára, hogy az objektumtárban lévő fájlokat ugyanúgy használják, mint bármely más fájlrendszerben. Hacsak nem konfigurál egy táblát egy külső adatrendszerhez, az Azure Databricksben létrehozott összes tábla a felhőobjektum-tárolóban tárolja az adatokat.

A felhőobjektum-tárolóban tárolt Delta Lake-fájlok biztosítják a Databricks lakehouse adatalapját.

Mi az a blokktároló?

A felhőalapú számítástechnikában a blokktárolók vagy lemeztárolók a hagyományos merevlemez-meghajtóknak (HDD-knek) vagy a szilárdtest-meghajtóknak (SSD-knek) megfelelő tárolókötetekre vonatkoznak, amelyeket egyszerűen "merevlemezeknek" is neveznek. A blokktároló felhőalapú számítási környezetben való üzembe helyezésekor általában egy vagy több fizikai meghajtó logikai partíciója lesz üzembe helyezve. Az implementációk némileg eltérnek a termékajánlatok és a felhőgyártók között, de a következő jellemzők általában az implementációkban találhatók:

  • Minden virtuális géphez csatolt blokktároló-kötet szükséges.
  • A blokktároló kötetre telepített fájlok és programok mindaddig megmaradnak, amíg a blokktároló kötete megmarad.
  • A blokktároló köteteket gyakran használják ideiglenes adattárolásra.
  • A virtuális gépekhez csatolt blokktároló kötetek általában a virtuális gépek mellett törlődnek.

Hogyan használja az Azure Databricks a blokktárolót?

A számítási erőforrások bekapcsolásakor az Azure Databricks konfigurálja és telepíti a virtuális gépeket, és blokktároló köteteket csatol. Ez a blokktároló rövid élettartamú adatfájlok tárolására szolgál. Ezek a fájlok a lemezgyorsítótár által használt adatok mellett az operációs rendszert és a telepített kódtárakat is tartalmazzák. Bár az Apache Spark blokktárolót használ a háttérben a hatékony párhuzamosításhoz és az adatok betöltéséhez, az Azure Databricksben futtatott kódok többsége nem menti vagy tölti be közvetlenül az adatokat a tárolás blokkolásához.

Tetszőleges kódot futtathat, például Python- vagy Bash-parancsokat, amelyek az illesztőprogram-csomóponthoz csatolt blokktárolót használják. Lásd: Az illesztőprogram-csomóponthoz csatolt rövid élettartamú tárolóban lévő fájlok használata.

Hol tárolja a Unity Catalog az adatfájlokat?

A Unity Catalog a rendszergazdákra támaszkodik a felhőbeli tárolók és a relációs objektumok közötti kapcsolatok konfigurálásához. Az adatok pontos helye attól függ, hogy a rendszergazdák hogyan konfigurálták a kapcsolatokat.

A Unity Catalog által szabályozott objektumokra írt vagy feltöltött adatokat a következő helyek egyikén tároljuk:

  • Metaadattárhoz, katalógushoz vagy sémához társított felügyelt tárolóhely. A felügyelt táblákba és felügyelt kötetekre írt vagy feltöltött adatok felügyelt tárterületet használnak. Lásd: Felügyelt tárterület.
  • Tároló hitelesítő adatokkal konfigurált külső hely. A külső táblákba és külső kötetekre írt vagy feltöltött adatok külső tárolót használnak. Lásd: Csatlakozás felhőbeli objektumtárba a Unity Catalog használatával.

Hol tárolja a Databricks SQL az adat-háttértáblákat?

Amikor a Unity Katalógussal konfigurált Databricks SQL-lel futtat egy CREATE TABLE utasítást, az alapértelmezett viselkedés az adatfájlok tárolása a Unity Katalógussal konfigurált felügyelt tárolóhelyen. Lásd: Hol tárolja a Unity Catalog az adatfájlokat?

Az örökölt hive_metastore katalógus különböző szabályokat követ. Lásd: A Unity-katalógus és az örökölt Hive-metaadattár használata.

Hol tárolja a Delta Live Tables az adatfájlokat?

A Databricks a Unity Catalog használatát javasolja DLT-folyamatok létrehozásakor. Az adatok a célsémához társított felügyelt tárolóhelyen belüli címtárakban lesznek tárolva.

A DLT-folyamatokat igény szerint konfigurálhatja a Hive metaadattár használatával. Ha a Hive metaadattárral van konfigurálva, megadhatja a tárolóhelyet a DBFS-en vagy a felhőobjektum-tárolón. Ha nem ad meg helyet, a rendszer a DBFS-gyökér egy helyét rendeli hozzá a folyamathoz.

Hol ír az Apache Spark adatfájlokat?

A Databricks azt javasolja, hogy objektumneveket használ a Unity Catalogtal az adatok olvasásához és írásához. A Unity Catalog-kötetekbe a következő mintával is írhat fájlokat: /Volumes/<catalog>/<schema>/<volume>/<path>/<file-name>. Elegendő jogosultsággal kell rendelkeznie ahhoz, hogy adatokat töltsön fel, hozzon létre, frissítsen vagy szúrjon be a Unity Katalógus által szabályozott objektumokba.

Az adatfájlok elérési útvonalának megadásához használhatja az univerzális erőforrásjelzőket (URI-kat). Az URI-k a felhőszolgáltatótól függően változnak. Emellett írási engedélyekkel kell rendelkeznie ahhoz, hogy az aktuális számítása a felhőobjektum-tárolóba írjon.

Az Azure Databricks a Databricks fájlrendszer használatával képezi le az Apache Spark olvasási és írási parancsait a felhőobjektum-tárolóba. Minden Azure Databricks-munkaterülethez tartozik egy, a munkaterülethez lefoglalt felhőfiókban konfigurált DBFS-gyökértároló hely, amelyhez minden felhasználó hozzáférhet az adatok olvasásához és írásához. A Databricks nem javasolja a DBFS-gyökér használatát az éles adatok tárolásához. Lásd: Mi az a DBFS? és Javaslatok a DBFS-gyökér használatához.

Hol írnak a pandas adatfájlokat az Azure Databricksben?

A Databricks Runtime 14.0-s vagy újabb verziója esetén az alapértelmezett aktuális munkakönyvtár (CWD) az összes helyi Python olvasási és írási művelethez a jegyzetfüzetet tartalmazó könyvtár. Ha csak egy fájlnevet ad meg egy adatfájl mentésekor, a pandas ezt az adatfájlt a jelenleg futó jegyzetfüzetével párhuzamos munkaterületfájlként menti.

Nem minden Databricks-futtatókörnyezeti verzió támogatja a munkaterület fájljait, és egyes Databricks-futtatókörnyezeti verziók működése eltérő attól függően, hogy jegyzetfüzeteket vagy Git-mappákat használ-e. Lásd : Mi az alapértelmezett aktuális munkakönyvtár?.

Hol írhatok ideiglenes fájlokat az Azure Databricksben?

Ha olyan ideiglenes fájlokat kell írnia, amelyeket a fürt leállítása után nem szeretne megtartani, az ideiglenes fájlok $TEMPDIR írása jobb teljesítményt eredményez, mint az aktuális munkakönyvtárba (CWD) való írás, ha a CWD a munkaterület fájlrendszerében található. Az ágméretkorlátok túllépését is elkerülheti, ha a kód egy adattárban fut. További információ: Fájl- és adattárméretkorlátok.

Írjon arra /local_disk0 az esetre, ha az írandó adatok mennyisége nagyon nagy, és azt szeretné, hogy a tárterület automatikusan skálázható legyen.