Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a lap áttekintést nyújt az adatok és konfigurációk Azure Databricks-munkaterületről történő exportálásának eszközeiről és megközelítéséről. A munkaterület-objektumokat a megfelelőségi követelmények, az adathordozhatóság, a biztonsági mentés vagy a munkaterület migrálása céljából exportálhatja.
Áttekintés
Az Azure Databricks-munkaterületek számos különböző objektumot tartalmaznak, például munkaterület-konfigurációt, felügyelt táblákat, AI- és ML-objektumokat, valamint felhőalapú tárolóban tárolt adatokat. Ha munkaterületi adatokat kell exportálnia, beépített eszközök és API-k kombinációjával szisztematikusan kinyerheti ezeket az eszközöket.
A munkaterület adatainak exportálásának gyakori okai a következők:
- Megfelelőségi követelmények: Adathordozhatósági kötelezettségek teljesítése a GDPR-hez és a CCPA-hez hasonló szabályozások szerint.
- Biztonsági mentés és vészhelyreállítás: Kritikus fontosságú munkaterület-objektumok másolatainak létrehozása az üzletmenet folytonossága érdekében.
- Munkaterület migrálása: Objektumok áthelyezése munkaterületek vagy felhőszolgáltatók között.
- Naplózás és archiválás: A munkaterület konfigurációjának és adatainak korábbi rekordjainak megőrzése.
Tervezze meg az exportálását
Mielőtt megkezdené a munkaterület adatainak exportálását, hozzon létre egy leltárt az exportálni kívánt objektumokról, és ismerje meg a közöttük fennálló függőségeket.
Munkaterület-objektumok ismertetése
Az Azure Databricks-munkaterület számos exportálható eszközkategóriát tartalmaz:
- Munkaterület konfigurációja: Jegyzetfüzetek, mappák, adattárak, titkos kódok, felhasználók, csoportok, hozzáférés-vezérlési listák (ACL-ek), fürtkonfigurációk és feladatdefiníciók.
- Adategységek: Felügyelt táblák, adatbázisok, Databricks fájlrendszerfájlok és felhőalapú tárolóban tárolt adatok.
- Számítási erőforrások: Fürtkonfigurációk, szabályzatok és példánykészlet-definíciók.
- Mi- és ML-eszközök: MLflow-kísérletek, futtatások, modellek, funkciótár-táblák, AI-keresési indexek és Unity Catalog-modellek.
- Unity Catalog-objektumok: Metaadattár-konfiguráció, katalógusok, sémák, táblák, kötetek és engedélyek.
Az exportálás hatóköre
Hozzon létre egy ellenőrzőlistát az exportálni kívánt objektumokról a követelményeknek megfelelően. Fontolja meg az alábbi kérdéseket:
- Az összes objektumot vagy csak bizonyos kategóriákat kell exportálnia?
- Vannak megfelelőségi vagy biztonsági követelmények, amelyek meghatározzák, hogy mely eszközöket kell exportálni?
- Szükséges megőriznie az eszközök (például a jegyzetfüzetekre hivatkozó feladatok) közötti kapcsolatokat?
- Újra létre kell hoznia a munkaterület konfigurációját egy másik környezetben?
Az exportálási hatókör tervezésével kiválaszthatja a megfelelő eszközöket, és elkerülheti a kritikus függőségek hiányát.
Munkaterület konfigurációjának exportálása
A Terraform-exportőr az elsődleges eszköz a munkaterület konfigurációjának exportálásához. Olyan Terraform-konfigurációs fájlokat hoz létre, amelyek kódként jelölik a munkaterület eszközeit.
Terraform-exportőr használata
A Terraform-exportőr be van építve az Azure Databricks Terraform-szolgáltatóba, és Terraform-konfigurációs fájlokat hoz létre a munkaterület erőforrásaihoz, beleértve a jegyzetfüzeteket, feladatokat, fürtöket, felhasználókat, csoportokat, titkos kulcsokat és hozzáférés-vezérlési listákat. Az exportőrt minden munkaterületen külön kell futtatni. Lásd a Databricks Terraform szolgáltatót.
Előfeltételek:
- A számítógépen telepített Terraform
- Azure Databricks-hitelesítés konfigurálva
- Rendszergazdai jogosultságok az exportálni kívánt munkaterületen
Munkaterület erőforrásainak exportálása:
Tekintse meg a példa használati videóját az exportálási eszköz bemutatójához.
Töltse le és telepítse a Terraform-szolgáltatót az exportőr eszközzel:
wget -q -O terraform-provider-databricks.zip $(curl -s https://api.github.com/repos/databricks/terraform-provider-databricks/releases/latest|grep browser_download_url|grep linux_amd64|sed -e 's|.*: "\([^"]*\)".*$|\1|') unzip -d terraform-provider-databricks terraform-provider-databricks.zipMegjegyzés:
A letöltési parancs a Linuxot (
linux_amd64) célozza meg és használjawget. MacOS vagy Windows esetén töltse le a megfelelő buildet (darwin_arm64darwin_amd64vagywindows_amd64) a kiadási oldalról, és használjacurla PowerShelltInvoke-WebRequestahelyettwget. MacOS rendszeren, ha a Gatekeeper blokkolja a bináris fájlt, törölje a karantén attribútumot a futtatássalxattr -d com.apple.quarantine <binary>.Hitelesítési környezeti változók beállítása a munkaterülethez:
export DATABRICKS_HOST=https://your-workspace-url export DATABRICKS_TOKEN=your-tokenHa egy meglévő konfigurációs profilt szeretne felhasználni a gazdagép és a token beállítása helyett, állítsa a
DATABRICKS_CONFIG_PROFILEkörnyezeti változót a profil nevére.Futtassa az exportőrt Terraform-konfigurációs fájlok létrehozásához:
terraform-provider-databricks exporter \ -directory ./exported-workspace \ -listing notebooks,jobs,compute,users,groups,secrets \ -skip-interactiveGyakori exportőri lehetőségek:
-
-listing: Adja meg az exportálandó erőforrástípusokat (vesszővel elválasztva) -
-services: Alternatív megoldás az erőforrások szűrésére -
-directory: Kimeneti könyvtár generált.tffájlokhoz -
-incremental: Inkrementális módban történő futtatás szakaszos áttelepítésekhez
-
Tekintse át a kimeneti könyvtárban létrehozott
.tffájlokat. Az exportőr minden erőforrástípushoz létrehoz egy fájlt.
Megjegyzés:
A Terraform-exportőr a munkaterület konfigurációjára és metaadataira összpontosít. Nem exportálja a táblákban vagy a Databricks fájlrendszerben tárolt tényleges adatokat. Az adatokat külön kell exportálnia az alábbi szakaszokban ismertetett módszerekkel.
Adott eszköztípusok exportálása
A Terraform-exportőr által nem teljes mértékben lefedett eszközök esetében használja az alábbi módszereket:
- Jegyzetfüzetek: A jegyzetfüzeteket egyenként töltheti le a munkaterület felhasználói felületéről, vagy a Workspace API használatával programozott módon exportálhatja a jegyzetfüzeteket. Lásd: Munkaterület-objektumok kezelése.
- Titkos kódok: A titkos kulcsok biztonsági okokból nem exportálhatók közvetlenül. Manuálisan újra létre kell hoznia a titkos kulcsokat a célkörnyezetben. Titkos kódok neveinek és hatóköreinek dokumentálása referenciaként.
- MLflow-objektumok: A mlflow-export-import eszközzel exportálhat kísérleteket, futtatásokat és modelleket. Lásd az ML erőforrások lenti részét.
Adatok exportálása
Az ügyféladatok általában a felhőfiók tárterületében találhatók, nem az Azure Databricksben. Nem kell exportálnia azokat az adatokat, amelyek már a felhőbeli tárolóban találhatóak. Azonban exportálnia kell az Azure Databricks által felügyelt helyeken tárolt adatokat.
Felügyelt táblák exportálása
Bár a felügyelt táblák a felhőbeli tárolóban találhatók, uUID-alapú hierarchiában vannak tárolva, amely nehezen elemezhető. A parancs használatával DEEP CLONE a felügyelt táblákat külső táblákként is átírhatja egy megadott helyen, így könnyebben kezelhetők.
A példaparancsok DEEP CLONE :
CREATE TABLE delta.`abfss://container@storage.dfs.core.windows.net/path/to/storage/`
DEEP CLONE my_catalog.my_schema.my_table
Ha egy teljes szkriptet szeretne klónozni a katalógusok listájában lévő összes táblára, tekintse meg az alábbi példaszkriptet.
Databricks alapértelmezett tároló exportálása
Kiszolgáló nélküli munkaterületek esetén az Azure Databricks alapértelmezett tárolót kínál, amely egy teljes körűen felügyelt tárolási megoldás az Azure Databricks-fiókon belül. Az alapértelmezett tárolóban lévő adatokat a munkaterület törlése vagy leszerelése előtt exportálni kell az ügyfél tulajdonában lévő tárolókba. A kiszolgáló nélküli munkaterületekről további információt a Kiszolgáló nélküli munkaterület létrehozása című témakörben talál.
Az alapértelmezett tárolóban lévő táblákhoz használja a DEEP CLONE-t, hogy adatokat írjon egy ügyfél által birtokolt tároló konténerbe. Kötetek és tetszőleges fájlok esetén kövesse az alábbi DBFS-gyökérexportálási szakaszban ismertetett mintákat.
Databricks fájlrendszer gyökerének exportálása
Megjegyzés:
Új munkafolyamatok esetén a Databricks azt javasolja, hogy a Databricks fájlrendszer helyett Unity Catalog-kötetekben vagy munkaterületi fájlrendszerben tárolja az adatokat. Ez a lap a Databricks fájlrendszer exportálását dokumentálja a meglévő Databricks fájlrendszer-adatokkal rendelkező felhasználók számára.
A Databricks fájlrendszergyökér a munkaterület tárfiókjának örökölt tárolási helye, amely tartalmazhat ügyfél tulajdonában lévő objektumokat, felhasználói feltöltéseket, init-szkripteket, kódtárakat és táblákat. Bár a Databricks fájlrendszer gyökere elavult tárolási minta, előfordulhat, hogy az örökölt munkaterületek ezen a helyen tárolják az adatokat, amelyeket exportálni kell. A munkaterület tárolási architektúrájáról további információt a Munkaterület-tároló című témakörben talál.
Databricks fájlrendszer gyökerének exportálása:
Mivel az Azure-beli gyökér tárolók privátak, nem lehet használni az azure-natív eszközöket, például azcopy, az adatok tárolási fiókok közötti áthelyezésére. Ehelyett használja dbutils fs cp és delta DEEP CLONE az Azure Databricksben. Ez az adatmennyiségtől függően hosszú időt vehet igénybe.
# Copy DBFS files to a local path
dbutils.fs.cp("dbfs:/path/to/remote/folder", "/path/to/local/folder", recurse=True)
A Databricks fájlrendszer gyökértárolójában lévő táblákhoz használja a következőt DEEP CLONE:
CREATE TABLE delta.`abfss://container@storage.dfs.core.windows.net/path/to/external/storage/`
DEEP CLONE delta.`dbfs:/path/to/dbfs/location`
Fontos
A nagy mennyiségű adat felhőbeli tárolóból való exportálása jelentős adatátviteli és tárolási költségeket vonhat maga után. A nagy méretű exportálások megkezdése előtt tekintse át a felhőszolgáltató díjszabását.
Gyakori exportálási kihívások
Titkok:
A titkos kulcsok biztonsági okokból nem exportálhatók közvetlenül. Ha a Terraform-exportőrt használja a -export-secrets lehetőséggel, az exportőr létrehoz egy változót vars.tf , amelynek neve megegyezik a titkos kóddal. Ezt a fájlt manuálisan kell frissítenie a tényleges titkos értékekkel, vagy futtatnia kell a Terraform-exportőrt a -export-secrets beállítással (csak az Azure Databricks által felügyelt titkos kulcsok esetében).
Az Azure Databricks egy Azure Key Vault által támogatott titkos tár használatát javasolja.
AI- és ML-eszközök exportálása
Egyes AI- és ML-eszközök különböző eszközöket és módszereket igényelnek az exportáláshoz. A Unity Catalog-modelleket a Terraform-exportőr részeként exportáljuk.
MLflow-objektumok
Az MLflow-t nem fedi le a Terraform-exportőr az API hiányosságai és a szerializálási nehézségek miatt. MLflow-kísérletek, futtatások, modellek és összetevők exportálásához használja a mlflow-export-import eszközt. Ez a nyílt forráskódú eszköz az MLflow migrálásának félig teljes körű lefedettségét biztosítja.
Csak exportálási forgatókönyvek esetén az összes MLflow-objektumot tárolhatja egy ügyfél tulajdonában lévő gyűjtőben anélkül, hogy végre kellene hajtania az importálási lépést. Az MLflow kezelésével kapcsolatos további információkért lásd: Modell életciklusának kezelése a Unity Katalógusban.
Funkciótár és AI-keresés
AI-keresési indexek: Az AI Search-indexek nem tartoznak az UNIÓS adatexportálási eljárások hatálya alá. Ha továbbra is exportálni szeretné őket, azokat egy standard táblába kell írni, majd exportálni kell őket a használatával DEEP CLONE.
Szolgáltatástár-táblák: A funkciótárat az AI Search-indexekhez hasonlóan kell kezelni. Az SQL használatával válassza ki a releváns adatokat, és írja be egy szabványos táblába, majd exportálja a következővel DEEP CLONE: .
Exportált adatok ellenőrzése
A munkaterület adatainak exportálása után ellenőrizze, hogy a régi környezet leszerelése előtt helyesen exportálták-e a feladatokat, a felhasználókat, a jegyzetfüzeteket és az egyéb erőforrásokat. A hatókörkezelési és tervezési fázisban létrehozott ellenőrzőlistával ellenőrizheti, hogy az exportálni kívánt elemek exportálása sikeresen megtörtént-e.
Ellenőrzőlista
Az exportálás ellenőrzéséhez használja ezt az ellenőrzőlistát:
- Létrehozott konfigurációs fájlok: A Terraform konfigurációs fájljai az összes szükséges munkaterület-erőforráshoz létrejönnek.
- Exportált jegyzetfüzetek: A rendszer az összes jegyzetfüzetet érintetlen tartalommal és metaadatokkal exportálja.
- Klónozott táblák: A felügyelt táblákat sikeresen klónozza az exportálási helyre.
- Átmásolt adatfájlok: A felhőbeli tárolási adatok teljes mértékben hiba nélkül másolódnak.
- Exportált MLflow-objektumok: A kísérleteket, a futtatásokat és a modelleket az összetevőkkel exportálja a rendszer.
- Engedélyek dokumentálva: A hozzáférés-vezérlési listák és engedélyek a Terraform-konfigurációban vannak rögzítve.
- Azonosított függőségek: Az objektumok közötti kapcsolatok (például a jegyzetfüzetekre hivatkozó feladatok) megmaradnak az exportálásban.
Exportálás utáni ajánlott eljárások
Az érvényesítési és elfogadási tesztelést nagyrészt a követelmények határozzák meg, és széles körben változhatnak. Ezek az általános ajánlott eljárások azonban a következők:
- Tesztágy definiálása: Olyan feladatok vagy jegyzetfüzetek tesztágyának létrehozása, amelyek ellenőrzik, hogy a titkos kódok, adatok, csatlakoztatások, összekötők és egyéb függőségek megfelelően működnek-e az exportált környezetben.
- Kezdje a fejlesztői környezetekkel: Ha fokozatosan mozog, kezdje a fejlesztői környezettel, és haladjon a termelési környezet felé. Ez korán felfedi a főbb problémákat, és elkerüli a termelési hatásokat.
- Git-mappák használata: Ha lehetséges, használja a Git-mappákat, mivel külső Git-adattárban élnek. Ez elkerüli a manuális exportálást, és biztosítja, hogy a kód azonos legyen a környezetekben.
- Az exportálási folyamat dokumentálása: Rögzítse a használt eszközöket, a végrehajtott parancsokat és a felmerülő problémákat.
- Biztonságos exportált adatok: Gondoskodjon arról, hogy az exportált adatok biztonságosan legyenek tárolva a megfelelő hozzáférés-vezérléssel, különösen akkor, ha bizalmas vagy személyazonosításra alkalmas adatokat tartalmaznak.
- Megfelelőség fenntartása: Ha megfelelőségi célból exportál, ellenőrizze, hogy az exportálás megfelel-e a jogszabályi követelményeknek és a megőrzési szabályzatoknak.
Példaszkriptek és automatizálás
A munkaterület-exportálásokat szkriptek és ütemezett feladatok használatával automatizálhatja.
Deep Clone exportálási szkript
Az alábbi szkript a Unity Catalog által felügyelt táblákat exportálja a(z) DEEP CLONE használatával. Ezt a kódot a forrás-munkaterületen kell futtatni egy adott katalógus közbenső gyűjtőbe való exportálásához. Frissítse a catalogs_to_copy és dest_bucket változókat.
import pandas as pd
# define catalogs and destination bucket
catalogs_to_copy = ["my_catalog_name"]
dest_bucket = "<cloud-storage-path>://my-intermediate-bucket"
manifest_name = "manifest"
# initialize vars
system_info = sql("SELECT * FROM system.information_schema.tables")
copied_table_names = []
copied_table_types = []
copied_table_schemas = []
copied_table_catalogs = []
copied_table_locations = []
# loop through all catalogs to copy, then copy all non-system tables
# note: this would likely be parallelized using thread pooling in prod
for catalog in catalogs_to_copy:
filtered_tables = system_info.filter((system_info.table_catalog == catalog) & (system_info.table_schema != "information_schema"))
for table in filtered_tables.collect():
schema = table['table_schema']
table_name = table['table_name']
table_type = table['table_type']
print(f"Copying table {schema}.{table_name}...")
target_location = f"{dest_bucket}/{catalog}_{schema}_{table_name}"
sqlstring = f"CREATE TABLE delta.`{target_location}` DEEP CLONE {catalog}.{schema}.{table_name}"
sql(sqlstring)
# lists used to create manifest table DF
copied_table_names.append(table_name)
copied_table_types.append(table_type)
copied_table_schemas.append(schema)
copied_table_catalogs.append(catalog)
copied_table_locations.append(target_location)
# create the manifest as a df and write to a table in dr target
# this contains catalog, schema, table and location
manifest_df = pd.DataFrame({"catalog": copied_table_catalogs,
"schema": copied_table_schemas,
"table": copied_table_names,
"location": copied_table_locations,
"type": copied_table_types})
spark.createDataFrame(manifest_df).write.mode("overwrite").format("delta").save(f"{dest_bucket}/{manifest_name}")
display(manifest_df)
Automatizálási szempontok
Exportálás automatizálása esetén:
- Ütemezett feladatok használata: Hozzon létre olyan Azure Databricks-feladatokat, amelyek rendszeresen futtatnak exportálási szkripteket.
- Exportálási feladatok monitorozása: Riasztások konfigurálása, hogy értesítést küldhessenek, ha az exportálás sikertelen vagy a vártnál tovább tart.
- Hitelesítő adatok kezelése: Biztonságosan tárolhatja a felhőbeli tároló hitelesítő adatait és API-jogkivonatait az Azure Databricks titkos kulcsainak használatával. Lásd: Titkos kódok kezelése.
- Verzióexportálások: Időbélyegek vagy verziószámok használata az exportálási útvonalakban az előzményexportok fenntartásához.
- Régi exportálások törlése: Megőrzési szabályzatok implementálása a régi exportálások törléséhez és a tárolási költségek kezeléséhez.
- Növekményes exportálás: Nagy munkaterületek esetén fontolja meg olyan növekményes exportálás implementálását, amely csak az utolsó exportálás óta módosított adatokat exportálja.