Umbenennen und Löschen von Spalten mit Delta Lake-Spaltenzuordnung
Artikel
Azure Databricks unterstützt die Spaltenzuordnung für Delta Lake-Tabellen, die ausschließliche Metadatenänderungen ermöglicht, um Spalten als gelöscht oder umbenannt zu markieren, ohne Datendateien neu zu schreiben. Außerdem können Benutzer die Spalten von Delta-Tabellen mit Zeichen benennen, die in Parquet nicht zulässig sind, wie z. B. Leerzeichen, sodass Benutzer CSV- oder JSON-Daten direkt in Delta erfassen können, ohne Spalten aufgrund bisheriger Zeicheneinschränkungen umbenennen zu müssen.
Wichtig
Tabellen mit aktivierter Spaltenzuordnung können nur in Databricks Runtime 10.4 LTS und höher gelesen werden.
Das Aktivieren der Spaltenzuordnung für Tabellen kann das Streamen von Lesevorgängen aus der Delta-Tabelle als Quelle unterbrechen, wie z. B. in Delta Live Tables. Weitere Informationen finden Sie unter Streaming mit Spaltenzuordnung und Schemaänderungen.
Aktivieren der Spaltenzuordnung
Für die Spaltenzuordnung sind die folgenden Delta-Protokolle erforderlich:
Reader Version 2 oder höher.
Writer Version 5 oder höher.
Für eine Delta-Tabelle mit den erforderlichen Protokollversionen können Sie die Spaltenzuordnung aktivieren, indem Sie delta.columnMapping.mode auf name festlegen.
Sie können den folgenden Befehl verwenden, um die Spaltenzuordnung zu aktivieren:
SQL
ALTERTABLE <table-name> SET TBLPROPERTIES (
'delta.columnMapping.mode' = 'name'
)
Ausführlichere Informationen finden Sie unter Update Delta Lake table schema (Aktualisieren des Delta Lake-Tabellenschemas).
Unterstützte Zeichen in Spaltennamen
Wenn die Spaltenzuordnung für eine Delta-Tabelle aktiviert ist, können Sie Leerzeichen sowie eines dieser Zeichen in die Spaltennamen der Tabelle einschließen: ,;{}()\n\t=.
Streaming mit Spaltenzuordnung und Schemaänderungen
Wichtig
Dieses Feature befindet sich in Databricks Runtime 13.3 LTS und höheren Versionen in der Public Preview.
Sie können einen Speicherort für die Schemanachverfolgung bereitstellen, um das Streaming von Delta-Tabellen mit aktivierter Spaltenzuordnung zu ermöglichen. Dadurch wird ein Problem behoben, das bewirkt, dass nicht additive Schemaänderungen zu unterbrochenen Datenströmen führen können.
Jeder Streaminglesevorgang aus einer Datenquelle muss über einen eigenen schemaTrackingLocation-Wert verfügen. Der angegebene schemaTrackingLocation muss sich in dem Verzeichnis befinden, das als checkpointLocation der Zieltabelle für den Streamingschreibvorgang angegeben ist.
Hinweis
Für Streamingworkloads, die Daten aus mehreren Delta-Quelltabellen kombinieren, müssen Sie eindeutige Verzeichnisse innerhalb des Speicherorts checkpointLocation für jede Quelltabelle angeben.
Die Option schemaTrackingLocation wird verwendet, um den Pfad für die Schemanachverfolgung anzugeben, wie im folgenden Codebeispiel gezeigt:
In Databricks Runtime 15.3 und höher können Sie den Befehl DROP FEATURE verwenden, um die Spaltenzuordnung aus einer Tabelle zu entfernen und das Tabellenprotokoll herabzustufen.
Delta Lake ist ein relationaler Open-Source-Speicherbereich für Spark, den Sie für die Implementierung einer Data Lakehouse-Architektur in Azure Synapse Analytics verwenden können.
Zeigen Sie Ihre Kenntnisse von allgemeinen Datentechnikaufgaben zum Implementieren und Verwalten von Datentechnikworkloads in Microsoft Azure unter Verwendung verschiedener Azure-Dienste.