256bitの殺人メニュースマートフォン用の表示で見る256bitの殺人メニューインフラエンジニアだったソリューションアーキテクトなくわののブログ。こちらのBlogは個人の意見となっていて会社とは全く関係ありません。[twitter:@kuwa_tw]めんどくさがりが重い腰を上げて何かをアウトプットすることにどれほどの意味があるのかを試してみたいブログでもある。この広告は、90日以上更新していないブログに表示しています。Linuxはい、乙カレーさまです。MySQLも続きそうな私です。前回はトリガをやってみましたが、今度はパーティショニングをしてみます。パーティショニングとはパーティショニングは、特定のカラム情報を使って、テーブルを論理的/物理的に自動で分ける事で管理を簡単にしたり、パフォーマンスを確保する機能のことです。今回は、更新日時でパーティショニングを行うことで、特定期間のデータを削除する等の運用が簡単になります。パーテションの設定プライマリキーの設定まず既存のテーブルの場合は最初にパーテションを行うカラムがプライマリキーが含まれていないといけないので貼り直します。TABLE文に含めることが出来ます。この場合はupd_datetimeカラムを使用して、2013年1月からの月ごとのデータが入る様にパーティショニングを設定します。,);稼働中ならPercona-Toolkitで提供しているpt-online-schema-changeで無停止で行うことが出来ます。ありがたやありがたや。h=localhost,D=database,t=usermaster_cs,u=dbuserパーテション追加もし、2014年2月分のレンジ追加を行う場合は以下のSQLで可能です。InnoDB,);実行時はロックがかかります。データが無ければ一瞬で終わりますが、気になる場合は前述のpt-online-schema-changeを使いましょう。レンジを都度追加していく場合はもしもレンジの追加を忘れていた場合等に、その存在しないパーテションレンジへデータの追加しようとした場合にはデータ追加が出来ない、と言う事になります。その場合はMAXVALUEを指定して、このレンジよりも最新のデータはこのパーテションレンジで救う事が可能となります。PARTITIONでパーテションレンジを分離する必要が出てきます。どっちが楽かみたいな話はありますが、自動でADDするような仕組みを作るならMAXVALUEは設定しなくてもいいかもしれないですね。PARTITIONで該当のパーテションを削除したらOKです。これもそんなに時間かからないですが、ロックかかるので気になる環境であればpt-online-schema-change使いましょう。当たり前ですけどデータも消えちゃうので注意。p201301;データ入れ込みじゃあデータを入れてみませう。使用すると、パーティショニングされたテーブルの作成に使用されたPARTITION句をみると大体わかります。使用するとテーブルがパーティショニングされているかを判定することができます。下記クエリでusermaster_csにあるパーテションを確認できます。ステートメントを使用するとパーティショニング環境のクエリのEXPLAINが行うことができます。使用されているか判別できます。sec)条件を入れた場合には該当パーテションにだけアクセスが行くことがわかります。sec)この前のトリガと組み合わせると特定テーブルのデータを別テーブルで期間保存とか出来たりして便利かもしれないですね。Linuxはい、おつカレーさまさまです。ブログを更新できなくて落ち込んだりもするけれど私は元気です。もんごさんとかもんご野郎とかよく言われる昨今ですが最近久しぶりにMySQLを触っているのでその話を。いえばMySQLのトリガ設定とかほぼやったことなかったので、メモ書き。トリガとはトリガというのは、特定のテーブルにある操作(UPDATE,INSERT,DELETE)が行われた時にイベント駆動的に実行される機構のことですね。トリガを設定するユーザにTRIGGER権限を与えておきましょう。同じテーブル定義のテーブルを作成します。イベント実行後、前にTRIGGERを実行するか設定できます。これはINSERT用。適当に書いちゃったけど良い書き方ないかなぁ。;TRIGGER作成[UPDATE]こっちはUPDATE用、大して変わらん。00:00:00";すれーぶで確認はいっとるはいっとる。user_id=1000000;すれーぶで確認かわっとるかわっとる。TRIGGERで行うます。EXISTSでuserm_insertトリガがあるなら削除です。実行がそもそも走ってるかどうかよくわからん時はテスト時だけはgeneral_logとか有効にしてみるといいよ。my.cnfで以下を有効に。Linuxぼくがいわゆる、インフラエンジニア。サーバサイド等をやるエンジニアになった時に何かに詰まったり、気になった事ができた時にGoogleで検索して、良く出てくるページが有ったんです。システム管理コラム集」でした。その頃はインターネット上の情報もそんなに多くなくて、sanonosaさんの知識は幅広いしありがたいなぁ、と思ってました。さんのブログは入っていたと記憶しています。さんの書いたインフラエンジニア向けの本が出るということで、もし初心者向けだったとしても買うしかない、と思って即決で買った本が、こちらの『インフラエンジニアの教科書』です。見る初心者向けだったとしても、みたいなことを言いましたが、結論から言うと、現役のインフラエンジニアでも読んで損はない本だよ、と言う本でした。́)概要インフラエンジニア、と言われている職種がどのような仕事をし、それを実現するためにどのような知識が必要なのかを網羅的に説明している本になります。内容まず最初に思ったのは、インフラ技術にフォーカスした本は多くても、インフラエンジニアと言うテーマに沿った本、というのはあんまり無い本だなぁと。いうと、購買関連の知識まで書いた本というのはエンジニア向けの本としてはあんまりみたことなくてカバー範囲すげぇ!と本当に感心しました。多かれ少なかれ、技術書、というのはハウツー本、の様相を呈しているものだとおもいますが、この本は、教科書です。教科書には、やり方だけではなく、本質的な事もかいてあります。一つ一つの事柄にはもっと深い理由や、細かい事象が存在しています、ですが、教科書に必要なことは、あるテーマに対して全てを網羅し、必要な事に対するとっかかりを残しておくこと。ファシリティ、セキュリティ、データセンタ。これだけの内容を200ページ足らずの1冊に含めて、説明できていることが、脅威です。これだけの内容の全てを語りきれてはいないかもしれませんが、これぞ、まさに、教科書です。「教科書」が達成できていると感じました。さんの知見が随所にみられ、自分の知識と照らし合わせることで正しいのかな、どうなのかな?と考えながら読み進めるだけでも面白くためになる本でもあります。非常に読みやすいため、飽きずに最期まで読めてしまいました。ぼくらの業界では時間の流れが早い事もあって、こういった根本的な部分って業務で触るまで何があるのか、わからんとなることも多く、それって世界を無駄に狭くして(た|る)よなーって思うことがあります。いった本があることで、そうかー、こういう仕事をしていくといいのかな?とかこういう仕事をしたい!とかそういった事を考えるキッカケになるかなーと思います。いろんなことができる本だと思いますので是非読んでみてはいかがかと思います。11:40『インフラエンジニアの教科書』この本をなんと呼ぶ?教科書と呼ぶ!Tweet広告を非表示にするもっと読むコメントを書く2013-08-18pyenv+virtualenv環境の作成方法まとめマンPythonはい、おつカレー様です。最近暑いですね、カレーが捗りますか?ぼくは捗ってます。最近PythonでWebアプリを書いたりもしているんですが、環境構築についてちょこちょこまとめておこうと思いまして書きます。今日はpyenvの環境作成について、、、要するに自分メモですwpyenvPythonでアプリやら、スクリプトやら使うのにpyenv環境、本番とかでもCentOS6でも使われるPythonは2.6系だったりして、3.3とか、2.7系を使いたい時にいちいちRPMビルドをしたくないし、Pythonのバージョンアップしたい時等、環境もわかりやすくなるし、ぐちゃぐちゃになったら作り直せるしpyenvは便利。必要なパッケージのインストール。bzip2-develpyenvのインストールと環境設定まずインストールしましょ。cloneしてもってきましょ。.pyenv次に.bashrcに環境変数を設定しましょ。必要なのは、PYENV_ROOTとPYENV_ROOT/binにPATH通すこと。initでpyenvを使用する準備は完了です。-)".bashrcと.bash_profileにも入れておきましょう。git://github.com/yyuu/pyenv-virtualenv.gitpyenv環境のPythonインストール後はpyenvコマンドでPythonインストールしましょ。.python-versiondjango-devそんな感じで便利なので使ってみましょう!ではでは。クラス図を出してみるはい、おつカレー様です。夏はカレーとビールですね。最近bottleのソースコードリーディング的な事をやっていたりするのですが、これをやっている際にdoxygenでのクラス図生成が便利だったので、メモリん。環境はCentOS6系です。doxygenとgraphvizのインストールyum。graphvizbottleのソースも落としておきましょう。次にDoxygenの設定ファイルのテンプレートを出力しましょう。今のディレクトリ構成にしたがって変更。LATEX出力が要らないので。いるならYESのまま。クラス図を出力するdoxygen実行これだけです。Doxyfileブラウザからみたい場合はApacheとかの公開ディレクトリに置きましょう。/var/www/doxygen/bottle/こんな感じででます。」という発表しましたはい、乙カレー様です。#71にて発表して参りました。さんにアプリ側のお話をしていただき、私の方でサーバ側でそもそもユースケースとはどんなものか、というお話をしました。Riak」という発表をされていて、運用はホント楽そうだよなーと指をくわえてみたりもしましたwRiakの話はいろんな場所で聞きますが、アーキテクチャが綺麗にまとまっているイメージで、クラスタリングKVSとしてはよっぽどの環境でなければ安定運用できるんじゃないでしょうか。PRESSさんの記事を書いた時にもちょっとブログで書きましたが、ユースケースによってNoSQLに対する印象は変わると思っております。使い道ではある程度良い部分をいいとこ取りできますよっていう部分が伝われば幸いかと。丸の内MongoDB勉強会の方々が最近はその辺りを布教されていますので、勉強会にでて詳しい話をきいてみるのも良いかと思います。́)最後に出演者の方々。bpstudy運営の方々。Vol.75』にMongoDB徹底入門を書かせて頂きました。MongoDBはい、おつカレー様です。Vol.75』に第2特集としてMongoDB徹底入門を書かせて頂きました。@matsukazさんと一緒に書いたのですが、僕の日本語のおかしい部分をまつかずさんは直してくれたのでぼくは一生頭が上がらないのだと思いますが、そういう意味では僕と一緒に記事を書いた人全てに僕は頭が上がらないのだなと思うと、僕は頭を下向きに固定して生きたほうが生きやすいんじゃないかと、僕は、、、僕はあああぁあぁ!、、、また取り乱しました。読者の対象としては、MongoDBを触ったことない人向けとなっています。開発を行うにあたっての障壁が少ない、と言う利点の部分等を二人で書いて行きました。ドキュメント指向/スキーマレスたるMongoDB的には開発が簡単である、と言う部分を入れてなんぼであろうという所もあったためです。僕の方では特に、ユースケースは気をつけて書いた部分になります。日本では特にですが、世間一般的にMongoDBへログを貯めるという方法をよく紹介されていますが、窪田さんの訳されているこの記事のように、どのように使ったらいいかはよく考えて使わないと痛い目を見る事があるよ、と言った部分は伝えたいなと思ってユースケースの部分は書きました。なんだこれ、脅しか?この記事こわいwwwともあれ結構NoSQLはネガティブな捉え方をされる場合も多いですが、使い道によっては非常に開発スピードが早くしたり、柔軟なサービス開発の役に立つ事もあります。興味を持っていただけたらお手にとってもらえれば幸いと思っています。Vol.75』にMongoDB徹底入門を書かせて頂きました。Tweet広告を非表示にするもっと読むコメントを書く次のページプロフィールid:akuwanoインフラエンジニアだったソリューションアーキテクトなくわののブログ。こちらのBlogは個人の意見となっていて会社とは全く関係ありません。@kuwa_twめんどくさがりが重い腰を上げて何かをアウトプットすることにどれほどの意味があるのかを試してみたいブログでもある。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。