Korlátok és gyakori kérdések a Git Databricks Git-mappákkal való integrációjáról
A Databricks Git-mappák és a Git-integráció a következő szakaszokban meghatározott korlátozásokkal rendelkezik. Általános információkért lásd a Databricks korlátait.
Ugrás ide:
- Fájl- és adattárkorlátok
- A Git-mappákban támogatott eszköztípusok
- Gyakori kérdések: Git-mappakonfiguráció
Fájl- és adattárkorlátok
Az Azure Databricks nem kényszeríti ki az adattár méretére vonatkozó korlátozást. Azonban:
- A munkaágak legfeljebb 1 gigabájtra (GB) korlátozódnak.
- A 10 MB-nál nagyobb fájlok nem tekinthetők meg az Azure Databricks felhasználói felületén.
- Az egyes munkaterületfájlokra külön méretkorlát vonatkozik. További részletekért olvassa el a Korlátozások című témakört.
A Databricks ezt javasolja egy adattárban:
- A munkaterület összes objektumának és fájljának teljes száma nem haladja meg a 20 000-et.
Minden Git-művelet esetén a memóriahasználat 2 GB-ra, a lemezírások pedig 4 GB-ra korlátozódnak. Mivel a korlát műveletenként van, hiba történik, ha egy 5 GB-os jelenlegi méretű Git-adattárat próbál klónozni. Ha azonban egy 3 GB méretű Git-adattárat klónozott egy műveletben, majd később 2 GB-ot ad hozzá, a következő lekéréses művelet sikeres lesz.
Hibaüzenetet kaphat, ha az adattár túllépi ezeket a korlátokat. Időtúllépési hiba is előfordulhat az adattár klónozásakor, de a művelet a háttérben is befejeződhet.
Ha a méretkorlátnál nagyobb adattárral szeretne dolgozni, próbálja ki a ritka kivételt.
Ha olyan ideiglenes fájlokat kell írnia, amelyeket nem szeretne megőrizni a fürt leállítása után, írja meg az ideiglenes fájlokat, hogy $TEMPDIR
elkerülje az ágméretkorlátok túllépését, és 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ó. További információ: Hol írhatok ideiglenes fájlokat az Azure Databricksben?.
Git-mappák maximális száma munkaterületenként
Munkaterületenként legfeljebb 2000 Git-mappa lehet. Ha többre van szüksége, forduljon a Databricks ügyfélszolgálatához.
A munkaterület Git-mappáiból törölt fájlok helyreállítása
A Git-mappák munkaterületi műveletei a fájl helyreállíthatóságában különböznek. Egyes műveletek lehetővé teszik a helyreállítást a Kuka mappán keresztül, míg mások nem. A korábban véglegesített és egy távoli ágba leküldéses fájlok a távoli Git-adattár Git-véglegesítési előzményei alapján állíthatók vissza. Ez a táblázat az egyes műveletek viselkedését és helyreállíthatóságát ismerteti:
Művelet | Helyreállítható a fájl? |
---|---|
Fájl törlése munkaterület-böngészővel | Igen, a Kuka mappából |
Új fájl elvetése a Git-mappa párbeszédpanelen | Igen, a Kuka mappából |
Módosított fájl elvetése a Git-mappa párbeszédpanelen | Nem, a fájl eltűnt |
reset (hard) a nem véglegesített fájlmódosításokhoz |
Nem, a fájlmódosítások eltűntek |
reset (hard) a nem véglegesített, újonnan létrehozott fájlokhoz |
Nem, a fájlmódosítások eltűntek |
Ágak váltása a Git-mappa párbeszédpanellel | Igen, távoli Git-adattárból |
Egyéb Git-műveletek (Véglegesítés és leküldés stb.) a Git mappa párbeszédpaneljén | Igen, távoli Git-adattárból |
PATCH a Repos API-ból frissített /repos/id műveletek |
Igen, távoli Git-adattárból |
Monorepo-támogatás
A Databricks azt javasolja, hogy ne hozzon létre olyan Git-mappákat, amelyekről monorepók biztonsági másolatot készíthetnek, ahol egy monorepo egy nagy, egyszervezetes Git-adattár, amely több ezer fájlból áll számos projektben.
A Git-mappákban támogatott eszköztípusok
A Git-mappák csak bizonyos Azure Databricks-eszköztípusokat támogatnak. A támogatott eszköztípus szerializálható, verzióvezérelt és leküldhető a háttérbeli Git-adattárba.
Jelenleg a támogatott eszköztípusok a következők:
Objektumtípus | Részletek |
---|---|
Fájl | A fájlok szerializált adatok, és a kódtáraktól a bináris fájlokon át a képekig bármit tartalmazhatnak. További információ: Mik azok a munkaterületfájlok? |
Jegyzetfüzet | A jegyzetfüzetek kifejezetten a Databricks által támogatott jegyzetfüzetfájl-formátumok. A jegyzetfüzetek különálló Azure Databricks-objektumtípusnak minősülnek a fájloktól, mivel nem szerializáltak. A Git-mappák a fájlkiterjesztés (például .ipynb ) vagy a fájlkiterjesztések alapján határozzák meg a jegyzetfüzetet egy speciális jelölővel kombinálva a fájltartalomban (például a # Databricks notebook source forrásfájlok elején .py lévő megjegyzéssel). |
Mappa | A mappa egy Azure Databricks-specifikus struktúra, amely szerializált információkat jelöl a Gitben lévő fájlok logikai csoportosításáról. Ahogy várható volt, a felhasználó ezt "mappaként" használja egy Azure Databricks Git-mappa megtekintésekor vagy az Azure Databricks parancssori felülettel való elérésekor. |
Lekérdezés (nyilvános előzetes verzió) | A Databricks SQL (DBSQL) lekérdezései IPYNB-jegyzetfüzetekként (bővítmény: .dbquery.ipynb ) is leköshetők. A DBSQL-lekérdezések Git-támogatásához engedélyeznie kell a új SQL-szerkesztő. Az új, letiltott SQL-szerkesztő funkcióval létrehozott lekérdezések gitmappába helyezhetők, de nem kötelezhetők el a távoli tárházhoz. |
A Git-mappákban jelenleg nem támogatott Azure Databricks-eszköztípusok a következők:
- Riasztások
- Irányítópultok (beleértve az örökölt irányítópultokat is)
- Kísérletek
- Genie szóközök
Amikor a Gitben dolgozik az eszközeivel, kövesse az alábbi fájlelnevezési korlátozásokat:
- A mappák nem tartalmazhatnak olyan jegyzetfüzetet, amelynek a neve megegyezik egy másik jegyzetfüzettel, fájllal vagy mappával ugyanabban a Git-adattárban, még akkor sem, ha a fájlkiterjesztés eltér. (A forrásformátumú jegyzetfüzetek esetében a bővítmény
.py
pythonra,.scala
Scalára,.sql
SQL-re és.r
R-re használható. IPYNB formátumú jegyzetfüzetek esetén a bővítmény.ipynb
.) Nem használhat például egy forrásformátumú jegyzetfüzetet éstest1.py
egy IPYNB-jegyzetfüzetettest1
ugyanabban a Git-mappában, mert a forrásformátumú Python-jegyzetfüzetfájl (test1.py
) szerializálvatest1
lesz, és ütközés lép fel. - A karakter
/
nem támogatott a fájlnevekben. A Git-mappában például nem lehet fájl nevei/o.py
.
Ha olyan fájlokon kísérel meg Git-műveleteket végrehajtani, amelyek neve ilyen mintákkal rendelkezik, "Hiba a Git állapotának lekérésekor" üzenet jelenik meg. Ha ezt a hibát váratlanul kapja, tekintse át a Git-adattárban lévő objektumok fájlneveit. Ha olyan fájlokat talál, amelyek neve ütköző mintákkal rendelkezik, nevezze át őket, és próbálkozzon újra a művelettel.
Feljegyzés
A meglévő nem támogatott objektumokat áthelyezheti egy Git-mappába, de nem véglegesítheti a módosításokat a távoli adattárban.
Jegyzetfüzet-formátumok
További információ a Git-mappák jegyzetfüzetformátumairól: Jegyzetfüzetformátumok.
Gyakori kérdések: Git-mappakonfiguráció
Hol vannak tárolva az Azure Databricks-adattár tartalmai?
Az adattár tartalma ideiglenesen a vezérlősík lemezére van klónozva. Az Azure Databricks-jegyzetfüzetfájlok ugyanúgy a vezérlősík adatbázisában vannak tárolva, mint a fő munkaterületen lévő jegyzetfüzetek. A nem jegyzetfüzet-fájlokat a rendszer legfeljebb 30 napig tárolja a lemezen.
Támogatja a Git-mappák a helyszíni vagy a saját üzemeltetésű Git-kiszolgálókat?
A Databricks Git-mappák támogatják a GitHub Enterprise, a Bitbucket Server, az Azure DevOps Server és a GitLab ön által felügyelt integrációt, ha a kiszolgáló internethez érhető el. A Git-mappák helyszíni Git-kiszolgálóval való integrálásával kapcsolatos részletekért olvassa el a Git Proxy Server for Git-mappákat.
Ha a Bitbucket Serverrel, a GitHub Enterprise Serverrel vagy egy olyan, ön által felügyelt GitLab-előfizetés-példánnyal szeretne integrálni, amely nem érhető el az interneten, lépjen kapcsolatba az Azure Databricks-fiók csapatával.
Milyen Databricks-objektumtípusokat támogatnak a Git-mappák?
A támogatott eszköztípusok részleteiért olvassa el a Git-mappákban támogatott eszköztípusokat.
Támogatja .gitignore
a Git-mappák a fájlokat?
Igen. Ha hozzáad egy fájlt az adattárhoz, és nem szeretné, hogy a Git nyomon kövesse, hozzon létre egy .gitignore
fájlt, vagy használjon egy klónozott fájlt a távoli adattárból, és adja hozzá a fájlnevet, beleértve a bővítményt is.
.gitignore
Csak a Git által még nem követett fájlok esetében működik. Ha olyan fájlt ad hozzá egy fájlhoz .gitignore
, amelyet a Git már követett, a git továbbra is nyomon követi a fájlt.
Létrehozhatok olyan legfelső szintű mappákat, amelyek nem felhasználói mappák?
Igen, a rendszergazdák egyetlen mélységben hozhatnak létre legfelső szintű mappákat. A Git-mappák nem támogatják a további mappaszinteket.
Támogatja a Git-mappák a Git-almodulokat?
Szám Klónozhat egy Git-almodulokat tartalmazó adattárat, de az almodul nincs klónozva.
Támogatja az Azure Data Factory (ADF) a Git-mappákat?
Igen.
Forráskezelés
Miért tűnnek el a jegyzetfüzet-irányítópultok egy másik ág lekérésekor vagy kivételekor?
Ez jelenleg korlátozás, mert az Azure Databricks-jegyzetfüzet forrásfájljai nem tárolják a jegyzetfüzet irányítópultjának adatait.
Ha meg szeretné őrizni az irányítópultokat a Git-adattárban, módosítsa a jegyzetfüzet formátumát .ipynb
(Jupyter notebook formátum). Alapértelmezés szerint támogatja az irányítópult- .ipynb
és vizualizációdefiníciókat. Ha meg szeretné őrizni a gráfadatokat (adatpontokat), a jegyzetfüzetet kimenetekkel kell véglegesítenie.
A jegyzetfüzet kimeneteinek véglegesítéséről .ipynb
további információt a jegyzetfüzet kimenetének véglegesítésének .ipynb
engedélyezése című témakörben talál.
Támogatja a Git-mappák az ágak egyesítését?
Igen. Lekéréses kérelmet is létrehozhat, és egyesítheti a Git-szolgáltatót.
Törölhetek egy ágat egy Azure Databricks-adattárból?
Szám Ág törléséhez a Git-szolgáltatóban kell dolgoznia.
Ha egy fürtre telepítve van egy tár, és egy azonos nevű tár szerepel az adattár mappájában, melyik tárat importálja a rendszer?
Az adattárban lévő kódtár importálása történik. A Python-kódtárak előzményeiről további információt a Python-kódtárak elsőbbsége című témakörben talál.
Lekérhetem az adattár legújabb verzióját a Gitből, mielőtt külső vezénylési eszközre támaszkodva futtatnék egy feladatot?
Szám Ezt általában előre véglegesítésként integrálhatja a Git-kiszolgálón, így az ágba (fő/prod) történő leküldések mindegyike frissíti az éles adattárat.
Exportálhatok adattárat?
Jegyzetfüzeteket, mappákat vagy egy teljes adattárat exportálhat. Nem exportálhat jegyzetfüzeten kívüli fájlokat. Ha egy teljes adattárat exportál, a nem jegyzetfüzetfájlokat nem tartalmazza a rendszer. Az exportáláshoz használja a workspace export
Databricks parancssori felületének parancsát, vagy használja a Workspace API-t.
Biztonság, hitelesítés és jogkivonatok
A Microsoft Entra ID feltételes hozzáférési szabályzatával (CAP) kapcsolatos probléma
Amikor megpróbál klónozni egy adattárat, "megtagadott hozzáférés" hibaüzenet jelenhet meg, amikor:
- Az Azure Databricks az Azure DevOps Microsoft Entra ID-hitelesítéssel való használatára van konfigurálva.
- Engedélyezte a feltételes hozzáférési szabályzatot az Azure DevOpsban és egy Microsoft Entra ID feltételes hozzáférési szabályzatot.
Ennek megoldásához adjon hozzá egy kizárást a feltételes hozzáférési szabályzathoz (CAP) az Azure Databricks IP-címéhez vagy felhasználóihoz.
További információ: Feltételes hozzáférési szabályzatok.
Lista engedélyezése Azure AD-jogkivonatokkal
Ha az Azure Active Directoryt (AAD) használja az Azure DevOps hitelesítéséhez, az alapértelmezett engedélyezési lista a Git URL-címeit a következőre korlátozza:
dev.azure.com
visualstudio.com
További információ: Listák engedélyezése a távoli adattárhasználat korlátozásával.
Titkosítva vannak az Azure Databricks Git-mappák tartalma?
Az Azure Databricks Git-mappák tartalmát az Azure Databricks egy alapértelmezett kulccsal titkosítja. Az ügyfél által felügyelt kulcsokkal történő titkosítás csak a Git-hitelesítő adatok titkosítása esetén támogatott.
Hogyan és hol vannak tárolva a GitHub-jogkivonatok az Azure Databricksben? Kinek van hozzáférése az Azure Databrickshez?
- A hitelesítési jogkivonatokat az Azure Databricks vezérlősíkja tárolja, és egy Azure Databricks-alkalmazott csak egy naplózott ideiglenes hitelesítő adatokon keresztül férhet hozzá.
- Az Azure Databricks naplózza ezeknek a jogkivonatoknak a létrehozását és törlését, a használatukat azonban nem. Az Azure Databricks olyan naplózással rendelkezik, amely nyomon követi a Git-műveleteket, amelyekkel az Azure Databricks-alkalmazás naplózhatja a jogkivonatok használatát.
- A GitHub enterprise naplóz jogkivonat-használatot. Más Git-szolgáltatások is rendelkezhetnek Git-kiszolgálói naplózással.
Támogatja a Git-mappák a véglegesítések GPG-aláírását?
Szám
Támogatja a Git-mappák az SSH-t?
Nem, csak HTTPS
.
Hiba történt az Azure Databricks és egy másik bérlői fiókban lévő Azure DevOps-adattár csatlakoztatása során
Amikor egy külön bérlőben próbál csatlakozni a DevOpshoz, előfordulhat, hogy az üzenet Unable to parse credentials from Azure Active Directory account
megjelenik. Ha az Azure DevOps-projekt az Azure Databrickstől eltérő Microsoft Entra ID-bérlőben van, az Azure DevOps hozzáférési jogkivonatát kell használnia. Lásd: Csatlakozás az Azure DevOpshoz DevOps-jogkivonat használatával.
CI/CD és MLOps
A bejövő módosítások törlik a jegyzetfüzet állapotát
A jegyzetfüzet forráskódját módosító Git-műveletek a jegyzetfüzet állapotának elvesztését eredményezik, beleértve a cellakimeneteket, a megjegyzéseket, a verzióelőzményeket és a widgeteket. Módosíthatja például git pull
egy jegyzetfüzet forráskódját. Ebben az esetben a Databricks Git-mappáknak felül kell írniuk a meglévő jegyzetfüzetet a módosítások importálásához.
git commit
és push
az új ág létrehozása nem befolyásolja a jegyzetfüzet forráskódját, így a jegyzetfüzet állapota megmarad ezekben a műveletekben.
Fontos
Az MLflow-kísérletek nem működnek a Git-mappákban a DBR 14.x vagy újabb verzióival.
Létrehozhatok MLflow-kísérletet egy adattárban?
Az MLflow-kísérleteknek két típusa van: munkaterület és jegyzetfüzet. Az MLflow-kísérletek két típusával kapcsolatos részletekért lásd : Betanítási futtatások rendszerezése MLflow-kísérletekkel.
A Git-mappákban bármilyen típusú és naplófuttatású MLflow-kísérletet hívhat mlflow.set_experiment("/path/to/experiment")
meg, de a kísérlet és a kapcsolódó futtatások nem lesznek bevetve a forrásvezérlőbe.
Munkaterület MLflow-kísérletei
A munkaterület MLflow-kísérletei nem hozhatók létre Databricks Git-mappában (Git-mappában). Ha több felhasználó külön Git-mappákat használ ugyanazon az ML-kódon való együttműködéshez, a napló MLflow egy normál munkaterületi mappában létrehozott MLflow-kísérletre fut.
Notebook MLflow-kísérletek
Jegyzetfüzet-kísérleteket egy Databricks Git-mappában hozhat létre. Ha fájlként .ipynb
ellenőrzi a jegyzetfüzetet a forrásvezérlőben, naplózhatja az MLflow-futtatásokat egy automatikusan létrehozott és társított MLflow-kísérletbe. További részletekért olvassa el a jegyzetfüzet-kísérletek létrehozásáról szóló cikket.
Adatvesztés megakadályozása MLflow-kísérletekben
A Databricks-feladatok használatával létrehozott, távoli adattárban lévő forráskóddal létrehozott jegyzetfüzet-MLflow-kísérletek ideiglenes tárolóhelyen vannak tárolva. Ezek a kísérletek kezdetben a munkafolyamat végrehajtása után is megmaradnak, de a fájlok ideiglenes tárolóban való ütemezett eltávolítása során később törlés fenyegeti őket. A Databricks a munkaterület MLflow-kísérleteinek használatát javasolja Feladatok és távoli Git-források használatával.
Figyelmeztetés
Amikor olyan ágra vált, amely nem tartalmazza a jegyzetfüzetet, a kapcsolódó MLflow-kísérlet adatai elvesznek. Ez a veszteség akkor válik permnanenssé, ha az előző ág 30 napon belül nem érhető el.
Ha a 30 napos lejárat előtt szeretné helyreállítani a hiányzó kísérleti adatokat, nevezze vissza a jegyzetfüzetet az eredeti névre, nyissa meg a jegyzetfüzetet, kattintson a jobb oldali panelen a "kísérlet" ikonra (ez gyakorlatilag meghívja az mlflow.get_experiment_by_name()
API-t is), és láthatja a helyreállított kísérletet és fut. 30 nap elteltével minden árva MLflow-kísérlet törlődik, hogy megfeleljen a GDPR megfelelőségi szabályzatának.
A helyzet elkerülése érdekében a Databricks azt javasolja, hogy ne nevezze át teljesen a jegyzetfüzeteket az adattárakban, vagy ha átnevez egy jegyzetfüzetet, kattintson a jobb oldali panel "kísérlet" ikonra közvetlenül a jegyzetfüzet átnevezése után.
Mi történik, ha egy jegyzetfüzet-feladat egy munkaterületen fut, miközben egy Git-művelet folyamatban van?
Bármikor, amíg egy Git-művelet folyamatban van, előfordulhat, hogy az adattár egyes jegyzetfüzetei frissültek, míg mások nem. Ez kiszámíthatatlan viselkedést okozhat.
Tegyük fel például, hogy notebook A
parancs notebook Z
használatával hív%run
. Ha egy Git-művelet során futó feladat a legújabb verziót notebook A
indítja el, de notebook Z
még nem frissítette, az %run
A jegyzetfüzetben lévő parancs elindíthatja a régebbi verziót notebook Z
.
A Git-művelet során a jegyzetfüzet állapota nem kiszámítható, és előfordulhat, hogy a feladat meghiúsul vagy fut notebook A
, és notebook Z
különböző véglegesítésekből származik.
A helyzet elkerülése érdekében használjon Inkább Git-alapú feladatokat (ahol a forrás egy Git-szolgáltató, és nem munkaterület elérési útja). További részletekért olvassa el a Git használata feladatokkal című témakört.
Források
A Databricks-munkaterület fájljaival kapcsolatos részletekért lásd : Mik azok a munkaterületfájlok?.