CLONE (Delta Lake op Azure Databricks)

Notitie

Beschikbaar in Databricks Runtime 7.2 en hoger.

Kloont een bron-Delta-tabel naar een doelbestemming op een specifieke versie. Een kloon kan diep of klein zijn: deep clones kopiƫren de gegevens uit de bron en kloon kloon niet.

Belangrijk

Er zijn belangrijke verschillen tussen kleine en diepe klonen die kunnen bepalen hoe ze het beste kunnen worden gebruikt. Zie Een Delta-tabel klonen.

Syntax

CREATE TABLE [IF NOT EXISTS] target_table_identifier
[SHALLOW | DEEP] CLONE source_table_identifier [<time_travel_version>]
[LOCATION 'path']
[TBLPROPERTIES (
  'prop1' = 'value1',
  ...
)]
[CREATE OR] REPLACE TABLE target_table_identifier
[SHALLOW | DEEP] CLONE source_table_identifier [<time_travel_version>]
[LOCATION 'path']
[TBLPROPERTIES (
  'prop1' = 'value1',
  ...
)]
  • table_identifier
    • [database_name.] table_name: Een tabelnaam, eventueel gekwalificeerd met een databasenaam.
    • delta.`<path-to-table>`: De locatie van een bestaande Delta-tabel.

waar

<time_travel_version>  =
  TIMESTAMP AS OF timestamp_expression |
  VERSION AS OF version

waar

  • timestamp_expression kan een van de volgende zijn:
    • '2018-10-18T22:15:12.013Z', dat wil zeggen, een tekenreeks die kan worden gecast naar een tijdstempel
    • cast('2018-10-18 13:36:32 CEST' as timestamp)
    • '2018-10-18', dat wil zeggen, een datumreeks
    • In Databricks Runtime 6.6 en hoger:
      • current_timestamp() - interval 12 hours
      • date_sub(current_date(), 1)
      • Andere expressies die of kunnen worden gecast naar een tijdstempel
  • version is een lange waarde die kan worden verkregen uit de uitvoer van DESCRIBE HISTORY table_spec .

Geen van timestamp_expression beide version kan subquery's zijn.

  • Geef CREATE TABLE IF NOT EXISTS op om te voorkomen dat u een tabel maakt als er al een tabel target_table bestaat. Als er al een tabel op het doel bestaat, is de kloonbewerking een no-op.
  • Geef CREATE OR REPLACE op om het doel van een kloonbewerking te vervangen als er een bestaande tabel target_table is. Hiermee wordt de metastore bijgewerkt met de nieuwe tabel als de tabelnaam wordt gebruikt.
  • Als u of niet opgeeft, wordt standaard een SHALLOWDEEP diepe kloon gemaakt.
  • LOCATION maakt een externe tabel, met de opgegeven locatie als het pad waar de gegevens worden opgeslagen. Als het doel een pad is in plaats van een tabelnaam, mislukt de bewerking.

Voorbeelden

U kunt gebruiken voor complexe bewerkingen zoals gegevensmigratie, gegevensarchivering, machine learning stroomreproductie, kortetermijnexperimenten, het delen van CLONE gegevens, en meer. Zie Gebruiksvoorbeelden klonen voor enkele voorbeelden.