- Notifications
You must be signed in to change notification settings - Fork0
A Python3 API for ingesting data into QuestDB through the InfluxDB Line Protocol.
License
nsco1/py-questdb-client
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This repository contains a Python3 API for ingesting data into QuestDB through the InfluxDB Line Protocol.
We usemake as a CLI to various convenient work developer flows.We usepoetry to manage dependencies.
We requirePython 3.9.*, or above installed in your system, withpip
up-to-date, as well aspoetry
:
$ python3 --version$ Python 3.9.<some-integer>$ pip3 install --upgrade pip$ curl -sSL https://install.python-poetry.org| python3 -
Now we can install the project's dependencies in a virtual environment and activate it:
$ make install-dependencies
Or for development (Required for code quality and test flows):
$ make install-dependencies-dev
To activate the environment:
$ poetry shell$echo$SHLVL2
To deactivate the environment:
$exit$echo$SHLVL1
For convenience, we can let standard tools apply standard code formatting; the second command will reportissues that need to be addressed before using the client in production environments.
$ make format-code$ make check-code-quality
To run all tests in thetests
module:
$ maketest
Note: QuestDB must be running, see next section.
To start QuestDB:
$ make compose-up
This creates a folderquestdb_root
to store QuestDB's table data/metadata, server configuration files,and the web UI.
The Web UI is avaliable at:localhost:9000.
Logs can be followed on the terminal:
$ docker logs -f questdb
To stop QuestDB:
$ make compose-down
Data are available, even when QuestDB is down, in folderquestdb_root
.
fromdatetimeimportdatetimefromquestdb_ilp_client.tcpimportLineTcpSender# Single line sendwithLineTcpSender(host_name="localhost",port=9009,buffer_size=4096)asls:ls.table("metric_name")ls.symbol("Symbol","value")ls.column_int("number",10)ls.column_float("double",12.23)ls.column_str("string","born to shine")ls.at_utc_datetime(datetime(2022,4,23,0,46,26))ls.flush()# Multiple line sendwithLineTcpSender(host_name="localhost",port=9009,buffer_size=4096)asls:foriinrange(int(1e6)):ls.table("metric_name")ls.column_int("counter",i)ls.at_now()ls.flush()
About
A Python3 API for ingesting data into QuestDB through the InfluxDB Line Protocol.
Topics
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors3
Uh oh!
There was an error while loading.Please reload this page.