「ポストグレス」「ポストグレスキューエル」などとも読む。 オープンソース系RDBMS(Relational Database Management System) のひとつ。 最近のバージョンでは(SQL99の仕様に近い)オブジェクト指向リレーショナルデータベースとしての機能も充実してきており、その高機能さが特徴となっている。 同じオープンソース系RDBMSでも、機能よりも速度と扱いやすさを選んだMySQLとは対照的である。
Copilotと対話を重ね、「RHEL 8にPostgreSQLクライアントをインストールする手順」を作成しました。 はじめに AIアシスタントCopilotと対話を重ね、「RHEL 8にPostgreSQLクライアントをインストールする手順」を作成しました。その作成過程を紹介します。 RHEL 8にPostgreSQL(psqlコマンドを含む)をインストールする手順 プロンプト 最初に、RHEL 8にpsqlコマンドをインストールする方法をCopilotに尋ねました。 RHEL 8に、psqlコマンドをインストールする方法を教えてください。 回答 もちろんです。RHEL 8にPostgreS…
関連記事 概要 参考情報 関連記事 GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ 概要 以下、自分用のメモです。いつも忘れるのでここにメモメモ。。。 psql で、結果の出力を縦表示するには \x と打ち込む。 再度、\x とすると元に戻ります。 これをいつも忘れるんですよねぇ・・・w 参考情報 過去の記事については、以下のページからご参照下さい。 ブログ過去記事置き場 サンプルコードは、以下の場所で公開しています。 Goのサンプルコード置き場 C#のサンプルコード置き場 Pythonのサンプルコード置き場
こんにちは、技術推進部の佐藤です。 4 月ということもあり、社会人デビューをされた方たちを目にする機会が増えました。 「自分が若かった頃はこんなにしっかりしていたかな」などと懐かしんでいたら、ふと以前在籍していた会社で血の気が引くような失敗をしたことを思い出しました。 今回はそのお話をいたします。 ただ、その失敗から得た対策のおかげで、今まで 10 年以上もの間に一度も同じような失敗を起こしていません。 これからデータベースを触る方、今まで触っていても失敗したことがない方はご参考になれば幸いです。 何が起こったのか 背景 事件 どう対処したか 初動 その後 収束 学びとその後の対策 防止する仕…
状況 大量のUUIDを指定したin句を発行する際に、メモリ消費量が問題になりました。 見たところ、jOOQではUUID1件当たりcast('b81b8735-6ac8-4b0b-a969-658e70425616' as uuid)みたいな形のクエリになってしまうことが原因のようでした。 対処 応急処置として、以下2点を満たす省メモリ化されたin句を発行するためのカスタム実装を行いました。 cast文無し UUIDのハイフン無し サンプルコード Kotlinかつ一部余計な処理が入ってますが、要するに${取得対象カラム} in (b81b87356ac84b0ba969658e70425616,…
こんにちは、knsk765 です。データの分析するときってウィンドウ関数は欠かせないですよね。 はじめてウィンドウ関数を知ったときは衝撃でした。これまで強引な集計処理をゴリゴリ書いてどれだけの時間を無駄にしつづけたのかと。 ざっくりいうと GROUP BY を使った集約関数のように結果をまとめてしまわずに、元の行を保持したまま集計列を追加できるのがウィンドウ関数です。 Excel の表に関数を入れた集計列を追加するのがイメージとしては近いかなと思います。 ウィンドウ関数のちゃんとした説明はこちら(PostgreSQL 文書)。 www.postgresql.jp .entry-content …
概要 ChatGPT が世に公開されてから、AI を使用したチャットサービスや対話型 AI などが広く普及しています。 https://chat.openai.com/auth/login ChatGPT にタスクを任せたいが、どのサービスを使用すればよいのか、いろいろなサービスが急速に作成されていますが、どれを使用すればよいのかわからない方も多いのではないでしょうか。 今回はそんな悩みを解決できるかもしれない OSS を見つけましたので、ご紹介したいと思います。 今回ご紹介する OSS は、ターミナル、ブラウザ、エディタで複雑なタスクやプロジェクトを実行できる完全自律型 AI エージェント「…
Rails7がリリースされてから、環境構築で躓いた経験がある方は少なくないのではないでしょうか。 今回は、Rails7 + PostgreSQL + esbuild の環境を docker-compose で構築していきたいと思います。 Rails7 + PostgreSQL + importmap の環境構築については以下の記事をご参照ください。 www.mof-mof.co.jp 1. ファイルを準備する まず始めに、以下の2つのファイルを作成します。 Dockerfile.dev docker-compose.yml Rails7.1から rails new で新規プロジェクトを作成した…
はじめに PostgreSQLのサーチパスが想定してたより面倒だったのでまとめておく。 PostgreSQLのサーチパスとは PostgreSQLのサーチパスは、オブジェクト(テーブル、ビュー、関数など)を参照する際に、どのスキーマを検索するかを指定する機能です。 サーチパスの優先順位 現在のユーザと同名のスキーマ(存在する場合) publicスキーマ 異なるスキーマに同名のオブジェクトが存在する場合、サーチパスの順序によって参照されるオブジェクトが決まる サーチパスの先頭にあるスキーマから順に検索され、最初に見つかったオブジェクトが使用される サーチパスの設定レベル サーチパスはさまざまなレ…
こんにちは。 エキサイト株式会社の三浦です。 今回は、Metabaseをコンテナで立ち上げてみた話をしていきます。 Metabaseとは コンテナで立ち上げる 最後に 参考 Metabaseとは MetabaseはBIツールの一つで、社内のデータを可視化するのに役立ちます。 www.metabase.com Dockerを使って簡単に起動できる 様々なデータソースと接続できる など、使いやすいツールです。 今回はこのMetabaseを、実際にコンテナで立ち上げてみます。 コンテナで立ち上げる それでは、実際に立ち上げてみます。 とは言っても、 docker compose を使えば以下の設定だ…
概要 PostgreSQLでプログラム上から単発のSQLを実行したい場合に、ファイルを経由せずに1回限りのパスワードを与える方法の話です。 最初に結論まとめ コマンドプロンプトの/cのセッション内で環境変数を設定し、そのままコマンドも実行します。例えば次のようになります。 cmd /c "set PGPASSWORD=user1password&&psql.exe --username=user1 --dbname=postgres --command="CREATE DATABASE database1'"" 話の背景 PostgreSQLでpsql.exeを使って、--commandオプシ…
概要 Web バックエンドのテストコードを書く場合、その多くは DB に依存していることが多いです。 DB 関連のテストは、テストデータの準備やテストケース毎の DB 処理化を適切に行うことが重要ですが、手間がかかる場合あるため、Mock で擬似的にテストしてしまうことも多いかと思います。 ただ、Mock を使ったテストは本質的な問題を検知できない意味のないテストになってしまう可能性があり、可能な限り DB の Mock を行わずに、実際の DB を使用してテストすることが望ましいと考えています。 本記事では、pytest、sqlalchemy、PostgreSQL を使った場合に、テストケー…
Vault Secrets Operator は、HashiCorp Vault で管理されているシークレットを Kubernetes クラスタに同期することができるオペレータです。 github.com 2023年6月13日に v0.1.0 がリリースされて GA となりました。 それ以降、2~3 ヶ月ごとにリリースされており、2024年5月7日現在は v0.6.0 が最新バージョンとなっています。 バージョン リリース日 v0.6.0 2024年4月25日 v0.5.0 2024年2月16日 v0.4.0 2023年11月17日 v0.3.0 2023年9月28日 v0.2.0 2023年…
2024/05/06分のコミットです。 CHANGELOGへの追加はありませんでした。 Fix console_test to work with both IRB's RelineInputMethod and StdioInputMethod railties/test/application/console_test.rbの修正です。 IRBの挙動の変更の影響で、IRBの最新バージョンだとrails consoleのテストがfailするようになってしまっていたのを修正しています。 Fix config.read_encrypted_secrets deprecation warning …
こんばんは。pregum_foxです。 今回は、Supabaseにも正式に匿名サインイン(Anonymous Sign-ins) が実装されたのとのことなので、手元のリポジトリで試してみました。 前回はSocial Login(Facebook)のサンプルを作成しました。 【Supabase】Flutter + Supabase Authentication で Social Login(Facebook) のサインアップ・サインイン処理のサンプルを作った - 狐好きぷろぐらまー 他のSupabase Authenticationのサンプルを見たい場合は下記記事から確認可能です。 pregum…
Nutanix Database Service(NDB)で PostgreSQL 15 + pgvector のデータベースをプロビジョニングしてみます。 前回はこちら。 NDB で PostgreSQL 15 をプロビジョニングしてみる。 今回の内容です。 pgvector とは 今回の環境 1. PostgreSQL DB サーバー VM の用意 2. pgvector のインストール 2-1. インストールの準備 2-2. pgvector のインストール 2-3. NDB の Post Script の配置 3. ソフトウェア プロファイルの作成 4. DB のプロビジョニング 5.…
Keiです。 PHPについて学んだことを言語化していきます。 サーバーサイドプログラミング言語 主な特徴 HTMLと統合するメリット 言語の欠点 まとめ サーバーサイドプログラミング言語 PHP(Hypertext Preprocessor)はサーバー側で実行されるスクリプト言語で、 HTMLコードの中にPHPコードを埋め込むことが出来る。 また、データベースとの連携もしやすい。 シンプルに書くことが出来るため、扱いやすい言語ともいわれている。 主な特徴 サーバーサイド言語:サーバー側で実行され、その結果だけがクライアント側(ブラウザ)に送信される。 データベースサポート:MySQLやPost…
Keiです。 データベース/SQLについて学んだことを言語化していきます。 データベースとは? SQLとは? データベースの種類 データベースを使う理由 リレーショナルデータベースの種類と違い MySQL PostgreSQL SQLite まとめ データベースとは? Webサイト上で扱う、個人情報や商品情報、画像や映像といった様々なデータを保存しておく倉庫。 そのデータを扱うための技術がSQLという言語。 テーブルと呼ばれる書庫の棚のようなものの中に、関連するデータをまとめて格納するイメージ。 SQLとは? Structured Query Language(構造化問い合わせ言語)といい、デ…
はじめに 先日、Rubyで実装したAWS Lambda関数にてpg gemを使う方法を記しました。 miyohide.hatenablog.com 上記の記事では、Ruby 3.2のバージョンで実装したのですが、この記事を記したのちにRuby 3.3版がリリースされました。 aws.amazon.com Ruby 3.3版においてはベースとなるOSもAmazon Linux 2023に変わっているので、上記記事で記したDockerfileなどの記述も変更が必要になると考えられます。ここでは、Ruby 3.3版でpg gemを使う方法を記します。 Layerを作るためのコンテナイメージを作る L…
はじめに masamoriです。初めての連投です。GW最高。 この記事は前回の続きです。 masamori0083.hatenablog.com 今回は、CosmoosDB のPostgresql APIを使用してみたいと思います。 分散リレーショナルとは一体・・・。 Citus 基本的には水平方向のスケールが難しいとされるRDB。これを可能にしているのはCitusというPostgreSQLのオープンソース拡張機能です。 github.com 現在はMicrosoftに買収されたみたいです。このCitusの使い方は「日本PostgreSQLユーザーの会」がドキュメントを出してくださっています。…
pythonで「EDINETコードリストをpostgresqlに登録する」をやってみた。 EDINETコードリスト(csv)をとってくる(webサイトからリンクをたどってダウンロード) posgresqlをいれる、DBを作る、テーブルを作る(スクリプトを書く) pythonでcsvファイルを読み込み、DBのテーブルにINSERTする これだけ。新人の研修ぐらい(ウソです) むかしはこれくらいちょろかったかどうかはわからないけど、csvのデータをDBにいれるのにどのような作業が発生するか、だいたいなんとなくぼんやりとは知っている。 EDINETのコードリストというとても大事なものの存在について、…
コストのかからないRDBとして、Amazon S3に配置したSQLite3(と、それを呼び出すLambda関数)を使っていたのだけども、supabase(PostgreSQL)を試してみることにした。 現行のLambda + S3 + SQLite3の組み合わせでは、トランザクション制御をはじめ問題がいくつかあったのと、通常のRDBを使う練習もやはり必要だろうという思いから。 supabaseの歩き方は別途ブログにまとめたい。 参考 prisma と express でつくる REST API Node.js(Express.js)環境でPrisma ORMを使いこなすための基礎
Nutanix Database Service(NDB)で PostgreSQL 15 のデータベースをプロビジョニングしてみます。 NDB 2.5 にデフォルトで含まれている PostgreSQL ソフトウェア プロファイルは、 PostgreSQL 10.4 です。そこで、PostgreSQL 15 をインストールした DB サーバー VM を用意して、そこからソフトウェア プロファイルを作成します。 今回の内容です。 0. 今回の環境 0-1. 利用するソフトウェアのバージョン 0-2. DB サーバー VM の構成(仮想マシン) 0-3. DB サーバー VM の構成(ゲスト OS)…
2024/05/02分のコミットです。 CHANGELOGにのったコミットは以下の通りです。 activestorage/CHANGELOG.md Remove deprecated config.active_storage.replace_on_assign_to_many. Remove deprecated config.active_storage.silence_invalid_content_types_warning. activesupport/CHANGELOG.md Deprecate DateAndTime::Compatibility.preserve_timezon…
有名どころのデータベースの違いを調べてみました。 調査対象は、DB-Engines Ranking の上位5個とします。 Oracle Database MySQL Microsoft SQL Server Postgre SQL MongoDB まずは、それぞれの特徴とマニュアルまとめてみます。 1. Oracle Database Oracle社が開発・販売しているリレーショナル・データベース 特徴 優れたロック機能 行レベルロック トランザクションによってアクセス中の行のみをロックする 複数のユーザーが同一の表の別の行に同時にアクセス出来るので、パフォーマンスが大幅に向上する 読み取り一…