开发者社区 > 大数据与机器学习 > 开源大数据平台 E-MapReduce > 正文

大数据开发场景里有一个比较典型需求:对数据表做分区。比如对日期字段做分区,但是在写入表之前的原始数据

大数据开发场景里有一个比较典型需求:对数据表做分区。 比如对日期字段做分区,但是在写入表之前的原始数据里可能并没有日期字段,而是时间戳字段。 但eventTime本身是时间戳,但是数据中并没有eventDate的类型。那么应该如何做分区?

展开
收起
游客lmkkns5ck6auu 2022-07-28 15:59:39 393 0
1 条回答
写回答
取消 提交回答
  • 方案1:直接使用时间戳的字段做分区。时间戳是一个比较细粒度的字段,使用它来做会产生大量的分区,对于查询性能会造成非常大的影响。因此,此方案被排除。

    方案2:数据写入表之前手动维护额外字段。比如从eventTime字段中抽取得到eventDate。但这需要人工维护字段,而但凡涉及到人工,就容易引入错误,尤其是多种数据源同时写入的情况,要求对多种数据源同时做转换,极易出现差错。

    因此Delta Lakel .。提供了generated columns,它是一种特殊类型的列,它的值可以根据用户指定的函数自动生成。

    以上内容摘自《Databricks数据洞悉》电子书,点击https://developer.aliyun.com/topic/download?id=8545可下载完整版

    2022-07-29 10:18:43
    赞同 展开评论 打赏

阿里云EMR是云原生开源大数据平台,为客户提供简单易集成的Hadoop、Hive、Spark、Flink、Presto、ClickHouse、StarRocks、Delta、Hudi等开源大数据计算和存储引擎,计算资源可以根据业务的需要调整。EMR可以部署在阿里云公有云的ECS和ACK平台。

相关电子书

更多
大数据AI一体化的解读 立即下载
极氪大数据 Serverless 应用实践 立即下载
大数据&AI实战派 第2期 立即下载