中国地方DB勉強会 in 岡山の登壇資料です。 そのうちここで登壇動画が公開されることでしょう。 肝心なチートシートは以下のとおり。 PostgreSQL gist.github.com MySQL gist.github.com チートシートだけじゃわからない!困ってる! Have Fun Techがバージョンアップのサポートしますのでお気軽にご相談ください。 have-fun.tech まとめ やっぱ中国地方DB勉強会は最高だぜ!
このエントリーは Classi developers Advent Calendar 2022の18日目。 ネタはなんでもいいよ!とのことなので、Claasiに全く関係なく、MysqlからPostgreSQLに移行する際の注意点を書く。 なお、まだRDSにPostgreSQLがなかった頃のような昔の記事だがこちらに無いことを書いていく。 soudai1025.blogspot.com soudai1025.blogspot.com MySQL から PostgreSQLにデータ移行する際の注意点 MySQLとPostgreSQLは互換性がもちろんありませんので、細かいところで違いが発生します。 よく踏むデータ移行の注意点は以下の通り。 timestampやdatetimeを移行する先はtimestamp型になるが、timestamp型はタイムゾーン付きと無しがある timestamp wi
この度、お仕事として公式エバンジェリストをすることになりました。 セミナー講師をやったり、Mackerelの便利な使い方をアウトプットしたりするのが役割です。 MackerelチームにはCREってロールがあるわけですが、その中でも顧客活動のサポートにあたります。 ついにMackerelプラグイン解説シリーズの続編とか出るかもしれません*1。 初回活動 プライベートセミナーをやります。 詳細は下記のページを御覧ください。 日時:2022年2月10日(木) 14:00〜15:00 会場:Zoom Webinar 参加費用:無料 お申し込み:イベントページからお申し込みください はじめてのMackerelクラウド監視入門編(2022年2月10日開催オンラインセミナー) connpassもあるけど、申込みは上記のサイトです。 mackerelio.connpass.com はてなはCREを募集して
最近、この説明を複数回したので記事にする。 要約 普段は 今北産業 派なのだが、3行考えるのが面倒なため、今後は大人の表現を使う。 「今北産業」をスタートアップ語にすると「マジ価値サマリー」になるらしい ちなみにここだけの話ですが、大人語にすると「要約」になります pic.twitter.com/Q8SflvBX7c— ところてん (@tokoroten) 2022年1月24日 画面に表示したい順(以下、表示順)は振る舞いの属性なので分ける 似たような振る舞いに関わる属性は別テーブルにわけると良い 普通に正規化しましょうって話。 表示順をカラムを追加して表現する よくあるテーブルは画面情報と合わせて表示順カラムがあるパターン。 こういうテーブルを作って SELECT * FROM items ORDER BY display_order_number; で表示順に取り出すパターン。 表示順
昨日DBコミュニティでお世話になってる人たちと話をしているときに、どんな人が成長して、自分たちがどうやって成長してきたかって話題になったときにこの結論になった。 今日、とりあえず目の前の仕事に対して課題を見つけてその課題に関する勉強を出来るだけで社会人として十分な成長と報酬を貰えるんだよねって話を聞いて本当にそうなんだよなぁって思うなどした。 めちゃめちゃ頑張るとか犠牲にするとかじゃなくて目の前のことを一個一個やっていくことで生き残れる。— そーだい@初代ALF (@soudai1025) 2021年12月22日 DBコミュニティ、平均年齢が高いし、子育て世代が多かったりもするが少なくとも昨日のメンバーの平均年収は日本の一般的なIT業界でもかなり上位数%の集まりだったと思う。 そのレベルになっているけど異常な努力が必要だった、って人は小数派でやっぱ仕事上の問題から課題を見つけて、タスクに落
WSL2ではPID 1がinitd問題によってsystemdが起動できません。 そのため、systemctlが使えなくてMySQLが起動できないってなるのですが、yoku0825さんにやり方を教えてもらったのでメモとして残します。 そんなムズくないです。最近のmysqldには--daemonizeがあるのでそれを使えばokです— yoku0825 (@yoku0825) 2021年8月2日 つまりroot権限で mysqld --daemonize を叩けばOK。 ただ /var/run 配下は再起動時に /var/run/mysqld/ がなくて失敗すると思うので起動はフォルダを作って権限を付けてあげましょう。 $ mkdir /var/run/mysqld $ chown mysql:mysql: /var/run/mysqld $ mysqld --daemonize これでMySQ
昨日、リモート雑談会の中で id:katzchang がめっちゃ良いことを言ってたので自分のためにも、みんなのためにもここに残す。 結論 作業を増やすことに敏感な人は少ない。 仕事と作業を同じと捉えていて、作業をすると仕事の進捗があると感じてしまう麻薬みたいなのはある。 それによって複雑さを導入して仕事、作業を増やす。 本当に必要なの作業を減らしてビジネスを前に進めることに注力する。 それが仕事をするってことだよな。— そーだい@初代ALF (@soudai1025) August 13, 2020 ちゃんとWhyを意識して、問題の本質を理解し、解決することで、不要な作業を減らし、仕事を減らしていくことがITを活用する上で肝要である。 仕事を増やさない これは本当に大事。 例えばリリース手順書を作りました!ってなると作業の内容が変更になるたびに手順書のメンテナンスをしなければいけない。 そ
世界コンピュータ将棋選手権に我らが @bleu48 先生と出場しました。 ソフトウェアは @bleu48 さんが作ってて自分は関わっていないのだけどインフラ担当しました。 第31回世界コンピュータ将棋選手権 しかし我らがソフトウェア『二番絞り』は11位*1 二次予選敗退でした。 今日の二次予選結果です。 pic.twitter.com/JDPrN4weIQ— 48 (@bleu48) 2021年5月4日 敗戦の軌跡 今回はインフラ担当として大きな失敗をしてしまったので反省の意を込めて書きます。 早朝に問題に気付く 当初予定はGCPに用意されているNVIDIA A100 Tensor Core GPUを16枚指したモンスタースペック a2-megagpu-16g を利用予定でした。 a2-megagpu-16g はプレビューで申請が必要なのだけど、事前に問い合わせをして利用可能にし、予行練習
今年、この話を何度か別々の人にすることがあってずっと纏めようと思っていたのだけど一年が終わってしまうので来年の自分のために今書いてしまう。 目新しいことは何一つ無いのだけど、大切なことだし、意外と社会人になってしまうと教えてもらえないことも多いみたいなのでここでまとめる。 表題のこと、つまりやりたいことを実現するために必要なことは、そんなに難しいことじゃなくて以下の条件を満たし、実行することが大事だ。 やりたいこと=課題をタスクに分解する タスクを実行できるだけのリソース(時間・お金・体力など)を割り当てる 実行する これだけなんだ。仕事だってなんだって一緒なんだけど、だけどこれを日常的に実現することが難しい。 だからどうやって実現していくか?って説明のために、自分がやってることを書く。 課題を整理する 仕事と作業は違うという話がある。 トヨタでは最初にそれを教わるらしい。 www.har
言語の勉強会でその言語の話をしない人ランキング堂々の第一位、そーだいです(当社比 控えめに言っても最高な毎度おなじみ #kichijojipm で今日LTする話の補足です。 kichijojipm.connpass.com speakerdeck.com タイトルは出落ちです。 全然最強じゃなくて頑張ってやってるよって話です。 資料がかなり薄いので補足します。 DBリファクタリングについて 26Pは現状です。 MySQLって書いてますが本番はAurora1を使っています。 以降、このDBを 現行DB と呼びます。 ここではオミカレとみんなの婚活はWebサービス名です。 つまり2つのサービスから現行DBを見ていますし、機能によっては現行DBの同じテーブルを参照・更新・削除などを行います。 この2つ以外にも社内システムなどでこの現行DBは利用されており、メインのテーブルを変更すると影響範囲が広
結論 何がいいたいかといいますと0000-00-00 00:00:00があるとORMも死ぬし、DBマイグレーションツールも死ぬし、そもそもMySQLからポスグレにデータを持っていくこともFDWをすることも出来なくて死ぬのじゃ。— そーだい@初代ALF (@soudai1025) 2018年4月25日 色々困るので使わない。 理由 以下に理由を述べる SQL標準ではない 正論で殴った場合。 0000-00-00 00:00:00の仕様が難しい 0000-00-00 00:00:00 はMySQLの独自な仕様で NOT NULL制約のカラムではNULLと等価であり、NULLではない という仕様がある。 "NOT NULL として宣言された DATE および DATETIME カラムでは、次のようなステートメントを使用することで、特殊な日付 '0000-00-00' を検索できます"https:
はじめに ※この発言は個人の見解であり、所属する組織の公式見解ではありません 用法用量を守り、個人の責任で業務に投入してください 参考資料 2024/02/14追記 実際のテーブル設計の詳細はこちらを参考にどうぞ。 agilejourney.uzabase.com 要件 User情報を保存するときにどのようなテーブル設計を行うか 今北産業で頼む テーブルに状態を持たせず状態毎のテーブルを作る 状態が変わればレコードを消して別のtableに作る tableの普遍的な情報は別に持たせる 僕の考えた最強のDB設計 PostgreSQLをベースの雑なER図を作った。 これを元に話を進める。 table構成 users 親tableであり、すべてのユーザはここに属する。 基本はINSERTのみでUPDATE、DELETEを考慮しない。 user_detail userに付随する詳細の情報がここに登録
PHPerKaigi 2018でタイトルの登壇をしてきました。 phperkaigi.jp 登壇内容は下記の通りです。 speakerdeck.com 伝えたいことはスライドに大体あるし、勘所については過去のブログでもまとめています。 soudai.hatenablog.com 昨今のWebサービスは外部のサービスと連携し合うのは当たり前ですし、自分たちのサービスが違うサービスによって影響を受けたり、影響を与えたりすることも当たり前になっています。更にサービスは常に機能を追加・変更・削除することで進化しているのですからモニタリングの対象も常に変化しているはずです。ですのでWebサービスとしてどのようにあるべきかというところがモニタリングの勘所となります。もう少し説明するとサービスはServerに紐付いていないがシステム全体に影響するメトリックもありますよね?それも勿論モニタリングしましょう
この記事は Mackerel プラグインアドベントカレンダー(全部CRE) の20日目です。 qiita.com soudai.hatenablog.com それでは20日目は mackerel-plugin-mysql 第二弾、InnoDBの監視です。 mackerel-plugin-mysqlはRDBMSとして広く使われているMySQL専用のプラグインです。 第一弾はこちら。 soudai.hatenablog.com インストール方法や使い方、MySQLのデータ取得で使っているSQLは前回説明したので割愛します。 前回はMySQL全般に言える監視の内容でした。 今回はその中でもInnoDBに特化した内容でお送りします。 見れるメトリック それでは各グラフ定義ごとに説明します。 また表に出てくるdiffとはプラグイン上で差分値計算をするかどうかです。 ◯ となっている項目はプラグインで
この記事は、MySQL Casual Advent Calendar 2017の20日目の記事です。 煽り気味のタイトルですがみなさん SHOW ENGINE INNODB STATUS 読んでますか? SHOW ENGINE INNODB STATUS \G 見づらいのなんとかならんのか。— そーだい@初代ALF (@soudai1025) 2016年12月20日 わかる。でもMySQLの振る舞いを知る中でSHOW ENGINE INNODB STATUSを読まざる得ない場面はそこそこあります。 どんな時に必要になるのでしょうか? そこでSHOW ENGINE INNODB STATUSにまつわる話を書きます。 SHOW ENGINE INNODB STATUS をまず読みやすくする まず末尾に \G を付けましょう。 これで3倍読みやすくなります。 次に pager less -S を
この記事は Mackerel プラグインアドベントカレンダー(全部CRE) の4日目です。 qiita.com soudai.hatenablog.com それでは4日目は mackerel-plugin-mysql です。 ここではMySQLの細かい説明は割愛します。 mackerel-plugin-mysqlはRDBMSとして広く使われているMySQL専用のプラグインです。 github.com インストールと設定手順 本プラグインはプラグイン集として提供しているパッケージの mackerel-agent-plugins に含まれています。 インストール先は /usr/bin/mackerel-plugin-mysql です。 mackerel-plugin-mysqlは様々な情報を可視化してくれますが、pluginが動作するクライアント側からMySQLに対してアクセス出来る必要があり
この記事は Mackerel プラグインアドベントカレンダー(全部CRE) の3日目です。 qiita.com soudai.hatenablog.com それでは3日目は mackerel-plugin-nginx です。 ここではNginxの細かい説明は割愛します。 mackerel-plugin-nginxはWebServerとして広く使われているNginx専用のpluginです。 Nginx、急に README.md がシンプル!! インストール方法書いてないので簡単に導入方法を説明します。 github.com インストールと設定手順 NginxのプラグインはApache2の server-status と同様に nginx_status を可視化してくれるプラグインです。 そのためMackerelのプラグインをインストール後にnginx_statusを有効化する必要があります。
この記事は Mackerel プラグインアドベントカレンダー(全部CRE) の2日目です。 qiita.com soudai.hatenablog.com それでは2日目は mackerel-plugin-apache2 です。 ここではApacheの細かい説明は割愛します。 mackerel-plugin-apache2はWebServerとして広く使われているApache2専用のpluginです。 こちらは README.md にも書いてある通り、 server-status を可視化してくれるプラグインで簡単に導入することができます。 github.com インストールと設定手順 本プラグインはプラグイン集として提供しているパッケージの mackerel-agent-plugins に含まれています。 インストール先は /usr/bin/mackerel-plugin-apache2
って話を明日のPHPカンファレンスでする予定でした。 PHPカンファレンス、私用のため私の登壇をキャンセルします。楽しみにされてた皆様、大変申し訳ありません。当日登壇予定だった内容はブログに細かく詳細まで記載して公開します。この度は皆様、ご迷惑をおかけします。 #phpcon2017 https://t.co/qgHogswYeI— そーだい@初代ALF (@soudai1025) 2017年10月6日 ここにあるとおり、雨の影響により、子供の運動会が延期になり、PHPカンファレンスと被ってしまいました。そこで色々悩んでいたところ、スタッフの方が気を利かせて連絡を先にくださり、キャンセルさせていただくことにしました。正直年に1度のお祭ですし、会いたい人も沢山いるイベントですから断腸の思いでした。しかも僕は今年各地のPHPカンファレンスに出れなかったので会えていないPHPerの方が多く居ます
YAPC::Kansaiでトークしてきました。 yapcjapan.org RDBアンチパターンの話してきました。 去年、PHPカンファレンスでRDBアンチパターンの話をして盛り上がったのでそれの第二弾です。 b.hatena.ne.jp speakerdeck.com 僕が伝えたい事はたったひとつ。 このブログを読んだらすぐ自分たちのサービスのバックアップとリストア手段確認してください! お兄さんとの約束だぞ!! このトーク応募したらGitLab.comが大事故起こしたり、S3が落ちたり世の中では大変そうでした。 www.publickey1.jp ヒューマンエラーとかあるんですよほんと。 僕もいっぱい見てきたし、やったし(ぉぃ なので本当にもうこれだけは絶対確認してほしいって思います。 実際に「バックアップ無いDBをバグで飛ばしたんですけどどうすればいいですか?」とか相談来ます。 ほん
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く