Eventhouse 入门

已完成

若要创建事件屋,必须在支持实时智能 Fabric 功能的 Fabric 容量的工作区操作。 然后,可以为数据创建一个或多个 Eventhouse。

Microsoft Fabric 中 Eventhouse 的屏幕截图。

Eventhouse 包含一个或多个 KQL 数据库,可在其中创建表、存储过程、实体化视图和其他项来管理数据。 创建 Eventhouse 后,可以使用默认的 KQL 数据库或创建新数据库。

若要将数据引入 Eventhouse 中的 KQL 数据库,通常是从静态位置(例如本地文件、OneLake、Azure 存储或示例数据集)或实时源(例如 Azure 事件中心或 Fabric 事件流)导入数据。

Microsoft Fabric 中 Eventhouse 的“获取数据”菜单的屏幕截图。

注意

可以为数据库或包含的单个表启用 OneLake 选项,使得这些表中的数据在 OneLake 中可用。

查询 KQL 数据库中的表

若要查询 KQL 数据库中的表中的数据,可以编写 Kusto 查询语言 (KQL) 代码,或使用结构化查询语言 (SQL) 语句的受限子集。

为了更轻松地开发查询,Eventhouse 支持一个或多个 KQL 查询集,它们通过提供示例语法和编码实用工具来简化查询开发。 提供了默认查询集,如果需要,可以创建更多查询集。

KQL 语法直观且简洁,包括各种函数和表达式,便于高效地执行复杂的数据分析。

最简单的 KQL 查询仅包含表名。 例如,若要从名为 Automotive 的表检索所有数据,则可以运行以下查询:

Automotive

此 KQL 查询等效于 SQL 表达式 SELECT * FROM Automotive

鉴于无界限实时数据流的表的大小可能非常大,使用简单的表名称查询并不常见。 如果要从表中检索数据示例,可以使用“take”关键字,如下所示:

Automotive
| take 100

此查询从汽车表返回 100 行(与 SQL SELECT TOP 100 * FROM Automotive 类似)。 请注意,在每个新行上使用 | 字符来分隔查询的子句。

下面是一些常见查询及其 SQL 等效项

检索特定列

  Automotive
  | project  trip_id, pickup_datetime, fare_amount
  SELECT  trip_id, pickup_datetime, fare_amount
  FROM Automotive

筛选行

Automotive
| where fare_amount > 20
| project  trip_id, pickup_datetime, fare_amount
SELECT  trip_id, pickup_datetime, fare_amount
FROM Automotive
WHERE fare_amount > 20

对结果进行排序

Automotive
| where fare_amount > 20
| project trip_id, pickup_datetime, fare_amount
| sort by pickup_datetime desc
SELECT  trip_id, pickup_datetime, fare_amount
FROM Automotive
WHERE fare_amount > 20
ORDER BY pickup_datetime DESC

分组和聚合

Automotive
| summarize trip_count = count() by vendor_id
| project vendor_id, trip_count
SELECT vendor_id, COUNT(*) AS trip_count
FROM Automotive
GROUP BY vendor_id

注意

在上述所有示例中,可以使用 KQL 查询或等效的 SQL 查询从 KQL 数据库中的表检索数据。 每种语言各有所长,对于 KQL 数据库而言,KQL 是首选语言,原因如下:

  • 简易性:KQL 是一种比 SQL 更简单的语言,更易于学习和使用。
  • 性能:KQL 针对性能进行了优化,可以比 SQL 更高效地处理大量数据。
  • 灵活性:KQL 比 SQL 更灵活,允许用户轻松执行复杂的查询。
  • 集成:KQL 与其他 Microsoft 产品(如 Azure Monitor 和 Azure Sentinel)集成。

与 KQL 相比,使用 SQL 的一个主要缺点是,它不是引擎的本机语言,必须经过转换器。 这样的语言差异可防止它直接从 Queryset 发布到 Power BI。

但是,在某些情况下,SQL 可能是一个不错的选择,原因如下:

  • 兼容性:SQL 是一种广泛使用的语言,可与许多不同的数据库系统兼容。
  • 功能:SQL 具有比 KQL 更广泛的函数和功能。
  • 过程编程:SQL 支持过程式编程,使开发人员能够编写复杂的脚本和存储过程。

在查询集中可视化查询结果

虽然最终你可能想要基于查询创建实时仪表板或 Power BI 报表,但在浏览查询集中的数据以创建快速数据可视化效果时,它很有用。 与许多常见的笔记本开发环境一样,KQL 查询集支持以图表形式显示查询结果。

查询集中可视化效果的屏幕截图。

使用 Copilot 协助查询

对于基于 AI 的 KQL 查询协助,可以使用用于实时智能的 Copilot

管理员启用 Copilot 后,可在查询集菜单栏中看到该选项。 Copilot 作为主查询界面的侧边窗格打开。 提出有关数据的问题时,Copilot 会生成 KQL 代码来回答问题。

用于实时智能的 Copilot 的屏幕截图。