更多查询示例
本文档演示了一些典型的查询模式,您可以在Timeplus中实现这些模式来解决各种用例。
创建一个 docker-compose 文件以将Proton图像与数据生成器捆绑在一起。
- 下载 docker-compose.yml 然后放入新文件夹。
- 打开终端并在此文件夹中运行 docker compose up。
- 等待几分钟,提取所有必需的镜像并启动容器。
- 使用 proton-client 运行 SQL 来查询数据:
docker exec-it <folder>-proton-1 proton-1 proton-client
你可以通过docker ps
获取容器名称。
客户场景和数据模型
你是一家汽车共享公司的首席业务分析师。 每辆车都配备了传感器,用于报告汽车位置。 客户使用移动应用程序查找附近的可用汽车,进行预订,解锁并上路。 在行程结束时,客户将汽车停好,上锁,然后结束行程。 将使用注册的信用卡自动付款。
时间敏感型见解的一些典型用例是:
- 用户在某些地点驾驶了多少辆汽车? 我们需要将一些汽车从不太繁忙的地方转移到那些热点区域吗?
- 哪些汽车的行驶速度过快或燃料不足? 服务团队可能需要采取行动。
- 哪些用户继续预订汽车然后取消? 我们是否应向这些用户发送实时通知以避免滥用。
系统中有多个数据流:
dim_user_info
包含所有注册用户信息的相对静态流。
专栏 | 类型 | 示例值 |
---|---|---|
uid | 字符串 | u00001 |
名字_name | 字符串 | Foo |
姓氏 | 字符串 | Bar |
电子邮件地址 | 字符串 | a@timeplus.io |
信用卡 | 字符串 | 371712345678910 |
两性平等 | 字符串 | F |
生日 | 字符串 | 1990-01-15 |
dim_car_info
所有注册汽车的相对静态流
专栏 | 评论 | 类型 | 示例值 |
---|---|---|---|
cid | 汽车身份证 | 字符串 | c00001 |
牌照号 | 字符串 | KM235L | |
服务中 | 如果汽车处于暂停状态(重试或保养中),则返回 false | 布尔值 | 真的 |
car_live_data
包含来自汽车传感器的最新数据的数据流。 当汽车发动机启动时,每秒报告一次数据。 否则,每半小时报告一次数据。
专栏 | 评论 | 类型 | 示例值 |
---|---|---|---|
时间 | 传感器数据的日 期时间 | 日期时间 | 2022-01-12 23:00:58.476 |
cid | 汽车身份证 | 字符串 | c00001 |
经度 | 当前职位 | 浮点数 | 40.75896 |
纬度 | 当前职位 | 浮点数 | -73.985195 |
gas_percent | 气体液位百分比,100 表示油箱已满 | 小数 | 86.12 |
speed_kmh | 当前行驶速度(以 km/h 为单位) | 整数 | 56 |
total_km | 这辆车的总距离(以千米为单位)。 旅行后继续增加 | 浮点数 | 3536 |
锁定 | 汽车是否上锁 | 布尔值 | 真的 |
使用中 | 是否有人在用车 | 布尔值 | 真的 |
预订
包含行程详细信息和付款信息的数据流。 每行都是在预订生命周期内生成的
- 当用户预订汽车时,将出现一个带有 action=add 的新活动,booking_time=now,expire=now+30m
- 当用户解锁汽车时,将出现一个带有 action=service 的新事件
- 当用户完成行程并锁定汽车时,将出现一个名为 action=end 的新事件
- 当用户取消预订时,将出现一个带有 action=cancel 的新活动
- 当用户将预订再延长 30 分钟时,一个带有 action=extend 的新活动,并更新到期字段
- 如果用户未在到期时间之前解锁汽车,则会使用 action=expire 添加新事件
专栏 | 评论 | 类型 | 示例值 |
---|---|---|---|
时间 | 当事件发生时 | 日期时间 | 2022-01-12 13:00:58.476 |
出价 | 预订编号 | 字符串 | b00001 |