タグ

ブックマーク / yut.hatenablog.com (45)

  • ログ集計システムを自前で作る - Y's note

    Index ログ集計システムの要件 DB設計 データ保存方針 table設計 サーバ構成 Fluentd fluentd,fluent-plugin-mysql-bulk install td-agent.conf mysqlにデータが格納される事を確認する 集計用のバッチ その他 Table肥大化防止 可視化 ログ集計システムの要件 爆弾ログ処理班の@yutakikuchi_です。 ログ集計システムというものを作る時に皆さんはどのように対応していますか? 以下の候補から要件のレベルで使い分けをしている人が多いと予想しています。ざっくりの評価ですが、導入難易度、正確性、可視化、リアルタイム、長期集計、スケール、運用費用という点で評価を書いています。 ツール 導入難易度 正確性 可視化 リアルタイム 長期集計 スケール 運用費用 リンク GA(スタンダード) ○ × ○ ○ ○ ○ ○ Go

    ログ集計システムを自前で作る - Y's note
    yuiseki
    yuiseki 2014/02/14
  • Redisにマルチプロセスで接続する時に気をつけたい事 - Y's note

    Redis in Action 作者:Carlson, Josiah L.Manning PublicationsAmazon Redis 広告配信やっています@yutakikuchi_です。 Redisの内部処理が1スレッドで受けているようなので、マルチプロセスからRedisに書き込み処理を大量に流した時にどうなるのかを検証してみました。言語はCを、Libraryはhiredisを使います。redis/hiredis hiredisを使って単一プロセスで実行した場合と、Apache Moduleにhiredisを組み込んでマルチプロセスの実行状態で検証します。検証機はCentOS6.4です。 hiredis Redisのinstall、version確認、起動 RedisのVersionは2.4.10です。 $ sudo yum install redis -y $ redis-serv

    Redisにマルチプロセスで接続する時に気をつけたい事 - Y's note
  • 日本全国避難所データと現在地周辺の避難所地図を公開しました - Y's note

    避難所 防災情報 全国避難所ガイド | ホーム 避難所マップ - Yahoo!天気・災害 @yutakikuchi_です。オープンデータへの貢献という大義名分っぽい事を掲げ、避難所データを構造化テキストで作成し、更にはポイントを地図上へのマッピングします。避難所というと1st MediaのアプリやYahoo!避難所マップに情報が掲載されていますが、それ以外の避難所野良Web等は避難所データが整理されていません。Yahoo!避難所マップも都道府県毎に公開/非公開があるようでこちらもデータとしては不十分です。今回僕がデータ作成と簡単な地図マッピングを行うので、これを参考に良いアプリケーションが出てくる事に期待しています。 作成した避難所データと地図 作成した避難所データはgithub、それをマッピングした地図をGAEで公開します。地図はGeoLocationAPIを利用して現在地付近の避難所の

    日本全国避難所データと現在地周辺の避難所地図を公開しました - Y's note
  • ギーク野郎のTerminal生活 - Y's note

    ギーク野郎 ギーク野郎とは開発用Terminalを常に立ち上げてプログラミング言語をいじっている人の事をここでは意味します。ギーク野郎はモニターを複数台所有し、それぞれがTerminal用、ネットサーフィン用、ニコニコ動画専用というような使い分けをしています。しかしそれぞれのモニターへの視線とマウス移動はフラストレーションを溜める1要因になります。それを回避するために当のギーク野郎は1台モニタのTerminalだけで作業します。すみません、左の発言は適当です笑。この記事ではTerminalだけで作業を完結したい人を対象とし、GUIを使わずにCUIだけでの作業環境構築を目指し、それに役立ちそうなアイテムについて紹介します。 tmux tmux プロセス管理の初歩テクニック - Yuta.Kikuchiの日記 tmuxを使ってWorking Spaceを効率的に使う事を強く薦めます。個人的に

    ギーク野郎のTerminal生活 - Y's note
    yuiseki
    yuiseki 2013/09/24
  • Object Oriented JavaScriptの入門 - Y's note

    謝罪 Object Oriented JavaScriptの入門 - Yuta.Kikuchiの日記 2013/08/27に公開したObject Oriented JavaScriptの記事ですが、prototype周りの説明がいい加減だったため内容を一旦削除することにしました。多くの方にBookmarkして頂いたお陰でホットエントリーにも掲載されたのですが、正直それに見合う内容ではありませんでした。 あやふやな知識を書いてしまったのは僕の勉強不足が原因です。ネットで収集した情報だけで自分の知識を固めて行くのは危険だという事を身にしみて感じました。同時に今回とても悔しく情けない思いもしたので、必ずや正しいJavaScriptのオブジェクト指向知識を身につけて再投稿することをここに宣言します。 "I shall return!" (function() { console.log( "I s

    Object Oriented JavaScriptの入門 - Y's note
    yuiseki
    yuiseki 2013/08/27
    そうだcoffeescriptつかおう
  • MongoDBのCapped CollectionとTailable Cursorを使ったRealTimeAccess集計 - Y's note

    Index RealTimeAccess集計 Capped Collection Tailable Cursor まとめ RealTimeAccess集計 RealTimeAccess集計をするためにMongoDBの利用を考えます。サーバーの構成は上図のようなイメージで各種ApplicationServerからFluentdでLogAggregatorにRealTimeでLogデータを転送し、LogAggregator MasterがMongoDBにFluentdで書き込んで行きます。ここで言うRealTimeAccess集計の機能要件を整理すると以下のようになります。 Access発生後、1分以内で集計結果をWebツール上で確認したい。集計区間も1分単位など。 複数条件が指定可能で、柔軟なCross集計がしたい。 RealTimeAccess集計のSystem負荷を出来る限り抑えたい。

    MongoDBのCapped CollectionとTailable Cursorを使ったRealTimeAccess集計 - Y's note
  • データ集計コマンドを極めてシステム処理と業務速度を爆速化するお話 - Y's note

    Index データ集計コマンド 爆速で検索したいぜ! lookを使う LC_ALL=Cを設定する データのランダムサンプリングがしたいぜ! sedを使う awkを使う sortの--random-sortを使う Script言語を使う shufを使う ランダムサンプリング速度比較 合計と平均値を集計したいぜ! 列データ取得 重複行のカウント 合計値出力 平均値出力 複数ファイルのデータ結合がしたいぜ! 共通項目での結合 同じ行数での結合 まとめ データ集計コマンド joinコマンドが便利過ぎて生きるのが辛い - Yuta.Kikuchiの日記 lookコマンドによる二分探索が速すぎて見えない - Yuta.Kikuchiの日記 今日はデータ集計を行う上で絶対に覚えておいた方が良いコマンドと知識を紹介したいと思います。これを身につければシステム処理と業務効率化に大きく繋がると思います。この記

    データ集計コマンドを極めてシステム処理と業務速度を爆速化するお話 - Y's note
  • Multi-Class Classifier of Bra Size used as the feature value with vital statics - Y's note

    Multi-Class Classifier of Bra Size アダルトフィルタ実装に向けたA○女優リストの自動抽出 + α - Yuta.Kikuchiの日記 前回のA○女優リストの自動抽出の流れから今日は実験を行います。来の目的だったアダルトフィルタ作成から話がどんどんズレて行きます。今日のお題はVital Staticsを特徴量としてBra SizeのMulti-Class問題を解きます。タイトルを英語にしたのはこの下らない実験をさも真面目な研究としてやったかのようにカモフラージュするためです。初めに断っておきますが今回の実験を振り返った結果、反省はしている、だが後悔もしている状態です。 Vital Statics - Wikipedia 一般的な話ですがVital StaticsからBra Sizeを導きだすのは難しいとされています。( BraSize = TopBust

    Multi-Class Classifier of Bra Size used as the feature value with vital statics - Y's note
    yuiseki
    yuiseki 2013/07/22
  • アダルトフィルタ実装に向けたA○女優リストの自動抽出 + α - Y's note

    yuiseki
    yuiseki 2013/07/19
  • 【進撃の巨大データ】RealTimeLog集計を目的としたRedisの活用 - Y's note

    Log集計の設計を再考 【進撃の巨大データ】Log集計用DBとシステム構成の美しい設計を考える - Yuta.Kikuchiの日記 人生を前向きに楽しむことを心に誓った@yutakikuchi_です。最近はこのブログで【進撃の巨大データ】というタイトルで何回かBigDataに関する記事を書いています。前回はLog集計用DBとシステム構成の美しい設計を考えるという題でInnoDB、InfiniDBを使ったLog集計のmerit/demerit、SystemPerformanceについて記述しました。それから時間をおいて再考し、InnoDBを使う場合のメリット/デメリットと注意事項が不足している事に気づいたのでここで追記します。更に集計の緊急度に合わせて使用するDBを変えます。リアルタイムではRedis、定期処理ではMysqlを使って集計することを試してみたいと思います。 Log集計方法のme

    【進撃の巨大データ】RealTimeLog集計を目的としたRedisの活用 - Y's note
  • 【進撃の巨大データ】Log集計用DBとシステム構成の美しい設計を考える - Y's note

    [:W560] Log集計用DB設計 考える問題 Document無しのAgile開発をガチで推奨したい@yutakikuchi_です。【進撃の巨大データ】の第2回目として巨大アクセスLog集計用DBの設計について勉強した内容についてメモしたいと思います。DB周りはそこまで詳しく無いので詳しい皆様からの突っ込み大歓迎でございます。また図々しいですが知恵をください(笑)。 今日の主目的は下の2要件を叶えるためのDB設計を考える事です。特に問題になるのがRealTimeの話でTableにLogDataを書き込む処理と集計のSQLをどのように組み立てるか、それ以外にもSystemPerformanceとArchitectureにも関わってきます。 リアルタイムで大量データを集計したい 定期処理で大量データを集計したい 使うもの Fluentd : Fluentd: Open Source Log

    【進撃の巨大データ】Log集計用DBとシステム構成の美しい設計を考える - Y's note
    yuiseki
    yuiseki 2013/07/09
  • 【進撃の巨大データ】自作ApacheModuleとRedisでWebBrowserを一つ残らずUnique管理する - Y's note

    BrowserID管理の必要性 BehaviorTargeting調査レポート - Yuta.Kikuchiの日記 進撃の巨人とADTechnologyの面白さを最近の楽しみとしている@yutakikuchi_です。BigDataという言葉が大変流行っていますが、巨大な力を持つ大量のユーザーアクセスとそれから生まれるログ、その処理と分析に追われるエンジニア/データサイエンティストはまさに進撃の巨人と人間の闘いのようです(笑)この記事のタイトルは進撃の巨人でエレンが言った「巨人を一匹残らず駆逐してやる」を文字っています。今日はそんな巨大データを扱うADTechnology分野のUserTrackingに欠かせないBrowser識別子とUnique管理について触れたいと思います。ADTechの面白さを少し話しておくと検索やKVS等の最新技術だけでなく機械学習や統計のアカデミック領域の知識も必要

    【進撃の巨大データ】自作ApacheModuleとRedisでWebBrowserを一つ残らずUnique管理する - Y's note
    yuiseki
    yuiseki 2013/07/03
  • 誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Y's note

    日付型の変換処理 Date/Timestamp変換のまとめ - Yuta.Kikuchiの日記 10言語のプログラミング言語に対してそこそこの知識を保有している@yutakikucです。いろんなプログラミング言語を使用していると文法を覚えるのは大変ですよね。PHP書いている途中からJavaScriptの文法を誤って書き始めたり... それぞれの言語の文法の違いを事細かく覚える事は無理に近いです。今日はそんな各種言語仕様の記述で難解なDateTime/TimeStampについて紹介したいと思います。扱うのはWeb系のメジャープログラミング言語のSQL/C++/Java/JavaScript/Perl/PHP/Python/Rubyになります。Mysqlからデータを取り出した後や、WebAPIから取得したデータを表示用の日付フォーマットに変換する事があると思うのでそこで利用できる知識になるかと

    誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Y's note
    yuiseki
    yuiseki 2013/06/17
  • Date/Timestamp変換のまとめ - Y's note

    2013/07/17追記 @yutakikuchi_です。 ※記事の内容より詳しいものを書きました。 誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ - Yuta.Kikuchiの日記 概要 Mysqlからアプリケーションで日付情報を引くときDate型<=>Timestamp型の変換を行う事がしばしばある。 今日はPHP/Python/JavascriptのDate/Timestampの型変換についてまとめる。 Javascriptの例ではSpiderMonkeyを利用している。 Date型の日付を出力する php <?php //現在時刻をDate型で出力 //date関数を使う場合 echo date("Y-m-d H:i:s") . "\n"; //結果 2011-10-14 00:00:00 //strftime

    Date/Timestamp変換のまとめ - Y's note
    yuiseki
    yuiseki 2013/06/17
  • MongoDBのAggregation Framework/MapReduceを使ってより賢く集計を行うためのまとめ - Yuta.Kikuchiの日記

    Mogodb集計 MongoDBの集計機能が便利過ぎて泣けてくるお話し - Yuta.Kikuchiの日記 1月程前にMongoDBを使った集計機能の紹介をさせていただいた@yutakikucです。内容は全く大した事無かったのですが、タイトルで誘導を引っ張って200近いbookmarkを集める事ができました笑。みなさんの参考にしていただけたこと、大変嬉しく思います。今日はMongoDBの集計をもう一歩踏み込んだ内容を紹介して行きたいと思います。題材としてはAggregation FrameworkとMapReduceについてです。因に今回試してみたMongoDB-Versionは2.2.3です。Versionによって挙動が変わると思うので注意してください。 $ mongo --version MongoDB shell version: 2.2.3 Aggregation Framewor

    MongoDBのAggregation Framework/MapReduceを使ってより賢く集計を行うためのまとめ - Yuta.Kikuchiの日記
  • じゃあ、いつRails始めるの?... 今でしょ! - Y's note

    実践 Rails ―強力なWebアプリケーションをすばやく構築するテクニック 作者: Brad Ediger,株式会社クイープ出版社/メーカー: オライリージャパン発売日: 2008/10/27メディア: 大型購入: 7人 クリック: 90回この商品を含むブログ (43件) を見る Index はじめに RailsのInstall Railsの基礎 Rubyの基礎文法 はじめに Ruby on Rails入門 (全46回) - プログラミングならドットインストール PythonistaからRubyistへの鞍替えを試みている@yutakikucです。DotInstall等を通してRuby on Railsの基礎を学び中なので学習した内容をまとめていきます。Yahoo!勤務時代はWebFWを自作していた経験もありFWについてはある程度知識を持っている僕から見てもRailsはとても便利ものだ

    じゃあ、いつRails始めるの?... 今でしょ! - Y's note
    yuiseki
    yuiseki 2013/05/11
  • MongoDBの集計機能が便利過ぎて泣けてくるお話し - Y's note

    MongoDBイン・アクション 作者: Kyle Banker,Sky株式会社玉川竜司出版社/メーカー: オライリージャパン発売日: 2012/12/14メディア: 大型購入: 5人 クリック: 55回この商品を含むブログ (4件) を見る MongoDB集計機能 CentOSでNginxのログをFluentdを使ってMongodbにリアルタイムで格納する - Yuta.Kikuchiの日記 時給3000円のCEOと揶揄されている@yutakikucです。今日は簡単にMongodbのログ集計機能を紹介します。機能が豊富過ぎて泣けてくるんで、ログ解析する人は是非使ってみて下さい。FluentdでMongodbNginxLogを流し込む設定は上のエントリーを参照して下さい。次回はAggregationFramework/MapReduce周りについて触れたいと思います。 泣ける話 : 集

    MongoDBの集計機能が便利過ぎて泣けてくるお話し - Y's note
  • 地域データの構造化テキストを公開しました。 - Y's note

    [asin:B003VWCBXI:detail] はじめに 読み仮名データの促音・拗音を小書きで表記するもの - zip圧縮形式 日郵便 駅データ 無料ダウンロード 『駅データ.jp』 最近は専らデータの整形屋になっている@yutakikucです。今日は日郵便株式会社と駅データ.jpに掲載されているデータを利用して、地域データを構造化テキストとして作成します。ここでの目的は上のリンクで公開されている地域データの形式がCSVだったり、WebAPIのXMLだったり、データが1箇所にまとめられていなかったりと少し不便を感じたので構造化テキストを作成することにしました。出力形式は名前ベースのYAMLです。尚、下で公開したデータの利用は全て自己責任でお願い致します。 PyYAMLの利用 YAML形式をGenerateする言語はpythonを利用します。pythonYAMLライブラリのPyYAM

    地域データの構造化テキストを公開しました。 - Y's note
    yuiseki
    yuiseki 2013/04/15
  • 急上昇Buzzword抽出器 - Y's note

    Buzzword抽出 先日Yahooさんの検索ランキングがリニューアルされたこともあり、今流行っているBuzzwordを自動抽出可能なプログラムを作成します。Buzzwordを抽出する対象はYahoo検索ランキングGoogleトレンド、Naverトピックワードランキング、kizasi、TweetBuzzです。これらのメディアから現在の検索、ブログ、twitterでのBuzzwordを把握出来ます。 急上昇ワード ピックアップ - Yahoo!検索データ Google トレンド NAVER トピックワードランキング kizasi.jp:ブログから、話題を知る、きざしを見つける TweetBuzz - いま、Twitterで人気のサイトがまるわかり BuzzwordSample Buzzword抽出器により出力したデータは以下の内容になりました。定性的な評価から一番旬なデータで量を持ったペー

    急上昇Buzzword抽出器 - Y's note
  • 業種別企業の平均年齢と年収の辞書データを公開しました - Y's note

    平均年齢と年収の辞書データ 企業別の平均年齢と年収のデータをネットで探していたのですが、リストとしてまとまっているものが無かったので作成しました。以前作成した業種別企業名辞書の企業コードを基にYahoo!ファイナンスから平均年齢と年収のデータを引き当てます。当然ですが、Yahoo!ファイナンス様のサーバ負荷が高まらないように引当時にはsleepを入れるという優しさを忘れてはイケません。 ※下で公開しているデータの利用は全て自己責任でお願い致します。 業種別企業名辞書データを公開しました - Yuta.Kikuchiの日記 Yahoo!ファイナンス - 株価やニュース、企業情報などを配信する投資・マネーの総合サイト 平均年齢と年収データ DataFormat [業種名] 企業Code \t 上場市場 \t 企業名 \t 平均年齢 \t 平均年収 Github 全データは以下のURLにまとめて

    業種別企業の平均年齢と年収の辞書データを公開しました - Y's note