Azure Storage でデルタ外部テーブルを作成および変更する
この記事のコマンドを使用して、コマンドの実行元のデータベースでデルタ 外部テーブル を作成または変更できます。 デルタ外部テーブルは、Azure Blob Storage、Azure Data Lake Store Gen1、または Azure Data Lake Store Gen2 にある Delta Lake テーブル データを参照します。
Note
テーブルが存在する場合、.create
コマンドは失敗し、エラーが表示されます。 既存のテーブルを変更するには、.create-or-alter
または .alter
を使用します。
アクセス許可
少.create
なくともデータベース ユーザーのアクセス許可を.alter
必要とし、少なくともテーブル 管理のアクセス許可を必要とするには。
マネージド ID 認証を使用する外部テーブルには.create-or-alter
、AllDatabasesAdmin アクセス許可が必要です。
構文
(.create
.alter
| .create-or-alter
| ) external
table
TableName [(
Schema)
] kind
=
(
delta
StorageConnectionString)
[with
(
プロパティ [,
...])
]
構文規則について詳しく知る。
パラメーター
名前 | 型 | 必須 | 説明 |
---|---|---|---|
TableName | string |
✔️ | エンティティ名ルールに準拠する外部テーブル 名 。 外部テーブルは、同じデータベース内の通常のテーブルと同じ名前にすることはできません。 |
[スキーマ] | string |
省略可能な外部データ スキーマは、1 つ以上の列名と データ型のコンマ区切りのリストです。各項目の形式は ColumnName: ColumnType です。 指定しない場合、最新のデルタ テーブル バージョンに基づいてデルタ ログから自動的に推論されます。 |
|
StorageConnectionString | string |
✔️ | 資格情報を含むデルタ テーブルのルート フォルダー パス。 BLOB コンテナー、Azure Data Lake Gen 2 ファイル システム、または Azure Data Lake Gen 1 コンテナー Azure Blob Storageポイントできます。 外部テーブルのストレージの種類は、指定された接続文字列によって決まります。 ストレージ接続文字列に関するページを参照してください。 |
プロパティ | string |
PropertyName= PropertyValue という形式のキーと値のプロパティのペア。 省略可能なプロパティを参照してください。 |
注意
ヒント
カスタム スキーマの場合は、 infer_storage_schema プラグインを使用して、外部ファイルの内容に基づいてスキーマを推論できます。
認証と承認
外部テーブルにアクセスするための認証方法は、作成時に提供される接続文字列に基づいており、テーブルへのアクセスに必要なアクセス許可は認証方法によって異なります。
サポートされている認証方法は、 Azure Storage 外部テーブルでサポートされているものと同じです。
省略可能なプロパティ
プロパティ | Type | 説明 |
---|---|---|
folder |
string |
テーブルのフォルダー |
docString |
string |
テーブルを文書化する文字列 |
namePrefix |
string |
設定した場合、ファイルのプレフィックスを示します。 書き込み操作では、すべてのファイルがこのプレフィックスを使用して書き込まれます。 読み取り操作では、このプレフィックスを持つファイルだけが読み取られます。 |
fileExtension |
string |
設定すると、ファイルの拡張子を示します。 書き込み時には、ファイル名の末尾がこのサフィックスになります。 読み取り時には、このファイル拡張子を持つファイルのみが読み取られます。 |
encoding |
string |
テキストのエンコード方法を示します: UTF8NoBOM (既定値) または UTF8BOM 。 |
dryRun |
bool |
設定した場合、外部テーブル定義は保持されません。 このオプションは、特に filesPreview または sampleUris パラメータと組み合わせて、外部テーブル定義を検証するのに便利です。 |
注意
外部デルタ テーブルは、作成時に、パーティション情報と必要に応じてスキーマを推論するためにアクセスされます。 テーブル定義が有効であり、ストレージにアクセスできることを確認します。
例
推論されたスキーマを使用してデルタ外部テーブルを作成または変更する
次の外部テーブルでは、スキーマは最新のデルタ テーブル バージョンから自動的に推論されます。
.create-or-alter external table ExternalTable
kind=delta
(
h@'https://storageaccount.blob.core.windows.net/container1;secretKey'
)
カスタム スキーマを使用してデルタ外部テーブルを作成する
次の外部テーブルでは、カスタム スキーマが指定され、デルタ テーブルのスキーマがオーバーライドされます。 後で、カスタム スキーマを最新のデルタ テーブル バージョンに基づくスキーマに置き換える必要がある場合は、前の例のようにスキーマを指定せずに コマンドを実行 .alter
| .create-or-alter
します。
.create external table ExternalTable (Timestamp:datetime, x:long, s:string)
kind=delta
(
h@'abfss://filesystem@storageaccount.dfs.core.windows.net/path;secretKey'
)
制限事項
- タイム トラベルはサポートされていません。 最新のデルタ テーブル バージョンのみが使用されます。
関連コンテンツ
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示