我的数据结构如下:
s3://project/vehicle1/tbl_vehicle1_speeddata/trip00000001/00000001.parquet
s3://project/vehicle1/tbl_vehicle1_speeddata/trip00000001/00000002.parquet
...
s3://project/vehicle1/tbl_vehicle1_speeddata/trip00000002/00000001.parquet
我目前正在使用AWS Glue准备这些数据,以便通过Athena进行查询。我希望为消息级别创建一个单独的表,即一个表将例如
tbl_vehicle1_speeddata
.
我想保留结构中按trip分组的镶木地板文件。这就是我的原始硬件如何构建数据,并确保行程文件夹中的文件可以与其他行程文件夹的文件名重叠。换言之,trip文件夹级别纯粹充当S3文件夹结构,使其易于使用其他工具(MATLAB、Python…)中的数据。
然而,AWS Glue似乎强制创建
partition_0
列,它指的是每个表的trip子文件夹级别的名称。就其本身而言,这是可以忽略的,但问题是,这意味着每当我们希望能够查询新行程的数据时,都需要运行AWS Glue,即使底层的拼花地板文件在模式结构上是相同的。
我想做的是保留我的S3结构,但强制AWS Glue不自动基于S3路径创建分区,但这似乎是不可能的?
任何关于如何实现这一目标的指导都将是非常棒的。理想情况下,我希望能够通过控制台中的简单设置来实现这一点,但如果这不可能,那么也许可以通过boto3 API。
我不能“手动”编辑每个新表的架构,因为这些表是动态创建的,并使用不同的架构。