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文件的示例:*

![](https://static.us-east-1.prod.workshops.aws/public/3556f534-9037-4ad4-9890-7f9c20a5d551/static/dataset_drone.png)

  • 对于一个丢失的订单,了解运送它的无人机的路径。

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

  • 收集某个特定无人机在一定时间范围内(即,一整天)的移动轨迹。

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