All Projects → Voyz → Databay

Voyz / Databay

Licence: apache-2.0
Databay is a Python interface for scheduled data transfer. It facilitates transfer of (any) data from A to B, on a scheduled interval.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Databay

Holiday Cn
📅🇨🇳 中国法定节假日数据 自动每日抓取国务院公告
Stars: ✭ 157 (-10.29%)
Mutual labels:  data
Winhue
Controlling the Philips Hue lighting system from your Windows PC.
Stars: ✭ 167 (-4.57%)
Mutual labels:  schedule
General Store
Simple, flexible store implementation for Flux. #hubspot-open-source
Stars: ✭ 171 (-2.29%)
Mutual labels:  data
Gobblin
A distributed data integration framework that simplifies common aspects of big data integration such as data ingestion, replication, organization and lifecycle management for both streaming and batch data ecosystems.
Stars: ✭ 2,006 (+1046.29%)
Mutual labels:  data
Stats
A well tested and comprehensive Golang statistics library package with no dependencies.
Stars: ✭ 2,196 (+1154.86%)
Mutual labels:  data
Airbyte
Airbyte is an open-source EL(T) platform that helps you replicate your data in your warehouses, lakes and databases.
Stars: ✭ 4,919 (+2710.86%)
Mutual labels:  data
Schedule
Schedule is a package that helps tracking schedules for your models. If you have workers in a company, you can set schedules for them and see their availability though the time.
Stars: ✭ 155 (-11.43%)
Mutual labels:  schedule
Everypolitician Data
data for national legislatures worldwide
Stars: ✭ 174 (-0.57%)
Mutual labels:  data
Pytubes
A module for getting data into python from large data sources
Stars: ✭ 164 (-6.29%)
Mutual labels:  data
Data Science Resources
👨🏽‍🏫You can learn about what data science is and why it's important in today's modern world. Are you interested in data science?🔋
Stars: ✭ 171 (-2.29%)
Mutual labels:  data
Clock
A low consumption, low latency support for frequent updates of large capcity timing manage
Stars: ✭ 161 (-8%)
Mutual labels:  schedule
Pandas Datareader
Extract data from a wide range of Internet sources into a pandas DataFrame.
Stars: ✭ 2,183 (+1147.43%)
Mutual labels:  data
Onyx
Distributed, masterless, high performance, fault tolerant data processing
Stars: ✭ 2,019 (+1053.71%)
Mutual labels:  data
React Native Quiet
🤫 Quiet for React Native.
Stars: ✭ 158 (-9.71%)
Mutual labels:  data
Lfai Landscape
🌄 Open Source AI Landscape - provides overview of top tier projects in the open source AI ecosystem, shows projects through GitHub data, funding or market cap, first and last commits, contributor count and much other information.
Stars: ✭ 172 (-1.71%)
Mutual labels:  data
Scheduler Card
HA Lovelace card for control of scheduler entities
Stars: ✭ 154 (-12%)
Mutual labels:  schedule
Covid 19 Uk Data
Coronavirus (COVID-19) UK Historical Data
Stars: ✭ 169 (-3.43%)
Mutual labels:  data
Grafter
Linked Data & RDF Manufacturing Tools in Clojure
Stars: ✭ 174 (-0.57%)
Mutual labels:  data
Owllook
owllook-小说搜索引擎
Stars: ✭ 2,163 (+1136%)
Mutual labels:  schedule
Exportsheetdata
Add-on for Google Sheets that allows sheets to be exported as JSON or XML.
Stars: ✭ 170 (-2.86%)
Mutual labels:  data

This library is currently being beta-tested. See something that's broken? Did we get something wrong? Create an issue and let us know!

Databay title

Databay is a Python interface for scheduled data transfer. It facilitates transfer of (any) data from A to B, on a scheduled interval.

Installation

pip install databay

Documentation

See full Databay documentation.

Or more specifically:

Features

Overview

In Databay, data transfer is expressed with three components:

  • Inlets - for data production.
  • Outlets - for data consumption.
  • Links - for handling the data transit between inlets and outlets.

Scheduling is implemented using third party libraries, exposed through the BasePlanner interface. Currently two BasePlanner implementations are available - using Advanced Python Scheduler and Schedule.

A simple example:

# Data producer
inlet = HttpInlet('https://some.test.url.com/')

# Data consumer
outlet = MongoOutlet('databay', 'test_collection')

# Data transfer between the two
link = Link(inlet, outlet, datetime.timedelta(seconds=5))

# Start scheduling
planner = ApsPlanner(link)
planner.start()

Every 5 seconds this snippet will pull data from a test URL, and write it to MongoDB.

Example use:

Databay showcase gif

While Databay comes with a handful of built-in inlets and outlets, its strength lies in extendability. To use Databay in your project, create concrete implementations of Inlet and Outlet classes that handle the data production and consumption functionality you require. Databay will then make sure data can repeatedly flow between the inlets and outlets you create. Extending inlets and extending outlets is easy and has a wide range of customization. Head over to Extending Databay section for a detailed explanation or to Examples for real use cases.

Supported Python Versions

Python Version <3.6 3.6 3.7 3.8 3.9
Supported

Community Contributions

We aim to support the ecosystem of Databay users by collating and promoting inlets and outlets that implement popular functionalities. We encourage you to share the inlets and outlets you write with the community - start by reading the guidelines on contributing to the Databay community.

Did you write a cool inlet or outlet that you'd like to share with others? Put it on a public repo, send us an email and we'll list it here!

[email protected]

Inlets

  • FileInlet - File input inlet (built-in).
  • HttpInlet - Asynchronous http request inlet using aiohttp (built-in).

Outlets

Requests

The following are inlets and outlets that others would like to see implemented. Feel free to build an item from this list and share your implementation! Let us know if you'd like to add an item to this list.

Roadmap

See full Databay Roadmap. Bare in mind this a live document that is shared to give you an idea of what can be expected in the future releases, rather than a locked schedule. Priorities and order of implementation may change without warning.

v1.0

  1. Beta test the pre-release.
  2. Complete 100% test coverage.
  3. Add more advanced examples.
  4. Release v1.0.
  5. Buy a carrot cake and celebrate.

v1.1

  1. Filters and translators - callbacks for processing data between inlets and outlets.
  2. Advanced scheduling - conditional, non uniform intervals.

Licence

See LICENSE

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].