- 授权协议: LGPL
- 开发语言: Ruby
- 操作系统: 跨平台
- 软件首页: http://www.kiba-etl.org/
- 软件文档: https://github.com/thbar/kiba
软件介绍
Kiba 是一个轻量级的 Ruby 的 ETL 框架。
作业定义 xxx.etl:
# declare a ruby method here, for quick reusable logic
def parse_french_date(date)
Date.strptime(date, '%d/%m/%Y')
end
# or better, include a ruby file which loads reusable assets
# eg: commonly used sources / destinations / transforms, under unit-test
require_relative 'common'
# declare a pre-processor: a block called before the first row is read
pre_process do
# do something
end
# declare a source where to take data from (you implement it - see notes below)
source MyCsvSource, 'input.csv'
# declare a row transform to process a given field
transform do |row|
row[:birth_date] = parse_french_date(row[:birth_date])
# return to keep in the pipeline
row
end
# declare another row transform, dismissing rows conditionally by returning nil
transform do |row|
row[:birth_date].year < 2000 ? row : nil
end
# declare a row transform as a class, which can be tested properly
transform ComplianceCheckTransform, eula: 2015
# before declaring a definition, maybe you'll want to retrieve credentials
config = YAML.load(IO.read('config.yml'))
# declare a destination - like source, you implement it (see below)
destination MyDatabaseDestination, config['my_database']
# declare a post-processor: a block called after all rows are successfully processed
post_process do
# do something
end执行作业:bundle exec kiba my-data-processing-script.etl
深度探索C++对象模型(影印版)
Stanley B. Lippman / 中国电力出版社 / 2003-8-1 / 42.00
本书重点介绍了C++面向对象程序设计的底层机制,包括结构式语意、暂时性对象的生成、封装、继承和虚拟——虚拟函数和虚拟继承。书中向你表明:理解底层实现模型,可以极大地提高你的编码效率。Lippman澄清了那些关于C++系统开销与复杂性的各种错误信息和猜测,指出了其中某些成本和利益交换确实存在。他在书中详述了各种实现模型,指出了它们的发展方向以及促使其发展的根本原因。本书涵盖了C++对象模型的语意暗示......一起来看看 《深度探索C++对象模型(影印版)》 这本书的介绍吧!
