ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

ビッグデータ管理としてのPostgreSQLのhstore・JSON、MongoDB

2015-01-19 16:10:45 | AI・BigData

1月18日、「ビッグデータ管理入門」の前半を、NIIで聞いてきた
その内容をメモメモ
まずは、講義内容をメモメモ。

<HR>

内容:データ管理手法
 NoSQL
   RDB(Postgre Hstore)
   ドキュメント指向(MongoDB)
   列指向(Cassandra)

第一回~第4回
 ・ビッグデータの概念とデータ管理手法
 ・RDB
 ・ドキュメント指向
 ・列指向

第5回~第8回
 ・ゲノム解析(病気判定、リスク、weka)

ビッグデータの概念と管理手法
 ビッグデータとは
 データ管理の要件

ビッグデータとは
 定義1:大容量データ:電気代だけでも大変!
 定義2:3つのV
 →何かわからないデータから、何かを導く出す

ビッグデータの課題
  収集、
 ●取捨選択、
 ●保管、
 ●検索、
  共有、
  転送
  解析
  可視化
→●が今回の範囲

データ管理に対する用件
  試行錯誤のサポートが必要
  スペシャリストのモデル化+スペシャリストが見落としているところ

CAP定理
・分散システムに関する定理
・以下の3つは同時には成り立たない
   Consistency  一貫性
   Availability 可用性
   Patition-Tolerance 分断体制
 APが満たされる→一貫性X
 CPが満たされる→アベイラビリティX
 CAが満たされる→分断されるとX

リレーショナルデータベース
 メリット:モデルが直感的
 デメリット:柔軟性、スケーラビリティ
 RDBは、一貫性を重視
     ビッグデータは製品依存(Oracleはできるとか)
     スパース:無駄なカラムを作ってしまう

NoSQLによるデータ管理
  Not Only SQL
  特徴 柔軟なスキーマ
     スケーラビリティを確保しやすい
     データの結合がないものが多い
  種類
    ・ドキュメント  MongoDB,CouchDB
    ・KVS(key Value Store) Dynamo
    ・列指向 Cassandra HBase
    ・グラフ指向 Neo 4J

ドキュメント指向
 ドキュメントという単位でデータを管理
  →各ドキュメントが独立
   パフォーマンスはやや劣る

 KVS
  単純なので早い memcached KyotoCabinet

 列指向
  Google Big Tableに基づいた管理手法
  Cassandra HBase
  カラムファミリー、ロー、カラム(キーと値)
  ディスクの使用効率がよい。検索不得手

 グラフ指向
  MongoDBのほうが設計しやすい
  Cassandraはキーの名前、列の設計が難しい
   Cassandra CQL
   MongoDB Javascript
 取捨選択、保管、検索は3つをすべてNoSQLでやる必要はない


<<2時間目>> RDBにおおけるビッグデータの扱い方
・データ管理に対する用件
  ビッグデータ解析
   スケーラビリティ
   試行錯誤のサポートが重要
 RDBにおけるスケールアップ レプリケーション
   →単一障害店をもつ、
    Writeの負荷→ノードのスケールアップ(サーバー増強):コストの問題

Google F1 分散データベースの仕組み
OoODE クエリの並列発行

柔軟なデータ構造
  スキーマに基づくテーブルにデータ格納
  可変なデータの扱い方

リレーションモデルの工夫
 EAV Entity-Attribute Value
  利点 RDBの一般的な機能
  欠点 汎用的なクエリを書きにくい
     階層構造を扱いにくい
   →隣接リストモデル、入れ子集合モデル

PostgreSQL hStore,Json
Oracle/MySQL パフォーマンスのため

hstore key-valueのペア集合を格納
Json JSON形式のデータを格納
  拡張機能の有効化 CREATE EXTENTION hstore必要

■hstore

テーブルの作成
CREATE TABLE logs(
id SERIAL PRIMARY KEY,
datetime TIMESTAMP,
attribute hstore
);

