デジタル トランスフォーメーションを加速 お客様がデジタル トランスフォーメーションに乗り出したばかりでも、あるいはすでに進めている場合でも、Google Cloud は困難な課題の解決を支援します。
米Google(グーグル)は2022年5月に開催した年次カンファレンス「Google I/O 2022」で、新しいデータベース(DB)サービスである「AlloyDB for PostgreSQL」を発表した。 グーグルが2022年5月12日(米国時間)に発表したAlloyDB for PostgreSQLは、同社が独自に開発したDBのサービスで、オープンソースソフトウエア(OSS)のリレーショナルDB(RDB)である「PostgreSQL」と互換性がある。ユーザーはPostgreSQL用のSQLクエリーや拡張機能がそのまま利用できる。 AlloyDB for PostgreSQLの特徴は、トランザクション処理(OLTP)性能とデータ分析(OLAP)性能を両立した点だ。グーグルによればAlloyDB for PostgreSQLは標準的なPostgreSQLに比べて、同じ数のCPUを使用する
PostgreSQL(pgvector) のベクトル検索による全自動PDF検索 : Blob Storage にアップロードしPDFをテキストに変換JavaPostgreSQLAdaOpenAIembedding 1. はじめに 先日、Azure OpenAI Embedding モデルを利用し最も関連性の高いドキュメントを見つける方法 について説明しました。これを利用する事で、最も関連性の高いドキュメントを見つける事ができます。 この記事では、この機能を利用し PDF ファイルを Azure Blob Storage にアップロードすると、自動的に PDF ファイルをテキストに変換し、Azure OpenAI Embedding モデルを利用して、ベクトル検索を行う方法について説明します。 このサービスを利用すると、社内ドキュメントも、各種論文も PDF ファイルであれば何でも、Azur
postgres=> CREATE TABLE embeddings( id INTEGER, embedding vector(3) ); CREATE TABLE postgres=> INSERT INTO embeddings VALUES (1, '[1, 0, -1]'), (2, '[1, 1, 1]'), (3, '[1, 1, 50]'); INSERT 0 3 pgvector の新しい類似性検索演算子pgvector 拡張機能では、ベクトルに対して類似性のマッチングを行うための新しい演算子も導入されており、意味的に似ているベクトルを見つけることができます。このような演算子には次の 2 つがあります。 ‘<->’: 2 つのベクトル間のユークリッド距離を返します。ユークリッド距離は、ベクトルの大きさが重要なアプリケーション、たとえばマッピングやナビゲーション アプリケー
現在開発中のPostgreSQL 12では、様々な新機能の追加や改良が予定されています。本稿では、その中でも実用上の価値が高いと思われる改良の一つである、CTEの高速化についてご紹介します。 CTEとは CTEとは、”Common Table Expressions” (共通テーブル式)の略で、SQL文内でテーブル式を定義し、それを同じSQL文内から参照できるものです。CTEには、普通の検索を行うだけでなく、再帰的なクエリ実行を行ったり(WITH RECURSIVE)、CTE内で更新処理を行うこともできますが、PostgreSQL 12で改良されたのは、再帰も更新も伴わない通常の検索処理で使われるCTEです。 CTEを使うと、複雑なクエリや、同じようなサブクエリを何度も呼ぶようなSQL文を見通しよく書くことができます。同じようなことはVIEWや関数を定義することによっても可能ですが、CTE
pg_repack 1.4.8 -- PostgreSQLデータベースのテーブルを最小限のロックで再編成します Versions: 1.3 1.4 master Languages: en jp pg_repack はPostgreSQLの拡張の一つで、肥大化したテーブルやインデックスを再編成し、さらに指定したインデックスにしたがってレコードを並び替えることができます。 PostgreSQLの CLUSTER や VACUUM FULL コマンドと違って、pg_repackは処理の間対象テーブルへの排他ロックを保持し続けないため、オンライン中に動作させることができます。 pg_repackはCLUSTERコマンドを直接実行するのと同じくらいの性能で起動することができて効率的です。 pg_repack は pg_reorg からフォークしたプロジェクトです。 バグ報告や開発情報については p
はじめに PostgreSQLの監視や運用時などに便利(と思われる)なSQLの個人メモです。 色々な資料やサイトを参考に一覧にしてみました。 これからも便利そうなSQLを書いたり、見つけたりしたら都度更新していくつもりです。 なお、実行例の載せており、全てPostgreSQL12で実行した結果です。 キャッシュヒット率 データベース毎のキャッシュヒット率 select datname, round(blks_hit*100/(blks_hit+blks_read), 2) as cache_hit_ratio from pg_stat_database where blks_read > 0;
NTT オープンソースソフトウェアセンタ 笠原 辰仁 稼動統計情報を取得してみよう では、実際に稼動統計情報を取得してみましょう。稼動統計情報は、PostgreSQLのテーブルやビューの形で提供されています。pg_stat_* という名称のテーブル/ビューがそれらに当たります。そのため、取得にはSQLを用います。なお、psqlの\dコマンドなどでpg_stat_*のビュー定義を見てみると、pg_stat_get_*() 関数で各種情報が取得されていることが分かると思います。稼動統計情報を直接取得するには関数を使うのですが、それをビュー経由でユーザが閲覧できるようになっています。本項では、pg_stat_*で提供されているビューを読み解いていくことにします。 それでは、前ページの冒頭で紹介した情報について具体的に解説していきます。下記は稼動統計情報の中でも多用される情報ですので、覚えておくと
When thinking about caching data for incredibly fast retrieval, technologies like Redis and Memcached often come to a developer’s mind. I, however, want to discuss a less commonly acknowledged cache that also helps with improving data retrieval time: a cache within a database. The ability to fetch data quickly is crucial for any high throughput application and service. For the Notifications team a
Amazon Relational Database Service (Amazon RDS) DB インスタンスを実行しています。十分な空きメモリが割り当てられているにもかかわらず、大量のスワップメモリを使用されています。十分なメモリがあるのに、スワップメモリが使用される理由は何ですか? 簡単な説明 Linux を実行する Amazon Elastic Compute Cloud (Amazon EC2) インスタンスは、システムが割り当てられた以上のメモリを必要とするときにスワップメモリを使用します。詳細については、インスタンスストアのスワップボリュームをご参照ください。ほとんどの RDS DB インスタンスでは Linux が使用されるため (SQL Server を除く)、データベースでスワップメモリを使用できる場合があります。 RDS DB インスタンスは、クエリの実行時など、ペ
pg_repack 1.5.0 -- Reorganize tables in PostgreSQL databases with minimal locks Versions: 1.1 1.2 1.3 1.4 1.5 master Languages: en jp pg_repack is a PostgreSQL extension which lets you remove bloat from tables and indexes, and optionally restore the physical order of clustered indexes. Unlike CLUSTER and VACUUM FULL it works online, without holding an exclusive lock on the processed tables during
pg_repack は PostgreSQL のテーブルをオンラインで再編成できるツールです。本記事では pg_repackについて紹介します。 良く知られている通り、PostgreSQL は追記型アーキテクチャを採用しています。UPDATE や DELETE をしても旧データを格納した行はしばらく物理ファイル上に残り、これを VACUUM コマンドや自動 VACUUM で整理して、その領域を再利用可能にする仕組みとなっています。何らかの理由でこれらの手動・自動の VACUUM 処理が実行されなかった場合には、データ格納に使われない不要領域が増加し、性能劣化の原因となります。そのような場合には、CLUSTER コマンドや VACUUM FULL コマンドを使って、テーブルの再編成をするのですが、これらのコマンドは強いロックを取得するため、サービス中の適用が難しいという課題がありました。 p
この記事は PostgreSQL Advent Calendar 2015 - Qiita の9日目です。 8日目は osapon さんに書いていただきました。 この記事では、PostgreSQLを運用する上で役立つかもしれないツールの一つ pg_repack を紹介したいと思います。 pg_repackとは pg_repack はPostgreSQLの拡張ツール(エクステンション)の一つで、肥大化したテーブルやインデックスを再編成し、さらに指定したインデックスにしたがってレコードを並び替えることができます。 PostgreSQLの CLUSTER や VACUUM FULL コマンドと違って、pg_repackは処理の間対象テーブルへの排他ロックを保持し続けないため、オンライン中に動作させることができます。 どういうことなのか、説明していきますね。 テーブルやインデックスの肥大化 Pos
また、BETWEENやINなどのこれらの演算子の組み合わせと等価な式をB-treeインデックス検索で実装することができます。 インデックスの付いた列に対するIS NULLやIS NOT NULLでもB-treeインデックスを使用することができます。 オプティマイザは、パターンマッチ演算子LIKE、~を含む問い合わせでも、そのパターンが定数であり、先頭文字列を指定している場合B-treeインデックスを使用することができます。 例えば、col LIKE 'foo%'またはcol ~ '^foo'です。 col LIKE '%bar'では使用されません。 しかし、データベースがCロケールを使用していない場合、パターンマッチ問い合わせのインデックス付けをサポートする特別な演算子クラスでインデックスを作成しなければなりません。 後述の項11.9を参照してください。 なお、ILIKEと~*でもB-tr
図1 主なプロセスの流れ PostgreSQLは、ライタがデータファイルやインデックスファイルをディスクに更新しています。ただし、その更新は、コミットに合わせてリアルタイムで行われているわけではありません。性能向上のため、チェックポイントと呼ばれる更新タイミングが発生するまでは、更新があっても共有バッファにデータを貯めておきます。この貯められたデータをダーティページと呼びます。そしてチェックポイントのタイミングで、チェックポインタがダーティページをディスクに書き込みます。 そのため、共有バッファに更新情報を貯めている間に障害が起きると、ダーティーページを失う可能性があります。それを防ぐために、共有バッファ中のデータに対してどのような更新を行ったかの情報を保存しているのがWALです。WALはコミットのタイミングでWALライタが記録しています。クラッシュリカバリが必要になったときは、WALの中
データベースのチューニングとは、データベースの性能維持または向上を阻害するボトルネックを見つけ、その原因を調査し、解決していくことです。ここでは、チューニングの1つである「データベースチューニング」について解説します。 1. データベースチューニングとは データベースチューニングは、サーバーの性能を最大限に利用できるようにデータベースシステムが使用するメモリー使用量を最適化し、ディスクI/Oを減らすことを目的としています。システム構成や運用内容に応じて、セットアップ時の初期設定の段階で実施しておくことができます。 データベースチューニングの解説を始める前に、まず、データベースチューニングの前提となるメモリーとディスクI/Oについて簡単に説明した後、実際のチューニング方法を説明していきます。 1.1 メモリーとディスクI/O PostgreSQLがデータベースにアクセスする場合、まずディスク
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く