Databases Icon

Databases

Databases, structured data, data stores, etc.
63 Stories
All Topics

Go github.com

A lightweight, high-speed immutable database for systems and applications

With immudb you can track changes in sensitive data in your transactional databases and then record those changes permanently in a tamperproof immudb database. This allows you to keep an indelible history of sensitive data, for example debit/credit card transactions.

There are so many options for storing data these days. If you haven’t heard Go Time’s excellent episode on databases yet, Jaana does a great job of explaining some of the trade-offs.

Jaana Dogan Medium

Things I wished more developers knew about databases

Jaana Dogan started with a draft and this tweet and ended up laying down some serious knowledge on databases.

A large majority of computer systems have some state and are likely to depend on a storage system. My knowledge on databases accumulated over time, but along the way our design mistakes caused data loss and outages. In data-heavy systems, databases are at the core of system design goals and tradeoffs. Even though it is impossible to ignore how databases work, the problems that application developers foresee and experience will often be just the tip of the iceberg.

CockroachDB openmymind.net

Migrating from Postgres to CockroachDB

This is a nice lessons learned post from one engineering team making a database switch.

Overall, I’m happy with how the effort turned out and with CockroachDB in general. Because it uses PostgreSQL’s wire protocol, existing PostgreSQL drivers should work as-is. But we did run into some challenges that are worth pointing out. Here’s a list of things you might want to consider…

I like the update at the end, which emphasizes the important of tests for making a switch of this magnitude:

The system that was migrated has solid tests and good coverage. While a lot of the differences we ran into are obvious (like lack of range types and triggers), others were more subtle (especially the odd on conflict behavior). Test coverage made a pretty significant impact in the speed of the migration and our confidence in pushing live.

Rust github.com

The Rust SQL Toolkit 🧰

SQLx is a modern SQL client built from the ground up for Rust, in Rust.

  • Truly Asynchronous. Built from the ground-up using async-std using async streams for maximum concurrency.

  • Type-safe SQL (if you want it) without DSLs. Use the query!() macro to check your SQL and bind parameters at compile time. (You can still use dynamic SQL queries if you like.)

  • Pure Rust. The Postgres and MySQL/MariaDB drivers are written in pure Rust using zero unsafe code.

Databases github.com

A NewSQL relational database designed to process time-series data, faster

Our approach comes from low-latency trading; QuestDB’s stack is engineered from scratch, zero-GC Java and dependency-free.

QuestDB ingests data via HTTP, PostgresSQL wire protocol, Influx line protocol or directly from Java. Reading data is done using SQL via HTTP, PostgreSQL wire protocol or via Java API. The whole database and console fit in a 3.5Mb package.

According to the great knowledge base in the sky, NewSQL is, “a class of relational database management systems that seek to provide the scalability of NoSQL systems for online transaction processing workloads while maintaining the ACID guarantees of a traditional database system.”

Databases cs.cmu.edu

The next 50 years of databases

One question I ask a lot of folks I interview is what $PROJECT_X looks like three to five (sometimes 10) years from now. Very few people answer that question without some hemming and hawing.

Enter Andy Pavlo, Associate Professor of Databaseology at Carnegie Mellon, throwing his hat in the ring on the future of databases 50 years (!) from now:

The role of humans as database administrators will cease to exist. These future systems will be too complex for a human to reason about. DBMSs will finally be completely autonomous and self-healing. Again, the tighter coupling between programming frameworks and DBMSs will allow the system to make better decisions on how to organize data, provision resources, and optimize execution than human-generated planning.

That is just one of roughly eight things Andy predicts. Fun to think about, if nothing else.

Derek Sivers sivers.org

PostgreSQL self-contained stored procedures example

Based on Derek’s now page he has ended his 7 year sabbatical and he’s taking Seth Godin’s advice to publish something every day. What Derek shared here is part of that commitment…

This week, I wrote a shopping cart to sell my books directly from my own site. So I took a couple extra hours today to put my code into public view, so anyone can play around with it.

It’s a working self-contained shopping cart / store. It’s a very concrete example of using stored procedures to keep all the data logic together in one place. You can use it from JavaScript, Python, Ruby, or any language you want, since all the functionality is in the database itself. It works.

Security osquery.io

Query your OS like a database

osquery exposes an operating system as a high-performance relational database. This allows you to write SQL queries to explore operating system data. With osquery, SQL tables represent abstract concepts such as running processes, loaded kernel modules, open network connections, browser plugins, hardware events or file hashes.

osquery> SELECT name, path, pid FROM processes WHERE on_disk = 0;
name = Drop_Agent
path = /Users/jim/bin/dropage
pid = 561

