名前
適用対象: Databricks SQL Databricks Runtime
Azure Databricks 内のさまざまな種類のオブジェクトを識別します。
Unity Catalog 内のすべてのオブジェクト名には、次の制限事項が適用されます:
- オブジェクト名は、255 文字以内である必要があります。
- 次の特殊文字は使用できません:
- ピリオド (
.
) - 空白 (
- スラッシュ (
/
) - すべての ASCII 制御文字 (16 進数 00 から 1F)
- DELETE 文字 (16 進数 7F)
- ピリオド (
- Unity Catalog では、すべてのオブジェクト名が小文字で格納されます。
- SQL で UC 名を参照する場合は、バッククォートを使用して、ハイフン (
-
) などの特殊文字を含む名前をエスケープする必要があります。
Note
列名には特殊文字を使用できますが、特殊文字を使用する場合は、すべての SQL ステートメントで、バッククォートを使用してその名前をエスケープする必要があります。 Unity Catalog では列名での大文字と小文字の区別が保持されますが、Unity Catalog テーブルに対するクエリでは大文字と小文字は区別されません。
[接続名]
外部接続を特定します。
外部接続は、PostgreSQL
などの外部システムへのリンクとして機能し、その後、そのカタログ、スキーマ、テーブルを参照するために使用できます。
構文
connection_identifier
パラメーター
- connection_identifier: 接続を一意に特定する識別子。
例
> CREATE CONNECTION my_postgresql ...;
[カタログ名]
カタログを識別します。 カタログは、さらにスキーマに細分化できるオブジェクトのグループを提供します。
構文
catalog_identifier
パラメーター
- 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 [ 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 )
パラメーター
schema_name: テーブルを含むスキーマの修飾名または非修飾名。
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:
yyyyMMddHHmmssSSS
形式でタイムスタンプをエンコードする正の BIGINT リテラル。 - @V version: Delta テーブルのバージョンを識別する正の整数リテラル。
- timestamp_expression: TIMESTAMP に評価される単純な式。
timestamp_expressiom
は定数式である必要がありますが、current_date()
またはcurrent_timestamp()
を含めることができます。 - version: Delta テーブルのバージョンを識別する整数リテラルまたは文字列リテラル。
- @ timestamp_encoding:
credential_spec
適切な資格情報を使用して、外部の場所に埋め込まれていない
path_to_table
にアクセスできます。-
保存場所へのアクセスに使用する資格情報の名前。
-
hive_metastore
で作成されたテーブルには、英数字の ASCII 文字とアンダースコア (INVALID_SCHEMA_OR_RELATION_NAME) のみを含めることができます。
名前が修飾されておらず、既知のテーブル別名を参照していない場合、Azure Databricks はまず現在のスキーマ内のテーブルの解決を試みます。
名前がスキーマで修飾されている場合、Azure Databricks は現在のカタログ内のテーブルの解決を試みます。
名前解決の詳細については、テーブルとビューの解決に関するページを参照してください。
Delta Lake 形式ではないテーブルに temporal_spec
を使用すると、Azure Databricks でエラーが発生します。
例
-- 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);
ビューの名前
ビューを識別します。 ビューは、スキーマ名で "修飾する" ことも、単純な識別子を使用して "非修飾にする" こともできます。
構文
{ [ 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.columnMapping.mode' = 'name'
) がない Delta Lake テーブルの列名には、' '
(スペース)、','
、';'
、'{'
、'}'
、'('
、')'
を含めてはいけません。 '\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.columnMapping.mode' = 'name'
) がない Delta Lake テーブルのフィールド名には、' '
(スペース)、','
、';'
、'{'
、'}'
、'('
、')'
を含めてはいけません。 '\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
。 - table_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
パラメーター
- 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 [, ...] ) ]
パラメーター
- table_identifier: テーブルの名前を指定する識別子。
- column_identifierN: 列の名前を指定する省略可能な識別子。
列識別子を指定する場合、その数は、一致する関係内の列数と一致する必要があります。
列識別子を指定しない場合、その名前は、ラベル付きの関係から継承されます。
例
-- 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 [, ...] )
パラメーター
- 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
Credential name (資格情報名)
外部の場所にあるストレージにアクセスするための資格情報を識別します。
構文
credential_identifier
パラメーター
- credential_identifier: 資格情報を一意に識別する非修飾識別子。
例
場所の名前
外部の保存場所を識別します。
構文
location_identifier
パラメーター
- location_identifier: 場所を一意に識別する非修飾識別子。
例
`s3-json-data`
s3_json_data
共有名
プロバイダーによって共有されるデータにアクセスするための共有を識別します。
構文
share_identifier
パラメーター
- share_identifier: 共有を一意に識別する非修飾識別子。
例
`public info`
`public-info`
public_info
プロバイダー名
Delta 共有プロバイダーを識別します。
構文
provider_identifier
パラメーター
-
プロバイダーを一意に識別する非修飾識別子。
例
`Good Corp`
`Good-corp`
Good_Corp
受信者名
共有の受信者を識別します。
構文
recipient_identifier
パラメーター
- recipient_identifier: 受信者を一意に識別する非修飾識別子。
例
`Good Corp`
`Good-corp`
Good_Corp
ボリューム名
Unity Catalog ボリュームを特定します。 ボリュームは、スキーマ名で "修飾する" ことも、単純な識別子を使用して "非修飾にする" こともできます。
構文
[ schema_name .] volume_identifier
パラメーター
- schema_name: そのボリュームを含むスキーマの修飾名または非修飾名。
- volume_identifier: スキーマ内のボリュームを一意に特定する非修飾識別子。
例
`myVolume`
`my-volume`
myschema.myVolume
my_unity_catalog.my_schema.my_volume