Delen via


CREATE TABLE LIKE

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

Definieert een table met behulp van de definitie en metagegevens van een bestaande table of een 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 table die u wilt maken. De naam mag geen tijdelijke specificatie of optiesspecificatie bevatten. Als de naam niet is gespecificeerd, wordt de table gemaakt in de huidige schema. Er mag nog geen table_name bestaan.

  • source_table_name

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

  • table_clauses

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

    • LOCATIEpad

      Het pad naar de map wheretable waar gegevens zijn opgeslagen, wat een pad kan zijn op gedistribueerde opslag. Als u een locatie opgeeft, wordt de nieuwe table een externe table. Als u geen locatie opgeeft, is de table een door beheerde table.

      U kunt geen externe tables creëren op locaties die samenvallen met de locatie van beheerde tables.

    • TBLPROPERTIES

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

    • DATA_SOURCE gebruiken

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

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

      De volgende aanvullende bestandsindelingen die moeten worden gebruikt voor de table 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 specificeert, wordt de indeling van de bron table overgenomen.

      Het volgende is van toepassing op: Databricks Runtime

      HIVE wordt ondersteund om een Hive-SerDe table te maken 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 specificeren, ga naar set tot SERDE en voer de volledig gekwalificeerde klassenaam van een aangepaste SerDe en eventuele optionele SerDe-eigenschappen in. Gebruik de systeemeigen SerDe door set te doen tot DELIMITED en geef daarbij het scheidingsteken, het escapeteken, het null-teken, enzovoort op.

      • SERDEPROPERTIES

        Een set van list sleutel-waardeparen die worden gebruikt voor het taggen van de SerDe-definitie.

      • VELDEN BEËINDIGD DOOR

        Definieer een column scheider.

      • 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 table. 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 tables worden overgedragen.

CREATE TABLE LIKE wanneer de bron een Delta Lake Tableis:

Functie/eigenschap Het doel is geen Delta-Table Het doel is een Delta Table
OPMERKING Ja Ja
Columns Ja Ja
Partition columns Ja Ja
Configuratie Nr. Ja
Table Constraint Niet van toepassing Ja
Delta Protocol Niet van toepassing Ja

CREATE TABLE LIKE wanneer de bron geen Delta Lake-Tableis:

Functie/eigenschap Het doelwit is geen Delta Table Het doel is Delta Table
OPMERKING Ja Ja
Columns Ja Ja
Partition columns Ja Ja
Configuratie Ja Ja
Table Constraint 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';