Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数据从SQLDB复制到hadoop中_Hadoop_Apache Kafka_Architecture_Apache Beam_Debezium - Fatal编程技术网

将数据从SQLDB复制到hadoop中

将数据从SQLDB复制到hadoop中,hadoop,apache-kafka,architecture,apache-beam,debezium,Hadoop,Apache Kafka,Architecture,Apache Beam,Debezium,我正在研究一个用例,在这个用例中,我们将把SQL数据库(600TB~100个表)中的数据转换成hadoop中的转换格式。我们没有在SQL数据库中启用日志。我们决定将数据复制为数据集市视图,并每周刷新此视图。复制的数据将每周擦除以进行重写 此SQL DB用于从datalake派生的报告目的。这个OLTP数据库是我们正在逐步更换的旧系统。每周删除复制的数据集,然后再次复制(刷新) 80%的数据拷贝是直接拷贝,无需转换 20%的人进行了重新设计 我们确定了3种选择: 加工用气流+光束 ETL(in

我正在研究一个用例,在这个用例中,我们将把SQL数据库(600TB~100个表)中的数据转换成hadoop中的转换格式。我们没有在SQL数据库中启用日志。我们决定将数据复制为数据集市视图,并每周刷新此视图。复制的数据将每周擦除以进行重写

此SQL DB用于从datalake派生的报告目的。这个OLTP数据库是我们正在逐步更换的旧系统。每周删除复制的数据集,然后再次复制(刷新)

  • 80%的数据拷贝是直接拷贝,无需转换
  • 20%的人进行了重新设计
我们确定了3种选择:

  • 加工用气流+光束
  • ETL(informatica)被排除在外
  • Kafka(连接、流式传输、汇入hadoop)和optionnaly CDC Debezium
  • 在性能、总体交付时间、数据体系结构方面,您认为最好的方法是什么

    谢谢你的帮助!
    我的想法——为了它们的价值:

  • 我绝对不会希望每周拷贝600TB。考虑到这些数据中的大多数不会在一周到一周之间发生变化(我假设),那么您应该只在发生变化的数据之间进行复制。由于Hadoop中的数据将被分区,因此您将主要将新数据插入新分区-对于那些已更改的记录,您只需删除/重新加载几个分区
  • 我会将所有必要的数据按原样复制到Hadoop中的暂存区中(无需转换),然后在Hadoop平台上对其进行处理,以生成您实际需要的数据—如果需要,您可以删除暂存区数据
  • 数据处理工具-如果您已经在公司拥有特定工具集的经验,请使用该工具;除非现有工具中没有所需的关键功能,否则不要增加使用中的工具集。如果这一个过程就是您将要使用此工具集的全部内容,那么您使用哪一个可能无关紧要—选择一个学习/部署最快的过程。如果此工具集将扩展到其他用例,那么我肯定会使用专用的ETL/ELT工具,而不是使用编码解决方案(为什么您放弃Informatica作为解决方案?)

  • 以下绝对是一个观点

    如果您正在构建一个新的分析平台,我很惊讶您正在使用Hadoop。Hadoop是一种传统技术,已被更现代、功能更强的云数据平台(Snowflake等)所取代


    此外,Hadoop是一个尝试运行分析的可怕平台(它就像一个数据湖一样,在您决定如何处理数据时可以保存数据)。尝试在其上运行与数据分区方式不一致的查询会带来非常糟糕的性能(对于非平凡的数据集大小)。例如,如果您的事务是按日期划分的,那么运行查询以对上周的事务值求和将很快运行。但是,运行查询以对特定帐户(或帐户组)的事务进行求和将非常糟糕

    您真的打算每周删除并重新加载600TB的数据吗?从一周到另一周,数据集是否没有重叠?有多少数据转换——基本上是源表的直接副本还是基本的重新设计(OLTP到OLAP)?为什么要将数据从SQL DB移到Hadoop中?谢谢您的回答。此SQL DB用于从datalake派生的报告目的。这个OLTP数据库是我们正在逐步更换的旧系统。每周删除复制的数据集,然后再次复制(刷新)。80%的数据拷贝是直接的。20%的人进行了重新设计。