はじめに Postgres には JSON/JSONB というデータ型がありますが,JSONB はデータをバイナリ形式で格納するためインサート時に変換のオーバーヘッドがあるものの,その後の処理が非常に高速である上に,インデックスを貼ることができるため,実用上は JSONB を使うのが一般的です. 一方で,そもそもRDB のようなスキーマの厳格な型付けをしているシステムで半構造化データである JSON を扱うこと自体がアンチパターンであるという指摘もあります. しかしながら,適切に設計,運用することで厳格なRDB で柔軟なデータを扱うことができ,アプリケーションの表現の幅を広げることができます.本記事では,JSONB を可能な限り安全に扱うための実践的な工夫を紹介します. JSON Schema を使ったバリデーションを Check Constraint にする Postgres では

基幹系システムのような社内システムにおいても、オープンソースソフトウエア(OSS)の利用が当たり前になってきた。クラウドサービスを利用する場合や、開発担当者と運用担当者が連携する開発手法DevOpsを採用する場合など、OSSの利用を避けられない。 多くの企業でOSSの利用が進む中、OSSを採用した当初は想定していなかった誤算に直面するケースが浮上している。商用のソフトウエアに比べてサポート期間が短かったり、サポートが充実していないため脆弱性が見つかっても放置してしまったりといった課題だ。ユーザー企業は安易に導入コストだけを見てOSSを採用するのは禁物だ。その後の長期間の運用・保守も含めた体制の検討が求められる。 「OSSの採用がここ数年で周辺システムから基幹系に広がった。その結果、ユーザー企業からは長期間、同じバージョンのソフトウエアを使いたいという要望が増えている」。OSSのデータベース

はじめにTIG真野です。育休明けです。 PostgreSQLには timestamp with time zone(timestamptz: 長いので以後こちらで表記します)型が存在します。一見、タイムゾーン付きで日時データを保持してくれそうな名称ですが、そうではないよという話をさせてください。 timestampz の仕様PostgreSQLのドキュメント 8.5.1.3. タイムスタンプ には以下のような仕様が書かれています。 timestampzの内部に格納されている値は UTC である 入力文字列にタイムゾーンが指定されていれば、そのタイムゾーンを元にUTCに変換され保持される timestampzの値を取得すると、UTCから現行のタイムゾーンに変換されて表示される 1,2 は timestamp with time zone という名称から、書き込み時のタイムゾーンも保持している

こんにちは。マッハバイトを運営するアルバイト事業部エンジニアの mnmandahalf です。 先日、マッハバイトの販売管理システムで使っているデータベースをオンプレPostgreSQLからAmazonAuroraMySQLに移行しました。本記事では移行に至った背景、吸収する必要があった差分や苦労した点についてお話しします。 環境 移行前のバージョン: PostgreSQL 9.4 ※ドキュメントはバージョン14のものを添付しています 移行後のバージョン:AuroraMySQL 3.02.0 (compatible withMySQL 8.0.23) 環境MySQL移行の背景 データ移行方法の検討Embulkの実行で考慮したポイントEmbulkの設定 scram-sha-256認証への対応 タイムスタンプが9時間巻き戻る FK制約を無効化できない PostgreSQLとM

表示されたプロセス一覧の中からCPU負荷を極端に使用しているプロセスを探したところありました。 「/tmp/kinsing」 「/tmp/kdevtmpfsi」 この2つのプロセスがCPU負荷300%を超えていました。 kinsing(kdevtmpfsi)マルウェア このDockerマルウェアは感染したDockerホストで仮想通貨をマイニングしてCPU負荷を掛ける仮想通貨マイニングマルウェアです。ここではマルウェア自体の機能と解析の解説は記述しません。 詳しくは以下のリンク先を参考にしてください。 脅威:コンテナ環境を対象としたマルウェア「Kinsing」が増加中 #AquaSecurity #セキュリティ #コンテナ #マルウェア コンテナを標的にしたマルウェア、AquaSecurity Softwareが攻撃手法を解説 感染経路 誤って外部公開されたDockerAPIが主な感染経

