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:
- 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árhely megadása a Unity Katalógusban.
- 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 a felhőobjektum-tárolóhoz 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ó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.