我现在的问题是有一个大的事实表,已经有数十亿条数据,过来的临时表需要merge进去. 临时表的大小也不确定,可能上十亿也可能只有几百几千万而已.

如果直接让这两个表merge起来,则需要很大的内存来进行处理.所以我就想着把数据进行按时间拆分的处理,然后merge进去,

拆分的条件是如果临时表的数据量大于三亿条,我就按二亿条左右一个批次进行merge.

总体设计完的package是这样的:

1.第一步,获取总的行数,然后分支下去进行判断.d大于三亿则拆分,否则只执行一次.

2.第二步,获取拆分的数据信息,生成开始时间与结束时间列表.因为我访问的数据库是vertica,语法与tsql略有差异.

我的示例vsql如下:

select

min(yearmonthday)::varchar as startdate,

timestampadd(day,1,max(yearmonthday))::varchar as enddate

FROM

(

select

sum(count(*)) over(order by run_strt_ts::timestamp::char(10)) as totalcount,

floor(sum(count(*)) over(order by run_strt_ts::timestamp::char(10))/200000000) as lvl,

run_strt_ts::timestamp::char(10)::timestamp as yearmonthday

from schemaname.tablename

group by run_strt_ts::timestamp::char(10)

) AS A

group by lvl order by lvl

生成类似的结果集:

这一步我使用了一个Execute sql task对象,配置为返回Full Result Set,传递一个object类型的变量接收.

刚开始我的设计不是这样的,我使用dataflowtask,然后里面一个ado.net source 去获取数据,传递给一个记录集destination.但总是报如下的异常:

所以我就改用现在的设计.

3.第三步就是使用一个Foreach look container,传递两个变量去接收返回的startdate与enddate.

接着就简单了,装配tsql,传递 给一个Execute sql task 任务.

转载于:https://www.cnblogs.com/huaxiaoyao/p/3683245.html

数据按时间拆开分批处理示例相关推荐

  1. Python实现进度条和时间预估的示例代码

    一.前言 在python当中可以用进度条来显示工作的进度,比如for循环的进度或者一些模型训练的进度. 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪 ...

  2. python图形化进度条代码_Python实现进度条和时间预估的示例代码

    一.前言 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例的人,却不知道如何去学习更加高深的知识. 那么针对这三类人,我 ...

  3. 老黄历java_基于聚合数据的老黄历接口调用示例-JAVA版

    本文介绍聚合数据的老黄历接口的使用 依赖 net.sf.json-lib json-lib 2.2.3 jdk15 代码部分 package com.example.demo; import net. ...

  4. R语言实现金融数据的时间序列分析及建模

    R语言实现金融数据的时间序列分析及建模 一 移动平均    移动平均能消除数据中的季节变动和不规则变动.若序列中存在周期变动,则通常以周期为移动平均项数.移动平均法可以通过数据显示出数据长期趋势的变动 ...

  5. python结果输出到excel-python实现数据导出到excel的示例--普通格式

    此文是在django框架下编写,从数据库中获取数据使用的是django-orm 用python导出数据到excel,简单到爆!(普通的excel格式) 安装xlwt pip install xlwt ...

  6. python输出数据到excel-python实现数据导出到excel的示例

    这篇文章主要介绍了关于python实现数据导出到excel的示例,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 此文是在django框架下编写,从数据库中获取数据使用的是django- ...

  7. python输出数据到excel-python实现数据导出到excel的示例--普通格式

    此文是在django框架下编写,从数据库中获取数据使用的是django-orm 用python导出数据到excel,简单到爆!(普通的excel格式) 安装xlwt pip install xlwt ...

  8. java8 - 新的时间日期API示例

    Java 8之前的库对时间和日期的支持非常不理想,不用担心,在Java 8中引入全新的时间和日期API,并且都是线程安全的 新时间日期API常用对象介绍 LocalDate: 表示没有时区的日期, L ...

  9. 网游服务端php5.1时间戳格式化,php格式化时间戳显示友好时间的简单示例

    这篇文章主要为大家详细介绍了php格式化时间戳显示友好时间的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧! 在项目中时间一律显示为2014-1 ...

最新文章

  1. 深入浅出Docker(一):Docker核心技术预览
  2. PHP 不跳转界面取input值进行验证_【Python】tesseract+uiautomator2+夜神模拟器 悠长假期手游集市识别验证码自动购买 - Amorius...
  3. Mac安装MATLAB 2017b
  4. 【IDEA】idea es 报错 Cause: invalid type code: 2D
  5. iOS APP中第三方APP调用自己的APP,打开文件
  6. 鼠标模拟器,减轻你的重复操作!
  7. K610D i7 D2 HM86 HD4600 安装 Mac OS 10.15.2 提供工具和EFI
  8. MicroPython ESP32 ADC(模拟量转数字量)示例
  9. python3之面向对象实例烤地瓜
  10. php自我介绍50字,【自我介绍50字左右】自我介绍50字
  11. Unity+Vuforia实现AR图片识别应用
  12. Java实现控制台版CS
  13. java lifo 队列_java - 如何在LIFO模式下实现链接的阻塞队列 - SO中文参考 - www.soinside.com...
  14. 计算共形几何-微分几何
  15. cf----2019-09-14(You Are Given a Decimal String...,XOR Guessing,Boxers)
  16. 基金涨跌简单模拟0.01
  17. 只需4步,让PDF阅读最优化!
  18. MyBatis Eclipse 配置DTD文件 MyBatis Idea配置DTD文件
  19. EaselJS 事件
  20. encode and decode

热门文章

  1. linux挂载目录到分区,Ubuntu7.10下挂载/home目录到一个分区的方法
  2. mysql 大表 备份_MySQL大表备份的简单方法
  3. 常用于解决放缩问题的基本不等式及其几何直观证明
  4. ppt怎么加注解文字_PPT怎么在演示稿中添加批注的方法
  5. matlab weibpdf函数,matlab建模常用函数
  6. lntellijidea怎么创建文件_DBC文件到底是个啥
  7. Spring Boot swagger之前后端分离
  8. mysql frm 英文全称_FRM考试是中文还是英文?
  9. 我的Go+语言初体验——(1)超详细安装教程
  10. youcans 的 OpenCV 学习课—1.安装与环境配置