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


Oszlopok átnevezése és törlése Delta Lake oszlopleképezéssel

Az Azure Databricks támogatja a Delta Lake-táblák oszlopleképezését, amely lehetővé teszi, hogy a metaadat-módosítások adatfájlok újraírása nélkül oszlopokat töröltként vagy átnevezettként jelöljék meg. Lehetővé teszi továbbá, hogy a felhasználók a Parquet által nem engedélyezett karaktereket ( például szóközöket) használva nevezze el a Delta táblaoszlopait, hogy a felhasználók közvetlenül betölthessenek CSV- vagy JSON-adatokat a Delta-ba anélkül, hogy az előző karakterkorlátozások miatt át kellene nevezni az oszlopokat.

Fontos

Az oszlopleképezést engedélyező táblák csak a Databricks Runtime 10.4 LTS és újabb verziókban olvashatók.

Az oszlopleképezést engedélyező particionált táblák a partíciókönyvtárak oszlopnevei helyett véletlenszerű előtagokat használnak. Lásd A Delta Lake és a Parquet azonos particionálási stratégiákat alkalmaz-e?.

A táblák oszlopleképezésének engedélyezése megszakíthatja a Delta-változási adatcsatornára támaszkodó alsóbb rétegbeli műveleteket. Lásd Az oszlopleképezést engedélyező táblák adatcsatorna-korlátozásainak módosításacímű témakört.

Ha oszlopleképezést engedélyez a táblákon, az megszakíthatja a Delta-táblából származó streamelési olvasásokat forrásként, beleértve a DLT-t is. Lásd: Adatfolyam oszlopleképezéssel és sémamódosításokkal.

Oszlopok leképezésének engedélyezése

Az oszlopleképezéshez a következő Delta-protokollok szükségesek:

  • Az Olvasó program 2-es vagy újabb verziója.
  • Writer 5-ös vagy újabb verziója.

A szükséges protokollverziókkal rendelkező Delta-táblák esetében engedélyezheti az oszlopleképezést, ha delta.columnMapping.mode-t name-re állítja.

Az oszlopleképezés engedélyezéséhez használja a következő parancsot:

  ALTER TABLE <table-name> SET TBLPROPERTIES (
    'delta.columnMapping.mode' = 'name'
  )

Lásd: Oszlopleképezés letiltása.

Oszlop átnevezése

Feljegyzés

A Databricks Runtime 10.4 LTS-ben és újabb verziókban érhető el.

Ha egy Delta-tábla oszlopleképezése engedélyezve van, átnevezhet egy oszlopot:

ALTER TABLE <table-name> RENAME COLUMN old_col_name TO new_col_name

További példákért lásd: Delta Lake táblaséma frissítése.

Oszlopok törlése

Feljegyzés

A Databricks Runtime 11.3 LTS-ben és újabb verziókban érhető el.

Ha egy Delta-tábla oszlopleképezése engedélyezve van, elvethet egy vagy több oszlopot:

ALTER TABLE table_name DROP COLUMN col_name
ALTER TABLE table_name DROP COLUMNS (col_name_1, col_name_2, ...)

További információ: Delta Lake táblaséma frissítése.

Támogatott karakterek az oszlopnevekben

Ha egy Delta-tábla oszlopleképezése engedélyezve van, a táblázat oszlopneveiben szóközök és karakterek is szerepelhetnek: ,;{}()\n\t=.

Streamelés oszlopleképezéssel és sémamódosításokkal

Fontos

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

Megadhat egy sémakövetési helyet a Delta-táblákból való streamelés engedélyezéséhez, ha engedélyezve van az oszlopleképezés. Ez elhárítja azt a problémát, amely miatt a nem additív sémamódosítások hibás adatfolyamokat eredményezhetnek.

Az adatforráson végzett minden adatfolyam-olvasásnál meg kell adni a saját schemaTrackingLocation-jét. A megadott schemaTrackingLocation a streameléshez használt céltábla checkpointLocation megadott könyvtárban kell tárolni.

Megjegyzés

Több forrás deltatáblából származó adatokat egyesítő streamelési számítási feladatokhoz minden forrástáblához egyedi könyvtárakat kell megadnia a checkpointLocation belül.

A schemaTrackingLocation lehetőség a sémakövetés elérési útjának megadására szolgál, ahogyan az a következő példakódban is látható:

checkpoint_path = "/path/to/checkpointLocation"

(spark.readStream
  .option("schemaTrackingLocation", checkpoint_path)
  .table("delta_source_table")
  .writeStream
  .option("checkpointLocation", checkpoint_path)
  .toTable("output_table")
)

Oszlopleképezés letiltása

A Databricks Runtime 15.3-ban és újabb verziókban a DROP FEATURE paranccsal eltávolíthatja az oszlopleképezést egy táblából, és leminősítheti a táblaprotokollt.

Lásd Delta táblázat törlési funkciók.