Aracılığıyla paylaş


Adlar

Şunlar için geçerlidir: onay işareti evet olarak işaretlenmiş Databricks SQL onay işareti evet olarak işaretlenmiş Databricks Runtime

Azure Databricks'teki farklı nesne türlerini tanımlar.

Unity Kataloğu'ndaki 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)
  • Unity Kataloğu 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

Sütun adları özel karakterler kullanabilir, ancak özel karakterler kullanılıyorsa tüm SQL deyimlerinde adın arka uçlarla birlikte kaçış karakteri kullanılması gerekir. Unity Kataloğu sütun adı büyük/küçük harf kullanımını korur, ancak Unity Kataloğu tablolarındaki sorgular büyük/küçük harfe duyarlı değildir.

Bağlantı adı

Yabancı bir bağlantı tanımlar. Yabancı bağlantı, gibi PostgreSQL bir yabancı sisteme bağlantı görevi görür ve daha sonra kataloglarına, şemalarına ve tablolarına başvurmak için kullanılabilir.

Sözdizimi

connection_identifier

Parametreler

  • connection_identifier: Bağlantıyı benzersiz olarak tanımlayan bir tanımlayıcı.

Örnekler

> CREATE CONNECTION my_postgresql ...;

Katalog adı

Bir kataloğu tanımlar. Katalog, şemalara daha fazla alt bölümlenebilen bir nesne grubu sağlar.

Sözdizimi

catalog_identifier

Parametreler

  • catalog_identifier: Kataloğu benzersiz olarak tanımlayan tanımlayıcı.

Ö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

Şema adı

Bir şema tanımlar. Şema, katalogdaki nesnelerin bir grubunu sağlar.

Sözdizimi

{ [ catalog_name . ] schema_identifier |
  IDENTIFIER clause }

Parametreler

  • catalog_name: Mevcut bir kataloğun adı.
  • schema_identifier: Şemayı benzersiz olarak tanımlayan bir tanımlayıcı.
  • IDENTIFIER yan tümcesi: Sabiti STRING şema 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ı

Şema adı için bir eş anlamlı.

ve kullanımı birbirinin SCHEMADATABASE yerine kullanılabilir olsa da SCHEMA tercih edilir.

Tablo adı

Tablo nesnesini tanımlar. Tablo bir şema adıyla nitelenebilir veya basit bir tanımlayıcı kullanılarak nitelenmemiş olabilir.

Sözdizimi

{ [ 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 )

Parametreler

  • schema_name: Tabloyu içeren nitelenmiş veya nitelenmemiş şema adı.

  • table_identifier: Tablonun veya table_alias adını belirten tanımlayıcı.

  • file_format: , , csv, avro, parquet, orc, binaryFile, , , textdelta (büyük/küçük harfe duyarsız) birijson.

  • path_to_table: Tablonun dosya sistemindeki konumu. Bu söz dizimini ANY_FILE kullanma izniniz olmalıdır.

  • IDENTIFIER yan tümcesi: Sabitin STRING tablo adıyla eşlemesi.

  • temporal_spec: Kullanıldığında, belirtilen zaman veya sürüm noktasında bir Delta tablosuna 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 tablosunun sürümünü tanımlayan pozitif bir Tamsayı değişmez değeri.
    • timestamp_expression: TIMESTAMP olarak değerlendirilen basit bir ifade. timestamp_expressiomsabit bir ifade olmalıdır, ancak veya current_timestamp()içerebilircurrent_date().
    • version: Delta tablosunun sürümünü tanımlayan bir Tamsayı değişmez değeri veya Dize değişmez değeri.
  • credential_spec

    Dış konuma ekli olmayan bir path_to_table öğeye erişim elde etmek için geçerli kimlik bilgilerini kullanabilirsiniz.

    • credential_name

      Depolama konumuna erişmek için kullanılan kimlik bilgilerinin adı.

içinde hive_metastore oluşturulan tablolar yalnızca alfasayısal ASCII karakterleri ve alt çizgi (INVALID_SCHEMA_OR_RELATION_NAME) içerebilir.

Ad nitelenmemişse ve bilinen bir tablo diğer adına başvurmuyorsa, Azure Databricks önce geçerli şemadaki tabloyu çözümlemeyi dener.

Ad bir şemayla nitelenmişse, Azure Databricks geçerli katalogdaki tabloyu çözümlemeye çalışır.

Ad çözümlemesi hakkında daha fazla bilgi için bkz . Tablo ve görünüm çözünürlüğü .

Delta Lake biçiminde olmayan bir tablo için kullanıyorsanız temporal_spec Azure Databricks bir 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)