データの挿入
INSERT INTO logs
(datetime,attributes)
VALUES
(NOW(),
'target => "index.html",
referer => "http://google.com",
parameter=> "x=1"');

データの検索
 SELECT * FROM logs WHERE attributes?'target';

(資料にないが、課題にあったもの)
 SELECT COUNT(*) as kensu from logs where attributes->'target' = 'index.html';

■JSON

テーブル作成

CREATE TABLE logs2 (
id SERIAL PRIMARY KEY,
datetime TIMESTAMP,
attributes json
);

データ挿入
INSERT INTO
logs2 (datetime,attributes)
VALUES
(NOW(),
'{"tagret":"index.html",
"referer":"http://google.com",
"paramater":{"x":1}}');

データの検索
SELECT * from logs2 WHERE attributes->>'target'='inex.html';

(資料にないが、課題にあったもの)
SELECT COUNT(*) as kensu from logs2 where attributes->>'target' = 'index.html' AND attributes->'parameter'->>'x'='1'";


■操作
・JDBCドライバで操作できる
・HStoreはHashMapとして扱える
  →古いJDBCドライバはPgobjectになる
・JSONはPGobjectとして扱える
  →JSONは外部ライブラリ(本講義ではJackson)を利用

■演習のやりたか
(1)eclipseを立ち上げる
(2)window→Open パースペクティブ
(3)other→gitを選択
(4)gitのパースペクティブで、git cloneを選ぶ
(5)出てきたダイアログでURIに指定のURLを入れる
(6)コマンドプロンプトで、落としてきたフォルダにいく(CD)
(7)mvn eclipse:eclipse
(8)インポートする
   general→existing project into workspace
   (7)で作ったところ指定


<<3時間目>> Mongo
ドキュメント指向データベース
  ドキュメント単位でデータ格納
  フォーマットが決まっている:XML,JSON,YAML・・・

MongoDB
・オープンソース
・C++
・ゲームなどで

JSON形式の格納
 内部的にはBSON(バイナリーJSON)
 スキーマレス

Mongo
 高速度
   インデックスを使ったデータの参照が可能
 高可用性
   自動的なフェイルオーバー
   レプリケーション
 自動的なスケーリング
   自動シャーディング
    →シャードキーをどう決めるかが重要

シャードキー決め方
 レンジベース
 ハッシュ関数で
→スプリッター、バランサー

データのモデリング
  JOINできない
 →ドキュメント埋め込み、ドキュメント参照

コマンドラインからの使用
mongo
show dbs;
use mydb;
show collections;
  テーブルに相当するのが、コレクション
db.testData.find();
  testDataコレクションの中身を表示

Javaからの制御例
Mongo mongo = new Mongo(host poro);
DB db monogo= mongo.getDB(dbname);
DBCollection collection = db.getCollection("accessLog");
BasicDBObject doc = new BasicDBObject("target", "index.html");
System.out.println(collection.count(doc));

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ウェアラブルExpoに行って来たんだけど・・

2015-01-19 13:27:56 | Weblog
そうそう、1月16日にウェアラブルExpoを東京ビッグサイトにいって
見てきたんだけど・・・

ウェアラブルExpoの展示は少ないというか、そもそも

  東側:ネプコン(半導体、エレクトロニクス関係)、照明、ウェアラブル
  西側:Automotive World(自動車関係)

ってことで(会場案内)、ウェアラブルExpoは東側の本の一部地域。

 音声認識が多かったような気がする。あとは、想像つくようなウェアラブル

むしろ、目新しかったのは、Automotive Worldのほう。
コネクテッドカーということで、(説明が終わった後で行ったので、資料しか
もらえなかったけど)、車載CANデータ・クラウドシステム構築サービス
とかいうのが、ZMPとか言うところから出てた。

簡単だけど、そんなかんじ。




  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

世界はグローバル化していない:世界の何処の先進国を見ても移民だらけの国はないでしょ!

2015-01-19 10:17:00 | Weblog
もし、グローバル化しているなら、全世界は均質なはずだかから、
移民はいっぱいいて、

どこの国でも、
  イスラム教に対して同じように感じるし(侮辱している⇔表現の自由なんて議論はおこらない)、
  キリスト教に対しても同じように感じるはずだ!
っていう結論になる(ここまでは言ってなかったけど)

日立 Prowise Business Forum in Tokyo 第80回
ベストセラー「世界の経営学者はいま何を考えているのか」の入山章栄氏が語る!
なぜ日本企業の「グローバル化」は加速しないのか!?
~求められる国際化戦略とは~

を聞いてきたので、その内容をメモメモ





■世界の経営学から見る日本企業国際化への視座

世界はどれくらいグローバル化しているか?
 →0、1ではなく、連続的に鎖国からグローバル化まで変化する
  世界的には、鎖国より
  →もし、グローバル化してるなら、移民とかもっと多いはず!
 →実際には、セミグローバリゼーション

世界にグローバル企業はどれくらいあるか
 欧州、アジア、北米とわけて、
   自分が所属するエリアが50%以下、
   他エリアから20%以上稼いでいる企業は
  大手360社中、9社
 →実際にはRegional Specific Advantage


グローバル人材は育成可能?
  統合による効率化と
  各国への違いに適応?

 →ではどうするか?
  ・AAAフレームワーク:3タイプのマネージャー
    Agglomeration(Functional Manager)
    Arbitrage(Business Manager)
    Adaptation(Country Manager)

(講演資料にある、スパイキーな国際化の説明はなかった・・時間切れ)




■グローバル企業が競争優位を創出する戦略とは
・IBM「The Customer-activated Enterprise」から
重要なもの:全体
 1位 テクノロジー
 2位 市場の変化
    :
 7位 グローバル化

日本
 1位 テクノロジー
 2位 市場の変化
 3位 グローバル化

(ここで話の流れ途切れる)

コミュニケーション大切だよね

活文いいよ

(ごめん、このあと、事例になったんだけど、ここで帰ってしまった・・・)




■所感
・世界は、日本ほど、あんまりグローバル化には期待していない
・日立的には、グローバル化には、活文らしい?

  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする