Y's note

Web技術・プロダクトマネジメント・そして経営について

本ブログの更新を停止しており、今後は下記Noteに記載していきます。
https://note.com/yutakikuchi/

データ の検索結果:

OpenSSLの暗号処理が爆速な件

C

…れぞれの固定サイズのデータを何回暗号化出来るかというspeed勝負です。DESの暗号化強度が不安なのでより強度の高いAESが開発されたという歴史の流れがありますが、処理速度はDESよりAES-128の方が速いという結果になります。(僕の環境ではAES-128とAES-192がDESより速いという結果。DESはkey長が8Byte(64bit)、AESは16Byte(128bit)/24Byte(192bit)/32Byte(258bit)なのでAESの方が遅いと予想されがちで…

ログ集計システムを自前で作る

Log

…ムの要件 DB設計 データ保存方針 table設計 サーバ構成 Fluentd fluentd,fluent-plugin-mysql-bulk install td-agent.conf mysqlにデータが格納される事を確認する 集計用のバッチ その他 Table肥大化防止 可視化 ログ集計システムの要件 爆弾ログ処理班の@yutakikuchi_です。 ログ集計システムというものを作る時に皆さんはどのように対応していますか? 以下の候補から要件のレベルで使い分けをしてい…

「DSP/RTBオーディエンスターゲティング入門」読了

AD

…するとオーディエンスデータが見えるから施策が打ちやすいよ!欲求施策にはリタゲが効果的だよ!」って感じかなと。個人的にはもう少しDSPの予測技術について内容を書いて欲しかったなぁというところもあったりしました。下記で記載する内容はかなり噛み砕いているのと、最後の章を記載していません。また初版が2012年5月という情報なのでそこには注意してください。 まとめ Chapter 1-1 進化した広告配信 広告は「枠」から「人」へパラダイムシフトしている。 初期のネット広告は期間保障で…

Apache ModuleでRequest ParameterをParseしてDBからデータを取得する

…erに従ってDB上のデータを参照する事を行いたいと思います。Apache ModuleやCのPreparedStatementに関する日本語ドキュメントは少ないので少しでも開発者の方々へ貢献できるように今後も頑張ります。 GitHub GitHub Path このエントリーで使用するソースコードGitHubに置きました。 CPlus/apache_module/ps/mod_db.c at master · yutakikuchi/CPlus Compile & Instal…

C++でApache Moduleを書きたい人へのTutorial

C++

…にしたい、連想配列でデータを管理し易くしたい、その他C++にしか無いライブラリを使いたいといったC++への欲求が出てきてしまいます。ぐぐってもApache ModuleをC++で実現している人って結構少なく、おそらく一般的にはApache Moduleにそんな複雑な処理を書く要件や期待なんて無いんだろうなと想像はしていますが、このエントリーではC++で書いてみます(笑)。 Apache API C++ Cookbook Apache 2.x Modules In C++ (P…

日本全国避難所データと現在地周辺の避難所地図を公開しました

…hi_です。オープンデータへの貢献という大義名分っぽい事を掲げ、避難所データを構造化テキストで作成し、更にはポイントを地図上へのマッピングします。避難所というと1st MediaのアプリやYahoo!避難所マップに情報が掲載されていますが、それ以外の避難所野良Web等は避難所データが整理されていません。Yahoo!避難所マップも都道府県毎に公開/非公開があるようでこちらもデータとしては不十分です。今回僕がデータ作成と簡単な地図マッピングを行うので、これを参考に良いアプリケーシ…

プロセス管理の初歩テクニック

…スが2重で起動するとデータの不整合が発生する可能性があります。それを防止するためにプロセスの2重起動を防止することを考えます。プロセスの2重起動防止はプロセス名で判断するかLockファイルで実行中フラグを管理する2種類の方法が良く使われます。Lockファイルだとプロセスが途中で落ちた時に削除されない事がありずっと実行中と判断されてしまうので、プロセス名で判断する方がより良いように思います。一応二つともやり方を書いておきます。プロセスが存在するかどうかはpgrep、Lockファ…

MongoDBのCapped CollectionとTailable Cursorを使ったRealTimeAccess集計

…alTimeでLogデータを転送し、LogAggregator MasterがMongoDBにFluentdで書き込んで行きます。ここで言うRealTimeAccess集計の機能要件を整理すると以下のようになります。 Access発生後、1分以内で集計結果をWebツール上で確認したい。集計区間も1分単位など。 複数条件が指定可能で、柔軟なCross集計がしたい。 RealTimeAccess集計のSystem負荷を出来る限り抑えたい。 Access発生後の直ぐに確認ということ…

データ集計コマンドを極めてシステム処理と業務速度を爆速化するお話

Index データ集計コマンド 爆速で検索したいぜ! lookを使う LC_ALL=Cを設定する データのランダムサンプリングがしたいぜ! sedを使う awkを使う sortの--random-sortを使う Script言語を使う shufを使う ランダムサンプリング速度比較 合計と平均値を集計したいぜ! 列データ取得 重複行のカウント 合計値出力 平均値出力 複数ファイルのデータ結合がしたいぜ! 共通項目での結合 同じ行数での結合 まとめ データ集計コマンド joinコ…

【進撃の巨大データ】RealTimeLog集計を目的としたRedisの活用

…を再考 【進撃の巨大データ】Log集計用DBとシステム構成の美しい設計を考える - Yuta.Kikuchiの日記 人生を前向きに楽しむことを心に誓った@yutakikuchi_です。最近はこのブログで【進撃の巨大データ】というタイトルで何回かBigDataに関する記事を書いています。前回はLog集計用DBとシステム構成の美しい設計を考えるという題でInnoDB、InfiniDBを使ったLog集計のmerit/demerit、SystemPerformanceについて記述しま…

【進撃の巨大データ】Log集計用DBとシステム構成の美しい設計を考える

…_です。【進撃の巨大データ】の第2回目として巨大アクセスLog集計用DBの設計について勉強した内容についてメモしたいと思います。DB周りはそこまで詳しく無いので詳しい皆様からの突っ込み大歓迎でございます。また図々しいですが知恵をください(笑)。 今日の主目的は下の2要件を叶えるためのDB設計を考える事です。特に問題になるのがRealTimeの話でTableにLogDataを書き込む処理と集計のSQLをどのように組み立てるか、それ以外にもSystemPerformanceとAr…

【進撃の巨大データ】自作ApacheModuleとRedisでWebBrowserを一つ残らずUnique管理する

…追われるエンジニア/データサイエンティストはまさに進撃の巨人と人間の闘いのようです(笑)この記事のタイトルは進撃の巨人でエレンが言った「巨人を一匹残らず駆逐してやる」を文字っています。今日はそんな巨大データを扱うADTechnology分野のUserTrackingに欠かせないBrowser識別子とUnique管理について触れたいと思います。ADTechの面白さを少し話しておくと検索やKVS等の最新技術だけでなく機械学習や統計のアカデミック領域の知識も必要で、本当に毎日が勉強…

誰もが一度は陥る日付処理。各種プログラミング言語におけるDateTime型/TimeStamp型の変換方法のまとめ

…ます。Mysqlからデータを取り出した後や、WebAPIから取得したデータを表示用の日付フォーマットに変換する事があると思うのでそこで利用できる知識になるかと思います。そもそもDateTime型/TimeStamp型って何だよっていう人もいるかと思うので簡単にまとめると以下のようになります。※ここでのTimeStampはUnixTimeを表現しています。 型 意味 例 DateTime YYYY-MM-DD HH:mm:SSで表現する時刻Format 2013-05-31 2…

MongoDBのAggregation Framework/MapReduceを使ってより賢く集計を行うためのまとめ

…ode"とすると元々データが格納されているMongoDBのKeyカラム名になります。ダブルクォートが付かないとOperator、付くとKeyカラム名になると覚えます。 > db.nginx_access.find( {code : "200"} ).count() 2 > db.nginx_access.find( {code : "304"} ).count() 3 > db.nginx_access.find( {code : "400"} ).count() 3 > d…

FluentdとMysqlを利用した簡単なRecommendEngineの開発

…stを行うために相関データを導き出し、関連性上位のItemを抽出します。今回Logの蓄積を行うのにFluentd、AccessDataや類似度Dataを管理するためにMysql、COS類似度を計算するバッチ処理をJavaで記述します。Fluentdを使ってLogをMysqlに格納するための仕組み設定は上のエントリーを確認していただければと思います。 AccessItem相関のCOS類似度 コサイン類似度 AccessItemの相関を求めるためにCOS類似度を利用します。COS…

Fluentdを使ってNginxLogをMysqlにリアルタイムで格納する

…件) を見る 重要なデータはMysqlへ CentOSでNginxのログをFluentdを使ってMongodbにリアルタイムで格納する - Yuta.Kikuchiの日記 MongoDBの集計機能が便利過ぎて泣けてくるお話し - Yuta.Kikuchiの日記 最近は大学生に良く間違われる現在30歳の@yutakikucです。今日はNginxLogの必要な項目をMysqlにリアルタイムで格納することを試してみます。重要なデータはどこに格納するの..? Mysqlでしょ!という…

10分でFuelPHPの基礎を理解する

PHP

…ます。noteで扱うデータはtitle/descriptionの2種類を定義します。oil generate sfaffold module : のような文法です。生成される名前のルールとしてDBはnotesのような名詞の複数形になります。 $ sudo oil generate scaffold note title:varchar[255] description:text Creating migration: /usr/share/nginx/html/fuel_sa…

じゃあ、いつRails始めるの?... 今でしょ!

…e:integerはデータ型の定義です。 $ rails g model List name:string age:integer invoke active_record create db/migrate/20130503163317_create_lists.rb create app/models/list.rb invoke test_unit create test/unit/list_test.rb create test/fixtures/lists.ymlC…

MongoDBの集計機能が便利過ぎて泣けてくるお話し

…できます。また集計のデータ検索に正規表現が使えるところも魅力的です。それらを紹介していきます。 条件指定はfind()、行数取得はcount() RDBで言うSELECTとしてMongdbではfindを使います。MongdbのQueryでの条件指定はJSON形式だと思って下さい。x = 10 AND B = 20をJSONの条件とすると{ x : 10, y : 20 } こんな感じです。またfindでは正規表現の指定ができるので、特定のRequestURIを含むログだけを出…

TinyCDB vs QDBM vs MemcachedのPerformance比較

KVS

NoSQLデータベースファーストガイド作者: 佐々木達也出版社/メーカー: 秀和システム発売日: 2011/04メディア: 大型本購入: 8人 クリック: 859回この商品を含むブログ (29件) を見る Index Standalone KVSのPerformance比較 Performanceの結果 MachineSpec TinyCDB Feature Setup Write Performance Read Perfomance QDBM Feature Setup …

地域データの構造化テキストを公開しました。

… はじめに 読み仮名データの促音・拗音を小書きで表記するもの - zip圧縮形式 日本郵便 駅データ 無料ダウンロード 『駅データ.jp』 最近は専らデータの整形屋になっている@yutakikucです。今日は日本郵便株式会社と駅データ.jpに掲載されているデータを利用して、地域データを構造化テキストとして作成します。ここでの目的は上のリンクで公開されている地域データの形式がCSVだったり、WebAPIのXMLだったり、データが1箇所にまとめられていなかったりと少し不便を感じた…

カッコイイWordPressを構築するためのたった3つの手順

…Press のためのデータベース名 */ define('DB_NAME', 'wordpress'); /** MySQL データベースのユーザー名 */ define('DB_USER', 'wordpress'); /** MySQL データベースのパスワード */ define('DB_PASSWORD', 'wordpress'); /** MySQL のホスト名 */ define('DB_HOST', 'localhost'); WordPress Access…

急上昇Buzzword抽出器

…- Yahoo!検索データ Google トレンド NAVER トピックワードランキング kizasi.jp:ブログから、話題を知る、きざしを見つける TweetBuzz - いま、Twitterで人気のサイトがまるわかり BuzzwordSample Buzzword抽出器により出力したデータは以下の内容になりました。定性的な評価から一番旬なデータで量を持ったページはYahoo! SearchRankingだと思います。Google Trendは1日のデータが1件ずつで過去…

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

平均年齢と年収の辞書データ 企業別の平均年齢と年収のデータをネットで探していたのですが、リストとしてまとまっているものが無かったので作成しました。以前作成した業種別企業名辞書の企業コードを基にYahoo!ファイナンスから平均年齢と年収のデータを引き当てます。当然ですが、Yahoo!ファイナンス様のサーバ負荷が高まらないように引当時にはsleepを入れるという優しさを忘れてはイケません。 ※下で公開しているデータの利用は全て自己責任でお願い致します。 業種別企業名辞書データを公…

CentOSでNginxのログをFluentdを使ってMongodbにリアルタイムで格納する

…] Mongodbのデータを確認 Logの確認 NginxのAccessLogがリアリタイムでMongodbに格納されているかを見てみます。上で指定した通りにnginxというdatabaseのnginx_accessというtableにデータが格納されていることが分かります。Mongodbなのでbson(json)形式でのデータ格納になります。 $ mongo MongoDB shell version: 2.2.3 connecting to: test > show dbs…

