次の方法で共有


名前

適用対象:「はい」のチェック マーク Databricks SQL 「はい」のチェック マーク Databricks Runtime

Azure Databricks 内のさまざまな種類のオブジェクトを識別します。

Unity カタログ内のすべてのオブジェクト名には、次の制限が適用されます。

  • オブジェクト名は、255 文字以内である必要があります。
  • 次の特殊文字は使用できません:
    • ピリオド (.)
    • 空白 ( )
    • スラッシュ (/)
    • すべての ASCII 制御文字 (16 進数 00 から 1F)
    • DELETE 文字 (16 進数 7F)
  • Unity カタログでは、すべてのオブジェクト名が小文字で格納されます。
  • SQL で UC 名を参照する場合は、バッククォートを使用して、ハイフン (-) などの特殊文字を含む名前をエスケープする必要があります。

Note

列名には特殊文字を使用できますが、特殊文字を使用する場合は、すべての SQL ステートメントでバックティックを使用して名前をエスケープする必要があります。 Unity Catalog では列名での大文字と小文字の区別が保持されますが、Unity Catalog テーブルに対するクエリでは大文字と小文字は区別されません。

[接続名]

外部接続を特定します。 外部接続は、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 }

パラメーター

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 `数据库架构`;

データベース名

はスキーマ名のシノニムです。

SCHEMADATABASE 交換して使用できますが、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 }

パラメーター

  • schema_name: テーブルを含む修飾または非修飾スキーマ名。

  • table_identifier: テーブルまたは table_aliasの名前を指定する識別子。

  • file_format: jsoncsvavroparquetorcbinaryFiletextdelta のいずれか (大文字と小文字は区別されません)。

  • path_to_table: ファイル システム内のテーブルの場所。 この構文を使用するには ANY_FILE アクセス許可が必要です。

  • IDENTIFIER 節: テーブル名に対する定数 STRING のマッピング。

  • temporal_spec: 使用すると、指定した時点またはバージョンで Delta テーブルが参照されます。

    テンポラル仕様は、クエリまたは MERGE USING のコンテキスト内でのみ使用できます。

    • @ timestamp_encoding: yyyyMMddHHmmssSSS 形式でタイムスタンプをエンコードする正の BIGINT リテラル。
    • @V バージョン: Delta テーブルのバージョンを識別する正の整数リテラル。
    • timestamp_expression: TIMESTAMP に評価される単純な式。 timestamp_expressiom は定数式である必要がありますが、current_date() または current_timestamp() を含めることができます。
    • バージョン: Delta テーブルのバージョンを識別する整数リテラルまたは文字列リテラル。
  • option_spec: 使用すると、ストレージの場所にアクセスするための資格情報や、'write.split-size'の動作を制御するためのINSERTなどのデータ ソースに渡されるディレクティブを定義します。

    • option_key

      オプション キー。 キーは、ドットで区切られた 1 つまたは複数の識別子、あるいは文字列リテラルで構成できます。

      オプション キーは一意である必要があり、大文字と小文字が区別されます。

    • option_val

      オプションの値。 BOOLEANSTRINGINTEGER、またはDECIMALの定数式。

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)

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

-- A back quoted relation name
> SELECT * FROM `Employees`;

-- A relation name without back quotes
> SELECT * FROM employees;

-- A schema qualified relation name
> SELECT * FROM hr.employees;

列名

リレーションシップ内の列を識別します。 列は、リレーション名で "修飾する" ことも、単純な識別子を使用して "非修飾にする" こともできます。

構文

{ [ relation_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 }

パラメーター

深く入れ子になったフィールドは、ルート構造体へのパスに沿ってフィールド識別子を指定することで参照できます。

列マッピング プロパティ ('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.sessionsession) で "修飾する" ことも、単純な識別子を使用して "非修飾にする" こともできます。

構文

{ [ schema_name . ] variable_identifier |
  IDENTIFIER clause }

パラメーター


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

パラメーター

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

照合順序名

列または式の照合順序を識別します。

構文

collation_identifier

パラメーター

サポートされている照合順序の一覧については、「サポートされている照合順序 参照してください。 照合順序の詳細については、「照合順序」を参照してください。

> SELECT 'hello' COLLATE UNICODE_CI;
  hello

Credential name (資格情報名)

プロバイダー SDK を使用して、外部の場所またはクラウド サービスのストレージにアクセスするための資格情報を識別します。

構文

credential_identifier

パラメーター

`my_storage_cred`

my_storage_cred

場所の名前

外部の保存場所を識別します。

構文

location_identifier

パラメーター

`s3-json-data`

s3_json_data

共有名

プロバイダーによって共有されるデータにアクセスするための共有を識別します。

構文

share_identifier

パラメーター

`public info`

`public-info`

public_info

プロバイダー名

Delta 共有プロバイダーを識別します。

構文

provider_identifier

パラメーター

`Good Corp`

`Good-corp`

Good_Corp

受信者名

共有の受信者を識別します。

構文

recipient_identifier

パラメーター

`Good Corp`

`Good-corp`

Good_Corp

クリーン ルーム名

コラボレーターのセットに対応するクリーンルームを識別します。

構文

clean_room_identifier

パラメーター

  • 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