読者です 読者をやめる 読者になる 読者になる

のた犬のうまい猫めし

どら猫が作る、のた犬のための飯、略称、どら飯について語りつつ、各種技術、経済系セミナーに参加した報告、OSSいじってみた等のネタを入れていきます。更新情報はtwitterの@nota_inuにて。

久しぶりに描いてみた

f:id:notainu:20160618204729j:plain

何だかもうわかんない感じで。
とりあえず、天狗舞は安いのから高いのまで旨いってことで。

GrapheneDBでNeo4jを動かしてみよう 1.アカウント取得とMovie Graphの動作確認

 GrapheneDB(Graphenedb.com)はNeo4jがDaaS(Database as a Service)としてNeo4jをクラウドサービス上で実行できるサービスの一つです。プロバイダ(AWSMicrosoft Azureか)、地域、プラン、Neo4jのVersionを選択すると、すぐ使えるようになりますし、一定サイズなら無料で利用できます。また、Neo4jのデータベースをブラウザ経由で操作するブラウザインタフェースがローカルPC、ローカルサーバにNeo4jをインストールして使うブラウザインタフェース画面と基本的なインタフェース、操作方法が同じであるため、まずはローカル環境で試してからクラウドに移行する場合に、管理が楽に行えます。


【GrapheneDBアカウント取得と初期データベース作成】


