- PostgreSQLカンファレンス 2021 - チュートリアル - https://www.postgresql.jp/jpug-pgcon2021 - 詳細はこちら https://github.com/soudai/pgcon21j-tutorial
読者対象 ある程度データベースに関する知識を持っている,経験年数 1 年以上のバックエンドエンジニア 特定のプログラミング言語に依存する部分は含めないため,すべての SQL 使用者を対象とする また,ゼロからの丁寧な説明というよりは,リファレンス感覚で使える記事という形にまとめる。 RDBMS の対象バージョン PostgreSQL: 9.4 以降 MySQL: 8.0.28 以降 id (データ型と INSERT 時のデフォルト埋め) 導入 一般的に採用されやすいプライマリキー用の値として,以下を考える。 連番整数 MySQL では AUTO_INCREMENT, Postgres では IDENTITY や SERIAL と呼ばれるもの UUID v1: ハードウェアごとにユニークな単調増加値 UUID v4: ランダム値 UUID v7(ドラフト): 単調増加であるタイムスタンプとラ
あなたが知らない既存機能があるかもしれません! マイクロソフト社は2006年、Microsoft Officeの新バージョンで追加してほしい機能について、顧客調査を実施しました。驚いたことに、ユーザが希望した機能の90%以上はすでに実装されており、その存在が知られていないだけであることが判明しました。機能の「見つけにくさ」の問題の解決策として同社が考案したのが、現在のMicrosoft Office製品でおなじみの「リボンUI」です。 この問題はOfficeに限ったものではありません。日々使用するツールの機能をすべて把握している人はほとんどいません。PostgreSQLのように大規模なツールであればなおさらです。数週間前にPostgreSQL 14がリリースされたばかりなので、この機会にPostgreSQLのあまり知られていない機能に注目してみたいと思います。 この記事では、Postgre
PostgreSQLには、用途や環境に応じて様々な構成を組み、最適なパフォーマンスで動作させられるよう、設定ファイルpostgresql.confに多くのパラメーターが存在します。そのパラメーターを正しく設定し調整を行うためには、PostgreSQLのアーキテクチャーを理解する必要があります。ここでは、押さえておきたい、PostgreSQLの基本的なアーキテクチャーについて説明します。なお、この記事で対象にしているPostgreSQLのバージョンは9.5以降です。 1. PostgreSQLの基本構成 PostgreSQLの基本的な構成について説明します。はじめに、主なプロセス、メモリー、および、ファイルについての構成図を示します。 図1 PostgreSQLの基本構成 PostgreSQLを構成する主なプロセス、メモリー、ファイルについて、その用語と概要を説明します。 リスナープロセス
「最近は、データベースもB/Gデプロイできるらしいよ?」 「そりゃそうやろ。B/Gデプロイなんて、最近当たり前……… へ?DBが?無理でしょ?ほぇ?どういうこと?」 最初アップデートのタイトルを見たときの、ハマコーの率直な感想です。 Blue/Greenデプロイは、現行バージョンのトラフィックを活かしたまま新バージョンを動作確認し、問題なければ新バージョンをリリースするという、最近の安全なデプロイの概念において無くてはならないものです。 同時に新旧バージョンを稼働させるため、基本的にはステートレスなアプリケーション・サーバーにおいて利用するものという固定概念があったのですが、それをデータベースに対して既存のAWSの技術を組み合わせつつAWSらしいマネージドな仕組みで解決しようという、意欲的なリリースです。制約事項もそれなりにあるので、皆さんの運用ワークロードに当てはまるかは、事前の検証が必
PostgreSQL 20年史|コミッター石井達夫が振り返る変遷と進化の歴史 世界中で使用されるRDBMSであるPostgreSQLの長い歴史には、どのような変遷があったのでしょうか。長く、PostgreSQLに関わり続ける石井達夫さんに、同ソフトウェアの進化歴史の中にあるキーワードをもとに振り返ってもらいました。 オープンソースのRDBMSであるPostgreSQLは、いまや世界中の人々が利用するソフトウェアとなりました。その歴史は長く、ルーツは30年以上も前にさかのぼります。 PostgreSQLの前身は、カリフォルニア大学バークレー校で1986年に始まったPOSTGRESプロジェクトです。その後、1994年にAndrew Yu氏とJolly Chen氏がPOSTGRESにSQL言語インタプリタを追加し、翌年にPostgres95をリリース。1996年にようやくPostgreSQLとい
背景 Dockerコンテナを立てたらマルウェアに感染したのでサイバーセキュリティの啓蒙を兼ねてメモ書きしてみました。 注意事項 マルウェアに感染した被害の対処方法を記述しています。マルウェア自体の機能や解析の解説ではなく一般利用者ユーザーの視点から感染経路と対応方法についての記述になります。 マルウェア感染状況 症状 Dockerコンテナを稼働させたホストのロードアベレージ(CPU負荷)が常時4を超える状況になっていました。つまり400%でホストがフル回転してた訳ですな。 例えるならエヴァンゲリオン初号機が暴走してマヤちゃんがコンソール画面に向かって叫んでいるところです(違) こうなるとクラウドサービスのAWSとかだと英文で警告アラートが飛んで来ますし毎日課金されで膨大な利用料金請求が来ることになります。恐ろしい!! 状況の調査 CPUの利用状況やメモリの使用量などを調査するツール類があり
実録パフォーマンス改善 - 高速化のためアーキテクチャやアルゴリズム選択から見直すSansanの事例 インフラの特性をふまえ、ミドルウェアの挙動を理解し、プロファイリングによってボトルネックを把握し、要求に合ったアーキテクチャを選択する。そういった工夫を重ねることでアプリケーションのパフォーマンスを改善する事例を、Sansanの千田智己さんに聞きました。 アプリケーションの設計・実装方法を変えることで、性能が格段に向上するケースは数多くあります。有名IT企業のエンジニアは、どのような方針のもとでアーキテクチャあるいはアルゴリズム選択などでパフォーマンスを改善しているのでしょうか? 法人向けクラウド名刺管理サービス「Sansan」や個人向け名刺アプリ「Eight」を提供するSansan株式会社の千田智己さんに、これまで取り組んできた事例と、そのノウハウを教えていただきました。 千田 智己(せ
GitレポジトリのホスティングサービスGitLab.comは2020年の5月に 6TB あるPostgreSQL 9.6クラスターをたった2時間のメンテウィンドウ中に11.7へアップグレードしました。 GitLab.comのエンジニアブログに、このPostgreSQLのメジャーアップグレードプロジェクトが解説されていたので、かんたんにご紹介します。 How we upgraded PostgreSQL at GitLab.com | GitLab ポイント PostgreSQL 9.6から 11.7 へのメジャーアップグレード 2時間のメンテナンスウィンドウ内でアップグレード完了 データサイズは6TB DBクラスターは GCP 上の 12台の VM インスタンスで構成 クラスターはアップグレード用の8台とリカバリー用の4台に分割 pg_upgrade & ハードリンクでインプレースアップグ
2022年7月13日にカラーミーショップで提供開始した「副管理者機能」のアップデートにあたって、従前の挙動を変えずにデータベーススキーマの構造を変える必要がありました。また、サービスの提供を停止することなく、スキーマの構造の変更を進める必要がありました。 この記事では、サービスを停止せずにデータベースの構造を徐々に変更するデータベースリファクタリングをどのように進めたかについて紹介します。 「データベースリファクタリング」とは データベースリファクタリングについて体系的に述べた書籍として"Refactoring Databases"があります。この本では、データベースリファクタリングのさまざまなパターンにおいて、スキーマの変更、データマイグレーション(既存データの移行)、アプリケーションの変更それぞれをどのように進めるべきかについて解説しています。ここでは、"Refactoring Dat
7万人以上のITエンジニアの調査結果、好きな言語は「Rust」、DBは「PostgreSQL」、開発環境はVSCodeを抑えて「Neovim」がトップに。Stack Overflow 2022 Developer Survey 世界でもっとも大きなITエンジニアのコミュニティサイトの1つである「Stack Overflow」などを運営するStack Overflowは、約7万3000人のITエンジニアにアンケートを行った結果をまとめた「2022 Developer Survey」を発表しました。 The results are in! Our annual developer survey is here with insights from over 73,000 developers. From the most loved and loathed programming langua
こんにちは。ソウゾウのSoftware Engineer(CTO)の@suguruです。連載:メルカリShops 開発の裏側 Vol.2の1日目を担当させていただきます。 去年、2021年に開始した メルカリShopsの技術スタック についての記事を書きましたが、今回はリリースまでに採用した技術スタックが、半年通してどのようにアップデートしてきたかを共有したいと思います。 ローンチ時に採用した技術が、実際の運用でどのように変遷したのかを共有することで、技術スタックを考える際の何らかの参考になれば幸いです。 monorepo メルカリShops ではサービスに必要なコードを1つに集約する monorepo を採用しています。リリース後半年たってコード量はかなり増えてきましたが、monorepo に対する満足度は非常に高く、うまく機能しています。 サービス全体の見通しが良くなることと、すべての
GoogleはGoogle Cloudで提供している大規模分散データベース「Cloud Spanner」に、PostgreSQL互換のインターフェイスを実装したと発表しました。 At #GoogleCloudNext, we've announced the preview of Cloud Spanner’s PostgreSQL interface—combining the scalability & reliability of Spanner that enterprises trust with the familiarity & portability of PostgreSQL that dev teams . Take a deeper dive ↓ https://t.co/Y3xD1lDPLg — Google Cloud Tech (@GoogleCloudTech
Calendar for PostgreSQL | Advent Calendar 2021 - Qiita の10日目の記事です。 思い当たる節がある人は、今の見積もりの数倍の時間と予算を確保してからキックオフして欲しい。 多分、そのまま走ると誰か倒れるから。。。 で終わりにするわけにはいかないので、いくつか書きます。 もちろん、SQLがDBMSによって「方言」があるので、使える構文、関数名が違うってのは当然あるのですが、それ以外のところを中心に。 PostgreSQLのサーバーサイドエンコーディングはShiftJISをサポートしていない 今どき、新規で立てるデータベースはUTF8を選ぶよねーキャハハ、と思っても、何世代もバージョンアップしてきたOracleや、塩漬けされたOracleなんかは、ShiftJISを使っているところも多いのではないでしょうか。 自分で文字コードマッピングの処
これまでのPG-Stromの性能測定といえば、自社保有機材の関係もあり、基本的には1Uラックサーバに1CPU、1GPU、3~4台のNVME-SSDを載せた構成のハードウェアが中心だった。*1 ただソフトウェア的にはマルチGPUやNVME-SSDのストライピングに対応しており、能力的にどこまで伸ばせるのかというのは気になるところである。 そこで、方々に手を尽くして、次のようなベンチマーク環境を整備してみた。 (機材をお貸し頂いたパートナー様には感謝感激雨あられである) 4UサーバのSYS-4029GP-TRTというモデルは、GPUをたくさん乗っけるためにPCIeスイッチを用いてPCIeスロットを分岐している。ちょうど、PCIeスイッチ1個あたり2個のPCIe x16スロットが用意されており、同じPCIeスイッチ配下のデバイス同士であれば、完全にCPUをバイパスしてPeer-to-Peerのデ
そーだいなる DBRE Nightでの登壇資料です https://connpass.com/event/138437/ # 紹介資料 - https://speakerdeck.com/soudai/shi-xing-ji-hua-falsehua - https://www.youtube.com/channel/UCeenIljXnSwrwYEU-YBE2qA/feed - https://speakerdeck.com/soudai/postgresql-architecture-and-performance-monitoring - https://gihyo.jp/dev/feature/01/dex_postgresql/0002 - https://lets.postgresql.jp/documents/technical/query_analysis/1 - http
背景: GitHub wiki への不満 私の所属する研究室では、メンバー全員が1つの GitHub Organization に所属しており、情報共有はその Organization 上のリポジトリの GitHub wiki で行われています。 研究室がコンピュータサイエンス系であることもあってメンバーは GitHub や Markdown に慣れており、普段 GitHub wiki を使っていて困ることはそんなになかったのですが、それでも時々不満が出ることがありました。 不満として多いのは、色々記事を書いているうちに全体構造がよくわからなくなってしまうという点にあると思います。GitHub wiki ではディレクトリ構造を持てないので、全ての情報がリンクを経由してアクセスされることになり、段々と整理がつかなくなってしまいます。 複数のリポジトリにそれぞれ wiki を書くこともできます
はじめに こんにちは。ブランドソリューション開発本部FAANSバックエンドブロックの田村です。普段はサーバサイドエンジニアとしてFAANSのバックエンドシステムの開発をしています。 FAANSとは、弊社が2022年8月に正式ローンチした、アパレル店舗のショップスタッフの販売サポートツールです。FAANSでは、データベースとしてGCPのサーバレスでドキュメント指向のNoSQLデータベースであるCloud Firestoreを当初採用していました。Cloud Firestoreはサーバレスなので運用負荷が掛からず、また安価でスケーラビリティにも優れたハイパフォーマンスなデータベースです。 しかし、Cloud Firestoreを使用して開発・運用していく中で直面した様々な課題からGCPのフルマネージドのリレーショナルデータベースであるCloud SQLのPostgreSQLにデータベースのリプ
{ "plpgsqlLanguageServer.database": "データベース名", "plpgsqlLanguageServer.user": "ユーザ名", "plpgsqlLanguageServer.password": "パスワード", "plpgsqlLanguageServer.definitionFiles": [ // glob をサポート。 "**/*.sql", "**/*.psql", "**/*.pgsql" ], // Language Server が対応するファイルの拡張子はデフォルトで ['*.pgsql', '*.psql'] です。 // ( SQLite など他の RDS と競合させないためです。) // '*.sql' のファイルも対応させたい場合は、下記の設定を追加してください。 "files.associations": { "*.sq
[速報]Google、PostgreSQLにAI対応を組み込んだ「AlloyDB AI」発表、オンプレミスでも他社クラウドでも利用可能に。Google Cloud Next '23 Googleは、8月29日(日本時間の30日未明)から米サンフランシスコで開催中のイベント「Google Cloud Next '23」で、同社が提供するPostgreSQL互換のデータベース「AlloyDB」にAI対応機能を組み込んだ「AlloyDB AI」を発表しました。 AlloyDB AIは、データベース内に保存されているデータをAIと組み合わせて利用しやすくする機能を搭載しており、企業などが持つ商品データや顧客データなどをAIで活用するアプリケーション構築を容易にします。 一般に、企業がAIや機械学習を利用したアプリケーションを開発する場合、既存の大規模言語モデルなどをそのまま利用するのではなく、自社
Amazon Web Services ブログ アプリケーション開発者のための PostgreSQL アーキテクチャに関する検討: パート 1 アプリケーション層は多くのクラウドアーキテクチャで世界中がアクセスする部分ですが、使用しているデータベースに合わせてアプリケーションを最適化する方法を検討することはほとんどないようです。リレーショナルデータベースエンジンを使用するときは、スキーマの設計だけでなく、アプリケーションが管理可能で、スケーラブルで、パフォーマンスが高いことを保証するために、データベースがストレージシステムに対してデータを読み書きする方法を理解することが重要です。シリーズのパート 1 となるこの投稿では、PostgreSQL の主要な用語について説明し、次に、Amazon Aurora PostgreSQL 互換エディションまたは Amazon Relational Dat
-------------------------------------------------------- -- users テーブルについて、部署・役職・作成日ごとに件数を集計する -- (MySQL用) -------------------------------------------------------- SELECT u.department_code `部署コード`, u.role_code `役職コード`, DATE_FORMAT(u.created_at, '%Y-%m-%d') `作成日`, COUNT(*) `人数` FROM users u GROUP BY u.department_code, u.role_code, DATE_FORMAT(u.created_at, '%Y-%m-%d') ORDER BY u.department_code ASC
サービス概要 タイトル通り、現状はSoundCloudみたいに自分の作った曲を投稿できるサービスです。 現在実装されている機能は以下の通りです。 楽曲投稿 アルバム ランキング メッセージ(DM) フォローとフィード(タイムライン) いいねとブックマーク タグ・キーワードによる検索 このようにとりあえずSoundCloudのような楽曲投稿サービスとしての機能は最低限備えていますが、ゆくゆくはミュージシャンの活動拠点になることを目指しています。というのは、例えばYouTubeへの投稿や各種サブスク配信へのリンク、またライブなどイベントへの参加日程など、活動の実績/予定などがすべて1ページでわかるようにしたいと思っています。 また、ミュージシャン同士の交流/発見の場にしていきたいです。バンドメンバーや演奏を依頼する相手を見つけるのに適した場所はあまりありません(いわゆるメン募サイトは機能不全だ
A modern, easy to use, and good looking SQL client for MySQL, Postgres, SQLite, SQL Server, and more.
「アサシン クリード」シリーズなど数多くの作品を生み出したゲームスタジオのUbisoftに就職したヤン・ハラシム氏が、Ubisoftの内部事情について心情を吐露しました that time my manager spent $1M on a backup server that I never used https://blog.dijit.sh//that-time-my-manager-spend-1m-on-a-backup-server ユーザーのプロフィール情報をゲームサーバーからゲームサーバーへ渡すシステムの保守や、その情報を保存する既存のデータストレージが高性能かつ耐久性のあるものであることを実証するよう命じられたハラシム氏は、3ヶ月間にわたりUbisoftで使用されていたMySQLを徹底的に分析してパフォーマンステストを行い、内部ロックのボトルネックを見つけ、どのような状況
Creating Microservices with Python Introduction to Microservices Benefits of Microservice Drawbacks of Microservice Why Microservice in Python Introduction to FastAPI Why FastAPI Installing FastAPI Creating Simple REST API using FastAPI Using PostgreSQL Database with FastAPI Microservice Data Management Patterns Database Per Service Shared Database API Composition Creating a Python Microservice in
はじめに 本記事では、PostgreSQLのLISTEN/NOTIFY機能とGoを組み合わせた、メッセージをリアルタイム配信するための仕組み・実装を紹介します。 私たちが開発しているMiROHA eConsentでは本記事で紹介する仕組みを利用して、ユーザが見ている文書のページをリアルタイムに知らせる機能をリリースしました。 MiROHA eConsentは、治験業務支援サービス MiROHAのシステムの一部で 、治験の同意取得プロセスをオンラインのみで完結させることができるプロダクトです。医師とCRC[1]・被験者が同じルームに入室し、ビデオ通話を繋ぎながら治験に関する説明から同意署名、署名した文書のダウンロードまで一気通貫で行うことができます。 MiROHAシステムの全体図。医師/CRCと被験者の間で同意取得ができる機能を提供しているのがMiROHA eConsentになります。 プロ
先日、統計ダッシュボード機能(β)をリリースしました。記事をひとつでも公開している場合、Zennにログインすればどなたでも統計情報を表示できます。執筆頻度の確認や閲覧回数の参考にお役立てください。 本稿ではどのように実現したかについて課題とともに記録します。 TL;DR 投稿ページの表示イベントは Google Analytics から BigQuery へ連携しており、イベントデータ(BigQuery)と記事データ(Cloud SQL)をどうJOINさせるかが課題 外部接続でBigQueryからCloud SQLつなぐことにした 統計データ読み出し時、BigQueryを直接使うとクエリ毎に課金されてしまうため、BigQuery BI Engine を使うことにした スケジュールクエリを使い、BI Engineの容量に収まるように集計データを最小限にまとめる チャートは Chart.js
PostgreSQL 14正式リリース。多くの接続を使用するワークロードや論理レプリケーションでの性能向上、可観測性の向上など新機能 オープンソースのリレーショナルデータベース「PostgreSQL 14」の正式版がリリースされました(日本語版のプレスリリース)。 PostgreSQLは毎年9月末から10月初旬にメジャーバージョンアップが発表されており、今年も順調に新バージョンが登場しました。 参考:PostgreSQL 13正式版リリース。B-Treeインデックスの重複排除、同一テーブル内でのVacuum並列処理など新機能 News: PostgreSQL 14 Released! https://t.co/vfM3ajUFnT — PostgreSQL (@PostgreSQL) September 30, 2021 PostgreSQL 14では、頻繁に更新されるインデックスを持つテ
AppBrew で LIPS のリードエンジニアをしている @spinute です。 突然ですが、みなさん、コマンドラインは好きですか? 私は好きです。好きなコマンドは tldr, glances, tig で、よく使うコマンド Top-10 はこんな感じです。1 $ history | awk '{print $2}' | sort | uniq -c | sort -nr | awk 'NR<=10 {print $2}' | cat -n 1 git 2 vi 3 fg 4 tig 5 l 6 cd 7 grep 8 curl 9 aws 10 go ストイック・ハードボイルド路線ではなく、シンプルで安定したインターフェースを提供しながらも、認知上の負荷を下げてくれるリッチなコマンドが好きです。 AppBrew では、ウェブ生まれアプリ育ちの人が多めだったり、ソフトウェアエンジニアの
Amazon Web Services ブログ Amazon RDS Online Seminar 「忘れちゃいけない!Amazon RDS/Amazon Aurora のアップグレードとその方法」資料・動画及び QA 公開 先日(2021/11/11) に開催した Amazon RDS Online Seminar「忘れちゃいけない!Amazon RDS/Amazon Aurora のアップグレードとその方法」の資料・動画を公開しました。 当日、参加者の皆様には数多くの QA を頂きありがとうございました。頂いた QA の一部についても共有しています。 【動画】 – RDS/Aurora Update – RDS/Aurora MySQL Major/Minor Upgrade – RDS/Aurora PostgreSQL Major/Minor Upgrade – RDS for O
AWS、Graviton 2ベースのAmazon Aurora正式サービス開始。最大で35%の価格性能比が向上と Amazon Web Services(AWS)は、同社が開発したARMベースのプロセッサ「Graviton 2」を採用したマネージドなデータベースサービス「Amazon Aurora MySQL」と「Amazon Aurora PostgreSQL」が、正式サービスとして提供開始されたことを発表しました。 x86サーバより40%価格性能比が高いと主張 「Graviton2」はAWSがクラウドで利用するために独自開発したARMベースのプロセッサです。 初代の「Graviton」はre:Invent 2018で発表され、翌年のre:Invent 2019では早くも二代目の「Graviton2」が登場しました。 Graviton 2では、7nmルールで製造された64ビットのArm
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く