Bagikan melalui


Nama

Berlaku untuk: centang ditandai ya Databricks SQL centang ditandai ya Databricks Runtime

Mengidentifikasi berbagai jenis objek di Azure Databricks.

Batasan berikut berlaku untuk semua nama objek di Unity Catalog:

  • Nama objek tidak boleh melebihi 255 karakter.
  • Karakter khusus berikut ini tidak diperbolehkan:
    • Titik (.)
    • Spasi ( )
    • Garis miring (/)
    • Semua karakter kontrol ASCII (00-1F hex)
    • Karakter DELETE (heks 7F)
  • Katalog Unity menyimpan semua nama objek sebagai huruf kecil.
  • Saat mereferensikan nama UC di SQL, Anda harus menggunakan backtick untuk meloloskan nama yang berisi karakter khusus seperti tanda hubung (-).

Catatan

Nama kolom dapat menggunakan karakter khusus, tetapi nama harus diloloskan dengan backtick di semua pernyataan SQL jika karakter khusus digunakan. Katalog Unity mempertahankan casing nama kolom, tetapi kueri terhadap tabel Katalog Unity tidak peka huruf besar/kecil.

Nama koneksi

Mengidentifikasi koneksi asing. Koneksi asing berfungsi sebagai tautan ke sistem asing, seperti PostgreSQL dan kemudian dapat digunakan untuk mereferensikan katalog, skema, dan tabelnya.

Sintaks

connection_identifier

Parameter

  • connection_identifier: Pengidentifikasi yang secara unik mengidentifikasi koneksi.

Contoh

> CREATE CONNECTION my_postgresql ...;

Nama katalog

Mengidentifikasi katalog. Katalog menyediakan pengelompokan objek yang dapat dibagi lagi menjadi skema.

Sintaks

catalog_identifier

Parameter

Contoh

> USE CATALOG hive_metastore;

> CREATE CATALOG mycatalog;

-- Creating a catalog with a special character requires back ticks
> CREATE CATALOG `cat-a-log`;

-- Creating a catalog with non ASCII characters requires back ticks
> USE `目录`;

-- space (' '), '/', and '.' are not allowed in catalog names, even with back ticks.
> CREATE CATALOG `cat a log`;
ERROR

Nama skema

Mengidentifikasi skema. Skema menyediakan pengelompokan objek dalam katalog.

Sintaks

{ [ catalog_name . ] schema_identifier |
  IDENTIFIER clause }

Parameter

  • catalog_name: Nama katalog yang sudah ada.
  • schema_identifier: Pengidentifikasi yang secara unik mengidentifikasi skema.
  • Klausa PENGIDENTIFIKASI: Pemetaan konstanta STRING ke nama skema.

Skema yang dibuat hanya hive_metastore dapat berisi karakter dan garis bawah ASCII alfanumerik (INVALID_SCHEMA_OR_RELATION_NAME).

Contoh

> USE SCHEMA default;

> CREATE SCHEMA my_sc;

-- In Hive Metastore, schema names must only consist of ASCII letters, digits and '_'
> CREATE SCHEMA hive_metastore.`a-b`;
Error: INVALID_SCHEMA_OR_RELATION_NAME

-- In Unity Catalog only space (' '), '/', and '.' are not allowed
> CREATE SCHEMA main.`a-b`;

> CREATE SCHEMA `a b`;
Error

-- Use back-ticks to reference or create schemas in Unity Catalog with non-ASCII characters
> CREATE SCHEMA `数据库架构`;

Nama database

Sinonim untuk nama skema.

Sementara penggunaan dari SCHEMA, dan DATABASE dapat dipertukarkan, SCHEMA lebih disukai.

Nama tabel

Mengidentifikasi objek tabel. Tabel dapat memenuhi syarat dengan nama skema atau tidak memenuhi syarat menggunakan pengidentifikasi sederhana.

Sintaks

{ [ schema_name . ] table_identifier [ temporal_spec ] |
  IDENTIFIER clause [ temporal_spec ] |
  { file_format | `file_format` } . `path_to_table` [ temporal_spec ] [ credential_spec ] }

