الأسماء
ينطبق على: Databricks SQL Databricks Runtime
تحديد أنواع مختلفة من الكائنات في Azure Databricks.
تنطبق القيود التالية على جميع أسماء الكائنات في كتالوج Unity:
- لا يمكن أن تتجاوز أسماء الكائنات 255 حرفا.
- الأحرف الخاصة التالية غير مسموح بها:
- الفترة الزمنية (
.
) - مسافة (
- شرطة مائلة للأمام (
/
) - كافة أحرف التحكم ASCII (00-1F سداسي)
- حرف DELETE (سداسي عشري 7F)
- الفترة الزمنية (
- يخزن كتالوج Unity جميع أسماء الكائنات كأحرف صغيرة.
- عند الإشارة إلى أسماء UC في SQL، يجب استخدام backticks للإلغاء الأسماء التي تحتوي على أحرف خاصة مثل الواصلات (
-
).
إشعار
يمكن أن تستخدم أسماء الأعمدة أحرفا خاصة، ولكن يجب إلغاء الاسم باستخدام backticks في كافة عبارات SQL إذا تم استخدام أحرف خاصة. يحافظ كتالوج Unity على غلاف اسم العمود، ولكن الاستعلامات مقابل جداول كتالوج Unity غير حساسة لحالة الأحرف.
Connection name
تعريف اتصال خارجي.
يعمل الاتصال الخارجي كرابط لنظام خارجي، مثل PostgreSQL
ويمكن استخدامه بعد ذلك للإشارة إلى كتالوجاته ومخططاته وجداوله.
بناء الجملة
connection_identifier
المعلمات
الأمثلة
> CREATE CONNECTION my_postgresql ...;
اسم الكتالوج
تعريف كتالوج. يوفر الكتالوج تجميعا للكائنات التي يمكن تقسيمها إلى مخططات.
بناء الجملة
catalog_identifier
المعلمات
الأمثلة
> 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
اسم المخطط
تعريف مخطط. يوفر المخطط تجميعا للكائنات في كتالوج.
بناء الجملة
{ [ catalog_name . ] schema_identifier |
IDENTIFIER clause }
المعلمات
- catalog_name: اسم كتالوج موجود.
- schema_identifier: معرف يعرف المخطط بشكل فريد.
- عبارة IDENTIFIER: تعيين ثابت
STRING
لاسم مخطط.
يمكن أن تحتوي المخططات التي تم إنشاؤها في hive_metastore
فقط على أحرف ASCII أبجدية رقمية وتسطير أسفل السطر (INVALID_SCHEMA_OR_RELATION_NAME).
الأمثلة
> 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 `数据库架构`;
اسم قاعدة البيانات
في حين أن استخدام SCHEMA
، و DATABASE
قابل للتبديل، SCHEMA
يفضل.
اسم الجدول
تعريف كائن جدول. يمكن أن يكون الجدول مؤهلا باسم مخطط أو غير مؤهل باستخدام معرف بسيط.
بناء الجملة
{ [ 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 }
المعلمات
table_identifier: معرف يحدد اسم الجدول أو table_alias.
file_format: واحد من
json
،csv
،avro
،parquet
،orc
،binaryFile
،text
،delta
(غير حساس لحالة الأحرف).path_to_table: موقع الجدول في نظام الملفات. يجب أن يكون لديك
ANY_FILE
الإذن لاستخدام بناء الجملة هذا.عبارة IDENTIFIER: تعيين ثابت
STRING
لاسم جدول.temporal_spec: عند الاستخدام، يشير إلى جدول Delta في النقطة المحددة في الوقت أو الإصدار.
يمكنك استخدام مواصفات زمنية فقط ضمن سياق استعلام أو MERGE USING.
- @ timestamp_encoding: حرف Bigint حرفي موجب يقوم بترميز طابع زمني بتنسيق
yyyyMMddHHmmssSSS
. - @V الإصدار: حرف عدد صحيح موجب يحدد إصدار جدول Delta.
- timestamp_expression: تعبير بسيط يتم تقييمه إلى TIMESTAMP.
timestamp_expressiom
يجب أن يكون تعبيرا ثابتا، ولكن قد يحتوي علىcurrent_date()
أوcurrent_timestamp()
. - الإصدار: قيمة حرفية لعدد صحيح أو سلسلة حرفية تحدد إصدار جدول Delta.
- @ timestamp_encoding: حرف Bigint حرفي موجب يقوم بترميز طابع زمني بتنسيق
option_spec: عند الاستخدام، يحدد التوجيهات التي سيتم تمريرها إلى مصدر بيانات مثل بيانات الاعتماد للوصول إلى موقع تخزين أو
'write.split-size'
للتحكمINSERT
في السلوك.option_key
مفتاح الخيار. يمكن أن يتكون المفتاح من معرف واحد أو أكثر مفصول بنقطة، أو سلسلة حرفية.
يجب أن تكون مفاتيح الخيارات فريدة وأن تكون حساسة لحالة الأحرف.
option_val
قيمة الخيار . تعبير ثابت من النوع
BOOLEAN
أوSTRING
INTEGER
أو أو .DECIMAL
يمكن أن تحتوي الجداول التي تم إنشاؤها في hive_metastore
على أحرف ASCII أبجدية رقمية فقط وتسطير أسفل السطر (INVALID_SCHEMA_OR_RELATION_NAME).
إذا كان الاسم غير مؤهل ولا يشير إلى اسم مستعار للجدول معروف، يحاول Azure Databricks أولا حل الجدول في المخطط الحالي.
إذا كان الاسم مؤهلا بمخطط، يحاول Azure Databricks حل الجدول في الكتالوج الحالي.
راجع الجدول وعرض الدقة للحصول على مزيد من المعلومات حول تحليل الاسم.
يثير Azure Databricks خطأ إذا كنت تستخدم temporal_spec
لجدول غير بتنسيق Delta Lake.
الأمثلة
-- 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);
اسم طريقة العرض
تعريف طريقة عرض. يمكن أن تكون طريقة العرض مؤهلة باسم مخطط أو غير مؤهل باستخدام معرف بسيط.
بناء الجملة
{ [ schema_name . ] view_identifier |
IDENTIFIER clause }
المعلمات
- schema_name: الاسم المؤهل أو غير المؤهل للمخطط الذي يحتوي على طريقة العرض.
- view_identifier: معرف يحدد اسم طريقة العرض أو معرف طريقة العرض ل CTE.
- عبارة IDENTIFIER: تعيين ثابت
STRING
لاسم طريقة عرض.
يمكن أن تحتوي طرق العرض التي تم إنشاؤها في hive_metastore
على أحرف ASCII أبجدية رقمية فقط وتسطير أسفل السطر (INVALID_SCHEMA_OR_RELATION_NAME).
الأمثلة
-- 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;
اسم العمود
تعريف عمود داخل جدول أو طريقة عرض. يمكن أن يكون العمود مؤهلا باسم جدول أو عرض، أو غير مؤهل باستخدام معرف بسيط.
بناء الجملة
{ [ { table_name | view_name } . ] column_identifier |
IDENTIFIER clause }
المعلمات
- table_name: اسم جدول مؤهل أو غير مؤهل للجدول الذي يحتوي على العمود.
- view_name: اسم عرض مؤهل أو غير مؤهل لعرض يحتوي على العمود.
- column_identifier: معرف يحدد اسم العمود.
- عبارة IDENTIFIER: تعيين ثابت
STRING
لاسم عمود.
يجب أن يكون العمود المحدد موجودا داخل الجدول أو طريقة العرض.
يدعم Azure Databricks عمود _metadata خاص. يعد هذا العمود الزائف من نوع البنية جزءا من كل جدول ويمكن استخدامه لاسترداد معلومات بيانات التعريف حول الصفوف في الجدول.
تحذير
إذا كان مخطط الجدول يحتوي على عمود يسمى _metadata
، فسترجع الاستعلامات العمود من مصدر البيانات، وليس بيانات تعريف الملف. _metadata
لن يمكن الوصول إلى العمود الزائف.
يجب ألا تحتوي أسماء الأعمدة في جداول Delta Lake بدون خاصية تعيين العمود ('delta.columnMapping.mode' = 'name'
) على الأحرف ' '
(مسافة) ','
و و ';'
'{'
و '}'
و و'('
')'
. '\n'
و '\t'
و و '='
.
يجب أن يبدأ اسم العمود في AVRO
الجداول بحرف '_'
Unicode أو (بما في ذلك الأحرف غير ASCII) وأن يتبعه مزيج من '_'
أحرف وأرقام Unicode.
الأمثلة
-- 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`);
اسم الحقل
تعريف حقل داخل بنية. يجب أن يكون الحقل مؤهلا مع المسار حتى البنية التي تحتوي على الحقل.
بناء الجملة
{ expr { . field_identifier [. ...] } |
IDENTIFIER clause }
المعلمات
- expr: تعبير من نوع STRUCT.
- field_identifier: معرف يحدد اسم الحقل.
- عبارة IDENTIFIER: تعيين ثابت
STRING
لاسم حقل.
يمكن الرجوع إلى حقل متداخل بشكل عميق عن طريق تحديد معرف الحقل على طول المسار إلى بنية الجذر.
يجب ألا تحتوي أسماء الحقول في جداول Delta Lake بدون خاصية تعيين العمود ('delta.columnMapping.mode' = 'name'
) على الأحرف ' '
(مسافة) ','
و ';'
و '{'
و '}'
و و'('
')'
. '\n'
و '\t'
و و '='
.
يجب أن يبدأ اسم الحقل في AVRO
الجداول بحرف '_'
Unicode أو (بما في ذلك أحرف غير ASCII) وأن يتبعه مزيج من '_'
أحرف وأرقام Unicode.
الأمثلة
> 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;
اسم المتغير
تحديد متغير مؤقت (جلسة عمل).
يمكن تأهيل المتغير باسم مخطط (system.session
أو )، أو session
غير مؤهل باستخدام معرف بسيط.
بناء الجملة
{ [ schema_name . ] variable_identifier |
IDENTIFIER clause }
المعلمات
- schema_name:
system.session
أوsession
الذي يحتوي على كافة المتغيرات المؤقتة. - variable_identifier: معرف يحدد اسم المتغير.
الأمثلة
-- 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;
اسم الوظيفة
تعريف دالة. يمكن أن تكون الدالة مؤهلة باسم مخطط، أو غير مؤهلة باستخدام معرف بسيط.
بناء الجملة
{ [ schema_name . ] function_identifier |
IDENTIFIER clause }
المعلمات
- schema_name: اسم مخطط مؤهل أو غير مؤهل يحتوي على الدالة.
- function_identifier: معرف يحدد اسم الدالة.
- عبارة IDENTIFIER: تعيين ثابت
STRING
لاسم دالة.
يمكن أن تحتوي الدالات التي تم إنشاؤها في hive_metastore
فقط على أحرف ASCII أبجدية رقمية وتسطير أسفل السطر.
الأمثلة
-- 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;
اسم المعلمة
تعريف معلمة في نص دالة SQL المعرفة من قبل المستخدم (SQL UDF). يمكن أن تكون الدالة مؤهلة بمعرف دالة، أو غير مؤهلة باستخدام معرف بسيط.
بناء الجملة
[ function_identifier . ] parameter_identifier
المعلمات
الأمثلة
-- 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`;
الاسم المستعار للجدول
تسمية مرجع جدول أو استعلام أو دالة جدول أو شكل آخر من أشكال العلاقة.
بناء الجملة
[ AS ] table_identifier [ ( column_identifier1 [, ...] ) ]
المعلمات
إذا قمت بتوفير معرفات الأعمدة، فيجب أن يتطابق رقمها مع عدد الأعمدة في العلاقة المتطابقة.
إذا لم توفر معرفات الأعمدة، يتم توريث أسمائها من العلاقة المسماة.
الأمثلة
-- 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 `직원`;
الاسم المستعار للعمود
تسمية نتيجة تعبير في قائمة SELECT
كمرجع.
إذا كان التعبير عبارة عن دالة منشئ قيم الجدول، فإن الاسم المستعار يسم قائمة الأعمدة التي تم إنتاجها.
بناء الجملة
[AS] column_identifier
[AS] ( column_identifier [, ...] )
المعلمات
في حين أن الأسماء المستعارة للعمود لا تحتاج إلى أن تكون فريدة داخل قائمة التحديد، فإن التفرد هو شرط للإشارة إلى اسم مستعار بالاسم.
الأمثلة
-- 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
اسم بيانات الاعتماد
تحديد بيانات اعتماد للوصول إلى التخزين في موقع خارجي أو خدمات سحابية باستخدام SDKs للموفر.
بناء الجملة
credential_identifier
المعلمات
الأمثلة
`my_storage_cred`
my_storage_cred
اسم الموقع
تحديد موقع تخزين خارجي.
بناء الجملة
location_identifier
المعلمات
الأمثلة
`s3-json-data`
s3_json_data
اسم المشاركة
تحديد مشاركة للوصول إلى البيانات التي يشاركها الموفر.
بناء الجملة
share_identifier
المعلمات
الأمثلة
`public info`
`public-info`
public_info
اسم الموفر
تعريف موفر مشاركة دلتا.
بناء الجملة
provider_identifier
المعلمات
-
معرف غير مؤهل يعرف الموفر بشكل فريد.
الأمثلة
`Good Corp`
`Good-corp`
Good_Corp
اسم المستلم
تعريف مستلم لمشاركة.
بناء الجملة
recipient_identifier
المعلمات
الأمثلة
`Good Corp`
`Good-corp`
Good_Corp
تنظيف اسم الغرفة
تحديد غرفة نظيفة لمجموعة من المتعاونين.
بناء الجملة
clean_room_identifier
المعلمات
الأمثلة
`Clean-Room`
Clean_Room
اسم وحدة التخزين
تعريف وحدة تخزين كتالوج Unity. يمكن أن تكون وحدة التخزين مؤهلة باسم مخطط أو غير مؤهل باستخدام معرف بسيط.
بناء الجملة
[ schema_name .] volume_identifier
المعلمات
- schema_name: اسم مخطط مؤهل أو غير مؤهل يحتوي على وحدة التخزين.
- volume_identifier: معرف غير مؤهل يعرف وحدة التخزين داخل المخطط بشكل فريد.
الأمثلة
`myVolume`
`my-volume`
myschema.myVolume
my_unity_catalog.my_schema.my_volume