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


Archiválási támogatás az Azure Databricksben

Fontos

Ez a funkció nyilvános előzetes verzióban érhető el a Databricks Runtime 13.3 LTS-hez és újabb verziókhoz.

Az Azure Databricks archiválási támogatása olyan képességek gyűjteménye, amelyek lehetővé teszik a felhőalapú életciklus-szabályzatok használatát a Delta-táblákat tartalmazó felhőobjektum-tárolóban.

Fontos

Az Azure Databricks csak az Azure Archive archiválási támogatását támogatja. Tekintse meg az Azure-dokumentációt a költségek életciklus-kezeléssel való optimalizálásáról.

Miért érdemes engedélyezni az archiválási támogatást?

Az archiválási támogatás csak az archivált fájlok érintése nélkül helyesen megválaszolható lekérdezéseket teszi lehetővé. Ezek a lekérdezések az alábbi lekérdezéseket tartalmazzák:

  • Csak metaadatok lekérdezése.
  • Olyan szűrőkkel rendelkezik, amelyekhez nincs szükség archivált fájlok vizsgálatára.

Az archivált fájlokban adatokat igénylő lekérdezések mindegyike sikertelen.

Fontos

Az Azure Databricks soha nem ad vissza eredményeket olyan lekérdezésekhez, amelyekhez archivált fájlokra van szükség a helyes eredmény visszaadásához.

Archiválási támogatás nélkül előfordulhat, hogy a Delta-táblákon végzett műveletek megszakadnak, mert az adatfájlok vagy a tranzakciónapló-fájlok archivált helyekre költöztek, és lekéréskor nem érhetők el. Az archiválási támogatás optimalizálást vezet be, hogy lehetőség szerint ne lehessen lekérdezni az archivált adatokat. Emellett új szintaxissal azonosítja azokat a fájlokat, amelyeket vissza kell állítani az archiválási tárból a lekérdezések befejezéséhez.

Az Azure Databricks-táblák archiválási támogatásának engedélyezése nem hoz létre és nem módosítja a felhőobjektum-tárolóhoz definiált életciklus-szabályzatokat. A kívánt eredmények eléréséhez a felhő életciklus-szabályzatának és a delta.timeUntilArchived beállításnak egyenlőnek kell lennie.

Archivált adatokra optimalizált lekérdezések

Az Azure Databricks archiválási támogatása a következő lekérdezéseket optimalizálja a Delta-táblákhoz:

Lekérdezés Új viselkedés
SELECT * FROM <table_name> LIMIT <limit> [WHERE <partition_predicate>] Automatikusan figyelmen kívül hagyja az archivált fájlokat, és nem archivált tárolási rétegben lévő adatokból származó eredményeket ad vissza.
Delta Lake karbantartási parancsok: OPTIMIZE, ZORDER, ANALYZE, PURGE Automatikusan figyelmen kívül hagyja az archivált fájlokat, és futtassa a karbantartást a tábla többi részén.
DDL- és DML-utasítások, amelyek felülírják vagy törlik az adatokat, beleértve a következőket: REPLACE TABLE, INSERT OVERWRITE, , TRUNCATE TABLEDROP TABLE A cél archivált adatfájlok tranzakciónapló-bejegyzéseinek megjelölése töröltként.
FSCK REPAIR TABLE Hagyja figyelmen kívül az archivált fájlokat, és csak azokat a fájlokat ellenőrizze, amelyek nem érték el az életciklus-szabályzatot.

Lásd: Korlátozások.

Korai hiba és hibaüzenetek

Azon lekérdezések esetében, amelyeknek archivált fájlokat kell beolvasni a megfelelő eredmények létrehozásához, a Delta Lake archiválási támogatásának konfigurálása biztosítja a következőket:

  • A lekérdezések korán meghiúsulnak, ha archivált fájlokhoz próbálnak hozzáférni, csökkentve a felesleges számításokat, és lehetővé teszik a felhasználók számára a lekérdezések gyors adaptálását és újrafuttatását.
  • A hibaüzenetek arról tájékoztatják a felhasználókat, hogy egy lekérdezés meghiúsult, mert a lekérdezés megpróbálta elérni az archivált fájlokat.

A felhasználók létrehozhatnak egy jelentést a fájlokról, amelyeket vissza kell állítani a SHOW ARCHIVED FILES szintaxis használatával. Lásd: Archivált fájlok megjelenítése.

Fontos

