Delen via


De naam van kolommen wijzigen en neerzetten met delta lake-kolomtoewijzing

Azure Databricks ondersteunt kolomtoewijzing voor Delta Lake-tabellen, waardoor wijzigingen in alleen metagegevens kolommen kunnen markeren als verwijderd of hernoemd zonder gegevensbestanden opnieuw te schrijven. Hiermee kunnen gebruikers ook kolommen van Delta-tabellen een naam geven met tekens die niet zijn toegestaan door Parquet, zoals spaties, zodat gebruikers CSV- of JSON-gegevens rechtstreeks in Delta kunnen opnemen zonder dat ze de naam van kolommen hoeven te wijzigen vanwege eerdere tekenbeperkingen.

Belangrijk

Tabellen waarvoor kolomtoewijzing is ingeschakeld, kunnen alleen worden gelezen in Databricks Runtime 10.4 LTS en hoger.

Het inschakelen van kolomtoewijzing voor tabellen kan downstreambewerkingen verbreken die afhankelijk zijn van delta-wijzigingenfeed. Zie Beperkingen voor gegevensfeeds wijzigen voor tabellen waarvoor kolomtoewijzing is ingeschakeld.

Als u kolomtoewijzing voor tabellen inschakelt, kan het streamen van leesbewerkingen uit de Delta-tabel als bron worden verbroken, ook in Delta Live Tables. Zie Streaming met kolomtoewijzing en schemawijzigingen.

Kolomtoewijzing inschakelen

Voor kolomtoewijzing zijn de volgende Delta-protocollen vereist:

  • Lezer versie 2 of hoger.
  • Schrijver versie 5 of hoger.

Voor een Delta-tabel met de vereiste protocolversies kunt u kolomtoewijzing inschakelen door deze in te namestellen delta.columnMapping.mode op .

U kunt de volgende opdracht gebruiken om kolomtoewijzing in te schakelen:

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

Zie Kolomtoewijzing uitschakelen.

De naam van een kolom wijzigen

Notitie

Beschikbaar in Databricks Runtime 10.4 LTS en hoger.

Wanneer kolomtoewijzing is ingeschakeld voor een Delta-tabel, kunt u de naam van een kolom wijzigen:

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

Zie Delta Lake-tabelschema bijwerken voor meer voorbeelden.

Kolommen verwijderen

Notitie

Beschikbaar in Databricks Runtime 11.3 LTS en hoger.

Wanneer kolomtoewijzing is ingeschakeld voor een Delta-tabel, kunt u een of meer kolommen verwijderen:

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

Zie Delta Lake-tabelschema bijwerken voor meer informatie.

Ondersteunde tekens in kolomnamen

Wanneer kolomtoewijzing is ingeschakeld voor een Delta-tabel, kunt u spaties en een van deze tekens opnemen in de kolomnamen van de tabel: ,;{}()\n\t=.

Streamen met kolomtoewijzing en schemawijzigingen

Belangrijk

Deze functie bevindt zich in openbare preview in Databricks Runtime 13.3 LTS en hoger.

U kunt een locatie voor schematracking opgeven om streaming vanuit Delta-tabellen in te schakelen waarvoor kolomtoewijzing is ingeschakeld. Hiermee wordt een probleem opgelost waarbij niet-additieve schemawijzigingen kunnen leiden tot verbroken stromen.

Elke streaming die wordt gelezen op basis van een gegevensbron, moet een eigen schemaTrackingLocation opgegeven gegevensbron hebben. De opgegeven schemaTrackingLocation moet zich in de map bevinden die is opgegeven voor de checkpointLocation doeltabel voor streaming-schrijfbewerkingen.

Notitie

Voor streamingworkloads die gegevens uit meerdere Delta-brontabellen combineren, moet u unieke mappen opgeven in de checkpointLocation voor elke brontabel.

De optie schemaTrackingLocation wordt gebruikt om het pad voor schematracering op te geven, zoals wordt weergegeven in het volgende codevoorbeeld:

checkpoint_path = "/path/to/checkpointLocation"

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

Kolomtoewijzing uitschakelen

In Databricks Runtime 15.3 en hoger kunt u de DROP FEATURE opdracht gebruiken om kolomtoewijzing uit een tabel te verwijderen en het tabelprotocol te downgraden.

Voor de DROP FEATURE opdracht is een hogere protocolversie vereist. U kunt de volgende opdracht gebruiken om de tabellezer- en schrijfversies bij te werken, zodat u kolomtoewijzing kunt verwijderen en het protocol kunt downgraden:

  ALTER TABLE <table-name> SET TBLPROPERTIES (
    'delta.minReaderVersion' = '3',
    'delta.minWriterVersion' = '7'
  )

Zie Delta-tabelfuncties neerzetten.