Mecab Pythonを使ったTF・IDFによるWikipediaの重要単語抽出

…wikipediaのデータに対して試してみます。TF・IDFを一言でまとめると、とある単語の重要度を出現頻度から計算する手法です。計算結果は重みを表します。TFは単語の出現数(Term Frequency)、IDFは総文書数 / 単語が出現する文書の総数の対数(Inverted Document Frequency)、TFIDFはその積になります。数式にすると以下のようになりますが、Webを検索してみると人によって計算の仕方が異なっています。思想としてはTFは大きい値であれば…

業種別企業名辞書データを公開しました

… 業種と企業名の辞書データが欲しかったんでYahoo!FinanceのデータをCrawlして作りました。帝国データバンクや四季報のデータが使えると良かったんですが、Crawlできそうに無かったので諦めました。残念ながら2600社ほどのデータしか集まっておらず、個人的にはもっといろんなデータが欲しいです。他に良い方法をご存知の方いらっしゃいましたらご連絡いただけると幸いです。 Yahoo!ファイナンス - 株価やニュース、企業情報などを配信する投資・マネーの総合サイト TDB企…

スタートアップを目指す人は必読!起業成功マニュアルの後半を読んでまとめを書きました

…、一旦使用すると既にデータを入力をしているので他社製品にスイッチしにくい。 安全で容易な第一歩を提供する 狭い範囲でリスクの低い限られた方法で製品/サービスを使ってもらう。 一つの地域や部門、プロジェクト、お試し期間、簡単なサポート。 退会処理を簡単に出来るようにするなど、会社に対する最後の印象を良くすることができる。 拒絶から学ぶ 事業拡大の提案は拒絶されるが、そこから学ぶことが多い。 事業拡大のプロセスを管理する 全員に事業拡大を奨励し続ける。 顧客ごとに目標を設定する。…

