QuestDB
SQLAlchemy
Our great sponsors
QuestDB | SQLAlchemy | |
---|---|---|
311 | 123 | |
13,420 | 8,716 | |
1.2% | 2.9% | |
9.7 | 9.8 | |
4 days ago | 5 days ago | |
Java | Python | |
Apache License 2.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
QuestDB
-
How to Forecast Air Temperatures with AI + IoT Sensor Data
If your data lacks uniform time intervals between consecutive entries, QuestDB offers a solution by allowing you to sample your data. After that, MindsDB facilitates creating, training, and deploying your time-series models.
-
Building a faster hash table for high performance SQL joins
Looks like full keys are always compared if hash codes test equal, which is what I'd expect. For example: https://github.com/questdb/questdb/blob/master/core/src/main...
-
K3s Traefik Ingress - configured for your homelab!
But of course, I want to run a QuestDB instance on my node, which uses two additional TCP ports for Influx Line Protocol (ILP) and Pgwire communication with the database. So how can I expose these extra ports on my node and route traffic to the QuestDB container running inside of k3s?
-
Annotations in Kubernetes Operator Design
In this post, I will detail a way in which I recently used annotations while writing an operator for my company's product, QuestDB. Hopefully this will give you an idea of how you can incorporate annotations into your own operators to harness their full potential.
-
Leveraging Rust in our high-performance Java database
QuestDB engineer here:
It's true that our non-idiomatic Java usage denies us some of the benefits typically associated with Java programming. Automatic memory management and the old "Write Once, Run Anywhere" paradigm are difficult to maintain due to our reliance on native libraries and manual memory management.
I see two classes of reasons for choosing Java:
1. Historical: The QuestDB codebase predates Rust. According to Wikipedia, the initial Rust release was in 2015. The oldest commit in the QuestDB repo is from 2014: https://github.com/questdb/questdb/commit/95b8095427c4e2c781... What were the options back in 2014? C++? Too complicated. C? Too low-level. Pretty much anything else? Either too slow or too exotic.
2. Technical: Java, even without GC or WORA, still offers some advantage.
-
Concurrent Data-structure Design Walk-Through
QuestDB is a time-series database that offers fast ingest speeds, InfluxDB Line Protocol and PGWire support and SQL query syntax. QuestDB is composed mostly in Java, and we've learned a lot of difficult and interesting lessons. We're happy to share them with you.
- Discord and the JVM
-
Show HN: QuestDB with Python, Pandas and SQL in a Jupyter notebook – no install
The demo does not work at all: https://github.com/questdb/questdb/issues/1525
-
any opinion good or bed about a code that smells?
The Java API implementation is problematic due to over allocating which results in a great deal of overhead. Projects like QuestDB don't use the Java API much to reduce GC thrashing. It results in a DB that outperforms C++ counterparts.
-
Ask HN: Who is hiring? (January 2023)
QuestDB | Developer Relations engineer & Growth engineer| Remote | https://questdb.io/
We're building an open source time-series database focused on performance and simplicity.
Developers rely on QuestDB as the analytic backbone of real-time systems ranging from FinTech to machine learning, IoT, and application monitoring. Fortune 500 companies such as Airbus and Yahoo deploy QuestDB for large-scale, data-intensive production systems, some of which serve close to a billion users.
Our open source repo has reached 10k GitHub stars and we have raised $15m in capital to date from YC and leading venture capital funds.
We hire talented and passionate people who share our mission to empower developers to solve their problems with data. We are building breakthrough technology to power the infrastructure of tomorrow.
We're looking for a developer relation engineer and growth engineer:
- Our career page: https://questdb.io/careers/
You can send an email directly to [email protected]
SQLAlchemy
-
Introducing Flama for Robust Machine Learning APIs
Besides, flama also provides support for SQL databases via SQLAlchemy, an SQL toolkit and Object Relational Mapper that gives application developers the full power and flexibility of SQL. Finally, flama also provides support for HTTP clients to perform requests via httpx, a next generation HTTP client for Python.
-
Unlocking efficient authZ with Cerbos’ Query Plan
To simplify this process, Cerbos developers have come up with adapters for popular Object-Relational Mapping (ORM) frameworks. You can check out for more details on the query plan repo - which also contains adapters for Prisma and SQLAlchemy - as well as a fully functioning application using Mongoose as its ORM.
-
Python: Just Write SQL
That above pattern is one I've seen people do even recently, using the "select().c" attribute which from very early versions of SQLAlchemy is defined as "the columns from a subquery of the SELECT" ; this usage began raising deprecation warnings in 1.4 and is fully removed in 2.0 as it was a remnant of a much earlier version of SQLAlchemy. it will do exactly as you say, "make a subquery for each filter condition".
the moment you see SQLAlchemy doing something you see that seems "asinine", send an example to https://github.com/sqlalchemy/sqlalchemy/discussions and I will clarify what's going on, correct the usage so that the query you have is what you expect, and quite often we will add new warnings or documentation when we see people doing things we didn't anticipate.
-
A steering council note about making the global
The creator and lead maintainer of SQLAlchemy, one of the most popular and most used Python library for accessing databases (who doesn't?) gave a rather interesting response to PEP703.
If this doesn't ring any alarm bells I don't know what will.
> Basically for the moment the GIL-less idea would likely be burdensome for us and the fact that it's only an "option" seems to strongly imply major compatibility issues that we would not prefer.
https://github.com/sqlalchemy/sqlalchemy/discussions/10002#d...
-
More public SQL-queryable databases?
Recently I discovered BigQuery public datasets - just over 200 datasets available for directly querying via SQL. I think this is a great thing! I can connect these direct to an analytics platform (we use Apache Superset which uses Python SQLAlchemy under the hood) for example and just start dashboarding.
-
Day 46-47: Beginner FastAPI Series - Part 3
Our tool we're going to be using for interfacing with the SQLite database is SQLAlchemy, a SQL toolkit that provides a unified API for various relational databases. If you installed FastAPI with pip install "fastapi[all]", SQLAlchemy is already part of your setup. but if you opted for FastAPI alone, you would need to install SQLAlchemy separately with pip install sqlalchemy.
- Is there a Python module that can store data between runs?
-
Starlite updates March '22 | 2.0 is coming
This feature is yet to be released, but it will allow you to seamlessly use data modelled with for example Pydantic, SQLAlchemy, msgspec or dataclasses in your route handlers, without the need for an intermediary model; The conversion will be handled by the specific DTO "backend" implementation. This new paradigm also makes it trivial to add support for any such modelling library, by simply implementing an appropriate backend.
-
Reddit Recap Series: Backend Performance Tuning
The second problem was caused by the pgBouncer setup. pgBouncer is an impostor that owns several dozen of real PostgreSQL connections, but pretends that it has thousands of them available for the backend services. Similar to fractional-reserve banking. So, it needs a way to find out when the real DB connection becomes free and can be used by another service. Our pgBouncer was configured as pool_mode=transaction. I.e., it detected when the current transaction was over, and returned the PostgreSQL connection into the pool, making it available to other users. However, this mode was found to not work well with the code that was using SQLAlchemy: committing the current transaction immediately started a new one. So, the expensive connection between pgBouncer and PostgreSQL remained checked out as long as the connection from service to pgBouncer remained open (forever, or close to that).
-
Domain model with SQLAlchemy
In this blog post, we will explore the power of SQLAlchemy, a popular ORM library in Python, to model our domain objects.
What are some alternatives?
tortoise-orm - Familiar asyncio ORM for python, built with relations in mind
PonyORM - Pony Object Relational Mapper
Peewee - a small, expressive orm -- supports postgresql, mysql, sqlite and cockroachdb
Orator - The Orator ORM provides a simple yet beautiful ActiveRecord implementation.
prisma-client-py - Prisma Client Python is an auto-generated and fully type-safe database client designed for ease of use
pyDAL - A pure Python Database Abstraction Layer
GINO - GINO Is Not ORM - a Python asyncio ORM on SQLAlchemy core.
psycopg2 - PostgreSQL database adapter for the Python programming language
pydantic - Data validation using Python type hints
sqlmodel - SQL databases in Python, designed for simplicity, compatibility, and robustness.
TDengine - TDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, Industrial IoT and DevOps.
MongoDB - The MongoDB Database