paint-brush
PostgreSQL がデータの未来の基盤となる理由@timescale
871 測定値
871 測定値

PostgreSQL がデータの未来の基盤となる理由

Timescale14m2024/04/26
Read on Terminal Reader

長すぎる; 読むには

PostgreSQL がデータベース標準として優位に立っているのは、その適応性、信頼性、および広範なエコシステムのおかげです。この記事では、データベースの複雑さへの対処から開発者が自信を持って未来を構築できるようにすることまで、PostgreSQL が優位に立っている理由について詳しく説明します。PostgreSQL がソフトウェア開発とデータ管理の実践にどのような革命をもたらしているかをご覧ください。
featured image - PostgreSQL がデータの未来の基盤となる理由
Timescale HackerNoon profile picture
0-item


今日のソフトウェア開発における最大のトレンドの 1 つは、 PostgreSQLが事実上のデータベース標準として登場したことです。PostgreSQL をあらゆる用途に使用する方法については、いくつかのブログ記事が投稿されていますが、なぜこのようなことが起きているのか (そして、さらに重要なことに、なぜこれが重要なのか) についてはまだ投稿されていません。


今まで!


目次

01 PostgreSQLは事実上のデータベース標準になりつつある

02 すべてがコンピューターになる

03 PostgreSQLの復活

04 自由になり、未来を築き、PostgreSQL を活用する

05 Timescaleは「時系列用PostgreSQL」としてスタートしました

06 時系列を超えて拡張された時間スケール

07 Timescale が「PostgreSQL を強力に」

08 コーダ: ヨーダ?




PostgreSQL は事実上のデータベース標準になりつつある

過去数か月にわたって、「PostgreSQL for Everything」は開発者の間で大きな声援となってきました。

「PostgreSQL は単なるリレーショナル データベースではありません。データベース領域全体を巻き込む可能性を秘めたデータ管理フレームワークです。『あらゆる用途に PostgreSQL を使用する』というトレンドは、少数のエリート チームに限定されるものではなく、主流のベスト プラクティスになりつつあります。」

ソース


「スタックを簡素化し、可動部分を減らし、開発をスピードアップし、リスクを減らし、スタートアップでより多くの機能を提供する 1 つの方法は、「すべてに Postgres を使用する」ことです。Postgres は、最大数百万のユーザーを対象に、Kafka、RabbitMQ、Mongo、Redis など、多くのバックエンド テクノロジーを置き換えることができます。」

ソース


ゲルゲイ・オロス |アビシェク



ソース


「私が初めて Postgres について聞いたとき (MySQL が圧倒的に優勢だった頃)、それは「数学オタクが作ったデータベース」と説明されていました。そして、私はこう思いました。そうだ、まさにそういう人たちにデータベースを作ってもらいたいのだ。」

ソース


「驚くべき復活を遂げました。NoSQL が消滅し、Oracle が MySQL を所有するようになった今、他に何が残っているのでしょうか?」

ソース


「Postgres は単なるリレーショナル DB ではありません。それは生き方なのです。」

ソース


堅牢な基盤と、ネイティブ機能および拡張機能による汎用性により、開発者は PostgreSQL をあらゆる用途に使用できるようになりました。これにより、複雑で脆弱なデータ アーキテクチャが、単純明快なものに置き換えられます。



これは、昨年、プロの開発者の間で最も人気のあるデータベースのランキングで PostgreSQL が MySQL からトップの座を奪った理由 (回答者数 60,369 人) を説明するのに役立つかもしれません。