Ha a hiba Not enough files to satisfy LIMITjelenik meg, a tábla nem rendelkezik elegendő adatsorsal a nem archivált fájlokban a LIMITáltal megadott rekordok számának kielégítéséhez. Csökkentse a LIMIT záradékot, hogy elegendő archiválatlan sort találjon a megadottnak LIMITvaló megfeleléshez.

Archiválási támogatás engedélyezése

Az Azure Databricks for Delta-táblák archiválási támogatását úgy engedélyezheti, hogy manuálisan adja meg a mögöttes felhő életciklus-kezelési szabályzatában konfigurált archiválási időközt, ahogyan az alábbi példaszintaxisban is látható:

ALTER TABLE <table_name> SET TBLPROPERTIES(delta.timeUntilArchived = 'X days');

Az archiválási támogatás hatékony engedélyezése arra utasítja az Azure Databrickset, hogy hagyja figyelmen kívül a megadott időszaknál régebbi fájlokat. Ha úgy engedélyezi ezt a beállítást, hogy nem állít be életciklus-szabályzatokat a felhőobjektum-tárolóhoz, az Azure Databricks továbbra is figyelmen kívül hagyja a megadott küszöbértéken alapuló fájlokat, de az adatok nem lesznek archiválva.

A Delta Lake nem kommunikál közvetlenül a felhőfiókban konfigurált életciklus-felügyeleti szabályzatokkal. Ha a felhőbeli fiókjában frissíti a szabályzatot, frissítenie kell a szabályzatot a Delta táblában. Lásd: Az életciklus-kezelés átmeneti szabályának módosítása.

Fontos

Az archiválási támogatás teljes mértékben kompatibilis Azure Databricks számítási környezetekre támaszkodik, és csak Delta-táblákhoz használható. Az archiválási támogatás konfigurálása nem változtatja meg az OSS Delta Lake-ügyfelek vagy a Databricks Runtime 12.2 LTS és az alábbiak viselkedését, kompatibilitását vagy támogatását.

Archivált fájlok megjelenítése

Az adott lekérdezés végrehajtásához visszaállítandó fájlok azonosításához használja SHOW ARCHIVED FILESaz alábbi példában látható módon:

SHOW ARCHIVED FILES FOR table_name [ WHERE predicate ];

Ez a művelet az archivált fájlok URI-jait adja vissza Spark DataFrame-ként. Állítsa vissza a szükséges archivált fájlokat az objektumtároló szolgáltatójának dokumentált utasításait követve. További információ arról, hogy az Azure Databricks hogyan ellenőrzi a visszaállított adatokat: Hogyan működik az Azure Databricks-minta a visszaállított adatokhoz?.

Feljegyzés

A művelet során a Delta Lake csak a tranzakciónaplóban szereplő adatstatisztikákhoz fér hozzá. Alapértelmezés szerint ezek a táblázat első 32 oszlopában összegyűjtött alábbi statisztikák:

  • Minimális értékek
  • Maximális értékek
  • Null értékek száma
  • Rekordok teljes száma

A visszaadott fájlok tartalmazzák az összes archivált fájlt, amelyet be kell olvasni annak megállapításához, hogy léteznek-e predikátumnak megfelelő rekordok a fájlban. A Databricks azt javasolja, hogy olyan predikátumokat adjon meg, amelyek olyan mezőket tartalmaznak, amelyeken az adatok particionálva, z-sorrendben vagy fürtözve találhatók, hogy csökkenjen a visszaállítandó fájlok száma.

Archivált adatok frissítése vagy törlése

A művelet meghiúsul, ha olyan MERGE, UPDATEvagy DELETE műveletet futtat, amely hatással van az archivált fájlok adataira. A műveletek futtatásához olyan tárolási szintre kell visszaállítania az adatokat, amely támogatja a gyors lekérést. A SHOW ARCHIVED FILES használatával határozza meg a visszaállítani kívánt fájlokat.

Hogyan működik az Azure Databricks mintája a visszaállított adatokhoz?

Amikor az Azure Databricks egy olyan táblán készít vizsgálatot, amelyen engedélyezve van az archiválás támogatása, a lekérdezés által megkövetelt megőrzési időnél régebbi fájlokat mintákat vesz fel annak megállapításához, hogy a fájlok visszaállítva lettek-e.

