gpt4 book ai didi

hadoop - 我们如何在 SQOOP 中自动化增量导入?

转载 作者:可可西里 更新时间:2023-11-01 14:20:42 25 4
gpt4 key购买 nike

我们如何在 SQoop 中自动执行增量导入?

在增量导入中,我们需要给--last-value从最后一个值开始导入,但我的工作是经常从RDBMS导入,我不想手动给出最后一个值,有没有什么方法可以使这个过程自动化?

最佳答案

@Durga Viswanath Gadiraju 回答的另一种方法。

如果您正在将数据导入到配置单元表中,您可以从配置单元表中查询最后更新的值并将该值传递给 sqoop 导入查询。您可以使用 shell 脚本或 oozie 操作来实现此目的。

外壳脚本:

lastupdatedvalue=`hive -e 'select last_value from table` #tweak the selection query based on the logic.

sqoop import --connect jdbc:mysql://localhost:3306/ydb --table yloc --username root -P --incremental append --last-value ${lastupdatedvalue}

Oozie 方法:

  1. 基于检索逻辑的选择查询的 Hive 操作最后更新的值。
  2. Sqoop 操作用于从先前的配置单元操作捕获的输出中进行增量加载。

PFB sudo 工作流程:

<workflow-app name="sqoop-to-hive" xmlns="uri:oozie:workflow:0.4">
<start to="hiveact"/>
<action name="hiveact">
<hive xmlns="uri:oozie:hive-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<configuration>
<property>
<name>mapred.job.queue.name</name>
<value>${queueName}</value>
</property>
</configuration>
<script>script.sql</script>
<capture-output/>
</hive>
<ok to="sqoopact"/>
<error to="kill"/>

<action name="sqoopact">
<sqoop xmlns="uri:oozie:sqoop-action:0.2">
<job-tracker>${jobTracker}</job-tracker>
<name-node>${nameNode}</name-node>
<command>import --connect jdbc:mysql://localhost:3306/ydb --table yloc --username root -P --incremental append --last-value ${wf:actionData('hiveact')}</command>
</sqoop>
<ok to="end"/>
<error to="kill"/>
</action>
<kill name="kill">
<message>Action failed</message>
</kill>
<end name="end"/>

希望这对您有所帮助。

关于hadoop - 我们如何在 SQOOP 中自动化增量导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34771407/

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