使用 “版本 ”下拉列表切换服务。 了解有关导航的详细信息。
适用于: ✅ Azure 数据资源管理器
运算符inline_external_table返回一个表,该表的架构在查询本身中定义或从 Delta Lake 元数据推断,以及从外部存储项目(例如Azure Blob 存储中的 blob 或Azure Data Lake Storage中的文件)读取其数据。
注释
inline_external_table 运算符支持:
- 一组特定的storage服务,如Storage连接字符串下列出。
- 共享Access签名(SAS)密钥、Access密钥、Microsoft Entra 令牌和托管标识身份验证方法。 有关详细信息,请参阅Storage身份验证方法。
Syntax
存储模式
inline_external_table
(
columnName:columnType [, ...] )kind=storage [partitionby(partitionName:partitionType [=表达式] [, ...])][pathformat=(pathFormatElement •)] dataformat=dataFormat(storageConnectionString [, ...] ) [with(propertyName=propertyValue [, ...])]
增量模式
inline_external_table [(columnName:columnType [, ...] )] kind=delta(storageConnectionString)
详细了解语法约定。
Parameters
| 名称 | 类型 | 必需 | 说明 |
|---|---|---|---|
| columnName、 columnType | string |
✔️ for kind=storage |
列名及其类型的列表。 此列表定义表的架构。 在此 kind=delta列表中是可选的。 如果未指定架构,则会从 Delta 日志推断出该架构。 如果指定架构,则列必须存在于 Delta 表中,并且必须使用兼容类型。 |
| kind | string |
✔️ | 内联外部表类型。 支持的值是 storage 和 delta。 |
| partitionName, partitionType, 表达式 | string |
的 kind=storage可选分区列列表。 支持的分区类型是 string, datetime以及 long。 可选表达式将分区列映射到源列表达式。 |
|
| pathFormatElement | string |
的 kind=storage可选路径格式定义。 路径格式可以包括文本路径段、分区列引用和 datetime_pattern() 表达式。 |
|
| dataFormat | string |
✔️ for kind=storage |
外部存储文件的数据格式。 不支持 kind=delta此参数。 |
| storageConnectionString | string |
✔️ | 要查询的storage项目的 storage 连接字符串。
kind=storage 接受一个或多个存储连接字符串。
kind=delta 只需要一个 Delta 表根 URI。 |
| propertyName、propertyValue | string |
可选的 supported 属性列表,用于确定如何解释从storage检索到的数据。 这些属性适用于 kind=storage. |
注释
出于安全原因,请确保 storageConnectionString 属性未指定任何凭据。 如果查询需要指定凭据,请使用 query 参数指定整个连接字符串。
例如,假设查询包含一 URI 个名为其值点的外部存储的查询参数,查询将如下所示:
declare query_parameters(URI:string);
inline_external_table(x:string) kind=storage dataformat=txt (URI)
如果这是不可能的(例如,你正在使用不支持设置查询参数的客户端),请确保使用 模糊字符串文本。
支持的属性
以下属性仅适用于 kind=storage.
| 财产 | 类型 | 说明 |
|---|---|---|
| includeHeaders | string |
文本格式的标头处理。 例如,当 CSV 文件包含标头时,用于 All 跳过每个文件中的第一条记录。 |
| 编码 | string |
指定文本的编码方式,例如 UTF8NoBOM 或 UTF8BOM。 |
| namePrefix | string |
如果已设置,则仅读取具有此名称前缀的文件。 |
| fileExtension | string |
如果已设置,则仅读取具有此文件扩展名的文件。 |
注释
此运算符不接受任何管道输入。
标准查询限制还适用于外部数据查询。
在 kind=delta、 dataformat、 partition by和 pathformat 不支持中。 从 Delta 元数据推断数据格式、分区信息和路径格式。 增量模式只需要一个 Delta 表根 URI。
Returns
该inline_external_table运算符返回一个数据表,该表的数据是从指定的存储项目检索的,由存储连接字符串指示。
在 , kind=storage表架构是在查询中指定的架构。 在查询 kind=delta中指定表架构,或从 Delta 日志推断。 从 Delta 元数据推断的分区列将作为虚拟列返回。
示例
以下示例查询存储在外部存储中的 Parquet 文件。
inline_external_table(Timestamp:datetime, DeviceId:string, Value:real)
kind=storage
dataformat=parquet
(h@"https://mycompanystorage.blob.core.chinacloudapi.cn/iot/2026/06/01/data.parquet?...SAS...")
| summarize AvgValue = avg(Value) by DeviceId
输出
| DeviceId | AvgValue |
|---|---|
| Device-001 | 23.45 |
| Device-002 | 18.92 |
| Device-003 | 31.67 |
以下示例查询存储在外部存储中的多个 CSV 文件。
inline_external_table(Timestamp:datetime, ProductId:string, Quantity:long)
kind=storage
dataformat=csv
(
h@"https://mycompanystorage.blob.core.chinacloudapi.cn/archivedproducts/2026/06/01/part-00000.csv.gz?...SAS...",
h@"https://mycompanystorage.blob.core.chinacloudapi.cn/archivedproducts/2026/06/02/part-00000.csv.gz?...SAS..."
)
with(includeHeaders='All')
| summarize TotalQuantity = sum(Quantity) by ProductId
输出
| ProductId | TotalQuantity |
|---|---|
| PROD-123 | 1500 |
| PROD-456 | 2300 |
| PROD-789 | 870 |
以下示例查询存储在外部存储中的已分区 Parquet 文件。
inline_external_table(Timestamp:datetime, DeviceId:string, Region:string, Value:real)
kind=storage
partition by(
Day:datetime = startofday(Timestamp),
RegionPartition:string = Region
)
pathformat=('day=' datetime_pattern('yyyy/MM/dd', Day) '/region=' RegionPartition)
dataformat=parquet
(h@"https://mycompanystorage.blob.core.chinacloudapi.cn/iotpartitioned;managed_identity=...")
| where Day between (datetime(2026-01-01) .. datetime(2026-01-07))
| summarize AvgValue = avg(Value) by Region
输出
| Region | AvgValue |
|---|---|
| 东 | 27.8 |
| 西 | 22.1 |
| 北 | 19.5 |
| 南 | 31.2 |
以下示例查询 Delta Lake 表根目录。 架构是从 Delta 日志推断的,推断 Amount 列用于筛选。
inline_external_table
kind=delta
(h@"abfss://filesystem@storageaccount.dfs.core.chinacloudapi.cn/delta/customer-events;sharedkey=...")
| where Amount > 0
| take 10
输出
| 时间戳 | 客户ID | 金额 | 事件类型 |
|---|---|---|---|
| 2026-06-01T10:23:45Z | CUST-001 | 150.00 | 购买 |
| 2026-06-01T11:15:30Z | CUST-002 | 75.50 | 购买 |
| 2026-06-01T12:45:00Z | CUST-003 | 200.00 | 购买 |
| 2026-06-01T13:20:15Z | CUST-001 | 50.25 | 购买 |
| 2026-06-01T14:30:00Z | CUST-004 | 125.75 | 购买 |
以下示例使用显式架构查询 Delta Lake 表根目录。
inline_external_table(Timestamp:datetime, CustomerId:string, Amount:real)
kind=delta
(h@"abfss://filesystem@storageaccount.dfs.core.chinacloudapi.cn/delta/customer-events;sharedkey=...")
| summarize TotalAmount = sum(Amount) by CustomerId
输出
| 客户ID | TotalAmount |
|---|---|
| CUST-001 | 1250.75 |
| CUST-002 | 890.50 |
| CUST-003 | 2100.00 |
| CUST-004 | 675.25 |