「ポストグレス」「ポストグレスキューエル」などとも読む。 オープンソース系RDBMS(Relational Database Management System) のひとつ。 最近のバージョンでは(SQL99の仕様に近い)オブジェクト指向リレーショナルデータベースとしての機能も充実してきており、その高機能さが特徴となっている。 同じオープンソース系RDBMSでも、機能よりも速度と扱いやすさを選んだMySQLとは対照的である。
とあるバッチ処理の中で、実行結果が何時間経ってもまるで返ってこないクエリがありました。 SQL初心者の私には大きな課題でしたが、試行錯誤の末、そのクエリを約6秒で返せるほどにパフォーマンスを改善することができました! この記事では、SQLの知識が浅い私がどのようにしてクエリのパフォーマンスを向上させたのか、その具体的なステップと方法についてご紹介します。 前提 筆者のパフォーマンス改善前のステータス 文系卒4年目 主にバックエンドエンジニア(Java) SQLについて 何も見ずにできるのはSELECTとJOINくらい。 パフォーマンスを意識してクエリを書いたことがない。 実行計画が読めない。 …
PostgreSQLを使ってゐるのだが、動作狀況をどうすれば知れるか、SQLを引けばいいだけなのだが諳記してゐない。OpenTelemetryのreceiverによく纏まってゐたので、讀んだ。 內容は纏めた頁に讓る。 scrapbox.io 諳記できてはゐないが、アンチョコはできた。かういふmetricを得たい時にどこを見ればよいか、逆にOpenTelemetryのmetricはどの表が元になってゐるのかが知れた。PostgreSQLの內部構造は、ここに出てきた語を調べれば割と學べるので、何を學ぶべきは知れるのもよい。 metric receiverのcodeは、或るsystemの狀態をどう知…
ソフトウェアエンジニアの新田です。 これは カンム Advent Calendar 2024 の8日目の記事です。昨日はフロントエンドチームのEMの佐藤さんの記事 チームが成長するたびに変わっていった朝会の話 - カンムテックブログ でした。 私は現在プラットフォームチームに所属しており、おなじようにチームで朝会をしているので非常に参考になりました。積極的にパクっていこうと思います。 さて、カンムではプロダクトのデータベースに Amazon Aurora PostgreSQL を採用しています。 ここで少し特徴的なのは、このデータベースは、アプリケーションのデータ管理だけでなく、ジョブキューの…
経緯 サンプルデータ チュートリアルデータのリストア手順 データベース作成 ダウンロードしたダンプを解凍 リストア 実践 軽い解説 私案以外の有用そうな手立て 経緯 業務にてかなりレアなケースではあるものの テーブルに格納されたデータではなく、外部から与えた順番でレコードを並べ替えたい という場面がありかなり力技で乗り越えたのでその際のメモです MySqlであればサクッとできるようですが Postgresqlだといまいちいい方法が見つからず、結果的に根性で並べ替えました ※性能は度外視です ちなみにMySqlでは、こちらの記事に記載の通り fieldなるものでなんとかなるらしい サンプルデータ…
始めに レコードの有効期間を表示したいときに、start_at, end_atのカラムを用いて表現していました。そして、end_atがnullの場合にアクティブなレコードとして表現しようとしていました。しかし、このやり方ではデータの管理方法に失敗するとアクティブなレコードが複数できてしまう可能性があります。 そのため、アクティブなレコードを1つだけに絞りたかったので、別の主キー + end_atでアクティブなレコードであること表現しようとしました。 しかし、その方法がうまくいかなかったので、同じ轍を踏まないようにブログに残しておきます。 環境 MySQL 8.0 PostgreSQL 17.2…
はじめに 今回、業務の都合上PostgreSQL 14から17にアップグレードする必要がありました。 自作サービスの開発も進行中ですが、DockerとDocker Composeを使ってコンテナ内でPostgreSQLを実行しているため、ホスト側のPostgreSQLバージョン変更はサービスに直接影響しないと判断しました。 そのため、PostgreSQL 14は削除し、17にアップグレードします。 PostgreSQL 14から17にアップグレード 1. 稼働中のPostgreSQLを停止する ❯ brew services stop postgresql@14 2. PostgreSQL 1…
はじめに こんにちは、株式会社 Techouse のクラウドハウス採用でエンジニアインターンをしている ReLU と申します。 いきなりですが、以下のグラフをご覧ください。 これは PostgreSQL の実行計画を取得した結果です。 あえてグラフタイトルや横軸の説明は隠しているのですが、実行時間の差が非常に大きいことがわかると思います。 実行計画とは、データベースが SQL クエリを実行する際に、どのようにデータを操作するかを決定するための詳細な手順のことです。クエリを実行して期待される結果を得る方法にはいくつかの選択肢があり、その選択によって処理の効率が大きく異なります。PostgreSQ…
先日、たまたま再帰SQLを書く機会があり、 私自身なんとなく存在と仕組みはわかるけどちゃんとは学んだことないなという格好だったので、ここら辺で基礎を復習しておこうと思います。 (利用するDBはタイトルの通りPostgresqlです) 再帰SQLの構造 再帰SQL -図解-の記事の図が非常にわかりやすかったので図で処理というか評価のフローを見たい方はこちらを参考になさるといいかと思います。 SQLの構造としてはこんな感じ。 with recursive r as ( -- 非再帰項 select * from tree where id = 1 union all -- 再帰項 select t…
はじめに ltreeとは ltree型 ltreeの操作 活用法 1. 承認フローの構築 事前準備 テーブル作成 データ追加 2. テーブルに細かくアクセス制御をかける 事前準備 ltreeの有効化 テーブル作成 ポリシー作成 行セキュリティポリシーの有効化 ポリシーの設定 データを追加 ユーザー作成 試す まとめ
関連記事 概要 参考情報 ダウンロード 関連記事 GitHub - devlights/blog-summary: ブログ「いろいろ備忘録日記」のまとめ 概要 以下、自分用のメモです。忘れないうちにメモメモ。。。 先日、PostgreSQL 17がリリースされましたね。パフォーマンスが改善されたり、増分バックアップがネイティブ対応になったりと実務で利用することを考えると素晴らしい改善が入っているバージョン。 下の参考情報に記載している PostgreSQL 17 Press Kit より気になる部分を抜粋。 PostgreSQL のこのリリースでは、全体的なパフォーマンスの大幅な向上が図られて…
目次 はじめに 1. ドコモにおける顧客分析の難しさとCX分析基盤 2. CX分析基盤を運用するときの課題 2.1. 基盤運用で発生する問題について 2.2. リカバリ対応が困難な問題 2.3. ドキュメント修正が煩雑な問題 2.4. 取り組むべき2つの課題 3. 課題に対するソリューション(= dbt導入) 3.1. dbtとは? 3.2. 課題に対する考え方・実装方針 3.3. 実装 4. 実際の活用 4.1. リカバリに係る稼働とコンピューティング費用削減 4.2. ドキュメント開発環境構築 4.3. よく使うコマンド集 5. まとめ 使用ソフトウェア一覧 環境 言語・フレームワーク バ…
2024/12/10分のコミットです。 CHANGELOGにのったコミットは以下の通りです。 actiontext/CHANGELOG.md Change ActionText::RichText#embeds assignment from before_save to before_validation activerecord/CHANGELOG.md Fix MySQL default functions getting dropped when changing a column's nullability. Merge pull request #53855 from rails/…
OpenAIの動画生成AI Sora Googleの量子チップWillow 問い合わせフォームのスパム対策 安全なSSH,SFTPの使い方 効果的なコードレビュー セキュリティ学習コンテンツ紹介 PostgreSQLを用いた履歴テーブルからのデータ取得 PostgreSQLを用いた時間枠管理 ソフトウェアアーキテクトのための意思決定術書籍紹介 マルチテナントSaaSアーキテクチャ 秋葉原ゲーミングPCイベント情報 モスバーガーアプリ障害情報 Reactアプリのパフォーマンス最適化ツールReact Scan ChatGPT有料版に関するニュース 一太郎40周年記念キーボード WebKit(Jav…
MackerelはCloudNative Daysにツールスポンサーしてゐる。その繫がりで、Mackerelの開發者の一員でもある私は、CloudNative Daysのオブザーバビリティチームに參加してゐる。先日CloudNative Days Winter 2024 (CNDW2024)が開催された。そこでのMackerelの使ひ方を紹介したい。CNDW2024を聽講した事はCloudNative Days Winter 2024 #CNDW2024 - c4se記:さっちゃんですよ☆に書いた。 オブザーバビリティチームの仕事は、 CloudNative Daysで獨自に開發・運用してゐる…
はじめに Googleカレンダーのような時間枠を扱うシステムを設計する際、開始・終了時刻を管理するロジックは容易ではない。 しかし、PostgreSQLには 範囲型 があり、この機能を活用することで、開始時刻(begin_at)と終了時刻(end_at)を1つのカラムで扱えるようになる。 そこで本稿では、範囲型を用いた設計と、その利点を紹介する。 時間枠を扱う難しさ まず前提として時間枠の扱いがなぜ難しいかを紹介する。 ソフトウェアデザインでやっている連載、実戦データベースリファクタリングの 【12】厄介な時間枠に向き合う でも紹介したが、時間の範囲を比較するときが難しい。 範囲の重なりには以…
例えば次のようなテーブルがあったとする。 -- PostgreSQL CREATE TABLE history ( id SERIAL PRIMARY KEY, user_id INTEGER NOT NULL, data TEXT, created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); -- MySQL CREATE TABLE history ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT NOT NULL, data TEXT, created_at DATETIME NOT…
部会。 その後数名で飲みに行っては見たがう~ん...なんというか...いやまぁ楽しい飲み会ではあるしヲレだっためっさ汚れているのだけれども。 なんか昔は技術っぽい話が好きな人いっぱいいたようなきがするんだけどなぁ...などと思い、帰ってきてそういえばと昔のものを引っ張り出してたらそういうものじゃぁないんだが、2005-04-12という日付のものが。 ついでだったので更新してdiffってみるなど。 人生の経験値(SE編): - 48時間以上連続の仕事× 34時間しかない + 48時間以上連続の仕事〇 多分ある気がする 上司を殺したくなった○ (爆 - サーバーのあるビルにミサイル着弾しないかと考…
こちらは以下のポストの続きです。 赤裸々な複数回のレイオフ体験をまとめているので、ぜひ目を通してみてください! necojackarc.hatenablog.com レイオフから約1ヶ月、Series A の FinTech 企業に Tech Lead として入社しました! 実は他にも1件、非常に魅力的なオファー*1をいただいていたのですが、エンジニア、特に『いちプレーヤー = Individual Contributor (IC)』としてのさらなる成長と円熟、人生のフェーズと企業文化およびフェーズとのマッチなどを考慮して、決断しました。 今回丁重にお断りさせていただいた会社は、実は1年前のレ…
PGTunehttps://pgtune.leopard.in.ua/ 簡単にサーバーのスペックを基に適正値を求めるには「PGTune」というツールがあります。 PostgreSQLのメモリチューニングはじめの一歩 2022
pg_dump したデータの投入 maintenance_work_mem = 1GB wal_level = minimal max_wal_size = 4GB archive_mode = offmaintenance_work_mem 4GB 16GB を 試したが差がなかった。 14.4.5. maintenance_work_memを増やす 14.4.6. max_wal_sizeを増やす 14.4.7. WALアーカイブ処理とストリーミングレプリケーションの無効化 https://www.sraoss.co.jp/PostgreSQL/Manual/document/14/pop…
本記事はRettyアドベントカレンダー2024の9日目の記事です。 Rettyでエンジニアリングマネージャを務めている山田です。 2022年の年末頃にChatGPTが登場してから早2年となります。 当初は革新的なAIという印象でしたが、時間の経過によりLLMを普段の生活や業務に活かしたり、これを応用したアプリケーションの開発を検討するなど、こうした発明もある程度浸透してきている頃合いではないかと思います。 特に、LLMは任意の自然言語形式のデータの取り扱いに優れ、これまで実現が難しかったアイデアを形にすることができるため、LLMを応用して新しい体験を提供する機能の開発に取り組んでいる方や、すで…
エンジニアの佐野です。菅原が Redash について言及したのでそれに乗っかって自分も簡単な記事を書きます。 tech.kanmu.co.jp まず Redash の基本的な使い方としては次の通りです。 https://your-redash-domain/queries/new にアクセスする。 データソース *1 を選択してクエリを書く。 クエリを実行する。 ここで2のデータソースを選択する際なのですが、カンムは Redash を多用しているため大量のデータソースが存在し、都度用途に応じて選択する必要があります。次の画像が存在するデータソース一覧です。 例えば画像中でマスクしていない Bi…
はじめに カミナシでID管理・認証基盤を開発しているmanaty(@manaty0226)です。12/6までラスベガスで開催されていたAWS re:Invent 2024に初めて参加しました。今回は最終日のワークショップセッションとして開催された「Build generative AI-powered search with Amazon Aurora and Amazon RDS」を聴講したレポートをお届けします。 生成AIによる検索機能の拡張 このワークショップでは架空のEC企業Baize BazaarのECサイトにおける検索機能を作ります。単なる全文一致や部分一致検索ではなく、自然言語に…