栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Java ETL流程

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java ETL流程

1亿行相当多。您可以通过多种方式进行设计:REST服务器,JDBC读取,Spring
Batch
,Spring集成,Hibernate,ETL。但最重要的是: time

无论选择哪种架构,最终都必须在

INSERT
MySQL中执行这些操作。您的里程可能会有所不同,但仅是一个数量级:每秒插入2K次插入MySQL,将需要半天的时间来填充100M行(源)。

根据同一资料来源,

LOAD DATA INFILE
每秒可处理约25K次插入(大约多10倍,大约需要一个小时的工作时间)。

话虽这么多,我建议:

  • 使用可产生人类可读内容(或计算机可读内容,但您必须能够解析它)的本地Oracle数据库工具转储Oracle表

  • 尽可能快地分析转储文件。也许

    grep
    /
    sed
    /
    gawk
    /
    cut
    就足够了?

  • 生成与MySQL兼容的目标文件

    LOAD DATA INFILE
    (它是可配置的)

  • 使用上述命令在MySQL中导入文件

当然,您可以使用美观且可读的代码,经过单元测试和版本控制的Java语言来执行此操作。但是,有了如此大量的数据,您就必须要务实。

那是初始负载。在那之后,Spring
Batch将是一个不错的选择。如果可以的话,请尝试将您的应用程序直接连接到两个数据库,这又会更快。另一方面,出于安全原因,这可能是不可能的。

如果您想变得非常灵活并且不直接将自己绑定到数据库中,请在Web服务后面公开输入(Oracle)和输出(MySQL)(REST也可以)。Spring集成将为您带来很大帮助。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/378847.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号