在 Azure 存储中创建和更改增量外部表
适用于:✅Azure 数据资源管理器
本文中的命令可用于在执行命令的数据库中创建或更改增量外部表。 增量外部表引用位于 Azure Blob 存储、Azure Data Lake Store Gen1 或 Azure Data Lake Store Gen2 中的 Delta Lake 表数据。
注意
如果该表存在,则 .create
命令会失败并显示错误。 使用 .create-or-alter
或 .alter
修改现有表。
权限
.create
至少需要数据库用户权限,.alter
至少需要表管理员权限。
.create-or-alter
使用托管标识身份验证的外部表需要 AllDatabasesAdmin 权限。
语法
(.create
| .alter
| .create-or-alter
) external
table
TableName [(
Schema)
] kind
=
delta
(
StorageConnectionString )
[with
(
Property [,
...])
]
详细了解语法约定。
参数
客户 | 类型 | 必需 | 说明 |
---|---|---|---|
TableName | string |
✔️ | 遵循实体名称规则的外部表名称。 外部表不能与同一数据库中的常规表具有相同的名称。 |
架构 | string |
可选外部数据架构是包含一个或多个列名称和数据类型的逗号分隔列表,其中的每个项遵循以下格式:ColumnName : ColumnType。 如果未指定,将会基于最新的增量表版本从增量日志自动推理该架构。 |
|
StorageConnectionString | string |
✔️ | 增量表根文件夹路径,包括凭据。 可以指向 Azure Blob 存储 Blob 容器、Azure Data Lake Gen 2 文件系统或 Azure Data Lake Gen 1 容器。 外部表存储类型取决于提供的连接字符串。 请参阅存储连接字符串。 |
属性 | string |
采用 PropertyName = PropertyValue 格式的键值属性对。 请参阅可选属性。 |
注意
提示
对于自定义架构,可以使用 infer_storage_schema 插件根据外部文件内容推理架构。
身份验证和授权
访问外部表的身份验证方法基于在创建外部表期间提供的连接字符串,访问该表所需的权限因身份验证方法而异。
支持的身份验证方法与 Azure 存储外部表支持的方法相同。
可选属性
属性 | 类型 | 说明 |
---|---|---|
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.chinacloudapi.cn/container1;secretKey'
)
创建采用自定义架构的增量外部表
在以下外部表中,指定了一个自定义架构,并且该架构替代了增量表的架构。 如果以后需要将自定义架构替换为基于最新增量表版本推理的架构,请在不指定架构的情况下运行 .alter
| .create-or-alter
命令,如以上示例所示。
.create external table ExternalTable (Timestamp:datetime, x:long, s:string)
kind=delta
(
h@'abfss://filesystem@storageaccount.dfs.core.chinacloudapi.cn/path;secretKey'
)
限制
- 不支持按时间顺序查看。 仅使用最新的增量表版本。