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


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

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 és test1.py egy IPYNB-jegyzetfüzetet test1 ugyanabban a Git-mappában, mert a forrásformátumú Python-jegyzetfüzetfájl (test1.py) szerializálva test1 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 neve i/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 accountmegjelenik. 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 Aindí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?.