我正在为Oozie安排一个sqoop工作,以便将每日数据加载到Hive中.
我想基于Date作为参数对hive进行增量加载,该参数将传递给sqoop作业
研究完之后,我无法找到将参数传递给Sqoop作业的方法
您可以通过将日期分为两个阶段来完成此操作:
在您的协调器中,您可以将日期传递给它执行的工作流<property>,如下所示:
<coordinator-app name="schedule" frequency="${coord:days(1)}"
start="2015-01-01T00:00Z" end="2025-01-01T00:00Z"
timezone="Etc/UTC" xmlns="uri:oozie:coordinator:0.2">
...
<action>
<workflow>
<app-path>${nameNode}/your/workflow.xml</app-path>
<configuration>
<property>
<name>workflow_date</name>
<value>${coord:formatTime(coord:nominalTime(), 'yyyyMMdd')}</value>
</property>
</configuration>
</workflow>
</action>
...
</coordinator-app>
Run Code Online (Sandbox Code Playgroud)
在您的工作流程中,您可以使用${workflow_date}变量在Sqoop调用中引用该属性,如下所示:
<sqoop xmlns="uri:oozie:sqoop-action:0.2">
...
<command>import --connect jdbc:connect:string:here --table tablename --target-dir /your/import/dir/${workflow_date}/ -m 1</command>
...
</sqoop>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6728 次 |
| 最近记录: |