temporal_spec
{
  @ timestamp_encoding |
  @V version |
  [ FOR ] { SYSTEM_TIMESTAMP | TIMESTAMP } AS OF timestamp_expression |
  [ FOR ] { SYSTEM_VERSION | VERSION } AS OF version
}

credential_spec
  WITH ( CREDENTIAL credential_name )

Parameter

  • schema_name: Nama skema yang memenuhi syarat atau tidak memenuhi syarat yang berisi tabel.

  • table_identifier: Pengidentifikasi yang menentukan nama tabel atau table_alias.

  • file_format: Salah satu dari json, csv, avro, parquet, orc, binaryFile, text, delta (tidak peka huruf besar/kecil).

  • path_to_table: Lokasi tabel dalam sistem file. Anda harus memiliki izin ANY_FILE untuk menggunakan sintaksis ini.

  • Klausa PENGIDENTIFIKASI: Pemetaan konstanta STRING ke nama tabel.

  • temporal_spec: Saat digunakan mereferensikan tabel Delta pada titik waktu atau versi yang ditentukan.

    Anda dapat menggunakan spesifikasi temporal hanya dalam konteks kueri atau GABUNG MENGGUNAKAN.

    • @ timestamp_encoding: Literal Bigint positif yang mengkodekan stempel waktu dalam format yyyyMMddHHmmssSSS.
    • Versi @V: Literal bilangan bulat positif yang mengidentifikasi versi tabel Delta.
    • timestamp_expression: Ekspresi sederhana yang dievaluasi menjadi STEMPEL WAKTU. timestamp_expressiom harus menjadi ekspresi konstan, tetapi mungkin mengandung current_date() atau current_timestamp().
    • versi: Literal bilangan bulat atau literal String yang mengidentifikasi versi tabel Delta.
  • credential_spec

    Anda dapat menggunakan informasi masuk yang berlaku untuk mendapatkan akses ke path_to_table yang tidak disematkan dalam lokasi eksternal.

    • credential_name

      Nama informasi masuk yang digunakan untuk mengakses lokasi penyimpanan.

Tabel yang dibuat hanya hive_metastore dapat berisi karakter dan garis bawah ASCII alfanumerik (INVALID_SCHEMA_OR_RELATION_NAME).

Jika namanya tidak memenuhi syarat dan tidak mereferensikan alias tabel yang diketahui, Azure Databricks terlebih dahulu mencoba menyelesaikan tabel dalam skema saat ini.

Jika namanya memenuhi syarat dengan skema, Azure Databricks mencoba menyelesaikan tabel di katalog saat ini.

Lihat Resolusi tabel dan tampilan untuk informasi selengkapnya tentang resolusi nama.

Azure Databricks menimbulkan kesalahan jika Anda menggunakan temporal_spec untuk tabel yang tidak dalam format Delta Lake.

Contoh

-- A back quoted table name
> SELECT * FROM `Employees`;

-- A table name without back quotes
> SELECT * FROM employees;

-- A schema qualified table name
> SELECT * FROM hr.employees;

-- A schema qualified table name with back quotes for schema and table
> SELECT * FROM `hr`.`employees`;

-- A fully qualified table name
> SELECT * FROM hive_metastore.default.tab;

-- A reference to an information schema table.
> SELECT * FROM system.information_schema.columns;

-- Referencing a path as a table requires back ticks
> SELECT * FROM delta.`somedir/delta_table`;

> SELECT * FROM `csv`.`spreadsheets/data.csv`;

> SELECT * FROM `csv`.`spreadsheets/data.csv` WITH (CREDENTIAL some_credential)

-- Tables in `hive_metastore` can only contain alphanumeric ASCII characters and underscores
> CREATE TABLE hive_metastore.default.t1(c1 INT);

> CREATE TABLE hive_metastore.default.`表一`(c1 INT);
Error: INVALID_SCHEMA_OR_RELATION_NAME

