gpt4 book ai didi

hadoop - 如何使用flink将增量数据写入配置单元

转载 作者:行者123 更新时间:2023-12-02 20:31:32 27 4
gpt4 key购买 nike

我使用flink 1.6,我知道我可以使用自定义接收器和配置单元jdbc来写入配置单元,或者使用JDBCAppendTableSink,但是它仍然使用jdbc。问题是配置单元jdbc不要支持batchExecute方法。我认为它将非常慢。

然后我寻找另一种方法,我使用writeAsText方法将数据集写入hdfs,然后从hdfs创建配置单元表。但是仍然存在一个问题:如何追加增量数据。
WriteMode的api是:

Enum FileSystem.WriteMode
Enum Constant and Description
NO_OVERWRITE
Creates the target file only if no file exists at that path already.
OVERWRITE
Creates a new target file regardless of any existing files or directories.

例如,第一批,我将9月的数据写到 hive ,然后我得到10月的数据,我想附加它。

但是如果我对同一个hdfs文件使用 OVERWRITE,则9月份的数据将不复存在,如果我使用 NO_OVERWRITE,则必须将其写入新的hdfs文件,然后创建一个新的配置单元表,我们需要它们在同一个配置单元表中。而且我不知道如何将2个hdfs文件组合到配置单元表中。

那么如何使用flink将增量数据写入配置单元呢?

最佳答案

正如您已经写过的,没有HIVE接收器。我猜默认模式是将文件(文本,avro,parquett)写入HDFS,并在该目录上定义一个外部配置单元表。那里是单个文件还是多个文件都没有关系。但是您很可能必须定期修复此表(msck repair table <db_name>.<table_name>;)。这将更新元数据,并且新文件将可用。

对于大量数据,我建议对表进行分区并按需添加分区(此博客文章可能会给您一个提示:https://resources.zaloni.com/blog/partitioning-in-hive)。

关于hadoop - 如何使用flink将增量数据写入配置单元,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53147864/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com