#345 — March 12, 2021

Read on the Web

Database Weekly

Ideas to Improve the User and Developer Experiences of Databases — The author has been thinking about the developer experiences that databases offer and how these could be improved. Making databases migration aware, improved internal scriptability, and letting databases provide ‘feedback’ as to how they’re being used are all covered.

Daniel Haig

How Citus 10 Brings Columnar Compression to Postgres — Citus is a long standing extension that makes Postgres more distributed/horizontally scalable and version 10 just dropped. It introduces columnar storage to Postgres for the first time and this post does a good job of explaining things including the pros and cons.

Jeff Davis (Microsoft)

📈Timescale Analytics Project: Time-Series Analytics for PostgreSQLTimescale Analytics aims to combine all the capabilities SQL needs to perform time-series analytics into a single PG extension, built with Rust – and we want (and need) your help. See current proposals, ways to contribute, plus how to join us & shape the project 💪

Timescale sponsor

Compressing Data with ParquetParquet is a open column oriented data storage format mostly associated with Hadoop. This post examines why Parquet can be an efficient (in terms of storage use) way to store large datasets instead of something like SQLite, say.

Istvan Szukacs

Quick Bits

Build a Data Lake using Amazon Kinesis Data Streams for Amazon DynamoDB and Apache Hudi — That’s a lot of buzzwords. Basically you store something like customer behavior or actions in Amazon DynamoDB, have changes pushed along in a stream via Kinesis, and then store it on S3 for batch processing by Apache Hudi.

Thakur, Qu, and Shrivastava

Safely Reduce The Cost of Your Unused DynamoDB Tables with On-Demand Mode — An introduction to reducing DynamoDB I/O costs by applying on-demand mode to unused tables (as opposed to just deleting them).

Lee and Rahaman Sayem

The Three-Valued Logic (3VL) of SQL — Besides true and false, the result of logical expressions in SQL can also be unknown.

Markus Winand

JSON DataType Support in Oracle 21c — Oracle Database 21c released earlier this year introduced a new binary JSON datatype powered by a new OSON format (yes, the O does stand for Oracle..)

Zhen Hua Liu (Oracle)

Calculating Pagination Metadata Without Extra Roundtrips in SQL — A tutorial on how to paginate without second round trips, including the calculation of total rows, current page number, etc. SQL at first, but the jOOQ example later on is also interesting.

Lukas Eder

Speeding Up pgbench Using COPY FREEZEpgbench is a benchmarking tool that comes with Postgres and was written by the author of this post back in 1999. Here he looks at an optimization he’s making to speed up the benchmarking process thanks to a forthcoming Postgres 14 enhancement.

Tatsuo Ishii

Exploring Borland dBase IV for DOS — A neat trip down (long distant) memory lane with dBase IV, the release of the early DBMS that perhaps marked the end of its dominance over the early PC market. (Note: The sidebar on this site had some NSFW content when I read it, so take care if that’s a problem.)


How to Run MediaWiki with SQLite on macOS — Potentially useful if you want to dig around the schema.

Simon Willison

Running CockroachDB on Kubernetes

Alex Robinson and Jim Walker

Linear Regression Models in R using NFL Game Data

Geoffrey Grosenbach

🛠 Projects and Tools

Translate SQL From One Dialect to Another — While SQL has been standardized numerous times, its implementation does tend to vary, so this tool continues to provide an interesting way to see the differences on your own queries.

Lukas Eder

Elevate Your Database Performance with Datadog — Identify slow-running queries, bottlenecks and errors fast with granular analytics in Datadog. Try Datadog free.

Datadog sponsor

fsql: Search Through Your Filesystem with SQL-esque Queries — A tool written in Go to let you do things like SELECT name, size FROM . WHERE NOT name RLIKE *.go


Hive 2.0: A Fast Key-Value Database Written in Pure Dart — Dart, a language that originated at Google as a sort of JavaScript competitor ten years ago, is not an obvious language with which to build a database system, so this is interesting to see. It was created with Flutter use cases in mind.

Simon Leier

💻 Jobs

Wanted: Curious Developers with ❤ — Stagnating? Carbon Five has new projects, tech and challenges perfectly paired with kind, supportive, brilliant people. Join us.

Carbon Five

DevOps Engineer at X-Team (Remote) — Join the most energizing community for developers and work on projects for Riot Games, FOX, Sony, Coinbase, and more.