An open API service indexing awesome lists of open source software.

https://github.com/daq-tools/pyinfluxql

A SQL query generator for InfluxDB
https://github.com/daq-tools/pyinfluxql

Last synced: 16 days ago
JSON representation

A SQL query generator for InfluxDB

Awesome Lists containing this project

README

          

##########
PyInfluxQL
##########

.. image:: https://github.com/daq-tools/pyinfluxql/workflows/Tests/badge.svg
:target: https://github.com/daq-tools/pyinfluxql/actions?workflow=Tests

.. image:: https://img.shields.io/pypi/pyversions/pyinfluxql.svg
:target: https://python.org

.. image:: https://img.shields.io/pypi/v/pyinfluxql.svg
:target: https://pypi.org/project/pyinfluxql/

.. image:: https://img.shields.io/pypi/dm/pyinfluxql.svg
:target: https://pypi.org/project/pyinfluxql/

.. image:: https://img.shields.io/pypi/status/pyinfluxql.svg
:target: https://pypi.org/project/pyinfluxql/

.. image:: https://img.shields.io/pypi/l/pyinfluxql.svg
:target: https://pypi.org/project/pyinfluxql/

*****
About
*****
A query generator for the SQL dialect of the `Influx Query Language (InfluxQL)`_.
Like SQLAlchemy but for InfluxDB. Consider this an experimental WIP.

.. _Influx Query Language (InfluxQL): https://docs.influxdata.com/influxdb/v1.8/query_language/

********
Synopsis
********
.. code-block:: python

from influxdb import InfluxDBClient
from pyinfluxql import Engine, Query, Mean

client = InfluxDBClient('localhost', 8086, 'root', 'root', 'example')
engine = Engine(client)
query = Query(Mean('value')).from_('cpu_load') \
.where(time__gt=datetime.now() - timedelta(1))
.group_by(time=timedelta(hours=1))
engine.execute(query)

*****
Tests
*****
How to invoke the test suite.

Using Tox
=========
Run InfluxDB within Docker::

docker run -it --rm --publish 8086:8086 influxdb:1.8.3

Run ``tox``::

tox

Using sandbox
=============
Alternatively, setup package in development mode::

python3 -mvenv .venv
source .venv/bin/activate
pip install --editable=.[test]

Run ``pytest``::

pytest tests -vvv

*******
Credits
*******
Thanks a stack to the original author `Jeremiah Malina`_ for his excellent
work as well as `Michael Pérez`_ for adding integration tests, timezone support
and for improving the documentation.

.. _Jeremiah Malina: https://github.com/jjmalina
.. _Michael Pérez: https://github.com/puhrez