-- 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 bir şema adıyla nitelenebilir veya basit bir tanımlayıcı kullanılarak nitelenmemiş olabilir.

Sözdizimi

{ [ schema_name . ] view_identifier |
  IDENTIFIER clause }

Parametreler

içinde hive_metastore oluşturulan görünümler yalnızca alfasayısal ASCII karakterleri ve alt çizgi (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;

Sütun adı

Tablo veya görünüm içindeki bir sütunu tanımlar. Sütun bir tablo veya görünüm adıyla nitelenebilir veya basit bir tanımlayıcı kullanılarak nitelenmemiş olabilir.

Sözdizimi

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

Parametreler

  • table_name: Sütunu içeren tablonun nitelenmiş veya nitelenmemiş tablo adı.
  • view_name: Sütunu içeren görünümün nitelenmiş veya nitelenmemiş görünüm adı.
  • column_identifier: Sütunun adını belirten tanımlayıcı.
  • IDENTIFIER yan tümcesi: Sabitin STRING sütun adıyla eşlemesi.

Tanımlanan sütun tablo veya görünüm içinde bulunmalıdır.

Azure Databricks özel bir _metadata sütununu destekler. Yapı türündeki bu sahte sütun her tablonun bir parçasıdır ve tablodaki satırlar hakkındaki meta veri bilgilerini almak için kullanılabilir.

Uyarı

Tablo şeması adlı _metadatabir sütun içeriyorsa, sorgular sütunu dosya meta verilerinden değil veri kaynağından döndürür. Sahte _metadata sütuna erişilemez.

Delta Lake tablolarında sütun eşleme özelliği olmayan sütun adları ('delta.columnMapping.mode' = 'name'boşluk), ',', , ';', '{', '}', '(', ')'karakterlerini ' ' içermemelidir. '\n', '\t've '='.

Tablolardaki AVRO sütun adı bir Unicode harfi (ASCII olmayan harfler dahil) ile '_' başlamalı ve ardından , Unicode harfleri ve basamaklarının '_'bir bileşimiyle izlenmelidir.

Ö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 }

Parametreler

  • expr: STRUCT türünde bir ifade.
  • field_identifier: Alanın adını belirten tanımlayıcı.
  • IDENTIFIER yan tümcesi: Sabitin STRING alan adıyla eşlemesi.

Kök yapının yolu boyunca alan tanımlayıcısı belirtilerek derin iç içe yerleştirilmiş bir alana başvurulabilir.

Sütun eşleme özelliği olmayan Delta Lake tablolarındaki alan adları ('delta.columnMapping.mode' = 'name'boşluk), ',', , ';', '{''}', , '(', ')'karakterlerini ' ' içermemelidir. '\n', '\t've '='.

Tablolardaki AVRO alan adı bir Unicode harfiyle '_' (ASCII olmayan harfler de dahil) başlamalı ve ardından , Unicode harfleri ve basamaklarının '_'birleşimini içermelidir.

Ö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 bir şema adı (system.session veya ) ile nitelenebilir veya basit bir tanımlayıcı kullanılarak nitelenmemiş olabilirsession.

Sözdizimi

{ [ schema_name . ] variable_identifier |
  IDENTIFIER clause }

Parametreler

  • schema_name: system.session veya session tüm geçici değişkenleri içerir.
  • variable_identifier: Değişkenin adını belirten tanımlayıcı.