GrapheneDB公式サイト(http://www.graphenedb.com/)の「Get Started Now,Free」ボタンを押します。

f:id:notainu:20150925004331p:plain

初めて登録する場合には、Sign up to GrapheneDB画面で、Eメールアドレス、パスワード、同じパスワード(確認用)を入力し、プライバシー条項を確認し、「Sign up」ボタンを押します。

f:id:notainu:20150925004423p:plain

 

登録が完了すると、Create your first database(最初のデータベース作成)画面に遷移します。

f:id:notainu:20150925004420p:plain

 


「Create database」(データベース作成)ボタンを押すと、データベースの新規作成画面に遷移します。ここではデータベースのプランを選びます。2015年9月時点で、選択可能な項目、内容は以下の通りです。

 

  • PROVIDER AND REGION(プロバイダーと地域):PROVIDERはAmazon Web ServicesMicrosoft Azureから選択できます。REGIONは、選択したPROVIDERによって変わり、Amazon Web Servicesの場合は、US East、US West、EU、Microsoft Azureの場合はNorth Europe、East US2から選択できます。
  • データベースの目的とスペック:目的は、Hobby、Standard(Amazon Web Servicesの場合はPerformanceも加えた3つ)から選択でき、Hobbyはノードと関係性の数、Standard、PerformanceはRAMとストレージのサイズで、価格が決まります。
  • Configure your database:Neo4jのVersion選択、データベース名の設定ができます。

 

 ここでは、Amazon Web Services、US East、HobbyのSandbox(1K nodes/10K relations FREE)の無償Sandbox版、Neo4jは最新2.2.5を選択し、DATABASE NAMEにはtestdbと入力し、「Create database」ボタンを押します。

f:id:notainu:20150925004417p:plain

 

f:id:notainu:20150925004415p:plain

 

 

【ブラウザインタフェースの利用とMovie Graphデータベース情報挿入】

 次の画面(ログイン後、データベース名をクリックしても移動できます)では、新しく作ったデータベース(例ではtestdb)の使用容量、現在のノード数やリレーションシップ数の確認ができます。

f:id:notainu:20150925004411p:plain


 下のToolsの右にある「Launch」ボタンを押すと、ローカルPCのOS上にNeo4jをインストール後に起動、操作できるブラウザインタフェース画面と同様な画面で、Neo4jの操作を行うことができます。

f:id:notainu:20150925004406p:plain

 

 

 ブラウザの上に「Hello and thanks for downloading Neo4j! Help us make Neo4j even better by sharing non-sensitive data. Would that be OK? (こんにちは、そしてNeo4jをダウンロードしていただきありがとうございます。より良いサポートのために機密性がないデータを共有してもよろしいですか?」と表示されている場合、「Yes, I'm happy to help!」(許可します)、「Sorry no, but good luck」(許可しません)のどちらかを選択し、画面から消しておきましょう。ここでは「Yes, I'm happy to help!」(許可します)をクリックします。

f:id:notainu:20150925004405p:plain

f:id:notainu:20150925004402p:plain

 


 表示されている3つのメニューから、「Jump into code」(コードにジャンプ)の下、「Write Code(コードを書く)」をクリックし、「Write Code」(コードを書く)」として表示される3つのメニューから「Movie Graph」(映画グラフ)の下、「Create a graph」(グラフを作る)をクリックすることで、Movie Graphチュートリアルを試してみたり、サンプルデータベースを作成し、サイファークエリを試してみることもできます。

f:id:notainu:20150925004359p:plain

 

f:id:notainu:20150925004357p:plain

 

 

f:id:notainu:20150925004355p:plain

 

f:id:notainu:20150925004353p:plain

 

f:id:notainu:20150925004350p:plain

 

f:id:notainu:20150925004347p:plain

 

 ちなみに、Movie Graphのチュートリアルに従ってデータベースにデータを登録後、GrapheneDBのメインページに戻ってリロードすると、合計2MB、ノード171個、リレーションシップ253個のリソースを使ったことが分かります。

f:id:notainu:20150925004344p:plain

 

 


【GraheneDB 各メニュー画面】

 GrapheneDBにログイン後のメニュー画面からは、以下のメニューが選択できます。

  • Overview:データベースサイズ等を確認できる初期画面
  • Connection:データベースに接続するためのREST URL、REST USERNAME、REST PASSWORDの確認、REST driver設定が行えます。また、curlPHPRubyPython等の言語から接続する場合のサンプルコードを確認できます。

f:id:notainu:20150925004342p:plain

 

 

  • Admin:データベースのリセット、エクスポート、リストア、データベース削除等が行えます。
  • Configure:右側にある「Edit configuration」ボタンを押すと、データベースの設定を変更できます。自動でインデックスを付けたり(デフォルトは手動)、読み取り専用モードに変えたり(デフォルトは読み書き)することができます。有料のプランの場合には、メモリ設定等も行えます。

f:id:notainu:20150925004340p:plain

f:id:notainu:20150925004337p:plain

 

  • Backups:有料のStandardかPerformanceプランの場合、自動バックアップスケジュールを組むことができます。
  • Plugins:有料のDeveloperプラン、それより高いプランの場合、利用できます。
  • Logs:ログファイル(messages.log、neo4j-0.0.log)の閲覧、ダウンロードができます。

 

 

のたどら珍道中「山中温泉には、おわんさんがいる」

f:id:notainu:20150720230930j:plain

温泉より全英オープンに必死

f:id:notainu:20150719223001j:plain

Java女子部セミナー「数値型おさらい&金勘定ことはじめ(BigDecimal入門、Money and Currency API紹介)」宮川拓氏

 

  • double、floatは計算が早い(コンピュータが使いやすい)型。近似値に丸められてしまう。二進の浮動小数点型。10進少数は各桁に10のn乗かけた数の和。10進の少数でぴったり表せる値を二進少数で表すと循環小数になる(無限に桁が続く)。double/floatは固定精度、有効桁数有限。
  • floatの32bitの中身:符号、指数(小数点の場所)、仮数(固定有限)。仮数のけたしか扱えない。0.3を二進にすると無限になり、doubleは有限なので近似値になる。(資料P.12)
  • double/floatで金勘定すると、intで定価1000円、7%引き(doubleで0.07)で売るとすると……。930円かと思いがちだが、929円になってしまう!! 値引き率がdoubleで0.07がすでに問題。集計(平均を見たい)とかリスク計算とか正確な金額がいらない場合以外は、BigDecimalクラスを使う必要がある。
  • BigDecimal:10進浮動小数点数。10進少数が正確に表せ、金勘定に使える。内部的には整数値+スケール。整数値:任意桁数の10進のけたを表すBigInteger。(メモリが許す限り桁数が取れる。)スケール:小数点を右からいくつ動かすかのint。12345+スケール6は0.012345.-3は12345000。ただマイナスで書くときはあまりない。
    12.345と12.34500は、数としては同じだが中身は違う。new BigDecimal("1.23")、BigDecimal.ValueOf(42L)のように定義。足し算、引き算は大きいほうのスケールに合わせて演算される。2.34+4.560=6.900(スケール3)。(スケールを合わせて整数値を足し合わせている。)掛け算ではスケールが足しあわされる。先程の例だと10.67040(スケール5)。
  • 端数処理:setScale(新しいスケール、丸めモード)。3でスケール2で丸めFLOORなら3.00.1.7320を2でCEILINGなら1.74。CEILINGは切り上げ。HALF_UPなら四捨五入。UNNECESSARYは丸めが必要ならArthmeticException。(丸めが必要になることはなく、あればバグ、を示す場合。)
  • round(MathContext)は最大精度を指定して丸めるので使えない。(整数値全体の桁数を指定する。)金勘定の場合はsetScale。1.234をroundで3指定だと1.23。56.789は56.7。0.0001は0.0001。
  • new BigDecimal(0.07)はdouble扱い。"0.07"にしないとダメ。バグとりツールとか使うとひっかけてくれたりする。(このままではせっかくBigDecimalで書いてもまた929円になる。要注意。)
  • 100と、33.3+66.7は、equalsで等しくならない。(スケールが異なるため。equalsはスケールが異なるとtrueにならない。)スケールを気にしないときにはcompareToを使う。(あるいはスケールを合わせて100を100.0にする。たぶんスケールを合わせたほうが良いのでは、とのこと。)
  • 割り算:ゼロ除算、割り切れない、桁数大きい、という問題があるためあまり使わないほうがよい。代わりに除数の逆数をかける。(ただし逆数出すのに割り算使ってしまうと同じ。初めから別ルートで逆数にするか、あきらめるか。)金勘定のための割り算は、divide(除数、スケール、丸めモード)。
  • 例:年間費用を12か月ごとに均等割りして、ひと月は小数点下2ケタまでに切り捨て、端数は最後の月に。→ 費用がマイナスの時には0の方向に丸めるか、-無限大の方向に丸めるか、が問題になる。(-0.123を-0.12か、-0.13か。)divide(BigDecimal.valueOf(12),2,RoundingMode.FLOOR)。subtract(月ごと費用.multiply(BigDecimal.valueOf(11)) ←プリミティブ型でないと、引き算、掛け算に、記号は使えない(コンパイルエラーになる)ので注意。
  • JavaSE9で、Money and Currency APIができる。通貨換算(換算用プロバイダにアクセスして換算。MonetaryConversions.getExchangeRateProvider().getCurrencyConversion(米ドル));。Moneta換算プロバイダはあまりよくないので、自前で作るのが良い。

 


質疑応答

  • 0.0001をスケール3「精度3(最大3ケタ)」(講師からご指摘いただきました。ありがとうございました&失礼しました)で丸めると0.0001になる理由は? →scaleは4。unscaledValue(スケールされていない整数値)は1。unscaledValueは1で丸める必要がないため元の数と同じになる。56.789は整数部分が56789で5ケタあるので、精度3だと多すぎるので56.7。多かったら切り捨てるが、少なくても追加するわけではない。
  • SQLServerなど、データベースの場合も同じことが起こる? → 仕様が二進数なら起こるだろう。(DBによって違うかも。)

 

Neoclipse導入してみる(→失敗)

以下、2014/2/14あたりの記事のリリース忘れ。現状と少し違うこともあることはご了承ください。

 

****

Neo4j 2.1.7を入れたが円に数字しか出ない(設定で出る?)ので、別の方向から扱えないかと、Neoclipseを入れてみることにした。

ついうっかりNeoeclipseで検索してしまいそうになるけど、Neo+clipseなのね……。

 

公式サイト:https://github.com/neo4j-contrib/neoclipse
Neoclipse Windows for 64bit Java 68.5MB。

f:id:notainu:20150606022558p:plain


zipをダウンロードし、適当なところに解凍する。(例:D:\Neoclipse)
D:\Neoclipse\neoclipse-1.9.5にneoclipse.exeがあるのでダブルクリックすると開く。

f:id:notainu:20150606022611p:plain

f:id:notainu:20150606022632p:plain

f:id:notainu:20150606022645p:plain

左上の「NewConnection」アイコンをクリック。

f:id:notainu:20150606022701p:plain


Nameはなにか適当に「LocalDefault.graphdb」、URIはBrowseボタンを押して、先ほどNeo4jインストール時に作ったD:\Neo4j\default.graphdbを選択する。User、Passは空っぽ。(設定した覚えなし。)

f:id:notainu:20150606022732p:plain


左上に何かできている。右クリックし、「Start/Connect database」を選択。
何かエラー(java.lang.RuntimeExceptio: org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.kernel.StoreLockerLifecycleAdapter@51b07392' was successfully initialized, but failed to start. Please see atached cause exception.:org.neo4j.kernel.lifecycle.LifecycleException: Component 'org.neo4j.kernel.StoreLockerLifecycleAdapter@51b072329' was successfully initialized, but failed to start. Please see attached cause exception.」

f:id:notainu:20150606022751p:plain

f:id:notainu:20150606022801p:plain

f:id:notainu:20150606022811p:plain



URIを「http://localhost:7474」に変えてみるが、「java.lang.RuntimeException: Error reading as JSON ": Error reading as JSON"」 エラー。ぬー。

f:id:notainu:20150606022826p:plain

f:id:notainu:20150606022837p:plain


neoclipseが1.9.5で、Neo4jが2.1.7なので、Versionの互換性がない? 設定が違う?? まぁ放置して次へ。

Neo4j2.1.7インストール、試行

以下、2014/2/14あたりの記事のリリース忘れ。現状と少し違うこともあることはご了承ください。

【Neo4j2.1.7 Community版 Windows、exe版 インストール】

http://neo4j.com/ (公式サイト)の右側にある「Download Neo4j」リンクをクリック。

 

f:id:notainu:20150606001150p:plain

f:id:notainu:20150606001208p:plain


Enterpriseの30日FreeTrial版とCommunity版があるので、Community版をクリック。勝手にexeのダウンロードが開始される(2.1.7で66.9MB)。

f:id:notainu:20150606001315p:plain


exeをダブルクリックでインストール開始。「D:\Program Files (x86)\Neo4j Community」 にインストール。(デフォルトはC:\Program Files (x86)\Neo4j Community。)

f:id:notainu:20150606001338p:plain

f:id:notainu:20150606001352p:plain

 

f:id:notainu:20150606001410p:plain

 

f:id:notainu:20150606001427p:plain

 

f:id:notainu:20150606001440p:plain


インストール最後、「Run Neo4j Community」にチェックを入れてFinish。
Database locationが聞かれるので、D\Neo4j\default.graphdbフォルダを作成し、「D:\Neo4j\default.graphdb」にする。(デフォルトはC:\Users\nota\Documents\Neo4j\default.graphdb。)

f:id:notainu:20150606001543p:plain

 

f:id:notainu:20150606001603p:plain

ファイアウォールブロックメッセージが出るので、全部許可しておく。

f:id:notainu:20150606001618p:plain


startボタンを押すと、先ほどのフォルダに何やらいろいろ作られている。

f:id:notainu:20150606001701p:plain


小さな画面に「Neo4j is ready. Browse to http://localhost:7474」と表示されている。

f:id:notainu:20150606001723p:plain

クリックすると、何やらブラウザで画面が立ち上がる。

f:id:notainu:20150606001746p:plain


右上のロゴをクリックすると、Version、Location、サイズが表示される。作成時点で1.97MB。
その下の★をクリックし、Generalの「Create a node」をクリックすると、中央上のコンソール部分(?)に

// Create a node
CREATE (n {name:"World"}) RETURN "hello", n.name

Cypherクエリ(たぶん)が表示される。

f:id:notainu:20150606001816p:plain

 

右上の丸三角実行ボタンを押すと、Create 1 node。。とかで何か作られた。

f:id:notainu:20150606001927p:plain

 

f:id:notainu:20150606001954p:plain


★のGeneralの「Get some data」をクリックしても何か表示される。

f:id:notainu:20150606002020p:plain


その中の右下にあるYっぽいものを押すと、何かグラフィカルっぽいものが表示される。

真ん中にある●をクリックすると、プロパティ(Properties)が表示される。

f:id:notainu:20150606002042p:plain



Properties内の目アイコンをクリックすると、●の大きさ、色を変えることができるようだ。

f:id:notainu:20150606003415p:plain


日本語も使える様子。

// Create a node
CREATE (n {name:"世界"}) RETURN "はろー", n.name

 

f:id:notainu:20150606002109p:plain

◯iの下部にある「Classic UI」のWebadminクリックすると、http://localhost:7474/webadmin/ がブラウザで開く。Dashboardとか何かある。(……Classic UIってことは新しい版もある?)

f:id:notainu:20150606002526p:plain

f:id:notainu:20150606002542p:plain



http://www.omotenashi-mind.com/index.php/Neo4j%E3%81%A7%E5%AD%A6%E3%81%B6Graph_DB%E5%85%A5%E9%96%80
を参考に、Tom、Mary、KNOWSの関係を登録してみる。

CREATE (n:Person { name : 'Tom' })
CREATE (n:Person { name : 'Mary' })
MATCH (a:Person), (b:Person) WHERE a.name='Tom' AND b.name='Mary' CREATE (a)-[r:KNOWS]->(b)

f:id:notainu:20150606002619p:plain



中を確認したい場合、
MATCH (a:Person), (b:Person) WHERE a.name = 'Tom' AND b.name ='Mary' return a, b (上記URL)
MATCH (a)-[:`KNOWS`]->(b) RETURN a,b LIMIT 25 (ロゴの「Relationship types」の「KNOWS」をクリック)
MATCH (a)-[r]-(b) RETURN a,b LIMIT 25 (ロゴの「Relationship typesの「*」をクリック)

CREATE (n:Person { name : 'Jason' })
CREATE (n:Person { name : 'Rita' })
MATCH (a:Person), (b:Person) WHERE a.name='Jason' AND b.name='Tom' CREATE (a)-[r:LOVES]->(b)MATCH (a)-[r]-(b) RETURN a,b LIMIT 25

大分複雑になってきた。恋人の知り合いか。

f:id:notainu:20150606002714p:plain



MATCH (a:Person), (b:Person) WHERE a.name='Jason' AND b.name='Rita' CREATE (a)-[r:LOVES]->(b)

JasonがRitaとTomとに二股かけたw
住んでいる場所をつなげてみるか。2つのlabelをつける場合はカンマ区切りで良さそう。

CREATE (n:Station { name : 'Chicago', country: 'America'});
CREATE (n:Station { name : 'NewYork', country: 'America'});
CREATE (n:Station { name : 'Tokyo', country: 'Japan'});

TomはChicagoに1979年から住んでいる。
MATCH (a:Person), (b:Station) WHERE a.name='Tom' AND b.name='Chicago' CREATE (a)-[r:LIVE {since:1979}]->(b)
MaryはChicagoに2000年から、JasonはNewYorkに2003年から、RitaはChicagoに2001年から、RitaはTokyoに2010年から住んでいる。
MATCH (a:Person), (b:Station) WHERE a.name='Mary' AND b.name='Chicago' CREATE (a)-[r:LIVE {since:2000}]->(b)
MATCH (a:Person), (b:Station) WHERE a.name='Jason' AND b.name='NewYork' CREATE (a)-[r:LIVE {since:2003}]->(b)
MATCH (a:Person), (b:Station) WHERE a.name='Rita' AND b.name='Chicago' CREATE (a)-[r:LIVE {since:2001}]->(b)
MATCH (a:Person), (b:Station) WHERE a.name='Rita' AND b.name='Tokyo' CREATE (a)-[r:LIVE {since:2010}]->(b)
ChicagoとNewYorkには道があり、10単位離れている。
MATCH (a:Station), (b:Station) WHERE a.name='Chicago' AND b.name='NewYork' CREATE (a)-[r:ROAD {distance:10}]->(b)
ChicagoとTokyoには道があり、120単位離れている。
MATCH (a:Station), (b:Station) WHERE a.name='Chicago' AND b.name='Tokyo' CREATE (a)-[r:ROAD {distance:120}]->(b)
NewYorkとTokyo間は150単位。
MATCH (a:Station), (b:Station) WHERE a.name='NewYork' AND b.name='Tokyo' CREATE (a)-[r:ROAD {distance:150}]->(b)

おー、さらに複雑になってきた。

f:id:notainu:20150606002854p:plain

 

f:id:notainu:20150606003319p:plain



そろそろselectしたい。Chicagoに住んでいる人手を上げろ!
MATCH (a)-[:LIVE]->(b) where b.name = 'Chicago' return a,b

f:id:notainu:20150606003136p:plain


Where句のand、orはそのままでOKらしい。ChicagoかTokyoに住んでいる人。
MATCH (a)-[:LIVE]->(b) where b.name = 'Chicago' or b.name = 'Tokyo' return a,b

f:id:notainu:20150606003219p:plain


2000年より前からChicagoに住んでいる人を取りたいのだけど0件。どうすれば良い?
MATCH (a)-[:LIVE]->(b) where b.name = 'Chicago' and b.since < 2000 return a,b ←NG

MATCH (a)-[person:LIVE {since:2000}]->(b) where b.name = 'Chicago'return a,b ←2000年限定ならこれでOK
MATCH (a)-[LIVE {since:2000}]->(b) where b.name = 'Chicago' return a,b でもOK。)

↑Personに紐付いた数字であれば。Person.age>35のように指定できるようだ。(http://neo4j.com/docs/stable/query-sql-where.html


公式の言語仕様とか:
http://neo4j.com/docs/stable/cypher-query-lang.html


SQL QueryとCypher Queryとの差】

http://neo4j.com/docs/stable/query-sql-start.html
Personテーブルのnameフィールドのanakinの情報全部取ってこい。
SQL Query: SELECT * FROM "Person" WHERE name = 'anakin'
Cypher Query: MATCH (person:Person {name: 'anakin'} RETURN person

PersonテーブルのidとMailテーブルのperson_idが同じで、PersonテーブルのnameがAnakinの、EmailテーブルのすべてをPersonテーブルから取ってくる。
SQL Query: SELECT "Email".* FROM "Person" JOIN "Email" ON "Person".id = "Email".person_id WHERE "Person".name = 'Anakin'
Cypher Query: MATCH (person:Person { name: 'Anakin' })-[:email]->(email) RETURN email


TutorialsのDataModeling Examples使って勉強すれば良いのでは!?
http://neo4j.com/docs/stable/cypherdoc-linked-lists.html
(しかも、下に練習としてSQL文発行できるテキストエリアあるし。)

http://www.slideshare.net/who_you_me/neo4j-2?related=1 P.27
辺の向きを指定:(n)-->(m)
向きを考慮しない:(n)---(m)
深さを指定:(n)-[*1-6]->(m)

セミナー「オープンソースBI勉強会 #18 Pentaho CTools」

<前置き>

ちょっとBIツール(BusinessInteligence)についてなんとかしなきゃいけなくなっているので、OSS関連のBIツールの状況について確認してみたく参加。Pentahoは入れてみてちょっと試しているところなう。当勉強会は初参加。


いくつかのテーマでグルグルと回しているらしい。定形レポートはあまり人気がなさそうで飛ばすかも、とかw。

<Pentaho前置き>

Webdetail社が開発していて2013年にPentahoに買収された。ソフトは無料で提供し、チュートリアル部分を有償で提供するビジネスモデル。

<デモ@CDE>

Webブラウザからログイン。右上のアイコンでもろもろ操作(レイアウト、データソース(書類型)、コンポーネントパネル(三角形の))。HTML、JavaScriptの知識があれば自由に表現できる。JavaScriptのライブラリを用いて表現できるものになっている。jQueryとかいろいろ入っているのを利用しつつ。なんかいろいろと追加もできるとか。
テーブルやグラフ(折れ線とか円とか)はインタラクティブ。TwitterBootstrapがデフォルトで入っている。CSSとかも書くスペースがある。

<質問>

ソース管理どうする? → サーバのほうで管理できる。GitHubとかと親和性が良い。あまり管理していなかったりするが。

 

<ハンズオン>

注:Saika導入部分以降、ついていけなくなった(泣)

*****

CDEはCommunity Dashboard Editorの略。

ログイン後、HomeのMarketplace選択。Saiku Analyticsを選択肢、Versionを2.6を選択し(デフォルトは3.xx)、installボタンを押す。一度停止し、再度起動する。

SteelWheelsSalesデモ選択。MeasureからQuantity、Sales、DimensionsからCountry選択。
サンプルデータをPentahoにUploadする。BrowseFilesに変更し、Foldersのadminを選択肢、右の方にあるNewFolderで、フォルダ名をdashboard_sample2に。フォルダを選び、右のUploadを選択し、配布物のdashboard_sample.zipを選択。Filesにずらずら出てくるので、dashboard_sample1選択(CDEと書かれた青いアイコンあるもの)。グラフが出てくる。
右の方に国別フィルタ、売上年度フィルタがある。フィルタを変更するとチャートの内容が切り替わる。
Newで新規のダッシュボード。タブを右クリックし、Open Tab in New WindowでYesで、余計なウインドウがない状態で表示される。(ブラウザの新しいタブで表示される)
右上のアイコンのDBっぽいものを選択。Add DowはクリックするとどんどんRowが増える。バツアイコンで削除できる。
Rowの中にColumnを2つ作る。右側でNameを指定し、filter1、filter2。さらにRowにColumnにmainChart、さらにRowにColumnにdetail1作る。(画面をいくつかの区分に分割している。縦に3つ、横に2、1,1。そこまでできたら画面上の「Save」。home/admin/にsample3と名前つけて保存。
右上に、目っぽいアイコンがあるので、押す。これだけでは真っ白な画面が出てくる。右上バツでClose。
Datasourceパネル(右上のノート2つ重なったようなアイコン)をクリック。一番左上のWizardsからOpen Selector Wizard選択。Cubeが表示されているので、SteelWheels選択。2つ目は自動的に選択される。下のMarketsを展開し、Countryをドラッグし、Rowsの中に放り込む。すると国別フィルタができる。クリックすると上にPreview出る。右上でNameでcountrySelector記入しておく。OKボタンで保存。戻ってSave。
再度目のアイコンでPreviewすると、フィルタが登場している。閉じる。
コンポーネントパネル(右上のアイコンで三角形の)選択。ComponentsにOLAP Parameter、Select Componentがある。Select Component選択し、右側のPropertiesでHtmlObjectで選択肢からfilter1を選択。
DataSourceに戻る。countrySelectorと同様にyearSelector作成。再度SteelWheels選択、Time内のYears選択肢、Rowsにドラッグ。名前をyearSelectorにする。HtmlObjectはfilter2指定。TopCountは無し選択。OKボタン押し、Save。
OLAP QueryはMDX。SaikuのGUIGUI指定もできる。DataSourceに戻り、Saiku OLAP Wizard選択。New Saiku Query選択肢、SteelWheelsSales選択。ColumnsにYear、Quantity選択。ProductのLineをRowsに。FilterにMarketsのCountryを追加。国一覧が出るのでJapan選択して右側にしておく。OKボタンを押す。名前を、orapQuery_TimeDataにする。
右側のPropertyからjndiを選択し、SampleData、Mondrian schemaはSteelWheels選択。
コンポーネントパネル(△)を選択。左のChartsを選択肢、Stacked Area Chart選択。NameはoverviewTimeChart選択。DatasourceはolapQuery_TimeData選択。一度保存し、Preview。国と年とのセレクタが表示されている。
コンポーネントパネルに戻り、Heightを300に指定。HtmlObjectsをmainChartに。すると、Previewでグラフが描画されているのを確認できる。
DataSourceで、olapQuery_TimeDataを選択肢、Queryを選択肢て編集ボタンを押し、WHEREを切り取り、一度保存しておき(Markets.Japan.Japanとか書かれている)、{${country}}に変更する。Parametersをクリックし、Addボタンを押し、Nameはcountry、Valueはテキストに保存した値(ダッシュボード起動した初期値)を入れ、OK。
コンポーネントで、Stacked Area Chartを選び、PropertyでParameterで、Argにcountry、ValueはCountrySelector選択。ListenersはcountrySelector選択。すると、国の選択肢を変更するとグラフが変わるようになった。(プレビューで。)
プレビューはグラフがアニメーションするが、アニメーションを変えたい場合、コンポーネントで、プロパティの右、Advanced Propertiesで、一番下の方、animateをFalseに変更。するとアニメーションされずにサクッと切り替わる。


チュートリアルビデオが、「HOWTO Pentaho Modeling and Dashboards」として上がっている。今回のハンズオンはそこのビデオ参考にしてあるので、見てほしい、とのこと。

www.youtube.com

 


<ライトニングトーク@Saiku Chart Plus>

都道府県で色を付ける時に、都道府県のおしりを切るように修正する。と、京都が認識されなくなる。

 

 

 <ライトニングトーク@SQLServer2016(de:codeにて)>

de:code(http://www.microsoft.com/ja-jp/events/decode/2015/default.aspx)に参加しての報告。
業務系・分析系の統合、クラウド拡張あたりが大きいところか。R言語の分析サービス。インメモリ。ストレッチテーブル(一つのテーブルがオンプレミスと離れたところとまたがっている)。DBの暗号化とかセキュリティ的拡張。
イベントとしてはかなり盛り上がっているとか。マウスコンピュータがWindows Phone展示していたとか。

のたどら出会い編5

f:id:notainu:20150516200122j:plain

f:id:notainu:20150516200134j:plain

越後鶴亀(試飲でかなり美味しかったので購入。ワイン酵母使ったとかでデザートワインのような甘くてこくがある感じ。ただ単品で飲むにはいいのだが、つまみを何にするか迷う感じの味。リピートありで。)
f:id:notainu:20150516200146j:plain

Jedoxロードショー2015東京 参加レポート

BIツール調査の一環として、Jedoxロードショー2015東京に参加。(http://ksk-anl.com/archives/998) Jedox社ワールドツアーイベントらしい。(KSKアナリティクス)
東京での開催は3年連続三回目だとか。

 

【製品紹介セッション】

Jedox社(ドイツ)のCTO Matthias Krämer氏の講演。

  • Jedoxに関する8つの数字の紹介。2002年ドイツ設立、40%/年の成長。140000ユーザ、1500組織、25の言語、125国のユーザ、150のビジネスパートナー、1つのBIでの提供。
  • Jedoxが成功した理由:Excelのインタフェース。BI&PerformanceManagement(PM)。BIは過去データ分析、PMは将来の予測、の両方を提供。Innovative(インメモリDB、ParallelProcessing、Cloud、Mobile)。Money(LowCost、FastResults(短期実装)、MinimalRisk(リスクが低い))。
  • Excel:現在最も使われているBI&PMツール。LowCost、Simple、Accessible、Fast、Flexible。ただ整合性、一貫性、エラー、など問題もある。Jedox Philosophyとして、Excelの利点をキープしつつ、問題をなくしていく。
  • Excelだけでは、Create Template, Load Initial Data, Distribute Sheets ,Data Entry, Collect Data, Monitor Progress ,Validate Submissions,ConsolidateResults,Analysis,Adjust Scenarios,Finalize Trackの手順が必要。(Excel複数のシートに分かれたり、人によってフォーマットとかが違ったりして、まとめるのが大変。)これを繰り返す必要がある。Jedoxを使うことで、単一のデータベースにデータを統合し、Create Planning Model, Email Nortification, Online Completion, Process Monitoring, Online Scenarios and Analysis, Reportingの手順となる。メールで送ってオンラインで入力して進捗管理ができオンラインで分析し、好きな形式でレポート出力。主導での作業や修正が減りスムーズに。
  • データからはJedox Integrator経由でOLAP Serverへ。SAPとのコネクタもある。OLAP ServerとはAccelerator,XMLA、Excel Add-in、Web、Mobileが連携する。
  • 今後、CloudBI&Analytics、MobilityFirst(モバイルへの展開)、BigData。
    Stand Alone、ClientServer、PrivateCloud、PublicCloudなどさまざまな形式で使える。SalesForceとのCloudConnectorもあり(? 作る予定?)
  • DataGravity(データのある場所にBIを作る??)
  • Twitterの分析もできる(? できる予定?)。Twitter Analytics。なんか検索するとどこでつぶやかれているか地図上に表示したり? (……世界地図……。)
  • Demo Cloudは40日間無料で利用できる。現在JedoxSuite6開発中。(2015-3Q→2017-1Q?)

<デモ>

  • Webインタフェース。スタート画面は図を入れたりロゴを入れたりしてカスタマイズできたり、メニューによってダッシュボードを切り替えられたり。インタラクティブな棒・折れ線グラフ、地図、マウス選択での範囲絞込みとほかのグラフとの連携、表形式(昇順降順並べ替え)、フィルタリング。表+グラフ(マイクロチャート)、円グラフ、棒グラフに数値、複数の棒グラフ、男女比、スピードメーター、塗りつぶし折れ線、PDFによる画面の出力、……のようなことができる。
  • 作るのはExcel。アドインを追加し、キューブモデルを作成。モデラーが……(?)。ピボットテーブルのように見えるがなんか違う表を作成し、ダイナミックな操作が可能な表を入れられる。ウォーターフォールモデルのようなExcelにない表もできる。copy actualと入力すると……(?)。copyと入力すると、過去データが表示され、predictと入力すると、複数年を考慮した予測(?)ができる。(……なんかちょこちょこと出てくるウィンドウが何やっているのか良くわからない……。もろもろのコマンドっぽいものをセルに入力していくのはかなり理解しないと厳しそう?? 覚えると簡単????)なんか適当に考えて貼り付ける機能があるとか。PublishボタンでWebにUPできる。

 

【事例紹介セッション】

KSKでは、2012年2月にJedox社とパートナー契約締結、サービス開始。12月に日本語版v4、2013年4月にv5.0リリース。

  • 事例1:アパレルでの予算計画。30Excelファイル、8万関数。部門追加ごとに30のExcelを修正。コピペでレポート作成。Jedox導入して60ユーザ、Oracleデータ、でレポート、分析、予算計画に利用。
  • 事例2:環境エネルギーの可視化。100万円台。(SmallEditionなら100万円からスタート可能。)5ユーザ+20閲覧ユーザ、db2ExcelCsvのデータ。
  • 事例3:SAPデータとの統合。ヘルスケア用品の製造業。65ユーザ。月単位での情報収集を週単位にすること、年間数百万円の保守料を何とかしたい、の課題解決。
  • 事例4:ロッテ韓国のSAP。
  • 事例5:BMW中国。3900人の社員で、200のJedoxUser。データの一貫性確保。
  • 事例6:C&A(ヨーロッパの洋服製造業)。組織の規模が大きい。1500店、21カ国。プランニングにかかる時間が1/3に。

 

【パートナーセッション(OpenStream)】

OpenStreamワタナベ氏から事例紹介。豆蔵HDのクラウドサービス、パッケージソフトの企画、開発、販売などを行っている会社。
BizBrowser、Jedox、pentaho、tableauなどサービスを行っている。DWHとしてはAmazonRedshift、INFOBRIGHTなど。

  • 事例7:16カ国、1600店舗のアパレル企業。国別全体売り上げより商品分類、シーズンなど構成比を指定して分離、予実再分析、シーズン別売り上げ、在庫帳票。基幹系、店舗、分析系システムからETLでデータ連携して、OLAPサーバに格納し、JedoxWeb、JedoxExcel。日別解析の実施。(日別での計画変更。)アイディアを形にするまでのスピードが早く、コスパに優れていることから採用された。(予算管理パッケージソフトでは汎用性が△、スクラッチ開発ではコスト、開発期間が△。)

 

【パートナーセッション(TechMatrix)】

TechMatrixサトウ氏からの事例紹介。医療向け画像処理パッケージ、リスク管理エンジン、CRM、ソフトウェア品質保証、ネットワークインフラなどを提供。JedoxをBIソリューションとして提供している。医療の固体別症例分析とか。

  • 事例8:ウェブクルー。専用の比較用ポータルサイトを運営(引越し、保険、結婚式場、教育……)。クライアント企業が商品を掲載し、客はいろいろな企業の見積もりを一括で取得できる。商品の反響を確認するための集計がExcelベースだった。データの持ち方、整形方法が違うのをcsvにして手でExcel化していた(日次でかなりの労力がかかる)。Jedoxでマスタからの全自動集計、サイト別自動計算、請求金額算出、Excelファイル管理。6名、週3日、手作業、を、2名で数分まで落とせた。
  • 事例9:通信販売会社(健康食品リピート通販型)。オペレータに電話で注文。FastHelpというコンタクトセンター用システムを入れている。顧客に向けたキャンペーンDMを最適化できているか、が課題のひとつ。Jedoxでターゲティング分析、リスト作成。メール配信後のクリックログ、Webアクセスログの収集で効果分析。

 

のたどら出会い編4

f:id:notainu:20150510193337j:plain

純米 生一本 越後鶴亀
f:id:notainu:20150510193350j:plain

f:id:notainu:20150510193406j:plain

のたどら出会い編3

f:id:notainu:20150505192454j:plain

GRANGE ORLEAN BLAYE COTES DE BORDEAUX2012
f:id:notainu:20150505192438j:plain

のらどら出会い編2

f:id:notainu:20150505145923j:plain

f:id:notainu:20150505145943j:plain

のたどら出会い編1

f:id:notainu:20150503220842j:plain

MIZANTAR(ミザンタル・ブランコ2013)
f:id:notainu:20150503220904j:plain