-- Use back-ticks to reference or create tables in Unity Catalog with non ASCII characters
> CREATE TABLE main.`瑞赛奇`.`表一`(c1 INT);

Melihat nama

Mengidentifikasi tampilan. Tampilan dapat memenuhi syarat dengan nama skema atau tidak memenuhi syarat menggunakan pengidentifikasi sederhana.

Sintaks

{ [ schema_name . ] view_identifier |
  IDENTIFIER clause }

Parameter

  • schema_name: Nama skema yang memenuhi syarat atau tidak memenuhi syarat yang berisi tampilan.
  • view_identifier: Pengidentifikasi yang menentukan nama tampilan atau pengidentifikasi tampilan CTE.
  • Klausa PENGIDENTIFIKASI: Pemetaan konstanta STRING ke nama tampilan.

Tampilan yang dibuat hive_metastore hanya dapat berisi karakter dan garis bawah ASCII alfanumerik (INVALID_SCHEMA_OR_RELATION_NAME).

Contoh

-- A back quoted view name
> SELECT * FROM `Employees`;

-- A view name without back quotes
> SELECT * FROM employees;

-- A schema qualified view name
> SELECT * FROM hr.employees;

-- A schema qualified view name with back quotes for schema and table
> SELECT * FROM `hr`.`employees`;

-- A fully qualified view name
> SELECT * FROM hive_metastore.default.tab;

-- Views in `hive_metastore` can only contain alphanumeric ASCII characters and underscores
> CREATE VIEW hive_metastore.default.v1(c1) AS SELECT 1;

> CREATE VIEW hive_metastore.default.`数据库视图一`(c1 INT);
Error: INVALID_SCHEMA_OR_RELATION_NAME

-- Use back-ticks to reference or create tables in Unity Catalog with non ASCII characters
> CREATE VIEW main.`瑞赛奇`.`数据库视图一`(c1) AS SELECT 1;

Nama kolom

Mengidentifikasi kolom dalam tabel atau tampilan. Kolom dapat memenuhi syarat dengan tabel atau tampilan nama, atau tidak memenuhi syarat menggunakan pengidentifikasi sederhana.

Sintaks

{ [ { table_name | view_name } . ] column_identifier |
  IDENTIFIER clause }

Parameter

  • table_name: Nama tabel yang memenuhi syarat atau tidak memenuhi syarat dari tabel yang berisi kolom.
  • view_name: Nama tampilan yang memenuhi syarat atau tidak memenuhi syarat dari tabel yang berisi kolom.
  • column_identifier: Pengidentifikasi yang menentukan nama kolom.
  • Klausa IDENTIFIER: Pemetaan konstanta STRING ke nama kolom.

Kolom yang diidentifikasi harus ada di dalam tabel atau tampilan.

Azure Databricks mendukung kolom _metadata khusus. Kolom pseudo dari jenis struct ini adalah bagian dari setiap tabel dan dapat digunakan untuk mengambil informasi metadata tentang baris dalam tabel.

Peringatan

Jika skema tabel berisi kolom bernama _metadata, kueri akan mengembalikan kolom dari sumber data, dan bukan metadata file. Kolom _metadata pseudo tidak akan dapat diakses.

Nama kolom dalam tabel Delta Lake tanpa properti pemetaan kolom ('delta.columnMapping.mode' = 'name') tidak boleh berisi karakter ' ' (spasi), ',', , ';''{', '}', '(', ')'. '\n', '\t', dan '='.

Nama kolom dalam AVRO tabel harus dimulai dengan '_' atau huruf Unicode (termasuk huruf non-ASCII) dan diikuti dengan kombinasi '_', huruf dan digit Unicode.

Contoh

-- An unqualified column name
> SELECT c1 FROM VALUES(1) AS T(c1);
 c1
 1

-- A qualified column name
> SELECT T.c1 FROM VALUES(1) AS T(c1);
 c1
 1

-- Using _metadata to retrieve information about rows retrieved from T.
> CREATE TABLE T(c1 INT);
> INSERT INTO T VALUES(1);
> SELECT T._metadata.file_size;
  574