PostgreSQLではデータベースを作成すると、デフォルトで public スキーマが作成され、任意のユーザーがこのスキーマにオブジェクトを作成できました。CVE-2018-1058 でpublicスキーマのこの仕様とsearch_pathを使ったトロイの木馬攻撃の脆弱性(仕様の潜在リスク)が報告されました。 この攻撃から守るために、以下のような方法が推奨されています。 public スキーマのCREATE 権限を REVOKE ユーザーごとにスキーマを割り振る search_path に public スキーマが含まれないように調整 PostgreSQL 15からは、1つ目の回避策がデフォルトで有効になり、データベースのオーナーだけがpublicスキーマにオブジェクトを作成できるようになります。 Remove PUBLICcreation permission on the pu

概要 原著者の許諾を得て翻訳・公開いたします。英語記事: Faster JSON generation using PostgreSQL JSON function | BigBinaryBlog 原文公開日: 2018/05/29 著者: Chirag Shah サイト: BigBinary 参考: JSON関数と演算子 --本記事で扱われている関数が掲載されていますRailsでのJSON生成方法は多種多様です。#to_jsonメソッドはRailsに組み込まれていますし、jbuildergemやactive_model_serializers gemも同じ目的に使えます。 データベースのレコード数が増加するに連れて、Railsのレスポンス生成時間が大きく増大します。このボトルネックを追うと一般にJSON生成部分にたどり着きます。 最近私たちのアプリで、ページ読み込みに異常に時間が


アマゾン ウェブ サービス ジャパン(AWSJ)が7月5日、AWS上でのデータベース(DB)技術をテーマとしたイベント「AWS Solution Days 2017 ~AWSDB Day~」を開催した。基調講演では4名のゲストが登壇し、AmazonAurora/RDS、PostgreSQL、MySQL/MariaDB、OracleDB、SQL Server、Kinesis FirehoseなどのAWS上での性能検証結果やDB移行、活用事例などを技術的側面から紹介した。 基調講演レポート前半ではまず、SRA OSS, Inc.の石井達夫氏による「AmazonAurora with PostgreSQL Compatibility」のパフォーマンス検証結果報告、インサイトテクノロジーの小幡一郎氏によるOSSのカラム型DBエンジン「MariaDB ColumnStore」紹介をお届けする

弊社では、RDBMSにPostgreSQLを利用して数年間サービスを運営しています。 PostgreSQLはMySQLと違って、Webサービスでの運用事例をあまり見かけないので、今回は弊社サービスの「夜行バス比較なび 」でどのように運用しているかを紹介いたします。 システムの特徴 ユーザからのアクセスは、9割が参照処理。 データはバッチ処理で、随時 ( 毎分 ) 更新されている。 参照SQLの結果はmemcachedを利用してキャッシュをしているが、データの更新頻度が高いため長時間のキャッシュはしていない。 参照SQLは、集計処理が多いため比較的重いSQL。 参照対象となるテーブルのデータ量は、最大で数100万レコードと比較的少ない。 24/7で稼働。 構成AWSのEC2上に、PostgreSQL 9.3を導入しています。c4系のインスタンスを使いたいので、RDSは使っていません。インス

