Adlar
Şunlar için geçerlidir: Databricks SQL Databricks Runtime
Azure Databricks'teki farklı nesne türlerini tanımlar.
Unity Catalog'daki tüm nesne adları için aşağıdaki sınırlamalar geçerlidir:
- Nesne adları 255 karakteri aşamaz.
- Aşağıdaki özel karakterlere izin verilmez:
- Dönem (
.
) - Boşluk (
- Eğik çizgi (
/
) - Tüm ASCII denetim karakterleri (00-1F onaltılık)
- DELETE karakteri (7F onaltılık)
- Dönem (
- Unity Catalog tüm nesne adlarını küçük harf olarak depolar.
- SQL'de UC adlarına başvururken, kısa çizgi (
-
) gibi özel karakterler içeren adlardan kurtulmak için arka uçları kullanmanız gerekir.
Not
Column adları özel karakterler kullanabilir, ancak özel karakterler kullanılıyorsa, adın tüm SQL ifadelerinde ters tırnak işaretleri ile kaçış karakterine alınması gerekir. Unity Catalogcolumn isimdeki büyük/küçük harf kullanımını korur, ancak Unity Catalogtables yapılan sorgular büyük/küçük harfe duyarsızdır.
Bağlantı adı
Yabancı bir bağlantı tanımlar.
Yabancı bağlantı, PostgreSQL
gibi bir yabancı sisteme köprü görevi görür ve bu sisteme ait catalogs, şemalar ve tablesreferans almak için kullanılabilir.
Sözdizimi
connection_identifier
Parameters
- connection_identifier: Bağlantıyı benzersiz olarak tanımlayan bir identifier.
Örnekler
> CREATE CONNECTION my_postgresql ...;
Catalog adı
catalog'ı tanımlar. Bir catalog, daha sonra şemalar şeklinde alt bölümlere ayrılabilen bir nesne grubunu sağlar.
Sözdizimi
catalog_identifier
Parameters
- catalog_identifier: catalog'i benzersiz şekilde tanımlayan bir identifier.
Örnekler
> 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
Schema adı
schema'ı tanımlar. schema, catalogiçinde bir nesne grubu sağlar.
Sözdizimi
{ [ catalog_name . ] schema_identifier |
IDENTIFIER clause }
Parameters
- catalog_name: Mevcut bir catalogadı.
- schema_identifier: schema'i benzersiz şekilde tanımlayan bir identifier.
-
IDENTIFIER yan tümcesi: Sabit
STRING
'i bir schema adıyla eşleme.
içinde hive_metastore
oluşturulan şemalar yalnızca alfasayısal ASCII karakterleri ve alt çizgi (INVALID_SCHEMA_OR_RELATION_NAME) içerebilir.
Örnekler
> 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 `数据库架构`;
Veritabanı adı
ve kullanımı birbirinin SCHEMA
DATABASE
yerine kullanılabilir olsa da SCHEMA
tercih edilir.
Table adı
bir table nesnesi tanımlar.
Sözdizimi
{ [ schema_name . ] table_identifier |
IDENTIFIER clause |
{ file_format | `file_format` } . `path_to_table` } [ temporal_spec ] [ options_spec ] }
temporal_spec
{
@ timestamp_encoding |
@V version |
[ FOR ] { SYSTEM_TIMESTAMP | TIMESTAMP } AS OF timestamp_expression |
[ FOR ] { SYSTEM_VERSION | VERSION } AS OF version
}
options_spec
WITH ( { option_key [ = ] option_val } [, ...] )
option_key
{ identifier [. ...] | string_literal }
Parameters
schema_name: tableiçeren nitelenmiş veya nitelenmemiş schema adı.
table_identifier: table veya table_aliasadını belirten bir identifier.
file_format: , ,
json
,csv
,avro
,parquet
,orc
, , ,binaryFile
text
(büyük/küçük harfe duyarsız) biridelta
.path_to_table: dosya sistemindeki table'nin konumu. Bu söz dizimini
ANY_FILE
kullanma izniniz olmalıdır.IDENTIFIER yan tümcesi: Sabit
STRING
bir table adına eşleştirilmesi.temporal_spec: Kullanıldığında, belirtilen zaman veya sürüm noktasında bir Delta table'ye başvurur.
Geçici belirtimi yalnızca sorgu veya MERGE USING bağlamında kullanabilirsiniz.
-
@ timestamp_encoding: Bir zaman damgasını
yyyyMMddHHmmssSSS
biçimde kodlayan pozitif bir Bigint değişmez değeri. - @V sürüm: Delta tablesürümünü tanımlayan pozitif bir Tamsayı sabiti.
-
timestamp_expression: TIMESTAMP olarak değerlendirilen basit bir ifade.
timestamp_expressiom
sabit bir ifade olmalıdır, ancak veyacurrent_date()
içerebilircurrent_timestamp()
. - sürüm: Delta tablesürümünü tanımlayan bir tamsayı sabiti veya dize sabiti.
-
@ timestamp_encoding: Bir zaman damgasını
option_spec: Kullanıldığında, depolama konumuna erişmek veya
'write.split-size'
davranışı denetlemekINSERT
için kimlik bilgileri gibi bir veri kaynağına geçirilecek yönergeleri tanımlar.option_key
Seçenek tuşu. Anahtar, nokta veya dize değişmez değeriyle ayrılmış bir veya daha fazla tanımlayıcıdan oluşabilir.
Seçenek anahtarları benzersiz olmalı ve büyük/küçük harfe duyarlı olmalıdır.
option_val
Seçeneğin değeri. , ,
BOOLEAN
STRING
veyaINTEGER
türündeDECIMAL
bir sabit ifade.
Tables adı, hive_metastore
'de oluşturulduğunda yalnızca alfasayısal ASCII karakterleri ve alt çizgi içerebilir (INVALID_SCHEMA_OR_RELATION_NAME).
Ad niteliksizse vebilinen bir
Bir ad schemaile nitelenmişse, Azure Databricks geçerli catalog'deki table'i çözmeye çalışır.
Ad çözümlemesi hakkında daha fazla bilgi için bkz. Table ve çözümlemeyi görüntüleme.
Delta Lake biçiminde olmayan bir table için temporal_spec
kullandığınızda Azure Databricks hata oluşturur.
Örnekler
-- 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)
> INSERT INTO t WITH ('write.split-size' 10) SELECT * FROM s;
-- 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);
Görünüm adı
Bir görünümü tanımlar. Görünüm,
Sözdizimi
{ [ schema_name . ] view_identifier |
IDENTIFIER clause }
Parameters
- schema_name: Görünümün bulunduğu schema'ün nitelenmiş veya nitelenmemiş adı.
- view_identifier: bir CTEgörünümünün adını veya görünümün identifier belirleyen bir identifier.
-
IDENTIFIER yan tümcesi: Sabit
STRING
'in bir görünüm adıyla eşleştirilmesi.
hive_metastore
oluşturulan Views, yalnızca alfasayısal ASCII karakterlerini ve alt çizgi karakterlerini (INVALID_SCHEMA_OR_RELATION_NAME) içerebilir.
Örnekler
-- 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;
Column adı
Bir column'ı table veya görünüm içinde tanımlar. column, table veya görünüm adıyla nitelikli ya da basit bir identifierkullanarak nitelenmemiş .
Sözdizimi
{ [ { table_name | view_name } . ] column_identifier |
IDENTIFIER clause }
Parameters
- table_name: columniçeren table nitelenmiş veya nitelenmemiş table adı.
- view_name: columniçeren görünümün nitelenmiş veya nitelenmemiş görünüm adı.
- column_identifier: identifier, columnadını belirleyen bir tanımdır.
-
IDENTIFIER yan tümcesi: Sabit
STRING
'in bir column adıyla eşleştirilmesi.
Tanımlanan column, table ya da görünüm içinde yer almalıdır.
Azure Databricks özel bir _metadata columndestekler. Yapı türündeki bu sahte column, her table'in bir parçasıdır ve table'teki satırlar hakkındaki meta veri bilgilerini almak için kullanılabilir.
Uyarı
table
schema
_metadata
adlı bir column içeriyorsa, sorgular dosya meta verilerini değil veri kaynağından column döndürür.
_metadata
sahte column erişilemeyecek.
Delta Lake Column adları, tablescolumn eşleme özelliği ('delta.columnMapping.mode' = 'name'
) olmadan, ' '
(boşluk), ','
, ';'
, '{'
, '}'
, '('
, ')'
karakterlerini içermemelidir.
'\n'
, '\t'
ve '='
.
AVRO
tables'daki Column adı '_'
veya Unicode harfle (ASCII olmayan harfler dahil) başlamalıdır ve ardından '_'
, Unicode harfleri ve basamaklarının bir bileşimi eklenmelidir.
Örnekler
-- 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`);
Alan adı
Yapı içindeki bir alanı tanımlar. Alan, alanı içeren yapıya kadar olan yol ile nitelenmelidir.
Sözdizimi
{ expr { . field_identifier [. ...] } |
IDENTIFIER clause }
Parameters
- expr: STRUCT türünde bir ifade.
- field_identifier: Alanın adını belirten bir identifier.
-
IDENTIFIER ifadesi: Sabit
STRING
'in alan adıyla eşleştirilmesi.
Kök yapının yolu boyunca identifier alanının belirtilmesiyle derinlemesine yerleştirilmiş bir alana başvurulabilir.
Delta Lake tablescolumn eşleme özelliği olmayan alan adları ('delta.columnMapping.mode' = 'name'
), ' '
(boşluk), ','
, ';'
, '{'
, '}'
, '('
, ')'
karakterlerini içermemelidir.
'\n'
, '\t'
ve '='
.
AVRO
tables alan adı, '_'
veya Unicode harfle (ASCII olmayan harfler dahil) başlamalıdır ve ardından '_'
, Unicode harfleri ve basamaklarının birleşimi eklenmelidir.
Örnekler
> 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;
Değişken adı
Geçici bir (oturum) değişken tanımlar.
Değişken,
Sözdizimi
{ [ schema_name . ] variable_identifier |
IDENTIFIER clause }
Parameters
-
schema_name:
system.session
veyasession
tüm geçici değişkenleri içerir. - variable_identifier: Değişkenin adını belirten bir identifier.
Örnekler
-- 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;
İşlev adı
Bir işlevi tanımlar.
İşlev,
Sözdizimi
{ [ schema_name . ] function_identifier |
IDENTIFIER clause }
Parameters
- schema_name: İşlevi içeren nitelikli veya niteliksiz schema adı.
- function_identifier: İşlevin adını belirten bir identifier.
-
IDENTIFIER cümleciği: Sabit
STRING
'in işlev adıyla eşlemesi.
içinde hive_metastore
oluşturulan işlevler yalnızca alfasayısal ASCII karakterleri ve alt çizgi içerebilir.
Örnekler
-- 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;
Parametre adı
SQL kullanıcı tanımlı işlevinin (SQL UDF) gövdesindeki bir parametreyi tanımlar.
İşlev,
Sözdizimi
[ function_identifier . ] parameter_identifier
Parameters
- function_identifier: İşlevin adını belirten bir identifier.
- parameter_identifier: Parametrenin adını belirten bir identifier.
Örnekler
-- 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`;
Table diğer adı
bir table başvurusunu, sorguyu, table işlevini veya başka bir ilişki biçimini etiketler.
Sözdizimi
[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]
Parameters
- table_identifier: tableadını belirten bir identifier.
- column_identifierN: columnadını belirten isteğe bağlı bir identifier.
column tanımlayıcıları sağlarsanız, bunların sayısı eşleşen ilişkideki columns sayısıyla eşleşmelidir.
column tanımlayıcıları sağlamazsanız, adları etiketlenmiş ilişkiden devralınır.
Örnekler
-- 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 `직원`;
Column diğer adı
Başvuru için
Sözdizimi
[AS] column_identifier
[AS] ( column_identifier [, ...] )
Parameters
- column_identifier: columnadını belirten bir identifier.
column takma adların selectlistiçinde benzersiz olması gerekmemektedir, ancak bir takma adı adla referans vermek için benzersizlik bir gerekliliktir.
Örnekler
-- 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
Harmanlama adı
Bir column veya ifade için bir sıralama tanımlar.
Sözdizimi
collation_identifier
Parameters
- collation_identifier: Harmanlamanın adını belirten bir identifier.
Desteklenen harmanlamaların
Örnekler
> SELECT 'hello' COLLATE UNICODE_CI;
hello
Kimlik bilgisi adı
Sağlayıcı SDK'ları ile bir dış konumda veya bulut hizmetlerinde depolamaya erişmek için bir kimlik bilgisi tanımlar.
Sözdizimi
credential_identifier
Parameters
- credential_identifier: Kimlik bilgilerini benzersiz olarak tanımlayan şartsız bir identifier.
Örnekler
`my_storage_cred`
my_storage_cred
Konum adı
Bir dış depolama konumu tanımlar.
Sözdizimi
location_identifier
Parameters
- location_identifier: Konumu benzersiz olarak belirten vasıfsız bir identifier.
Örnekler
`s3-json-data`
s3_json_data
Paylaşım adı
Sağlayıcı tarafından paylaşılan verilere erişmek için bir paylaşımı tanımlar.
Sözdizimi
share_identifier
Parameters
- share_identifier: Paylaşımı benzersiz olarak tanımlayan vasıflandırılmamış bir identifier.
Örnekler
`public info`
`public-info`
public_info
Sağlayıcı adı
Delta Sharing sağlayıcısını tanımlar.
Sözdizimi
provider_identifier
Parameters
-
Sağlayıcıyı benzersiz olarak tanımlayan şartsız bir identifier.
Örnekler
`Good Corp`
`Good-corp`
Good_Corp
Alıcı adı
Bir paylaşımın alıcısını tanımlar.
Sözdizimi
recipient_identifier
Parameters
- alıcı_kodlayıcı: Alıcıyı eşsiz biçimde tanımlayan şartsız bir identifier.
Örnekler
`Good Corp`
`Good-corp`
Good_Corp
Temiz Oda adı
İşbirlikçilerin set için temiz bir oda tanımlar.
Sözdizimi
clean_room_identifier
Parameters
- clean_room_identifier: ortak çalışanların metastores'inde temiz odayı benzersiz bir şekilde belirleyen niteliksiz bir identifier.
Örnekler
`Clean-Room`
Clean_Room
Birim adı
Unity Catalog birimini tanımlar. Birim,
Sözdizimi
[ schema_name .] volume_identifier
Parameters
- schema_name: Birimi içeren nitelenmiş veya nitelenmemiş schema adı.
- volume_identifier: schemaiçindeki birimi benzersiz olarak tanımlayan vasıflandırılmamış bir identifier.
Örnekler
`myVolume`
`my-volume`
myschema.myVolume
my_unity_catalog.my_schema.my_volume