-- A delimited column name
> CREATE TABLE T(`sütun1`);

Nama bidang

Mengidentifikasi bidang dalam struktur. Bidang harus memenuhi syarat dengan jalur hingga struktur yang berisi bidang tersebut.

Sintaks

{ expr { . field_identifier [. ...] } |
  IDENTIFIER clause }

Parameter

  • expr: Ekspresi jenis STRUKTUR.
  • field_identifier: Pengidentifikasi yang menentukan nama bidang.
  • Klausa PENGIDENTIFIKASI: Pemetaan konstanta STRING ke nama bidang.

Bidang yang bersarang dalam dapat dirujuk dengan menentukan pengidentifikasi bidang di sepanjang jalur ke struktur akar.

Nama bidang dalam tabel Delta Lake tanpa properti pemetaan kolom ('delta.columnMapping.mode' = 'name') tidak boleh berisi karakter ' ' (spasi), ',', , ';', '{''}', '(', ')'. '\n', '\t', dan '='.

Nama bidang dalam AVRO tabel harus dimulai dengan '_' atau huruf Unicode (termasuk huruf non-ASCII) dan diikuti dengan kombinasi '_', huruf dan digit Unicode.

Contoh

> SELECT addr.address.name
    FROM VALUES (named_struct('address', named_struct('number', 5, 'name', 'Main St'),
                              'city', 'Springfield')) as t(addr);
  Main St

-- Delimited field names with non ASCII letters
> CREATE TABLE T(c1 struct<`атрибут1` INT, `атрибут2`>);
> SELECT c1.`атрибут1` FROM T;

Nama variabel

Mengidentifikasi variabel sementara (sesi). Variabel dapat memenuhi syarat dengan nama skema (system.session atau session), atau tidak memenuhi syarat menggunakan pengidentifikasi sederhana.

Sintaks

{ [ schema_name . ] variable_identifier |
  IDENTIFIER clause }

Parameter

  • schema_name: system.session atau session yang berisi semua variabel sementara.
  • variable_identifier: Pengidentifikasi yang menentukan nama variabel.

Contoh


-- Declaring a session variable with a qualified name.
> DECLARE session.myvar = 5;

-- Setting a session variable with an unqualified name.
> SET VAR myvar = 6

-- Declaring a session variable with a fully qualified name an non-ASCII characters.
> DECLARE system.session.`圆周率` = 3.14;

Nama fungsi

Mengidentifikasi fungsi. Fungsi dapat memenuhi syarat dengan nama skema atau tidak memenuhi syarat menggunakan pengidentifikasi sederhana.

Sintaks

{ [ schema_name . ] function_identifier |
  IDENTIFIER clause }

Parameter

  • schema_name: Nama skema yang memenuhi syarat atau tidak memenuhi syarat yang berisi fungsi.
  • function_identifier: Pengidentifikasi yang menentukan nama fungsi.
  • Klausa IDENTIFIER: Pemetaan konstanta STRING ke nama fungsi.

Fungsi yang dibuat hanya hive_metastore dapat berisi karakter dan garis bawah ASCII alfanumerik.

Contoh

-- Creating a SQL function with a qualified name
> CREATE FUNCTION math.myplus(x INT, y INT) RETURN x + y;

-- Invoking a function with an unqualified name
> SELECT myplus()

-- Creating a SQL function with non-ASCII characters;
> CREATE FUNCTION `圆周率`() RETURN 3.14;

Nama Parameter

Mengidentifikasi parameter dalam tubuh fungsi yang ditentukan pengguna SQL (SQL UDF). Fungsi dapat memenuhi syarat dengan pengidentifikasi fungsi, atau tidak memenuhi syarat menggunakan pengidentifikasi sederhana.

Sintaks

[ function_identifier . ] parameter_identifier

Parameter

Contoh

-- Create a function with undelimited parameters and reference them as qualified and nonqualified.
> CREATE FUNCTION area(x INT, y INT) RETURNS INT
  RETURN area.x + y;

