「ポストグレス」「ポストグレスキューエル」などとも読む。 オープンソース系RDBMS(Relational Database Management System) のひとつ。 最近のバージョンでは(SQL99の仕様に近い)オブジェクト指向リレーショナルデータベースとしての機能も充実してきており、その高機能さが特徴となっている。 同じオープンソース系RDBMSでも、機能よりも速度と扱いやすさを選んだMySQLとは対照的である。
PostgreSQL はクライアント認証の設定を pg_hba.conf ファイルで管理しています。このマニュアルには下記の記載があります。 pg_hba.confレコードは接続が試みられる度に順番に検査されます 21.1. pg_hba.confファイル 接続を試みる度に検査する、ということは、接続済みであれば検査されない、とも取れます。そして実際にそのような挙動となります。PostgreSQL 15.3 で試してみます。pg_hba.conf の一部を抜粋します。 # TYPE DATABASE USER ADDRESS METHOD # "local" is for Unix domai…
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…
John the Ripperを使用したパスワードクラックの方法 Kali LinuxからMetasploitable2にtelnet接続をする Metasploitable2でroot権限になり/etc/passwdファイルを開く Kali Linuxでpasswd.txtファイルを作成する Metasploitable2でroot権限になり/etc/shadowファイルを開く Kali Linuxでshadow.txtファイルを作成する 取得したユーザー名とパスワードでMetasploitable2に接続できるか確認する 他のユーザー名でもログイン出来るか確認する そもそも/etc/sha…
Hydraを使用した辞書攻撃によるパスワードクラックの方法 Kali LinuxとMetasploitable2を起動する 辞書攻撃に使用するファイルを用意する Metasploitable2のポートの開放状況を調べる 辞書攻撃の実行 実際に侵入出来るか確認してみる 脆弱なログインログイン画面の突破 やられサイトであるDVWAのログイン認証を突破する DVWAのHTMLソースを確認してみる 攻撃コマンドの作成 実際に攻撃してみる 実際にログインしてみる オプションの確認 基本構文 オプション一覧 参考 Hydraを使用した辞書攻撃によるパスワードクラックの方法 Hydraはパスワードクラックツ…
4/3からフィヨルドブートキャンプで勉強をし、2ヶ月が経過しました😆 1ヶ月間(5/4~6/3)の振り返りを書きたいと思います。 5月の過ごし方 勉強の状況 勉強時間 初めてやったこと RubyKaigiに参加 LTに初登壇 できるようになったこと 今の気持ち 6月の目標 5月の過ごし方 基本は午前か午後どちらか図書館に行き、もう半日は家で勉強するというリズムで学習していました。近隣に2箇所図書館があるので、気分によって使い分けていました。 勉強だけでなく、遊んでいる時間も多かったです。5月はちょっと遊びすぎたかなと思っています。 遊び1:女子会でサボテンとワニを食べる。 遊び2:夫と潮干狩り…
この記事ではWebアプリをDocker化する方法を紹介していきたいと思います。 ※今回の例はrubyとrailsです。 まずはアプリケーションディレクトリ内にDockerfileを作成します Dockerfile内にはどういう内容でコンテナを作成するかを記載していきます。 既存プロジェクトがある場合はバージョン等は合わせて下さい。 FROM ruby:3.0.2 RUN mkdir /rails-app WORKDIR /rails-app COPY Gemfile /rails-app/Gemfile COPY Gemfile.lock /rails-app/Gemfile.lock RUN…
2023/06/02分のコミットです。 CHANGELOGにのったコミットは以下の通りです。 activerecord/CHANGELOG.md Assign auto populated columns on Active Record record creation Remove the deprecation warning when prepared_statements configuration is set for the mysql2 adapter. Fix where on association with has_one/has_many polymorphic rela…
こんにちは、tosumaです。 PostgreSQLの新しい環境を作成した際に 当然データの移行が伴いますが小さいテーブルなんかだと SQLエディタなどで軽くコピペできますが大きなテーブルだったり改行コードを含むような データの移行が面倒だったのでDBリンクを使ってサクッと移行しました。3ステップでかなり簡単なので手順を共有します、ご参考にどうぞ。 (PostgreSQL 14の手順なので別バージョンの場合は適時訂正ください) 1|contribモジュールのインストール 2|extensionの作成 3|SQLの作成~実行 1|contribモジュールのインストール まずはcontribモジュ…
はじめに インフラエンジニアの長田です。これまでマイクロアドのインフラ環境ではCentOS7を使っていましたが、現在はUbuntu20.04への乗り換えを順次進めています。 それに伴い、CentOS用に作ってきたAnsibleロールのUbuntu対応やGitHubリポジトリの構成見直し、新しいバージョンのAnsibleへの追随など様々なリファクタリングを進めています。 また、複数のansible-core、Moleculeバージョンで同時にテストするために、Pythonのテスト用仮想環境を管理するtoxというツールを活用しています。 はじめに Ubuntuへの対応 ロールのリポジトリ分離 an…
KanmuでPoolを開発しているhataです。最近、ロボット掃除機を買いました。ロボと猫がじゃれている景色はいいですね。 今回はGoのユニットテストの並行化についての記事です。 TL;DR Goのテストは、並行化することでテスト実行時間の短縮やテスト対象の脆弱性の発見などのメリットがある 基本的にはそのままでも最適化されているが、テストコードにt.parallelを記述することでよりきめ細やかな最適化を施すことができる ただし、一定規模以上のアプリケーションへの導入・運用は大変 テストコードを一気に並行化するtparagenというツールや、並行化忘れを防ぐ静的解析ツールがあり、これらを使うこ…
こんにちは。プラットフォーム開発部 のthorです。 以前の記事で、Four keys(海外では、指標を提唱した組織名からDORA Four Key metricsと呼ばれる事が多いです)についてご紹介しました。このメトリクスを測定するためのオープンソースのプロジェクトにFour Keysプロジェクトがあります。このプロジェクトを使用するには以下の要件を満たす必要があります。 実行環境 Google Cloud 対応データソース ArgoCD Circle CI Cloud Build GitHub GitLab PagerDuty Tekton 2022年5月時点のロードマップを見ると、Gi…
こんにちは、バックエンドエンジニアの近です! 2023/5/11〜13に長野県にて開催されたRubyKaigi 2023でプラチナスポンサーとして協賛し、スポンサーブースを出展しました。 また、今年は我々が運営しているファッションコーディネートアプリ「WEAR」のサービス紹介CMを作成し、RubyKaigiの会場にて放映させていただきました。 technote.zozo.com technote.zozo.com 実際に放映されたCMは以下になります! www.youtube.com 我々が運営・開発しているファッションコーディネートアプリ「WEAR」のバックエンドはRuby on Rails…
エイプリルフールのいつものやつではありません。 株式会社はてなに入社しました - 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といった別リソースにアクセスする等が往々に発生します。その際の参考にしていただければ幸い…