# EMQX Tables

EMQX Tables 是 EMQX Cloud 提供的全托管时序数据库服务。通过 EMQX Broker 的数据集成，可以将 MQTT 消息写入预先创建的表，并在 Cloud Console 中使用 SQL 查询和分析设备数据，无需单独部署和维护数据库。

本页介绍部署在阿里云上的 EMQX Tables 基础版。基础版采用单节点、单可用区部署。有关版本能力和规格，参见 [EMQX Tables 产品版本](./emqx_tables_plans.md)。

![EMQX Tables 架构](./_assets/product_architecture_zh.png)

## 工作原理

EMQX Tables 提供 MQTT 数据写入和 SQL 操作两条主要使用路径。

- **MQTT 数据写入**：规则引擎匹配 MQTT 消息并提取所需字段，写入动作通过 Arrow Flight SQL 和 SQL 模板将字段写入预先创建的目标表。
- **SQL 操作与查询**：可以在 Cloud Console 的**数据查询**页面中创建表、执行 SQL 和查看结果，也可以通过 PostgreSQL 或 Arrow Flight SQL 协议连接数据库客户端。

典型的 MQTT 数据流程如下：

1. 设备向 EMQX Broker 发布 MQTT 消息。
2. 规则引擎匹配消息主题，并筛选或转换消息字段。
3. 写入动作通过 EMQX Tables 连接器将规则输出写入目标表。
4. EMQX Tables 存储时序数据。
5. 使用 Cloud Console 或数据库客户端查询数据。

## 使用条件

创建部署时，必须选择已有网络。如果当前项目没有可用网络，请先创建一个位于阿里云成都区域且处于运行状态的 EMQX Broker 专有版或弹性专有版部署。使用 Broker 集成时，EMQX Broker 和 EMQX Tables 必须位于同一项目并关联同一网络，且 Broker 必须运行 EMQX v6。Tables 创建完成后，也可以不配置 Broker 集成，直接使用 Cloud Console 或数据库客户端查询数据。

## 主要功能

- **MQTT 数据集成**：使用 EMQX 规则引擎筛选、转换消息，并通过 SQL 模板写入目标表。
- **托管时序数据存储**：由 EMQX Cloud 管理数据库部署和基础设施，用于存储持续产生的设备遥测数据。
- **SQL 查询和分析**：通过内置的**数据查询**页面筛选、排序和聚合数据，并以表格或图表查看结果。
- **数据库客户端连接**：支持 PostgreSQL 和 Arrow Flight SQL 连接。公网连接使用 TLS，并使用部署连接信息中显示的用户名和密码进行认证。
- **资源监控**：在 Cloud Console 中查看 CPU、内存、存储和出网流量等指标。

## 适用场景

EMQX Tables 适合希望在 EMQX Cloud 中存储和分析 MQTT 数据的开发者和数据工程团队。

- **设备遥测存储**：保存温度、湿度、振动、电量等随时间变化的测量值。
- **运行状态分析**：按设备或生产线查询运行状态，定位异常时段。
- **历史数据查询**：使用时间范围、设备标识和业务字段筛选历史记录。
- **业务应用开发**：通过 SQL 聚合设备数据，为应用提供统计结果。

## 试用和计费

EMQX Cloud 目前仅提供 2 vCPU / 8 GB 基础版的 14 天免费试用，尚未开放付费部署，且 Tables 部署不产生按小时费用。试用额度和到期处理参见[定价计费](./emqx_tables_pricing.md)。

## 后续步骤

- [快速开始：将 MQTT 数据写入 EMQX Tables](./emqx_tables_quick_start.md)
- [创建 EMQX Tables 部署](./emqx_tables_create_deployment.md)
- [查询 EMQX Tables 数据](./emqx_tables_query_guide.md)
- [集成 EMQX Tables](./integration/emqx_tables_integration_guide.md)