過去 1 年間に大規模な開発作業を行ったデータベース環境はどれですか。また、今後 1 年間に作業したいデータベース環境はどれですか。回答者の 49 % 以上が PostgreSQL と回答しました。( ソース


これらの結果は、2023 年の Stack Overflow 開発者調査によるものです。時系列で見ると、過去数年間で PostgreSQL の採用が着実に増加していることがわかります。


PostgreSQL は、2020 年から 2022 年にかけて Stack Overflow の開発者調査の回答者の間で 2 番目に人気のあるデータベースでしたが、その使用量は着実に増加しています。出典: 2020 2021 2022


これは、小規模なスタートアップ企業や趣味人の間でのみ起こっている傾向ではありません。実際、PostgreSQL の使用はあらゆる規模の組織で増加しています。


企業規模別の PostgreSQL 使用率。(ソース


Timescaleにとって、この傾向は目新しいものではありません。私たちは10年近くPostgreSQLを信奉してきました。それが、私たちがPostgreSQLを基盤としてビジネスを構築し、 PostgreSQLへのトップ貢献者、私たちが毎年開催する理由PostgreSQL の現状調査(上記参照)、そして PostgreSQL のミートアップやカンファレンスをサポートする理由について説明します。個人的には、PostgreSQL を 13 年以上使用しています (MySQL から切り替えたときから)。


PostgreSQL をあらゆる用途に使用する方法についてはいくつかのブログ投稿がありますが、なぜこれが起こるのか (そして、さらに重要なことに、なぜこれが重要なのか) についてはまだ投稿されていません。


今まで。


しかし、なぜこのようなことが起きているのかを理解するためには、さらに根本的な傾向と、その傾向が人間の現実の根本的な性質をどのように変えているのかを理解する必要があります。


すべてがコンピューターになる

あらゆるもの、つまり車、家、都市、農場、工場、通貨、所有物がコンピューター化されつつあります。私たち自身もデジタル化されつつあります。毎年、私たちは自分のアイデンティティや行動をデジタル化しています。物を買う方法、楽しむ方法、芸術作品を集める方法、疑問の答えを見つける方法、コミュニケーションやつながり方、自分らしさを表現する方法などです。


22年前、「ユビキタスコンピューティング」というアイデアは大胆に思えました。当時、私はMIT AIラボの大学院生で、 論文インテリジェント環境に関する私の研究はMIT プロジェクト オキシジェンには、私たちが呼吸する空気と同じくらいコンピューティングを普及させるという、高尚で大胆な目標がありました。当時の状況を振り返ると、私たちはクローゼットの中にサーバーラックを置いていました。


それ以来、多くのことが変わりました。コンピューターは今や、机の上、ポケットの中、持ち物の中、そして「クラウド」の中など、いたるところに存在しています。そのことは私たちが予測していたことです。


しかし、これらの変更の二次的影響は、私たちのほとんどが予想していたものとは異なりました。


  • ユビキタス コンピューティングにより、ユビキタス データが生まれました。新しいコンピューティング デバイスが登場するたびに、人間のデータ、マシン データ、ビジネス データ、環境データ、合成データなど、現実に関するより多くの情報が収集されます。こうしたデータは世界中にあふれています。


  • データの氾濫により、データベースのカンブリア爆発が起こりました。これらの新しいデータ ソースはすべて、それらを保存するための新しい場所を必要としています。20 年前には、実行可能なデータベース オプションは 5 つ程度しかありませんでした。今日では、数百のデータベースがあり、そのほとんどは特定のユース ケースやデータに特化しており、毎月新しいものが登場しています。


  • データとデータベースの増加により、ソフトウェアはより複雑になっています。ソフトウェアのワークロードに適したデータベースを選択することは、もはや容易ではありません。代わりに、開発者は、リレーショナル データベース (信頼性のため)、非リレーショナル データベース (スケーラビリティのため)、データ ウェアハウス (分析機能のため)、オブジェクト ストア (古いデータを安価にアーカイブする機能のため) など、複雑なアーキテクチャを寄せ集める必要があります。このアーキテクチャには、時系列データベースやベクトル データベースなど、より特殊なコンポーネントが含まれる場合もあります。


  • 複雑性が高まると、構築にかかる時間が短くなります。複雑なアーキテクチャは脆弱になり、より複雑なアプリケーション ロジックが必要になり、開発時間が短くなり、開発が遅くなります。複雑さはメリットではなく、実際のコストです。


コンピューティングがますます普及するにつれ、私たちの現実はコンピューティングとより密接に結びついています。私たちはコンピューティングを私たちの世界に持ち込み、私たち自身もその世界に持ち込んでいます。私たちはもはや単なるオフラインのアイデンティティではなく、オフラインとオンラインで行うことのハイブリッドです。


ソフトウェア開発者は、この新しい現実における人類の先駆者です。私たちは、この新しい現実を形作るソフトウェアを構築する者です。


しかし、開発者は現在、データが溢れかえり、データベースの複雑さに溺れてしまっています。


これは、開発者が未来を形作るのではなく、配管の管理にますます多くの時間を費やしていることを意味します。


私たちはどうやってここへ来ましたか?

パート 1: カスケードコンピューティングの波

ユビキタス コンピューティングはユビキタス データをもたらしました。これは一夜にして起こったのではなく、数十年にわたって連鎖的に起こりました。


  • メインフレーム (1950 年代以降)
  • パーソナルコンピュータ (1970 年代以降)
  • インターネット (1990 年代以降)
  • モバイル(2000年代以降)
  • クラウド コンピューティング (2000 年代以降)
  • モノのインターネット (2010 年代以降)


それぞれの波で、コンピューターはより小型化、より高性能化、そしてより遍在化しました。それぞれの波は、前の波の上に構築されました。パーソナル コンピューターはより小型のメインフレーム、インターネットは接続されたコンピューターのネットワーク、スマートフォンはインターネットに接続されたさらに小型のコンピューター、クラウド コンピューティングはコンピューティング リソースへのアクセスを民主化、モノのインターネットはクラウドに接続された他の物理的なものの一部として再構築されたスマートフォンのコンポーネントです。


しかし、過去 20 年間で、コンピューティングの進歩は物理的な世界だけでなく、デジタルの世界でも起こり、私たちのハイブリッドな現実を反映しています。


  • ソーシャル ネットワーク (2000 以上)
  • ブロックチェーン (2010 年代以降)
  • 生成AI(2020年代以降)


コンピューティングの新しい波が来るたびに、人間のデジタル排気、マシンデータ、ビジネスデータ、合成データといったハイブリッドな現実に関する新しい情報源が得られます。将来の波はさらに多くのデータを生み出すでしょう。このすべてのデータが新しい波の原動力となり、その最新の波がジェネレーティブ AI であり、それが私たちの現実をさらに形作ります。


コンピューティングの波はサイロ化されておらず、ドミノ倒しのように連鎖的に広がっています。最初は少しずつ流れてきたデータが、やがて大量のデータに変わりました。そして、大量のデータによって、さらに多くのデータベースが作成されるようになりました。

パート 2: データベースの増分成長

これらすべての新しいデータソースには、それらを保存するための新しい場所、つまりデータベースが必要です。


メインフレームは統合データストア(1964年)以降システムR (1974)、最初の SQL データベース。パーソナル コンピュータによって、最初の商用データベースの台頭が促進されました。オラクル(1977)、System R に触発された作品。 DB2 (1983年);そしてSQLサーバー(1989)、Microsoft の Oracle に対する回答。


インターネットの共同作業の力により、最初のオープンソース データベースを含むオープンソース ソフトウェアの台頭が可能になりました。マイグレーション(1995年)、 PostgreSQL (1996年)。スマートフォンの普及により、 SQLite (2000年に最初に作成されました)。


インターネットは膨大な量のデータも生み出し、それが最初の非リレーショナル、つまり NoSQL データベースの誕生につながりました。ハドゥープ(2006年);カサンドラ(2008年);モンゴDB (2009年)。これを「ビッグデータ」の時代と呼ぶ人もいます。

パート3: データベースの爆発的な増加

2010 年頃、私たちは限界に達し始めました。その時点まで、ソフトウェア アプリケーションは主に単一のデータベース (Oracle、MySQL、PostgreSQL など) に依存しており、選択は比較的簡単でした。


しかし、「ビッグデータ」はどんどん大きくなりました。モノのインターネットによって機械データが増加し、iPhone と Android のおかげでスマートフォンの使用が飛躍的に増加し、人間のデジタル排出がさらに増加しました。クラウド コンピューティングによってコンピューティングとストレージへのアクセスが民主化され、これらの傾向がさらに強まりました。ごく最近では、生成 AI によってベクター データが作成され、この問題がさらに悪化しました。


収集されるデータの量が増えるにつれて、専門的なデータベースが登場しました。ネオ4jグラフデータ(2007年)レディス基本的なキーバリューストア(2009年)インフルックスDB時系列データ(2013年)クリックハウス大規模分析向けの Pinecone (2016)、ベクター データ向けの Pinecone (2019) など、他にも多数あります。


20年前は、実行可能なデータベースの選択肢は5つくらいだった。今日では、数百、そのほとんどは特定のユースケースに特化しており、毎月新しいものが登場しています。初期のデータベースは汎用性を約束していましたが、これらの特化されたデータベースは特定のトレードオフを提供しており、ユースケースによっては意味がある場合とない場合があります。

パート 4: データベースが増えれば問題も増える

この膨大な量と、さまざまなトレードオフを伴う特殊なデータベースに直面して、開発者は複雑なアーキテクチャを組み立てるしか選択肢がありませんでした。


これらのアーキテクチャには通常、リレーショナル データベース (信頼性のため)、非リレーショナル データベース (スケーラビリティのため)、データ ウェアハウス (データ分析のため)、オブジェクト ストア (安価なアーカイブのため)、さらにそれらのユース ケース向けの時系列データベースやベクトル データベースなどのより特殊なコンポーネントが含まれます。



しかし、複雑さが増すと、構築にかかる時間が短くなります。複雑なアーキテクチャは脆弱になり、より複雑なアプリケーション ロジックが必要になり、開発時間が短くなり、開発が遅くなります。


つまり、ソフトウェア開発者は、未来を構築する代わりに、配管のメンテナンスにあまりにも多くの時間を費やしていることになります。これが今日の状況です。


もっと良い方法があります。


PostgreSQLの復活

ここで、私たちの物語はひねりを加えます。私たちのヒーローは、ピカピカの新しいデータベースではなく、コア開発者の母体だけが気に入る名前を持つ、古くからある定番のデータベース、PostgreSQL です。


当初、PostgreSQL は MySQL に大きく後れを取って 2 位でした。MySQL は使いやすく、背後に企業があり、誰でも簡単に発音できる名前でした。しかし、その後、MySQL は Sun Microsystems (2008 年) に買収され、さらに Oracle (2009 年) に買収されました。そして、MySQL を高価な Oracle 独裁からの無料の救世主とみなしたソフトウェア開発者は、何を使用するかを再検討し始めました。


同じ頃、少数の小規模な独立系企業が後援する分散型開発者コミュニティが、PostgreSQL を徐々に改良していきました。彼らは、フルテキスト検索 (2008 年)、ウィンドウ関数 (2009 年)、JSON サポート (2012 年) などの強力な機能をひっそりと追加しました。また、ストリーミング レプリケーション、ホット スタンバイ、インプレース アップグレード (2010 年)、論理レプリケーション (2017 年) などの機能を通じて、また、バグを丹念に修正して粗い部分を滑らかにすることで、データベースの堅牢性を高めました。

PostgreSQLはプラットフォームになりました

この時期に PostgreSQL に追加された最も影響力のある機能の 1 つは、拡張機能 (PostgreSQL に機能を追加するソフトウェア モジュール) をサポートする機能でした (2011)。 拡張機能により、さらに多くの開発者がPostgreSQLに機能を追加できるようになりました。独立して、迅速に、最小限の調整で実行します。


拡張機能のおかげで、PostgreSQL は単なる優れたリレーショナル データベース以上のものになり始めました。PostGIS のおかげで優れた地理空間データベースになり、TimescaleDB のおかげで優れた時系列データベースになり、キー値ストアの hstore、グラフ データベースの AGE、ベクター データベースの pgvector になりました。PostgreSQL はプラットフォームになりました。


現在、開発者は、信頼性、スケーラビリティ(非リレーショナル データベースの置き換え)、データ分析(データ ウェアハウスの置き換え)などの目的で PostgreSQL を使用できます。

ビッグデータについてはどうでしょうか?

この時点で、賢明な読者は「ビッグ データはどうですか?」と尋ねるはずです。これはもっともな質問です。歴史的に、「ビッグ データ」(数百テラバイト、さらにはペタバイト) とそれに関連する分析クエリは、単独では水平方向に拡張できない PostgreSQL などのデータベースには適していませんでした。


それも変わりつつあります。昨年11月に私たちは「 階層型ストレージ」は、ディスクとオブジェクト ストレージ (S3) 間でデータを自動的に階層化し、実質的に無限のテーブルを作成できる機能を実現します。


したがって、「ビッグデータ」は歴史的に PostgreSQL の弱点領域でしたが、近い将来、どんなワークロードでも大きすぎることはなくなるでしょう。


PostgreSQL が答えです。PostgreSQL は、私たちが自分自身を解放し、未来を築く方法です。


自由になり、未来を築き、PostgreSQL を採用しましょう

それぞれ独自の癖やクエリ言語を持つ複数の異なるデータベース システムをいじくり回す代わりに、世界で最も汎用性が高く、おそらく最も信頼性の高いデータベースである PostgreSQL に頼ることができます。配管に費やす時間を減らし、未来の構築に多くの時間を費やすことができます。


PostgreSQL は進化し続けています。PostgreSQL コミュニティはコア部分の改良に取り組んでいます。ハイパースケーラーを含め、現在ではさらに多くの企業が PostgreSQL に貢献しています。


今日のPostgreSQLエコシステム( ソース


PostgreSQL エクスペリエンスを向上させるためにコアを中心に構築している、より革新的で独立した企業も存在します。スパベース(2020)は、PostgreSQL を Web およびモバイル開発者にとって実用的な Firebase の代替手段にしています。ネオン(2021)とシャタ(2022)はどちらも、断続的なサーバーレスワークロード向けに PostgreSQL をゼロにスケールします。テンボ(2022)は、さまざまなユースケースにすぐに使用できるスタックを提供しています。ナイル(2023) は、PostgreSQL を SaaS アプリケーションでより使いやすくするなど、さまざまな機能を提供します。


そしてもちろん私たちもタイムスケール(2017年)。


Timescale は「時系列用 PostgreSQL」としてスタートしました

Timescale の話は、おそらく少し聞き覚えがあるでしょう。私たちは IoT 顧客のためにいくつかの難しいセンサー データの問題を解決していましたが、データが溢れかえっていました。対応するために、少なくとも 2 つの異なるデータベース システム (そのうちの 1 つは時系列データベース) を含む複雑なスタックを構築しました。


ある日、私たちは限界に達しました。UI で、デバイスを device_type と uptime の両方でフィルタリングしたいと考えていました。これは単純な SQL 結合であるはずでした。しかし、2 つの異なるデータベースを使用していたため、代わりにアプリケーションで 2 つのデータベース間のグルー コードを記述する必要がありました。変更を行うには数週間かかり、エンジニアリング スプリント全体がかかりました。


その後、エンジニアの一人が突飛なアイデアを思いつきました。PostgreSQL で時系列データベースを構築したらどうだろう、と。そうすれば、すべてのデータを 1 つのデータベースで管理でき、ソフトウェアをより早くリリースできるようになります。その後、それを構築したところ、私たちの生活はずっと楽になりました。その後、友人にそのことを話すと、彼らも試してみたいと言ってくれました。そして、これは世界と共有する必要があると気づきました。


そこで、私たちは時系列拡張機能TimescaleDBをオープンソース化し、 それを世界に発表した2017 年 4 月 4 日。当時、PostgreSQL ベースのスタートアップは非常に珍しかったのですが、私たちはその最初の 1 つでした。


それから 7 年、私たちは拡張機能と PostgreSQL クラウド サービスの両方に多大な投資を行い、時系列と分析のための PostgreSQL 開発者エクスペリエンスをますます向上させてきました。ハイパーテーブル (自動パーティション テーブル) によるクエリの 350 倍高速化、挿入の 44% 増加、継続的な集計 (リアルタイム マテリアライズド ビュー) による一般的なクエリの応答時間のミリ秒化、ネイティブの列指向圧縮による 90% 以上のストレージ コスト削減、階層型ストレージによる無制限で低コストのオブジェクト ストレージなどです。


時系列を超えて拡張されたタイムスケール

それが、時系列データにおける私たちの始まりであり、私たちが最もよく知られているものでもあります。


しかし、昨年私たちは拡大を始めました。

タイムスケールベクトル

私たちは立ち上げましたタイムスケールベクトル(「AIアプリケーション向けPostgreSQL++」)は、PostgreSQLをさらに優れたベクトルデータベースにします。Timescale Vectorは1億以上のベクトルに拡張可能で、さらに優れたパフォーマンスを備えたpgvectorをベースにしています。革新的な企業やチームは、すでにTimescale Vectorを大規模な本番環境で使用しています。オープンソース、GitHub イベント インサイト プラットフォーム、1 億を超えるベクトルヴィラリーソーシャルバイラリティ予測プラットフォームである、1億以上のベクトルマーケットリーダー金融インサイト プラットフォームである は、3,000 万を超えるベクトルで提供されています。


Timescale Vector は pgvector を拡張します。専門的なベクトル データベースのパフォーマンスを、学習や維持の手間をかけずに実現します。

ポップSQL

最近、 PopSQLも買収しました最高の PostgreSQL UI を構築して提供します。PopSQL は、オートコンプリート、スキーマ探索、バージョン管理、視覚化機能を備えたチームコラボレーション用の SQL エディターです。何十万人もの開発者やデータアナリストが、PostgreSQL、Timescale、または Redshift、Snowflake、BigQuery、MySQL、SQL Server などの他のデータソース上のデータを操作するために PopSQL を使用しています。



PopSQLはチームコラボレーションのためのSQLエディタです

洞察

また、「 「インサイト」は、私たちがこれまでに行った中で最大のドッグフーディングの取り組みですは、すべてのデータベースクエリを追跡し、開発者がデータベースのパフォーマンスを監視および最適化できるようにします。Insights は、pg_stat_statements (データベースの統計情報を表示するための公式拡張機能) のいくつかの制限を克服します。その規模は膨大であり、当社製品 (およびチーム) の能力の証です。1 兆を超える正規化クエリ (つまり、パラメータ値がプレースホルダーに置き換えられたクエリ) が収集、保存、分析され、毎日 100 億を超える新しいクエリが取り込まれています。


Timescale が「PostgreSQL を強力に」

現在、Timescale はあらゆる規模で強力な PostgreSQL です。当社は現在、時系列だけでなく、AI、エネルギー、ゲーム、マシン データ、電気自動車、宇宙、金融、ビデオ、オーディオ、Web3 など、他社が解決できない難しいデータ問題を解決しています。



私たちは、開発者はあらゆる用途に PostgreSQL を使用するべきだと信じており、それが実現できるように PostgreSQL を改良しています。


お客様は、時系列データだけでなく、ベクター データや一般的なリレーショナル データにも Timescale を使用しています。Timescale を使用することで、PostgreSQL をあらゆる用途に使用できます。あなたも次のことができます。 ここから無料で始めましょう


コーダ:ヨーダ?

私たち人間の現実は、物理的、仮想的、オフライン、オンラインを問わず、データで満ち溢れています。ヨーダが言うように、データは私たちを取り囲み、私たちを縛り付けています。この現実は、ソフトウェア開発者、つまり私たちによって書かれたソフトウェアによってますます支配されるようになっています。


これは驚くべきことだと認めざるを得ません。それほど昔のことではありませんが、2002年、私がMITの大学院生だった頃、世界はソフトウェアへの信頼を失っていました。私たちはドットコムバブルの崩壊から立ち直りつつありました。主要なビジネス出版物は次のように宣言しました。「それは問題ではありません当時、ソフトウェア開発者にとって、テクノロジー業界よりも金融業界で良い仕事を得る方が簡単でした。私を含め、MITのクラスメートの多くは金融業界で働きました。


しかし今日、特にこの生成型 AI の世界では、未来を形作っているのは私たちです。私たちは未来の構築者です。私たちは自分自身をつねってみるべきです。


あらゆるものがコンピューター化されつつあります。これは概ね良いことです。車はより安全になり、家はより快適になり、工場や農場の生産性は向上しました。私たちはかつてないほど多くの情報に瞬時にアクセスできるようになりました。私たちは互いによりつながり合っています。時には、それが私たちをより健康にし、より幸せにしてきました。


しかし、常にそうとは限りません。フォースと同様に、コンピューティングには明るい面と暗い面があります。携帯電話とソーシャルメディアが直接的に影響しているという証拠が増えています。 10代の精神疾患の世界的流行私たちはまだ、 AIと合成生物学私たちがより大きな力を受け入れるとき、それには責任が伴うことを認識すべきです。


私たちは、未来の構築に影響を与える 2 つの貴重な資源、つまり時間とエネルギーの管理者になりました。


私たちは、それらのリソースを配管の管理に費やすか、PostgreSQL for Everything を採用して正しい未来を築くかを選択できます。


私たちの立場はご存じだと思います。


読んでくれてありがとう。#Postgres4Life


ソース


この投稿はAjay Kulkarniによって書かれました。