JavaでMapReduceを書くことが出来ない問題児がPigのデータ構造を調査しました

…Reduceで複雑なデータのJoinやデータ集計を行うためには多段のMapReduceを書かざるを得ないこともあり、単純集計のコードを複数管理することもまた面倒に感じられてしまいます。 という事で、僕はHadoop集計ではPigを使うことにしました(笑) PigはSQLチックなLatinでデータをパズル的に組み合わせてデータ集計が可能です。速度的には当然JavaMapReduceよりは遅くなってしまいますが(たしか平均で1.5倍ぐらい遅くなる)、一つのScriptで柔軟なデー…

スタートアップを目指す人は必読!起業成功マニュアルの前半を読んでまとめを書きました

…策定プロセスは過去のデータや技術ロードマップ、競合分析を綿密に利用する。実績のある成熟企業に有効。 緊急的な戦略策定プロセスは将来が不透明で適切な戦略策定が難しい時に利用する。新興部門に有効。 投資家は慎重な計画を求める。 未来の事が逐一分かっているような書き方で、現実に直面したら日和見的な対応をする。 多くの組織が途中でビジネスモデルを変更している。 慎重な計画を作ったのに失敗するのが一番良く無い。成功さえしてしまえば、計画通りでなくても誰もが気にしない。 第五章 自己資本…