はじめに ビッグデータ、データサイエンスという言葉の流行を大きく後押ししたのは大規模なスケールアウト、分散処理を可能としたHadoopの存在です。しかしデータサイエンティストは日々のデータ処理作業において必ずしも複数台のマシンを必要とするような大規模な処理ばかり行っているわけではありません。自身の開発用ワークステーション1台で完結するような処理も多数存在します。 2016年ではもはや当たり前ですが、多くのワークステーションはマルチコアのCPUを搭載しており、CPUがボトルネックになるようなデータ処理をマルチコアを活かして並列処理する重要性は高まっています。しかし、意外に多くのソフトウェアが、この当たり前に期待される「マルチコアを活かして単一ワークステーション上で高速並列処理すること」が出来ていません。 この悩みから、筆者は過去にテキストデータ処理を簡単にマルチコア対応にするJavaフレーム
平素よりQA@ITをご利用いただき、誠にありがとうございます。 QA@ITは「質問や回答を『共有』し『編集』していくことでベストなQAを蓄積できる、ITエンジニアのための問題解決コミュニティー」として約7年間運営をしてきました。これまでサービスを続けることができたのは、QA@ITのコンセプトに共感をいただき、適切な質問や回答をお寄せいただいた皆さまのご支援があったからこそと考えております。重ねて御礼申し上げます。 しかしながら、エンジニアの情報入手方法の多様化やQAサービス市場の状況、@ITの今後のメディア運営方針などを検討した結果、2020年2月28日(金)15:00をもちましてQA@ITのサービスを終了することにしました。 これまでご利用をいただきました皆さまには残念なお知らせとなり、誠に心苦しく思っております。何とぞ、ご理解をいただけますと幸いです。 QA@ITの7年間で皆さまの知識
印刷する メールで送る テキストHTML電子書籍PDF ダウンロード テキスト電子書籍PDF クリップした記事をMyページから読むことができます 「PostgreSQL」の人気の復活ほど人々を驚かせたことは、そうそうないだろう。PostgreSQLは何年もの間、より新しく魅力的と言われた「MySQL」の影に隠れてきた。しかし、MySQLを新たに管理することになったOracleの一連の失策や、さまざまな製品改善により、PostgreSQLは再びクールな存在になった。実際のところ、DB-Enginesによると、PostgreSQLは現在、4番目に人気の高いデータベースだという。 (編集部注:PostgreSQLのここ数年の人気について、筆者のMatt Asayは過去にReadWriteやThe Registerに寄稿している。ここ数年間のうちにPostgresが復活を遂げたと筆者が考

PostgreSQLはもはやただのデータベースにあらず ─PostgreSQLカンファレンス2013 基調講演レポート Not so much as adatabase as a data Platform(単なるデータベースを超えたデータプラットフォームとしての存在) ─11月8日、都内で開催された「PostgreSQLカンファレンス2013」(主催: 日本PostgreSQLユーザ会)の基調講演に登壇したHeroku開発者のピーター・ゲーガン(Peter Geoghegan)氏はPostgreSQLをこう表現しました。 来年には次バージョンのPostgreSQL 9.4のリリースが期待されていますが、ゲーガン氏の言う"データプラットフォーム"としてPostgreSQLはどのような進化を遂げようとしているのでしょうか。本稿ではの基調講演の内容をもとに、PostgreSQLの次なる
SRA OSS, Inc. 日本支社 石井 達夫 現在開発中のPostgreSQL 9.3ですが、徐々に新機能が出揃ってきました。その中の一つに「更新可能VIEW」("Updatable view")というのがあります。これはその名の通り、更新可能なVIEWを作る機能です。 VIEWとは? VIEWとは、実際には存在しないテーブルのことで、CREATE VIEWというコマンドを使って定義します。VIEWは一種のマクロと考えることができ、よく使うSELECT文をVIEWとして定義することにより、複雑なSELECT文を毎回打ち込む手間を省くことができます。 たとえば、CREATE VIEW mytable_foo AS SELECT * FROM mytable WHERE id = 'foo'; としておくと、 SELECT * FROM mytable_foo; とするだけで、 SELE
RESTfulなWebサービスをサクっと作るのに、何だかんだでRailsが一番手っ取り早いんじゃなかろうか…と思って挑戦していたんですが、ちょっとハマってしまったので備忘録…。 とりあえず、Ruby/Rails/PostgreSQLをインストールしてから、まずはRailsアプリケーションを作成…。 $railsrailstest で、DB作成。 $createdb -E utf8railstest で、database.yml編集。(内容はサンプルという事で適当…。test/productionも内容は同じ。) development: adapter: postgresqldatabase:railstest username: user password: pass host:localhost encoding: utf8 で、db/migrate/001_initia
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く