title : “工作坊用例” weight : 10
一家电子商务公司使用无人机从其10个不同的仓库(W01,W02,…,W09)发货,每个仓库有1000架无人机发货(D000,D001,D002,…,D999)。每架无人机每分钟都会发送一条航班跟踪记录,包含其信息和其他跟踪信息。
我们将使用这些无人机数据进行我们的实验室实践。这些由第三方提供的无人机数据每天都会被加载到我们在Amazon S3上的数据湖中的Hudi表中,使用Amazon EMR完成。
:image[用例]{src=”/static/architecture.png” width=700}
我们首先将进行(历史)无人机数据的初始批量加载到我们的Hudi数据集中。然后我们将进行每日新(和更新)无人机数据的加载到我们的Hudi数据集中。
我们将调整Hudi和Spark的配置,以优化第三方数据提供商提供的数据的每日增量的性能,并优化对Hudi数据集的读取性能。
无人机数据有以下字段:
| **字段** | **描述** | **示例** |
|:-----------------------|:-----------------------------------------------|:-----------------------------------------------------------------|
| **drone_id** | 无人机ID | D067 |
| **current_lat** | 当前纬度 | 51.5602581384 |
| **current_lon** | 当前经度 | -0.21450780937 |
| **current_height** | 当前高度 | 45 |
| **current_order_id** | 无人机正在配送的订单 | W0120200102164880 |
| **direction** | 飞行方向 | 1=飞往发货地址, -1=飞往仓库 |
| **loaded** | 无人机是否正在运送包裹 | 0=空, 1=已装载 |
| **package_delivered** | 当前订单是否已经送达 | 1=是, 0=否 |
| **timestamp** | 时间戳 | 202001180918 |
| **warehouse_id** | 无人机所属仓库 | W05 |
| **year** | 年份 | 2020 |
| **month** | 月份 | 8 |
在CSV源存储桶中,无人机数据按*warehouse_id*、*year*和*month*进行分区。
*一个源CSV文件的示例:*

:image[示例]{src=”/static/droneimage1.png” width=400}
:image[示例]{src=”/static/droneimage2.png” width=400}