Skip to main content

Kukur

Kukur makes time series data and metadata available to the Apache Arrow ecosystem.


WARNING

Kukur is under active development. Breaking changes to the interfaces are possible.

Kukur uses semantic versioning. While < 1.0.0, changes to the minor version indicate breaking changes.


Usage

Kukur can be used as a Python library or as a standalone application that exposes an Arrow Flight interface.

A Kukur Docker container is published to Docker Hub:

$ docker pull timeseer/kukur

Supported Sources

Multiple types of time series sources are supported:

  • ADODB connections (including OLEDB)
  • Apache Feather files
  • Apache Parquet files
  • Azure Data Explorer
  • CrateDB
  • CSV files
  • InfluxDB databases
  • Other Kukur or Timeseer instances
  • ODBC data sources

Check the documentation for more info

Contributing

Kukur welcomes contributions. For small fixes, just open a pull request on GitHub. Please discuss major changes in a GitHub issue first.

Each file in Kukur requires an SPDX License Identifier and Copyright Text:

# SPDX-FileCopyrightText: 2021 <you/your company>
# SPDX-License-Identifier: Apache-2.0

Community interactions are governed by the Code of Conduct.

License

Copyright 2021 Timeseer.AI

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Development

Create a virtualenv and install dependencies:

$ python -m venv venv
$ source venv/bin/activate
(venv) $ make deps dev-deps

Launch Kukur using:

(venv) $ python -m kukur.cli

Lint and format:

(venv) $ make lint

Kukur uses black to format all code.

Run unit tests:

(venv) $ make test

Integration Tests

Kukur runs integration tests against real databases where possible.

OS requirements to complete the integration tests are:

  • unixodbc
  • freetds

Integration tests require Kukur to be running with a special configuration. Some time series databases need to be started using docker-compose.

$ make compose

Then, in another shell:

(venv) $ python -m kukur.cli --config-file tests/test_data/Kukur.toml

Since the location of the freetds libraries varies and this needs to be hardcoded in the unixodbc configuration, several configuration profiles exist. These profiles can be selected using the KUKUR_INTEGRATION_TARGET environment variable:

  • /usr/lib/x86_64-linux-gnu/odbc/libtdsodbc.so: the default, no KUKUR_INTEGRATION_TARGET required
  • /usr/lib/libtdsodbc.so: use KUKUR_INTEGRATION_TARGET=linux
  • /usr/local/lib/libtdsodbc.so: use KUKUR_INTEGRATION_TARGET=local

Then, run the tests:

(venv) $ KUKUR_INTEGRATION_TARGET=linux make integration-test

Stop the databases using:

$ docker-compose -f tests/test_data/docker-compose.yml down --volumes

Alternatively, run Kukur in docker-compose as well to have a known stable setup:

$ docker-compose -f tests/test_data/docker-compose.yml -f tests/test_data/docker-compose.container.yml up -d

or build the Kukur container to have the latest Kukur image:

$ docker-compose -f tests/test_data/docker-compose.yml -f tests/test_data/docker-compose.container.yml up --build

Run the tests using:

(venv) $ make integration-test

Stop all containers:

$ docker-compose -f tests/test_data/docker-compose.yml -f tests/test_data/docker-compose.container.yml down --volumes

Release files for kukur 0.1.20

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kukur 0.1.20
File Size Uploaded
kukur-0.1.20.tar.gz 63.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kukur 0.1.20
File Interpreter ABI Platform
kukur-0.1.20-py3-none-any.whl Python 3 none any Details

Total release size: 156.0 kB

Release files / kukur-0.1.20.tar.gz

Download URL kukur-0.1.20.tar.gz
Size 63.6 kB
Tags Source
SHA-256 checksum
How to use checksums
02adb7b741961897e3908db0078cb3fe687330358cbbb7bfc16f09d9cf38712c
BLAKE2b-256 checksum
How to use checksums
83c61a9edd11c2c2dc703823995dc71b9ca7988917312e9842ec10ab1779c53a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.3

Release files / kukur-0.1.20-py3-none-any.whl

Download URL kukur-0.1.20-py3-none-any.whl
Size 92.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6bc490bc59a925e82f489e142e62720fb004edf08e340c2585cb029bcdd1e1ba
BLAKE2b-256 checksum
How to use checksums
a6e729a4eb6e17933d27e394df59e41b416421a18038172e90d7fc7177380172
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.20 This release

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.16

2 release files

0.1.15

1 release file

0.1.14

3 release files

0.1.13

3 release files

0.1.11

3 release files

0.1.10

3 release files

0.1.9

3 release files

0.1.8

3 release files

0.1.7

3 release files

0.1.6

3 release files

0.1.5

3 release files

0.1.4

3 release files

0.1.3

3 release files

0.1.2

3 release files

0.1.1

3 release files

0.1.0

3 release files

0.0.26

3 release files

0.0.25

3 release files

0.0.23

3 release files

0.0.22

3 release files

0.0.21

3 release files

0.0.20

3 release files

0.0.19

3 release files

0.0.18

3 release files

0.0.17

3 release files

0.0.16

3 release files

0.0.14

3 release files

0.0.12

3 release files

0.0.11

3 release files

0.0.10

3 release files

0.0.9

3 release files

0.0.8

3 release files

0.0.7

3 release files

0.0.6

3 release files

0.0.5

3 release files

0.0.4

3 release files

0.0.3

3 release files

0.0.2

3 release files

0.0.1

3 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page