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 mindennapos műveletekkel és konfigurációkkal ír adatokat. Mivel az Azure Databricks számos technológiát felölelő eszközkészlettel rendelkezik, és megosztott felelősségű modellben használja a felhőbeli erőforrásokat, 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 a Csatlakozás adatforrásokhoz 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ási adatmanipulációs műveletek gyakran a REST API-felületen történő 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égek a legtöbb más tárolási lehetőséghez képest.
  • Végtelenül skálázható (az adott felhőrégió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 felhőobjektum-tárolóhoz való hozzáférést a Unity Catalog storage hitelesítő adataival és külső helyekkel konfigurálhatja. Ezek a helyek aztán adatfájlok tárolására szolgálnak, amelyek táblákat és köteteket tárolnak. Lásd: Csatlakozás a felhőobjektum-tárolóhoz a Unity Catalog használatával.

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ó vagy a lemeztároló a hagyományos merevlemez-meghajtóknak (HDD-knek) vagy a szilárdtest-meghajtóknak (SSD-knek) megfelelő tárolóköteteket, más néven "merevlemezeket" jelent. 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 kissé eltérnek a termékajánlatok és a felhőgyártók között, de az implementációkban általában a következő jellemzők 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 a számítási erőforrás számára. Ezek a fájlok magukban foglalják az operációs rendszert, a telepített kódtárakat és a lemezgyorsítótár által használt adatokat. 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:

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óhely címtáraiban 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ási erőforrás 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ület rendelkezik a munkaterülethez lefoglalt felhőfiókban konfigurált DBFS-gyökértárolóval, 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 nem szeretne megtartani a fürt leállítása után, az ideiglenes fájlok $TEMPDIR írása jobb teljesítményt nyújt, 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.

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