-- Create a function with non-ASCII character parameters
> CREATE FUNCTION full_name(`prénom` STRING, `nom` STRING) RETURNS STRING
  RETURN `prénom` + ' ' + `nom`;

Alias tabel

Memberi label referensi tabel, kueri, fungsi tabel, atau bentuk relasi lainnya.

Sintaks

[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]

Parameter

Jika Anda memberikan pengidentifikasi kolom, nomornya harus cocok dengan jumlah kolom dalam relasi yang cocok.

Jika Anda tidak memberikan pengidentifikasi kolom, nama mereka diwarisi dari relasi berlabel.

Contoh

-- Defining a table alias with column list
> SELECT a, b FROM VALUES (1, 2) AS t(a, b);
 a  b
 1  2

-- Defining a table alias without column list
> DELETE FROM emp AS e WHERE e.c1 = 5;

-- Defining a table alias with non ASCII characters
> SELECT * FROM employee AS `직원`;

Alias kolom

Memberi label hasil ekspresi dalam daftar SELECT untuk referensi.

Jika ekspresi adalah fungsi generator yang dinilai tabel, alias memberi label daftar kolom yang dihasilkan.

Sintaks

[AS] column_identifier
[AS] ( column_identifier [, ...] )

Parameter

Sementara alias kolom tidak perlu unik dalam daftar pilih, keunikan adalah persyaratan untuk mereferensikan alias berdasarkan nama.

Contoh

-- An undelimited alias
> SELECT 1 AS a;
 a
 1

> SELECT 1 a, 2 b;
 a b
 1 2

-- A delimited alias with non-ASCII characters
> SELECT 3.14 AS `圆周率`;
 a
 1

-- Referencing a passed column alias
> SELECT a + a FROM (SELECT 1 AS a);
 a
 2

Nama info masuk

Mengidentifikasi informasi masuk untuk mengakses penyimpanan di lokasi eksternal.

Sintaks

credential_identifier

Parameter

  • credential_identifier: Pengidentifikasi tidak memenuhi syarat yang secara unik mengidentifikasi informasi masuk.

Contoh

Nama lokasi

Mengidentifikasi lokasi penyimpanan eksternal.

Sintaks

location_identifier

Parameter

  • location_identifier: Pengidentifikasi tidak memenuhi syarat yang secara unik mengidentifikasi lokasi.

Contoh

`s3-json-data`

s3_json_data

Nama berbagi

Mengidentifikasi pembagian untuk mengakses data yang dibagikan oleh penyedia.

Sintaks

share_identifier

Parameter

  • share_identifier: Pengidentifikasi tidak memenuhi syarat yang secara unik mengidentifikasi pembagian.

Contoh

`public info`

`public-info`

public_info

Nama penyedia

Mengidentifikasi penyedia Delta Sharing.

Sintaks

provider_identifier

Parameter

  • provider_identifier

    Pengidentifikasi yang tidak memenuhi syarat yang secara unik mengidentifikasi penyedia.

Contoh

`Good Corp`

`Good-corp`

Good_Corp

Nama penerima

Mengidentifikasi penerima pembagian.

Sintaks

recipient_identifier

Parameter

  • recipient_identifier: Pengidentifikasi tidak memenuhi syarat yang secara unik mengidentifikasi penerima.

Contoh

`Good Corp`

`Good-corp`

Good_Corp

Nama volume

Mengidentifikasi volume Katalog Unity. Volume dapat memenuhi syarat dengan nama skema atau tidak memenuhi syarat menggunakan pengidentifikasi sederhana.

Sintaks

[ schema_name .] volume_identifier

Parameter

  • schema_name: Nama skema yang memenuhi syarat atau tidak memenuhi syarat yang berisi volume.
  • volume_identifier: Pengidentifikasi yang tidak memenuhi syarat yang secara unik mengidentifikasi volume dalam skema.

Contoh

`myVolume`

`my-volume`

myschema.myVolume

my_unity_catalog.my_schema.my_volume