Ö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 bir şema adıyla nitelenebilir veya basit bir tanımlayıcı kullanılarak nitelenmemiş olabilir.

Sözdizimi

{ [ schema_name . ] function_identifier |
  IDENTIFIER clause }

Parametreler

  • schema_name: İşlevi içeren nitelenmiş veya nitelenmemiş şema adı.
  • function_identifier: İşlevin adını belirten tanımlayıcı.
  • IDENTIFIER yan tümcesi: Sabiti STRING işlev adıyla eşleme.

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 bir işlev tanımlayıcısı ile nitelenebilir veya basit bir tanımlayıcı kullanılarak nitelenmemiş olabilir.

Sözdizimi

[ function_identifier . ] parameter_identifier

Parametreler

  • function_identifier: İşlevin adını belirten tanımlayıcı.
  • parameter_identifier: Parametrenin adını belirten tanımlayıcı.

Ö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`;

Tablo diğer adı

Tablo başvurusunu, sorguyu, tablo işlevini veya başka bir ilişki biçimini etiketler.

Sözdizimi

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

Parametreler

  • table_identifier: Tablonun adını belirten tanımlayıcı.
  • column_identifierN: Sütunun adını belirten isteğe bağlı bir tanımlayıcı.

Sütun tanımlayıcıları sağlarsanız, bunların sayısı eşleşen ilişkideki sütun sayısıyla eşleşmelidir.

Sütun 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 `직원`;

Sütun diğer adı

Bir listedeki ifadenin SELECT sonucunu başvuru için etiketler.

İfade tablo değerli bir oluşturucu işleviyse, diğer ad üretilen sütunların listesini etiketler.

Sözdizimi

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

Parametreler

  • column_identifier: Sütunun adını belirten tanımlayıcı.

Sütun diğer adlarının seçme listesinde benzersiz olması gerekmese de, benzersizlik bir diğer ada göre başvurma gereksinimidir.

Ö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

Kimlik bilgisi adı

Dış konumdaki depolama alanına erişmek için bir kimlik bilgisi tanımlar.

Sözdizimi

credential_identifier

Parametreler

  • credential_identifier: Kimlik bilgilerini benzersiz olarak tanımlayan nitelenmemiş bir tanımlayıcı.

Örnekler

Konum adı

Bir dış depolama konumu tanımlar.

Sözdizimi

location_identifier

Parametreler

  • location_identifier: Konumu benzersiz olarak tanımlayan nitelenmemiş bir tanımlayıcı.

Ö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

Parametreler

  • share_identifier: Paylaşımı benzersiz olarak tanımlayan nitelenmemiş bir tanımlayıcı.

Örnekler

`public info`

`public-info`

public_info

Sağlayıcı adı

Delta Sharing sağlayıcısını tanımlar.

Sözdizimi

provider_identifier

Parametreler

  • provider_identifier

    Sağlayıcıyı benzersiz olarak tanımlayan nitelenmemiş bir tanımlayıcı.

Örnekler

`Good Corp`

`Good-corp`

Good_Corp

Alıcı adı

Bir paylaşımın alıcısını tanımlar.

Sözdizimi

recipient_identifier

Parametreler

  • recipient_identifier: Alıcıyı benzersiz olarak tanımlayan nitelenmemiş bir tanımlayıcı.

Örnekler

`Good Corp`

`Good-corp`

Good_Corp

Birim adı

Unity Kataloğu birimini tanımlar. Birim bir şema adıyla nitelenebilir veya basit bir tanımlayıcı kullanılarak nitelenmemiş olabilir.

Sözdizimi

[ schema_name .] volume_identifier

Parametreler

  • schema_name: Birimi içeren nitelenmiş veya nitelenmemiş şema adı.
  • volume_identifier: Şema içindeki birimi benzersiz olarak tanımlayan nitelenmemiş bir tanımlayıcı.

Örnekler

`myVolume`

`my-volume`

myschema.myVolume

my_unity_catalog.my_schema.my_volume