<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Smartchart开发手册</title>
    <link>https://help.smartchart.cn/docs/12.%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%8F%B0/smartpip/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BB%BB%E5%8A%A1/</link>
    <description>Recent content on Smartchart开发手册</description>
    <generator>Hugo -- gohugo.io</generator><atom:link href="https://help.smartchart.cn/docs/12.%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%8F%B0/smartpip/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BB%BB%E5%8A%A1/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title></title>
      <link>https://help.smartchart.cn/docs/12.%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%8F%B0/smartpip/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BB%BB%E5%8A%A1/%E5%B8%B8%E7%94%A8%E5%86%85%E7%BD%AE%E5%87%BD%E6%95%B0/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://help.smartchart.cn/docs/12.%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%8F%B0/smartpip/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BB%BB%E5%8A%A1/%E5%B8%B8%E7%94%A8%E5%86%85%E7%BD%AE%E5%87%BD%E6%95%B0/</guid>
      <description> 简介 # SmartPip 提供丰富的内置函数，支持文件上传、数据获取、邮件发送、Shell 执行、SQL 执行、Kettle 任务等多种操作。通过 #diy 驱动调用自定义函数，实现灵活的任务逻辑。
常用内置函数速查 # 功能说明 函数说明 备注 文件上传 smart_upload(csvfilepath) 获取数据 get_dataset(id, param={}) 发送邮件 dash_mail(标题, 内容, 邮件列表) 执行shell run_bash(cmdStr) 执行datax run_datax(&amp;lsquo;DAG名/任务名&amp;rsquo;, para_dict) 执行sql run_sql_file(&amp;lsquo;DAG名/任务名&amp;rsquo;, db_connect=&amp;lsquo;starrocks&amp;rsquo;, para_dict=None) 执行kettle run_kettle(&amp;lsquo;DAG名/任务名.ktr&amp;rsquo;, para_str=&amp;rsquo;&amp;rsquo;) 执行SP run_sp(sp_name, sp_para=None, dev=&amp;rsquo;&amp;rsquo;, db_connect=&amp;lsquo;oracle&amp;rsquo;) 注:
para_dict为字典格式参数 </description>
    </item>
    
    <item>
      <title></title>
      <link>https://help.smartchart.cn/docs/12.%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%8F%B0/smartpip/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BB%BB%E5%8A%A1/%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BE%AA%E7%8E%AF%E6%8A%BD%E5%8F%96/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://help.smartchart.cn/docs/12.%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%8F%B0/smartpip/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BB%BB%E5%8A%A1/%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BE%AA%E7%8E%AF%E6%8A%BD%E5%8F%96/</guid>
      <description>简介 # 当数据库中存在按时间后缀命名的分表（如 order_202001、order_202002），需要汇总到同一目标表时，可使用自定义循环抽取功能。通过 #diy 驱动结合 run_datax() 函数，实现灵活的多表循环同步。
实现步骤速查 # 步骤 操作 1 创建 DataX 抽取任务，配置参数占位符 2 创建 DIY 任务，编写循环逻辑 3 在 DAG 中编排任务依赖 使用方法 # smartpip中已有datax组件, 但只能进行单一表格抽取, 不能增加逻辑 所以我们需要使用到smartpip的diy组件功能 首先我们需要新一个datax抽取任务,在这个任务中我们传递参数ZYM, 比如:
#datax job1 ZYM 之后再新一建一个diy任务, 实现循环抽取:
ZYM = &amp;#39;202001&amp;#39; def fun_job2(): job = os.path.join(ETL_FILE_PATH , &amp;#39;项目名/job1.sql&amp;#39;) report_time = datetime.date(2022,8,1) for i in range(600): zym = report_time.strftime(&amp;#39;%Y%m&amp;#39;) print(zym) if zym &amp;lt; &amp;#39;202001&amp;#39;: break para_dict = {&amp;#34;ZYM&amp;#34;: zym} run_datax(job, para_dict) report_time = (report_time - datetime.</description>
    </item>
    
    <item>
      <title></title>
      <link>https://help.smartchart.cn/docs/12.%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%8F%B0/smartpip/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BB%BB%E5%8A%A1/%E8%8E%B7%E5%8F%96%E6%89%A7%E8%A1%8C%E5%8F%82%E6%95%B0/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://help.smartchart.cn/docs/12.%E6%95%B0%E6%8D%AE%E4%B8%AD%E5%8F%B0/smartpip/%E8%87%AA%E5%AE%9A%E4%B9%89%E4%BB%BB%E5%8A%A1/%E8%8E%B7%E5%8F%96%E6%89%A7%E8%A1%8C%E5%8F%82%E6%95%B0/</guid>
      <description>简介 # SmartPip 基于 Airflow 构建，支持基于时间的任务回跑。通过 execution_date 等内置参数，可以获取任务的执行时间信息，用于实现时间维度的数据处理。
常用时间参数速查 # 参数 格式 说明 ds YYYY-MM-DD 任务执行日期 ds_nodash YYYYMMDD 无分隔符日期 yesterday_ds YYYY-MM-DD 昨天日期 tomorrow_ds YYYY-MM-DD 明天日期 prev_ds YYYY-MM-DD 上次执行日期 使用方法 # &amp;ldquo;execution_date&amp;rdquo;
airflow能向任务传递的参数如下:
{&amp;#39;conf&amp;#39;: , &amp;#39;dag&amp;#39;: , &amp;#39;dag_run&amp;#39;:, &amp;#39;ds&amp;#39;: &amp;#39;2022-07-13&amp;#39;, &amp;#39;ds_nodash&amp;#39;: &amp;#39;20220713&amp;#39;, &amp;#39;execution_date&amp;#39;: DateTime(2022, 7, 13, 2, 4, 33, 244294, tzinfo=Timezone(&amp;#39;+00:00&amp;#39;)), &amp;#39;inlets&amp;#39;: [], &amp;#39;macros&amp;#39;: , &amp;#39;next_ds&amp;#39;: &amp;#39;2022-07-13&amp;#39;, &amp;#39;next_ds_nodash&amp;#39;: &amp;#39;20220713&amp;#39;, &amp;#39;next_execution_date&amp;#39;: DateTime(2022, 7, 13, 2, 4, 33, 244294, tzinfo=Timezone(&amp;#39;+00:00&amp;#39;)), &amp;#39;outlets&amp;#39;: [], &amp;#39;params&amp;#39;: {}, &amp;#39;prev_ds&amp;#39;: &amp;#39;2022-07-13&amp;#39;, &amp;#39;prev_ds_nodash&amp;#39;: &amp;#39;20220713&amp;#39;, &amp;#39;prev_execution_date&amp;#39;: DateTime(2022, 7, 13, 2, 4, 33, 244294, tzinfo=Timezone(&amp;#39;+00:00&amp;#39;)), &amp;#39;prev_execution_date_success&amp;#39;: , &amp;#39;prev_start_date_success&amp;#39;: , &amp;#39;run_id&amp;#39;: , &amp;#39;task&amp;#39;: , &amp;#39;task_instance&amp;#39;: , &amp;#39;task_instance_key_str&amp;#39;: , &amp;#39;test_mode&amp;#39;: False, &amp;#39;ti&amp;#39;: , &amp;#39;tomorrow_ds&amp;#39;: &amp;#39;2022-07-14&amp;#39;, &amp;#39;tomorrow_ds_nodash&amp;#39;: &amp;#39;20220714&amp;#39;, &amp;#39;ts&amp;#39;: &amp;#39;2022-07-13T02:04:33.</description>
    </item>
    
  </channel>
</rss>
