8000 GitHub - thbar/kiba at v2.0.0
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

thbar/kiba

Repository files navigation

If you need help, please ask your question with tag kiba-etl on StackOverflow so that other can benefit from your contribution! I monitor this specific tag and will reply to you.

Writing reliable, concise, well-tested & maintainable data-processing code is tricky.

Kiba lets you define and run such high-quality ETL (Extract-Transform-Load) jobs using Ruby.

Learn more on the Wiki, on my blog and on StackOverflow.

Gem Version Build Status Build status Code Climate Dependency Status

Kiba 2.0.0.rc1

Kiba 2.0.0.rc1 (available via gem install kiba --prerelease) is available for testing.

New StreamingRunner engine

Kiba 2 introduces a new, opt-in engine called the StreamingRunner, which allows to generate an arbitrary number of rows inside transforms. This drastically improves the reusability & composability of Kiba components (see #44 for some background).

To use the StreamingRunner, use the following code:

# activate the new Kiba internal config system
extend Kiba::DSLExtensions::Config
# opt-in for the new engine
config :kiba, runner: Kiba::StreamingRunner

# write transform class able to yield an arbitrary number of rows
class MyYieldingTransform
  def process(row)
    yield {key: 1}
    yield {key: 2}
    {key: 3}
  end
end

The improved runner is compatible with Ruby 2.0+.

Compatibility with Kiba 1

Kiba 2 is expected to be compatible with existing Kiba scripts as long as you did not use internal API.

Internal changes include:

  • An opt-in, Elixir's mix-inspired config system, currently only used to select the runner you want at job declaration time
  • A stronger isolation in the Parser, to reduces the chances that ETL scripts could conflict with Kiba internal classes

Getting Started

Useful links

Supported Ruby versions

Kiba currently supports Ruby 2.0+ and JRuby (with its default 1.9 syntax). See test matrix.

Kiba Common

I'm starting to add commonly used reusable helpers in a separate gem called kiba-common, check it out (work-in-progress).

ETL consulting & commercial version

Consulting services: if your organization needs help to implement a data pipeline or to build a data-intensive application, I provide consulting services. More information.

Kiba Pro: for more features & goodies, check out Kiba Pro (Changelog & contact info).

License

Copyright (c) LoGeek SARL. Kiba is an Open Source project licensed under the terms of the LGPLv3 license. Please see http://www.gnu.org/licenses/lgpl-3.0.html for license text.

Contributing & Legal

(agreement below borrowed from Sidekiq Legal)

By submitting a Pull Request, you disavow any rights or claims to any changes submitted to the Kiba project and assign the copyright of those changes to LoGeek SARL.

If you cannot or do not want to reassign those rights (your employment contract for your employer may not allow this), you should not submit a PR. Open an issue and someone else can do the work.

This is a legal way of saying "If you submit a PR to us, that code becomes ours". 99.9% of the time that's what you intend anyways; we hope it doesn't scare you away from contributing.

About

Data processing & ETL framework for Ruby

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Contributors 5

Languages

0