parquet模式演化策略

3wabscal  于 2021-06-24  发布在  Hive
关注(0)|答案(0)|浏览(355)

我们有一个嵌套的(在多个级别上)json作为parquet模式。该模式用于使用配置单元中的外部表从s3读取parquet。
现在模式已经演变:
我们删除并添加了一些列。
更改了某些列的含义(例如->千克到磅)
更新是在深度嵌套在模式树中的属性上完成的。
我们有哪些选择来支持这种演变?
将所有现有的parquet迁移到新模式(读取旧数据、应用新模式、将其写回新位置、更新配置单元表定义)
使用配置单元视图处理架构更改。
或者任何其他随着模式不断发展而扩展的选项。
添加/删除新列有点简单,只需更新配置单元表定义即可。
我们尝试了一种方法#1(迁移数据)来处理数据子集,并计算了完全迁移的成本。我们正在寻找方法,看看我们是否可以避免这一成本,因为我们一天的数据约为100 GB,我们有3-4年的数据。
创建配置单元视图似乎很复杂,因为我们还必须模拟视图中模式的嵌套,以避免数据扁平化。
模式的一个例子是:

A
|
|-> B
|  |
|  |-> C
|  |-> D
|  |   |-> E          (Say this is changed from KG to POUND)
|  |   |-> F          
|  |   |-> G          (Removed)
|  |   |-> H          (Added)
|  |   |   |-> H1
|  |   |   |-> H2
|  |
|  |-> I
|  |   |-> J
|  |   |-> K
|
|-> L

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题