タグ

dbに関するpoginのブックマーク (17)

  • Software Design 2024年8月号 連載「レガシーシステム攻略のプロセス」第4回 ZOZOTOWNリプレイスにおけるマスタDBの移行 - ZOZO TECH BLOG

    はじめに 技術評論社様より発刊されているSoftware Designの2024年5月号より「レガシーシステム攻略のプロセス」と題した全8回の連載が始まりました。 ZOZOTOWNリプレイスプロジェクトで採用したマイクロサービス化のアプローチでは、安全かつ整合性のとれたデータ移行が必須となりました。第4回では、このマスタDBの移行について紹介します。 目次 はじめに 目次 はじめに マスタDB移行 マスタDB移行について 要件と課題 テーブル構成を再設計したうえでデータ移行を実施する ダウンタイムなしでデータ移行を実施する 方針 異なるDBおよびデータスキーマ間で移行を実施するためEmbulkを使用する ダブルライトをリリースし、データ移行中に発生するDBへの書き込みを両DBにアトミックに実施する データを一時DBに格納し、一時DBから移行先DBにデータを移行する BulkloadとBac

    Software Design 2024年8月号 連載「レガシーシステム攻略のプロセス」第4回 ZOZOTOWNリプレイスにおけるマスタDBの移行 - ZOZO TECH BLOG
  • CockroachDB はどのくらい「しぶとい」のか? / How tough is CockroachDB?

    CockroachDB はどのくらい「しぶとい」のか? / How tough is CockroachDB?

    CockroachDB はどのくらい「しぶとい」のか? / How tough is CockroachDB?
  • PostgreSQLで多数のパーティションを持つテーブルに対してPrepared Statementを実行した際の性能劣化について調べてみた | DevelopersIO

    PostgreSQLで多数のパーティションを持つテーブルに対してPrepared Statementを実行した際の性能劣化について調べてみた CX事業部@大阪の岩田です。 PostgreSQLで多数のパーティションを持つテーブルに対してPrepared Statementを実行するとクエリが遅くなる事象について調査する機会があったので、内容をご紹介します。 環境 今回検証に利用した環境は以下の通りです PostgreSQL: 15.3 (Debian 15.3-1.pgdg110+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 10.2.1-6) 10.2.1 20210110, 64-bit postgres:15のDockerイメージを利用 postgresql.conf 初期値から以下パラメータのみ変更 plan_cache_m

    PostgreSQLで多数のパーティションを持つテーブルに対してPrepared Statementを実行した際の性能劣化について調べてみた | DevelopersIO
  • よくあるミスがなぜ大障害に、みずほ銀行「12の疑問点」を徹底分析

    あるデータベース(DB)でインデックスの容量が上限値を超えた――。みずほ銀行で2021年2月28日に発生したシステム障害では、運用上のささいなミスが巨大なトラブルに発展した。ATMが通帳やキャッシュカードを5244件も取り込み、多くの顧客が数時間も立ち往生した。みずほ銀行に何が起きたのか。障害拡大の真因を分析する。 特集の第1回で紹介したように、みずほ銀行が2021年2~3月に起こした4件のシステム障害は、システムの設定に関する見落としやプログラムのバグ、ハードの故障といった避けがたいよくあるトラブルが起点だった。しかし金融機関ではあり得ないような問題点が35件もあったため、顧客に大きな影響を与えた。 そうした問題点はなぜ発生したのか。誌はみずほフィナンシャルグループ(FG)が設置した「システム障害特別調査委員会(第三者委員会)」の報告書を基に、疑問点を12個抽出した。その中から今回は

    よくあるミスがなぜ大障害に、みずほ銀行「12の疑問点」を徹底分析
  • Making Snapshot Isolation Serializable 再考 - 急がば回れ、選ぶなら近道

    Making Snapshot Isolation Serializable 再考 ■2013年的な位置付け まずちょうど年度の開始なので、今年は自分的にはRDBMS関連の位置付けとか整理しておきます。去年の後半あたりからの匂いですが、NoSQL的な発展と合わせて、格的なDB回帰が始まっている感じです。NoSQL系のほぼ致命的な弱点の一つがtransaction処理であることは指摘も多いところです。要するにデータが書き込めても不整合が発生しますね、ということになってしまいます。これではなかなか使えない、というのが現状でしょう。 なので、RDBMの最良のノウハウであるtransaction処理とNoSQL的な分散処理をちゃんと整合性とれるようにしましょう、という自然な流れは従前よりもより強い要請が働くでしょう。(できるかどうかは別ですが。) それで、そろそろなんかその手のものがRDBMS

    Making Snapshot Isolation Serializable 再考 - 急がば回れ、選ぶなら近道
  • 12年後のCAP定理: "法則"はどのように変わったか

    設計者は分割が発生したとき一貫性と可用性のどちらかを選ぶ必要がありますが、分割の扱い方と分割の復旧には柔軟な対処方法があります。現在のCAPの目的は特定のアプリケーションが必要とする一貫性と可用性を最適化することでしょう。このような方法には分割発生中の計画や分割の復旧計画が組み込まれています。したがって、設計者はこのような方法を採用することで、従来受け取られてきたCAPの限界を超えてCAPについて考えることができます。 なぜ"3つのうち2つ"がミスリーディングなのか CAPを理解する最も簡単な方法は分割の両側にひとつずつノードがある場合を考えることです。片方のノードだけ状態を更新できるようにすると、2つのノードに一貫性がなくなります。つまり、Cが失われます。一貫性を維持しようとすれば、一方のノードは利用できない状態であるかのように動作しなければなりません。この場合、Aが失われます。一貫性と

    12年後のCAP定理: "法則"はどのように変わったか
  • 論理バックアップ(pg_dump と pg_dumpall) | Let's POSTGRES

    NTT オープンソースソフトウェアセンタ 鈴木 幸市 3. 論理バックアップとリストア 論理バックアップを行うツールは pg_dump 及び pg_dumpall です。 pg_dump は PostgreSQL データベースクラスタの各データベース単位にバックアップを行います。pg_dumpall はターゲットのデータベースクラスタに格納してある全データベースのバックアップを行います。 pg_dump も pg_dumpall も、バックアップデータはデータベースを復元するために必要な SQL 文で構成されます。 従って、pg_dump や pg_dumpall を使うと PostgreSQL データベースの内容を別なデータベースに移行したり、特定のテーブルだけをバックアップしたりすることが可能となります。 pg_dump, pg_dumpall を使うためには特別な用意はいりませんが、

  • PostgreSQLのリストアでCOPYコマンド失敗を解決する - 照る照る坊主の青空

    データベースに格納されたデータは大事だ。これは宇宙の真理である。なのでバックアップを取る。こまめにとる。しかしリストアする機会はバックアップを取る機会よりも少ない。こまめにとられたバックアップをいざリストアしようとしてエラーが出てハマって焦るというのはデータベースあるあるの筆頭と言ってよい。リストアできないバックアップほど人の心をむしばむものは無い。リストアできれば助かるのに、そこにデータがあるのに、手が届かない。そんな悲しい思いをしなくて済むように、リストアのエラー解決TIPSは広く共有されるべきだ。今回はPostgreSQLのバックアップリストアでハマって1日つぶしてしまって泣きそうになったのでちょっと備忘録として残しておきたいと思う。きっと書いておかないと半年後にまた同じ問題で半日つぶすことになってしまうだろう。ブログに備忘録を書くのはとても役に立つのだ。是非皆様にもお勧めしたい。

  • Go vs Rust : 特徴量DBに適するのはどっち!? (2020-04-14 実験追記) - ABEJA Tech Blog

    ABEJA で Research Engineer をやっている中川です.普段は論文読んだり,機械学習モデルを実装したり,インフラを構築したりしています.今回のブログでは,Insight for Retail の一機能として提供しているリピータ分析に用いる特徴量DBの改善に向けた言語選定について紹介します. ※ たくさんの方々からのコメントありがとうございます.いただいた観点をベースに「2020-04-14 追記」以下に実験を追加しました. モチベーション リピート分析では,任意の特徴量をクエリに最も類似した特徴量を数100msec以内に検索する必要があり,一般的なデータベースでは実現することが難しいという課題がありました.そこで,われわれは python で独自のインメモリデータベースを実装し運用してきました.このデータベースがサービスの成長に合わせて限界を迎えつつあるので,アルゴリズム

    Go vs Rust : 特徴量DBに適するのはどっち!? (2020-04-14 実験追記) - ABEJA Tech Blog
  • 新たな開発プラットフォーム "Dark/Darklang" を実際に触ってみて - Qiita

    はじめに 先日、私が以前に申請していたDarkのプライベートベータ版に漸く招待されたので、実際に触ってみた感想を述べよう思います。 1. Darkとは? Darkとは、Ellen Chisa、そしてCircleCIの創業者であるPaul Biggarによって設立された会社で開発されている「偶発的な複雑さ」を無くし、バックエンドWebサービスを構築するための総合的なプログラミング言語であり、エディタであり、インフラストラクチャです。呼称するならば、総合的なソフトウェア開発プラットフォームみたいな感じです。Web上にエディタが展開され、そこで全ての開発を行える為、開発ツールやパブリッククラウドと言った多くのテクノロジーを直接触る必要はありません。 また、最大の特徴としてはデプロイレスです。デプロイレスとは、入力したものが即座にデプロイされ、番環境ですぐに使用できます。Darkはインタープリタ

    新たな開発プラットフォーム "Dark/Darklang" を実際に触ってみて - Qiita
  • WEB+DB PRESS Vol.107にCircleCI特集を寄稿しました。 - 日々、とんは語る。

    今月24日発売のWEB+DB PRESS Vol.107に実践CircleCIという特集を寄稿しました。WEB+DBへの寄稿は、Vol.58のEmacs、Vol.86のAtomに続いて3回目となりますが、初めてエディタ以外の内容で記事を書かせてもらいました。 なぜCircleCI特集を書いたのか。 今回、WEB+DBCircleCI特集を書いた一番理由は、WEB+DBの献者リストから外れてしまったため、何か寄稿しなければWEB+BDが貰えなくなってしまったからというのが大きな理由です。 WEB+BDでは、原稿を書くと献者リストにリストアップされ、しばらくの間、献が行われるという素晴しい仕組みがあるのですが、献者リストには定員があり、古い人から順番に卒業してしまう制度となっています。前回、寄稿したのが2015年だったのですが、それから約3年が経ち、ついに2010年の寄稿から初めて献

    WEB+DB PRESS Vol.107にCircleCI特集を寄稿しました。 - 日々、とんは語る。
  • GraphQLスキーマからCRUDを自動生成できるPrismaについて - たけぞう瀕死ブログ

    Prismaは、様々なデータベースをバックエンドにGraphQLのスキーマからCRUDを行うためのエンドポイントを提供するプロキシとして動作するミドルウェアです。最近$4.5Mの資金調達をしてちょっとだけ話題になりました。 www.prisma.io Prismaが提供するソフトウェアは現在オープンソースソフトウェアとしてGitHub上で公開されています。体はScalaで書かれていますが、CLIはTypeScript(Node.js)で書かれているようです。Scalaのコードは関数型プログラミングを駆使したものではなく、比較的読みやすい部類だと思います。 github.com 触ってみる GraphQLのエンドポイントを簡単に用意することができそうということで少し調べてみました。Webサイトにチュートリアルがあり、dockerを使って簡単に試すことができるようになっています。事前にnpm

    GraphQLスキーマからCRUDを自動生成できるPrismaについて - たけぞう瀕死ブログ
  • IDの設計についてのさらに突っ込んだ議論

    今日も前回に引き続きデータベース設計の話をする。今回の話で一旦データベース設計については筆を置くつもり(ブログ書いてないで原稿書けよ>俺)であるが、その前に話をすっきりさせて置きたいと思う。最後を飾るテーマはIDの設計である。 数字しかないのに意味を含んだID前回のエントリを見ていただいた方から、次のような構造を持った学籍番号があるというフィードバックを頂いた。 全部数値で"入学年度下2桁"+"学科コード"+"学科内のあいうえお順の順位" このようなルールで割り当てた学籍番号を、単なる数値として扱うのであれば大きな問題はない。これは数値しか含まれていないので、SQLのデータ型としては単に数値型を使えば良いだろう。だが、学籍番号から入学年度を判断する、あるいは学科を判断するといった用途で使われるのであればやはり適切ではないといえる。リレーショナルモデルの観点だけからではなく、IDとして適切で

    IDの設計についてのさらに突っ込んだ議論
  • Dgraph - A high performance graph database written in pure Go

    Go Conference 2018 Spring

    Dgraph - A high performance graph database written in pure Go
  • RDBとNoSQLにみるDB近現代史 データベースに破壊的イノベーションは二度起きるか? - エンジニアHub|若手Webエンジニアのキャリアを考える!

    「ユーザー目線」のシステムを目指して RDBが従来の階層型DBに比べて優れていた点はいくつか挙げることができますが、シェアを伸ばすうえで最も大きな影響は、ユーザーが使いやすいデータ構造とインタフェースにこだわったことです。すなわち、「テーブル」と「SQL」の発明です。 RDBでは、すべてのデータを「テーブル」というただ一つのデータ形式によって表現します。テーブルは、見た目が「二次元表」に似ているため*3、Microsoft ExcelGoogle ドキュメントなどのスプレッドシートを使い慣れた人が見ると、データを格納する方法が直観的にイメージしやすいという利点があります。実際、こうした二次元表によるデータ管理は、Excelなどのソフトウェアが登場する前から一般的な方法だったため、RDBが登場した当時の人々にとっても受け入れやすいものでした。 テーブルが画期的だった点は、もう一つあります。

    RDBとNoSQLにみるDB近現代史 データベースに破壊的イノベーションは二度起きるか? - エンジニアHub|若手Webエンジニアのキャリアを考える!
  • 業者の設計スキルをハダカにする - 設計者の発言

    システム刷新に失敗する理由のひとつが、ユーザ企業が業者の設計スキルを吟味せずに一括請負契約を結んでしまう点にある。彼らに委託すると、実際には下請業者が設計していたりする。多くの業者が多かれ少なかれゼネコン化しているため、設計スキルが空洞化しているためだ。下請業者に的確な設計が出来ないとは限らないが、起用される設計者のスキルレベルを発注者がコントロールできないという意味で、リスクが大き過ぎる。 そもそも「システム刷新に失敗した」とはどういうことか。ユーザ企業自身が想定するコスト感やスピード感でシステムを改善・発展させられなくなっているのであれば、失敗したと判断していい。少しばかり改修しようとしても、無駄に複雑な設計を掌握している開発業者の意向に振り回される。そんな業務システムの命運は業者に握られていて、これはもう経営権の一部を奪われているのと変わらない。そんな事例は少なくない。 なぜそういう

    業者の設計スキルをハダカにする - 設計者の発言
  • なぜ、SQLは重たくなるのか?──『SQLパフォーマンス詳解』の翻訳者が教える原因と対策|ハイクラス転職・求人情報サイト AMBI(アンビ)

    なぜ、SQLは重たくなるのか?──『SQLパフォーマンス詳解』の翻訳者が教える原因と対策 『SQLパフォーマンス詳解』の翻訳者の松浦隼人さんに、8つの「SQLが重たくなる原因とその対策」を聞きました。システムのボトルネックになるような「問題のあるSQL」を回避するノウハウを学びましょう。 データの操作や定義をする言語「SQL」は、どのような領域を担うエンジニアにとっても必修科目です。しかし、その仕様をきちんと理解し、パフォーマンスに優れたSQLを書ける方はそれほど多くありません。問題のあるSQLを書いてしまい、知らぬ間にそれがシステムのボトルネックになってしまう事態はよく発生します。 では、どうすればそうした事態を回避できるのでしょうか? そのノウハウを学ぶため、今回は『SQLパフォーマンス詳解』の翻訳者であり、自身もエンジニアでもある松浦隼人(まつうら・はやと/@dblmkt)さんに8つ

    なぜ、SQLは重たくなるのか?──『SQLパフォーマンス詳解』の翻訳者が教える原因と対策|ハイクラス転職・求人情報サイト AMBI(アンビ)
  • 1