Ha az eredmények azt jelzik, hogy az archiválni kívánt mintául szolgáló fájlok visszaállítva lettek, az Azure Databricks feltételezi, hogy a lekérdezés összes fájlja vissza lett állítva, és a lekérdezési folyamatok is.

Korlátozások

Az alábbi korlátozások érvényesek:

  • Nem létezik támogatás olyan életciklus-kezelési szabályzatokhoz, amelyek nem a fájllétrehozás idején alapulnak. Ide tartoznak a hozzáférési időalapú szabályzatok és a címkealapú szabályzatok.
  • Archivált fájlokat tartalmazó táblán nem használhat DROP COLUMN.
  • REORG TABLE APPLY PURGE minden tőle telhetőt megtesz, de csak a törlési vektorfájlokon és a nem archivált hivatkozott adatfájlokon működik. PURGE Az archivált törlési vektorfájlok nem törölhetők.
  • Az életciklus-felügyeleti átmeneti szabály kiterjesztése váratlan viselkedést eredményez. Lásd: Az életciklus-felügyeleti átmeneti szabály kiterjesztése.

Az életciklus-felügyeleti átmeneti szabály módosítása

Ha módosítja a felhő életciklus-kezelési átmeneti szabályának időintervallumát, frissítenie kell a delta.timeUntilArchivedtulajdonságot.

Ha az archiválás előtti időintervallum megrövidül (a fájllétrehozás óta kevesebb idő), a Delta-tábla archiválási támogatása a táblatulajdonság frissítése után is megfelelően működik.

Az életciklus-felügyeleti átmeneti szabály kiterjesztése

Ha az archiválás előtti időintervallum meghosszabbodik (ha több időt szeretne hozzáadni az archiválás aktiválása előtt), a tulajdonság delta.timeUntilArchived új értékre való frissítése hibákhoz vezethet. A felhőszolgáltatók nem állíthatják vissza automatikusan a fájlokat az archivált tárolóból az adatmegőrzési szabályzatok módosításakor. Ez azt jelenti, hogy a korábban archiválásra jogosult, de most már nem jogosultnak ítélt fájlok továbbra is archiválva lesznek.

Fontos

A hibák elkerülése érdekében soha ne állítsa a delta.timeUntilArchived tulajdonságot a legutóbb archivált adatok tényleges koránál nagyobb értékre.

Fontolja meg azt a forgatókönyvet, amelyben az archiválás időintervalluma 60 napról 90 napra módosul:

  1. A szabályzat módosításakor a rendszer minden 60 és 90 nap közötti rekordot archivál.
  2. A rendszer 30 napig nem archiválja az új fájlokat (a legrégebbi nem archivált fájlok 60 naposak a szabályzat kiterjesztésekor).
  3. 30 nap elteltével az életciklus-szabályzat helyesen írja le az összes archivált adatot.

A delta.timeUntilArchived beállítás nyomon követi a megadott időintervallumot a fájl létrehozásának idejéhez képest, amelyet a Delta tranzakciónapló rögzít. Nem rendelkezik explicit ismeretekkel az alapul szolgáló szabályzatról. A régi archiválási küszöbérték és az új archiválási küszöbérték közötti késési időszak alatt az alábbi módszerek egyikével elkerülheti az archivált fájlok lekérdezését:

  1. A beállítást delta.timeUntilArchived a régi küszöbértékkel hagyhatja, amíg az összes fájl archiválásához elegendő idő nem telik el.
    • A fenti példát követve az első 30 nap minden napján az Azure Databricks archiváltnak tekinti a napi adatértékeket, de a felhőszolgáltatónak mégis archiválnia kell. Ez nem eredményez hibát, de figyelmen kívül hagy néhány lekérdezhető adatfájlt.
    • 30 nap elteltével frissítse a delta.timeUntilArchived-ra 90 days-re.
  2. A(z) delta.timeUntilArchived beállítást naponta frissítheti, hogy az a késési időszak során tükrözze az aktuális időközt.
    • Bár a felhőszabályzat 90 napra van állítva, az archivált adatok tényleges életkora valós időben változik. Például 7 nap elteltével a beállítás delta.timeUntilArchived67 days pontosan tükrözi az összes archivált adatfájl életkorát.
    • Ez a megközelítés csak akkor szükséges, ha az összes adatot a gyakori elérésű rétegekben kell elérnie.

Feljegyzés

Az érték delta.timeUntilArchived frissítése nem módosítja az archivált adatokat. Csak az Azure Databricks által archiváltként kezelt adatokat módosítja.