Julia Evans jvns.ca

SQL queries don't start with SELECT

Yesterday I was working on an explanation of window functions, and I found myself googling “can you filter based on the result of a window function”. As in – can you filter the result of a window function in a WHERE or HAVING or something?

Eventually I concluded “window functions must run after WHERE and GROUP BY happen, so you can’t do it”. But this led me to a bigger question – what order do SQL queries actually run in?

Kind of a snappy headline because Julia is talking about order in terms of execution and most of the time we’re thinking about order in terms of authoring. But still, TIL!

Liran Tal Snyk

Sequelize ORM found vulnerable to SQL injection

SQL injection is a serious vulnerability, effectively allowing an attacker to run roughshod over your entire database. If you’re using Sequelize, drop everything (pun unintended) and get patched up.

As a testament for Sequelize’s commitment to security and protecting their users as fast as possible, they promptly responded and released fixes in the 3.x and 5.x branches of the library, remediating the vulnerability and providing users with an upgrade path for SQL injection prevention.

Databases abe-winter.github.io

ORMs are backwards

I think all ORM users have a journey from ‘there should be a way to’ to ‘this is saving me so much work’ to ‘I have to reach into the vending machine to get my change out’.

I see the value in ORMs, but I also see where Abe is coming from in this article. I think the sweet spot for an ORM is when you’re just getting started making apps and you want to minimize how many technologies you need to learn to get there. I certainly learned SQL over a slow, productive period while utilizing its features from the warm embrace of Active Record.

Stick around to the end of the article where he reveals the anti-ORM he’s working on to solve some of these problems.

Amazon Web Services aws.amazon.com

Announcing PartiQL: one query language for all your data

Today we are happy to announce PartiQL, a SQL-compatible query language that makes it easy to efficiently query data, regardless of where or in what format it is stored. As long as your query engine supports PartiQL, you can process structured data from relational databases (both transactional and analytical), semi-structured and nested data in open data formats (such as an Amazon S3 data lake), and even schema-less data in NoSQL or document databases that allow different attributes for different rows.

Announcing PartiQL: one query language for all your data

Go github.com

Use SQL to query & transform data from multiple databases & file formats

OctoSQL is a SQL query engine which allows you to write standard SQL queries on data stored in multiple SQL databases, NoSQL databases and files in various formats trying to push down as much of the work as possible to the source databases, not transferring unnecessary data.

OctoSQL does that by creating an internal representation of your query and later translating parts of it into the query languages or APIs of the source databases. Whenever a datasource doesn’t support a given operation, OctoSQL will execute it in memory, so you don’t have to worry about the specifics of the underlying datasources.

If you like writing SQL, you’ll probably like OctoSQL.

Opensource.com Icon Opensource.com

Get going with EtherCalc, a web-based alternative to Google Sheets

After I wrote about Stein earlier today, I got to wondering about open source alternatives to Google Sheets. Coincidentally, this article popped up in my RSS reader.

EtherCalc can be self-hosted or there are hosted offerings, including one at EtherCalc.org. It looks a bit rough around the edges, but that’s often the case with open source GUIs. Maybe kick the tires and blog about your experience? We’d happily log the results here on Changelog News.

Google steinhq.com

Use Google Sheets as your no-setup database

This looks like a great option for proofs of concept or when you want to take an idea to market as fast as possible. It’s also probably empowering to non-developers on the team since so many people can slice-n-dice spreadsheets better than SQL databases. You can self-host the open source version or pay for the hosted offering. I’d love to see a comparison between this and Airtable.

Michael Malis YouTube

Writing an interpreter in SQL for fun and no profit!

Michael Malis at !!Con 2019:

Writing SQL can be hard. SQL code is a bizarre combination of yelling and relational algebra. How can we make writing SQL easier? By embedding our own programming language in our SQL queries of course! In this talk, we’ll take a look at how you use a combination of various Postgres features to build a programming language out of SQL.

Craig Kerstiens craigkerstiens.com

SQL: one of the most valuable skills

Craig Kerstiens:

I’ve learned a lot of skills over the course of my career, but no technical skill more useful than SQL. SQL stands out to me as the most valuable skill for a few reasons:

  1. It is valuable across different roles and disciplines
  2. Learning it once doesn’t really require re-learning
  3. You seem like a superhero. You seem extra powerful when you know it because of the amount of people that aren’t fluent

I tend to agree. I still use (and sometimes love) ORMs and database libraries while building apps, but the more I’ve learned SQL over the years, the more I appreciate it for what it is.

Craig drills into each of his 3 points above in this excellent post.

0:00 / 0:00