在 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) externaltableTableName [(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 格式的键值属性对。 请参阅可选属性

注意

  • 如果提供了自定义架构,则将使用 null 值填充不存在的列或具有不兼容类型的列。
  • 从增量日志自动推理有关分区的信息。 分区列作为虚拟列添加到表架构中。 有关详细信息,请参阅虚拟列
  • 从分区信息自动推理路径格式。 有关详细信息,请参阅路径格式

提示

对于自定义架构,可以使用 infer_storage_schema 插件根据外部文件内容推理架构。

身份验证和授权

访问外部表的身份验证方法基于在创建外部表期间提供的连接字符串,访问该表所需的权限因身份验证方法而异。

支持的身份验证方法与 Azure 存储外部表支持的方法相同。

可选属性

属性 类型​​ 说明
folder string 表的文件夹
docString string 用来记录表的字符串
namePrefix string 如果设置了此项,则表示文件的前缀。 在写入操作中,所有文件都将用此前缀来写入。 在读取操作中,将只读取具有此前缀的文件。
fileExtension string 如果设置了此项,则表示文件的文件扩展名。 写入时,文件名将以此后缀结尾。 读取时,将只读取具有此文件扩展名的文件。
encoding string 表示文本编码方式:UTF8NoBOM(默认值)或 UTF8BOM
dryRun bool 如果设置了此属性,则不会保留外部表定义。 此选项对于验证外部表定义很有用,特别是在与 filesPreviewsampleUris 参数一起使用的情况下。

注意

将在创建期间访问外部增量表,以推理分区信息和可选的架构。 请确保表定义有效并且存储可供访问。

示例

创建或更改采用推理架构的增量外部表

在以下外部表中,架构是基于最新的增量表版本自动推理出来的。

.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'
)

限制

  • 不支持按时间顺序查看。 仅使用最新的增量表版本。