Delen via


CREATE TABLE LIKE

Van toepassing op:vinkje als ja aan Databricks SQL vinkje als ja aan Databricks Runtime

Definieert een tabel met behulp van de definitie en metagegevens van een bestaande tabel of weergave.

Delta Lake biedt ondersteuning CREATE TABLE LIKE voor Databricks SQL en Databricks Runtime 13.3 LTS en hoger. Gebruik in Databricks Runtime 12.2 LTS en lagere versies CREATE TABLE AS.

Syntaxis

CREATE TABLE [ IF NOT EXISTS ] table_name LIKE source_table_name [table_clauses]

table_clauses
   { USING data_source |
     LOCATION path |
     TBLPROPERTIES clause |
     ROW FORMAT row_format |
     STORED AS file_format } [...]

row_format
   { SERDE serde_class [ WITH SERDEPROPERTIES (serde_key = serde_val [, ...] ) ] |
     { DELIMITED [ FIELDS TERMINATED BY fields_terminated_char [ ESCAPED BY escaped_char ] ]
       [ COLLECTION ITEMS TERMINATED BY collection_items_terminated_char ]
       [ MAP KEYS TERMINATED BY map_key_terminated_char ]
       [ LINES TERMINATED BY row_terminated_char ]
       [ NULL DEFINED AS null_char ] } }

property_key
  { identifier [. ...] | string_literal }

Parameters

  • ALS DEZE NIET BESTAAT

    Als deze optie is opgegeven, wordt de instructie genegeerd als de table_name instructie al bestaat.

  • table_name

    De naam van de tabel die u wilt maken. De naam mag geen tijdelijke specificatie of optiesspecificatie bevatten. Als de naam niet is gekwalificeerd, wordt de tabel gemaakt in het huidige schema. Er mag nog geen table_name bestaan.

  • source_table_name

    De naam van de tabel waarvan de definitie wordt gekopieerd. source_table_name en table_name moeten beide zich in de Hive-metastore bevinden of beide in de Unity-catalogus.

  • table_clauses

    Geef desgewenst een gegevensbronindeling, locatie en door de gebruiker gedefinieerde eigenschappen voor de nieuwe tabel op. Elke subcomponent mag slechts eenmaal worden opgegeven.

    • LOCATIEpad

      Pad naar de map waarin tabelgegevens worden opgeslagen. Dit kan een pad zijn voor gedistribueerde opslag. Als u een locatie opgeeft, wordt de nieuwe tabel een externe tabel. Als u geen locatie opgeeft, is de tabel een beheerde tabel.

      U kunt geen externe tabellen maken op locaties die overlappen met de locatie van beheerde tabellen.

    • TBLPROPERTIES

      U kunt desgewenst een of meer door de gebruiker gedefinieerde eigenschappen instellen.

    • DATA_SOURCE gebruiken

      De bestandsindeling die moet worden gebruikt voor de tabel. data_source moet een van de volgende zijn:

      • TEXT
      • CSV
      • JSON
      • JDBC
      • PARQUET
      • DELTA

      De volgende aanvullende bestandsindelingen die voor de tabel moeten worden gebruikt, worden ondersteund in Databricks Runtime:

      • ORC
      • HIVE
      • LIBSVM
      • een volledig gekwalificeerde klassenaam van een aangepaste implementatie van org.apache.spark.sql.sources.DataSourceRegister.

      Als u USING niet opgeeft, zal de indeling van de brontabel worden overgenomen.

      Het volgende is van toepassing op: Databricks Runtime

      HIVE wordt ondersteund voor het maken van een Hive SerDe-tabel in Databricks Runtime. U kunt de Hive-specifieke file_format component opgeven en row_format de OPTIONS component gebruiken. Dit is een niet hoofdlettergevoelige tekenreekstoewijzing. De option_keys volgende zijn:

      • FILEFORMAT
      • INPUTFORMAT
      • OUTPUTFORMAT
      • SERDE
      • FIELDDELIM
      • ESCAPEDELIM
      • MAPKEYDELIM
      • LINEDELIM
    • RIJOPMAAK row_format

      Van toepassing op:vinkje als ja aan Databricks Runtime

      Als u een aangepaste SerDe wilt opgeven, stelt u deze in op SERDE en geeft u de volledig gekwalificeerde klassenaam van een aangepaste SerDe en optionele SerDe-eigenschappen op. Als u de systeemeigen SerDe wilt gebruiken, stelt u in op DELIMITED en geeft u het scheidingsteken, het escapeteken, het null-teken enzovoort op.

      • SERDEPROPERTIES

        Een lijst met sleutel-waardeparen die worden gebruikt om de SerDe-definitie te taggen.

      • VELDEN BEËINDIGD DOOR

        Definieer een kolomscheider.

      • ONTSNAPT DOOR

        Definieer het escape-mechanisme.

      • VERZAMELINGSITEMS BEËINDIGD DOOR

        Definieer een scheidingsteken voor verzamelingsitems.

      • KAARTSLEUTELS BEËINDIGD DOOR

        Definieer een scheidingsteken voor kaartsleutels.

      • REGELS BEËINDIGD DOOR

        Definieer een rijscheidingsteken.

      • NULL GEDEFINIEERD ALS

        Definieer de specifieke waarde voor NULL.

      • OPGESLAGEN ALS

        De bestandsindeling voor de tabel. Beschikbare indelingen zijn onder andere , , , , en TEXTFILESEQUENCEFILE. RCFILEORCPARQUETAVRO U kunt ook uw eigen indelingen voor invoer en uitvoer opgeven via INPUTFORMAT en OUTPUTFORMAT. Alleen indelingen TEXTFILE, SEQUENCEFILEen RCFILE kunnen worden gebruikt met ROW FORMAT SERDE en alleen TEXTFILE met ROW FORMAT DELIMITED.

Opmerkingen

Afhankelijk van de gegevensbron en het doel kunnen niet alle eigenschappen van tabellen worden overgedragen.

CREATE TABLE LIKE wanneer de bron- een Delta Lake-tabel is:

Functie/eigenschap Doel is geen Delta-tabel Doel is een Delta-tabel
OPMERKING Ja Ja
Kolommen Ja Ja
Partitiekolommen Ja Ja
Configuratie Nr. Ja
Tabelbeperking Niet van toepassing Ja
Delta Protocol Niet van toepassing Ja

CREATE TABLE LIKE wanneer de bron geen Delta Lake-tabel is:

Functie/eigenschap Het doel is geen Delta-tabel Doel is een Delta-tabel
OPMERKING Ja Ja
Kolommen Ja Ja
Partitiekolommen Ja Ja
Configuratie Ja Ja
Tabelbeperking Nr. Ja
Delta Protocol Nee (huidig standaardprotocol voor die sessie) Ja

Voorbeelden

-- Create table using a new location
> CREATE TABLE Student_Dupli LIKE Student LOCATION '/path/to/data_files';

-- Create table like using a data source
> CREATE TABLE Student_Dupli LIKE Student USING CSV LOCATION '/path/to/csv_files';