Nama
Berlaku untuk: Databricks SQL 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)
- Titik (
- 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
Contoh
> CREATE CONNECTION my_postgresql ...;
Nama katalog
Mengidentifikasi katalog. Katalog menyediakan pengelompokan objek yang dapat dibagi lagi menjadi skema.
Sintaks
catalog_identifier
Parameter
- catalog_identifier: Pengidentifikasi yang secara unik mengidentifikasi katalog.
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 mengandungcurrent_date()
ataucurrent_timestamp()
. - versi: Literal bilangan bulat atau literal String yang mengidentifikasi versi tabel Delta.
- @ timestamp_encoding: Literal Bigint positif yang mengkodekan stempel waktu dalam format
credential_spec
Anda dapat menggunakan informasi masuk yang berlaku untuk mendapatkan akses ke
path_to_table
yang tidak disematkan dalam lokasi eksternal.-
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
atausession
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
- function_identifier: Pengidentifikasi yang menentukan nama fungsi.
- parameter_identifier: Pengidentifikasi yang menentukan nama 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
- table_identifier: Pengidentifikasi yang menentukan nama tabel.
- column_identifierN: Pengidentifikasi yang menentukan nama kolom.
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
- column_identifier: Pengidentifikasi yang menentukan nama kolom.
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
-
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