「ポストグレス」「ポストグレスキューエル」などとも読む。 オープンソース系RDBMS(Relational Database Management System) のひとつ。 最近のバージョンでは(SQL99の仕様に近い)オブジェクト指向リレーショナルデータベースとしての機能も充実してきており、その高機能さが特徴となっている。 同じオープンソース系RDBMSでも、機能よりも速度と扱いやすさを選んだMySQLとは対照的である。
Rubyでpg gemを使って、postgresqlに接続してクエリの実行結果を見ていたところ、boolean型のカラムの戻り値がTRUEの場合にt、FALSEの場合にfとなる現象を確認しました。 CREATE TABLE test1 (a boolean, b text); INSERT INTO test1 VALUES (TRUE, 'sic est'); INSERT INTO test1 VALUES (FALSE, 'non est'); SELECT * FROM test1; a | b ---+--------- t | sic est f | non est 最初はpg側で…
こんにちは、最近腰痛が気になるゴマ太郎です。 本日は Django モデルの ForeignKey について解説します。 1. ForeignKey とは 1-1. モデルを紐づけるリレーションフィールド 1-2. ForeignKey は「一対多」の関係を持たせる 2. 前提条件 2-1. 環境 3. ForeignKey の使い方 3-1. models.py での書き方 3-2. 管理サイトで確認 確認に必要なコードの追記 管理サイト 3-3. on_delete の種類 4. 最後に 5. 参考 1. ForeignKey とは 1-1. モデルを紐づけるリレーションフィールド For…
はじめに PostgreSQL の設定には effective_cache_size というディスクキャッシュのサイズを指定できるパラメータがあります。このパラメータはディスクキャッシュを実際に確保するために利用されることはなく、推定目的でのみ利用されます。今回の記事では PostgreSQL がこのパラメータをどのように利用しているのか確認します。PostgreSQL 15 を対象に調査しています。 effective_cache_size の利用箇所 ソースコードから調査したところ、effective_cache_size は以下の2箇所で利用されていました。(1) インデックススキャンの…
はじめに こんにちは。dazyuです。ラクダとか貨物を載せて歩いてくれる家畜動物: 駄獣が元ネタです。最近LAMB/ラムという映画を見ました。 アイスランドが舞台とのことで、内容もさることながら雄大な自然を背景にしたシーン一つ一つが美しく、見て損はなかった作品でした。今回の投稿が初めてのブログになります。お手柔らかにお願いします。 はじめに 概要 環境 What is Gitea 構築するシステムの概説 構築作業 1. docker-compose.ymlの作成 2. dockerで環境立ち上げ 3. Giteaの設定 4. 動作確認 4.1. git clone 4.2. git push …
pgunconf.connpass.com 昼間に {MySQL のイベントにオフライン参加](https://hmatsu47.hatenablog.com/entry/2023/04/26/002834) したので、東京のホテルからの参戦、でした。 ホテルの回線環境が少し不安だったのですが、直前に jawsug-container.connpass.com にオーディエンスとして参加してみて概ね大丈夫だったので、安心して登壇(発表)参加できました。 今回のツイートのまとめはこちらです(ぬこさんありがとうございます)。 昨晩のPostgreSQLアンカンファレンスツイートまとめです。http…
こんにちは! 株式会社バトンズでエンジニアをしているyamafです。 エンジニアはマーケや営業からデータ集計の依頼を受けることがよくあるのではないでしょうか。 以下のようなデータ集計の依頼があった場合、皆さんどのように取得しますか? 企業別の新規ユーザー登録数を月毎に出してほしい。 期間は2022年10月から2022年12月まで。 その後のデータ分析の都合上、月毎に抜けもれなくカウントを出してほしい。 例えば、その月対象企業が登録がなかった場合でもカウントは0と出してほしい。 以下のイメージ。 企業名 月 ユーザー登録者数 株式会社AAA 2022-10 3 株式会社AAA 2022-11 0…
「PG-Stromのパッケージング化」がお題となったため、去年末くらいに検証したDocker/PodmanといったようなコンテナーでPG-Stromを動かす方法 に次いで、AnsibleでPG-Strom環境構築の自動化する方法について調査することにしました。 今回はRed Hat Enterprise Linux 8.6とRocky Linux 8.7に対応する形にしました。RHELは偶数バージョンのみサポート期間が長いという特性があるので、バージョン8.6にしています。今後も偶数バージョンがリリースされるごとに対応する予定です。 Rocky LinuxはRHELクローンのひとつですが、CU…
先日アプリの不具合調査の際にコードを読んでいたが、よく理解できていなかったのでまとめてみました。 結論から言うとSQLのWHERE句で比較条件で = を使用する場合、NULLは評価されないです。 こちらの記事にもある通りですが、 NULLはデータの欠落を表すため、任意の値や別のNULLとの関係で等号や不等号は成り立ちません。 以下でMySQLとPostgreSQLで実際にレコードを挿入して試してみました。 MySQL $ sudo docker run -e MYSQL_ROOT_PASSWORD=password mysql:latest $ sudo docker exec -it d10…
概要 参考情報 概要 以下、自分用のメモです。忘れないうちにメモメモ。。。 以下の記事で知りました。感謝m( )m www.publickey1.jp AlloyDBのオンプレミス版がテクニカルプレビューで公開されています。 cloud.google.com cloud.google.com PostgreSQLとフル互換、標準よりもトランザクション性能が良い、開発環境での利用は無料はいいですね。 参考情報 cloud.google.com 過去の記事については、以下のページからご参照下さい。 ブログ過去記事置き場 サンプルコードは、以下の場所で公開しています。 Goのサンプルコード置き場 C…
やりたいこと:UbuntuにPostgresqlのバージョン14を入れたい 環境:Ubuntu20.04 (WSL2) やったこと1 MicrosoftのURLを参考にインストール WSL を使用してデータベースを追加または接続する sudo apt update sudo apt install postgresql postgresql-contrib psql --version → Postgresqlのバージョン12がインストールされたのでアンイントール # 下記コマンドで消した後も場所確認 dpkg -l | grep postgres # バージョン指定 sudo apt rem…
エイプリルフールのいつものやつではありません。 株式会社はてなに入社しました - hitode909の日記 今年の3月に株式会社はてなにSREとして入社して3か月が経ったので、自身の振り返りも兼ねてブログを書いています。 SREのオンボーディングの雰囲気に関しても、このブログでお伝えできるといいかなと思っています。 自己紹介 id:taxintt です。 twitter.com 前職は株式会社ビザスクという会社で主にCore SREとして働いていて、はてなに転職してからは監視SaaSのMackerelの開発チ-ムでEmbedded SREとして働いています。 前職ではGCPを利用していて、AW…
はじめに こんにちは。FAANSバックエンドエンジニアの浜口(@xlgorbylx)です。普段はFAANSのバックエンドシステムの開発をしています。 FAANSとは、弊社が2022年8月に正式ローンチした、アパレル店舗のショップスタッフの販売サポートツールです。例えば、ZOZOTOWN上で実店舗の在庫取り置きができる機能や、コーディネート投稿の機能などを備えています。投稿されたコーディネートはZOZOTOWNやWEAR、Yahoo!ショッピング、ブランド様のECサイト等に連携が可能です。これによりお客様のコーディネート選びをサポートし、購買体験をより充実したものにします。機能の詳細に関しまして…
SREチームの長田です。 突然ですが、 mirage-ecs というツールをご存知でしょうか? 今回はこのツールをまちのコインの開発チームでの使用例をもとに紹介します。 coin.machino.co mirage-ecs を使うと動作確認用のサーバー環境を、サーバーサイドのエンジニアでなくとも自由にいくつでも立ち上げることができるようになります。 「環境」は AWS のECSクラスタ上で起動し、専用のURLが割り当てられ、 認証*1を通過すればどこからでもアクセスできます。 これにより 「クライアントアプリとつなぎ込んで動作確認したいけど、開発環境が空いてないから確認できない」 や、 「プロ…
こんにちは。ROBOT PAYMENTでエンジニアをしているtakamoriです。 今回は、AWS App Runnerを使って簡単にデプロイできましたの記事の続編として、AppRunner環境の構築に利用しているAWS CDKの実装編を書いていきたいと思います。 tech.robotpayment.co.jp 目的 本記事の目的は、主にAppRunnerとRDS連携のCDK実装のサンプルコードの紹介です。 AppRunnerはフルマネージドサービスなので簡単な設定で利用できますが、RDSやDynamoDBといった別リソースにアクセスする等が往々に発生します。その際の参考にしていただければ幸い…
2023/05/31分のコミットです。 CHANGELOGにのったコミットは以下の通りです。 actionview/CHANGELOG.md Add support for HTML5 standards-compliant sanitizers, and default to Rails::HTML5::Sanitizer in the Rails 7.1 configuration if it is supported. actioncable/CHANGELOG.md Added health_check_path and health_check_application config …
ChatGPTに長年の悩みであるデータベースについて質疑応答を繰り返し、ある程度 ベースとなる知識をみにつけることができました。 今回はその過程をご紹介します。みなさんがChatGPTを活用される際の参考にしてみてください。 私、データベースに憧れておりまして。 漠然としていますが、自分でデータベースを作って運用したいなぁと思っています。 で、亀の歩みではありますが少しずつ理解を進めてきました。 「データベースなんて所詮テーブルの集合体なんですよ」 という以前ご一緒した派遣社員の方のセリフが印象的でした。 そして昨年、部内申請サービスの開発に携わることにより、かなり自分の中で肌感を持ってデータ…
こんにちは、技術広報のyayawowoです。 突然ですが、株式会社ラクスと聞いて何を思い浮かべますでしょうか? 弊社ラクスでは、様々なプロダクトを展開していますが正直認知度は低いと思っております。 そこで今回、弊社についてもっともっと知っていただくため・・・ ラクスが展開している全10プロダクト 全10プロダクトの技術スタック インフラ/SRE/デザイナーの技術スタック について、ご紹介させていただきます! SaaS開発に携わる方、弊社に少しでも興味を持っている方の一助となれば幸いです!
今回は大したプログラムではないけど、データベースを絡めたプログラムを作った SpringBootで作ったプログラムをConohaVPSでUbuntu22LTSで動かした DBはpostgresql14やったことの備忘録 ConohaVPSでうぶんつサーバー追加してTeraTermで開いた 下記を実行 sudo apt update sudo apt install openjdk-17-jre sudo apt install openjdk-17-jdk sudo apt install git wget https://services.gradle.org/distributions/g…
SQLで文字を連結する時は||演算子を使います。 しかし、PostgreSQLで文字列を連結する時、その文字型のカラムにNULLが入っている場合、全体がNULLとして返ってきてしまいます。 例えば下記のSQLはNULLが返ってくる。 SELECT 'Hello' || NULL || 'World'; そのため、この問題を回避するにはconcat関数を使います。 concat関数は、文字列を順番に連結しNULLの値を無視します。 SELECT CONCAT('Hello', NULL, 'World'); これならNULLが含まれていてもNULLを無視して文字列を連結し、結果は'HelloWo…
Retool というローコードツールを社内業務で活用してみたので、構築法を紹介します。 Retool とは Retool でできること Retool のライセンス体系と入手元 構築法 EC2 と RDS インスタンスの作成 EC2 インスタンスに Docker Service を入れる Retool を取得し初期設定する Retool を起動する アプリを作ってみる e-Stat の AppID を取得する データソースを作る UI/UXを作る コスト(おまけ) Retool とは 業務用Webアプリケーションのユーザインタフェースを、手早く作成できるOSSで、GitHub でデプロイ可能なソ…
■ はじめに dbt に関するお仕事が入ったので、急遽メモ。 目次 【1】dbt 1)サポートデータプラットフォーム 【2】インストール 1)pip によるインストール 【3】QuickStart 0)前提条件 1)作業ディレクトリを作成する 2)テスト用DB環境を準備する 3)DBへの接続設定を行う 4)dbt initの実行 5)dbt debugの実行 6)dbt runの実行 7)dbt docs generateの実行 8)dbt docs serveの実行 【4】トラブルシュート 1)「dbt init users」実行時に「Error: Invalid value for '--…
この記事の続き 目次 6章:キーバリューストアの設計 7章:分散システムにおけるユニークIDジェネレータの設計 マルチマスタ uuid チケットサーバ twitterのsnowflakeアプローチ 感想 6章:キーバリューストアの設計 正直かなり微妙な章でした。RedisやCassandraなどの内部設計が頭に入ってれば読みとばして良い気がしました。 日本語訳が微妙 CAP定理などの微妙な定理をいまだに利用して分散システムを考える 前者は内容というより訳者の問題でしょうか。和訳だと「結果整合性」と訳すべきであろうところを「最終的な一貫性」と訳してる部分があって、一般的に利用されている訳語がある…
こんにちは、tosumaです。 今回はAjaxを使って画面の一部情報のみを更新する方法について出来るだけ簡単にご紹介します。 1|まえおき 2|Ajaxとは 3|非同期通信とは 4|サンプルプログラム 4.1.list.html 4.2.ajax.js 4.3.get.php 1|まえおき Ajaxは「聞いたことはあるけど何か難しそう」みたいな印象をよく持ちがちな技術ですよね。Web開発者の壁の1つじゃないでしょうか、といってもAjaxそのものは難しいわけではないですが、Ajaxを実現するためにアーキテクチャの理解をはじめ、JavascriptやDOMやDBなどの必要になる事が多いため、総合的…
はじめに こんにちは、サーバーサイドエンジニアの @shiroemons です。 プルリクエストにDBスキーマの変更が含まれた場合、ER図を自動生成するために、tblsとGitHub Actionsを組み合わせた設定を行いました。 DBスキーマの変更は開発プロセスにおいて頻繁に発生しますが、手動でER図やドキュメントを更新することは煩雑で効率が悪い作業です。 そこで、GitHub Actionsとtblsを使用することで、ER図の自動生成と更新を容易に実現できました。 今回は、設定したGitHub Actionsの設定ファイルを紹介します。 必要なツールと環境 今回紹介するツールと環境はこちら…
はじめに テクノロジー戦略本部開発1部の伊与田です。 私はAXISという在庫・販売管理システムのチームでバックエンドエンジニアとして開発、運用を担当しています。 今回は私が実施したPostgreSQLのアップグレード対応について、書いていきたいと思います。 具体的なアップグレード方法というよりは、Productionアップグレードまでの「調査」や「検証」で気づいたこと、 アップグレード後に発生した「問題」について、どう試行錯誤したのかを記したものとして、 これからアップグレードを対応される方が、スムーズに進めるための参考としていただけると幸いです。 はじめに AXISについて 環境名について …