Javaバッチの性能について

お約束でググってみる。
とりあえず、「Java バッチ」でいくつか。

Java$B$G%P%C%A=hM}(B
PasalとJavaで単体のテストプログラムを作って比較した論文と思われる。本文中に日付がないので作成日が不明だが、テスト環境や、参考文献の日付を見る限り99年〜2000年台前半に書かれたものだと思われる。単体プログラムのテストなので

www.nri.co.jp/opinion/g_souhatsu/pdf/gs20070104.pdf:title

レコードの取り扱いに工夫が必要

通常のJavaプログラミングではデータレコードを読み込むたびに、データ種別(文字列、数字等)に応じたオブジェクトを生成することになるので、工夫しないと、大量に以下の処理が発生する。

オブジェクト生成
データ変換

なので、この論文では、独自のフレームワークで、この部分を効率化している。

ここで時間切れ。
続きは3月中にはまとめたい。

メンタルヘルス研修 受講記録

会社でメンタルヘルス研修をうけたので簡単にメモを残しておく。

メンタルヘルス不良につながるストレッサーの代表格

簡単にいえば、部下・自分のストレスに気をつけるべきタイミング

  1. 役割葛藤
    • 役割が変わった時。簡単にいえば昇進、昇格のタイミング
  2. 量的負荷
    • 単純に仕事量

ストレスからうつ病へのプロセス

  1. 過剰適応
    • 普段より仕事に没頭、仕事に熱中。ハイな状態。
  2. 神経過敏
    • 些細なことでイライラ、トラブル
    • ここまで持って三ヶ月。この先が危ない。
  3. 無関心
    • ぼんやり、ミスを連発、記憶力の低下。
    • 体調的な不調がこの辺りで出てくる。
  4. 引きこもり
    • 頻繁な遅刻、午前休暇
  5. 抑うつ
    • 不眠、憂うつ、「仕事が合わない、向いていない」と思う
  6. 行動化
    • 衝動的な行動。自殺など。

うつ病と憂うつ気分と違い

  • 一時的なふさぎこんだ気分にとどまらず、二週間以上、毎日、一日中症状が続く

運動はうつ病の治療に非常に効果的。

  • 「週に二回、20分走る」だけで薬物治療と同じぐらいの効果がある。→普段から運動したほうが良い。

睡眠障害

  • 一日、二回以上眠気を感じたら睡眠障害らしい。結構ハードルが高い。
  • 高齢になって、眠りの質が落ちたら、無理をせずに軽い睡眠導入剤に頼るのも手。内科でも処方してもらえるらしい。
  • アルコールは良くない。良質な睡眠の敵。

役職者としての具体的な行動

  1. ストレス状態への気づき。
    • 一ヶ月ぐらい様子をみる。一ヶ月症状が続いたら異常状態と判断してアクションを起こす。
    • 気をつけるべき状態
      1. 生産性の低下
      2. 勤怠悪化
      3. モチベーションの著しい低下など。
      • 月に二回以上の突休は介入サイン。
  2. 相談、面接
    • 15分の簡単なもので良い。相手のリアクションで症状をみる。
    • 家族の情報も確認。奥さんとの関係とか、実家に顔を出しているか、という情報も重要。
  3. 業務調整。ここが重要
    1. 連続休暇
      • 土日+1日で3日くらい休ませる。20〜30代で軽度の症状ならこれで元気になる。
    2. 早帰り
      • 19時ぐらいで帰らせてみる
    3. 役割の見直し
      • 少しでも、簡単でもいい。サポートをつけたり、一部の業務を一時的に引き取ったり。

自分のストレスコントロール

  • バランス思考が大切。無理に前向きに考える必要はない。現実的な落としどころを目指す。
  • バランス思考のこつ
    1. それって事実?想像?想像は切り離す
    2. 決めつけていないか?
    3. すぐに否定的な予測をして、ますますそれを信じ込んでいないか
    4. 自分が本当に心配していることは何?

だいたいこんな感じ。
定期的に振り返ることにする。

2012年 片付けのルール

1年ぐらい前に買ったこの本、このお正月にやっと読み終わった。

収納上手にならなくてもいい 片づけのルール

収納上手にならなくてもいい 片づけのルール

少しづつでも実践するために、いくつか、実践しようと思うことをまとめておく。
ただ、いくつも上げてもやりきれないのは眼に見えているので、あえて3つに絞ってピックアップ。

・出しっ放しになっているものに、指定席を決める
・モノを”返す場所”を必ず決める。片づけの時に迷いません

片付いていない、汚く感じる理由で一番大きいのが、出しっ放しになっているものの多さだとは自分でも気付いている。今年は散らかっているものの半分はしまう場所を確保したい。
でも、収納家具を増やしてもタンスの肥やしが増えるだけなので、モノを減らして収納場所を増やそう。

・片付く時間、片付く日をきちんと作る。
・ちらかるとわかっていても一日一度のリセットを繰り返す
・掃除は一日一回、寝る前に。毎日のスタートは片付いた空間から

休みの間はいいけど、終電で帰ってきたり、飲んで帰ってくるとこれができない・・・
一日一回、寝る前にPCデスクとテーブルの上、台所だけでも片付けられれば大分よくなるはず。
完璧でもなくても、その日出したものだけは片付けよう。

・片付けはざっくり&ゆるやかに。労力はかけすぎない
・自分を許してあげるための、”何でもスペース”を確保する

自分のいけない癖に気をつける。
完璧にやろうとするから、ちょっと失敗したときにくじけやすい。
「だいたい」でも良いから、上記の2つを1年続けよう。
ただ、何でもスペースを片付けるサイクルを身につけないと、”何でもスペース”が大変なことになるんだよね。だから、これは小物用に引き出しにとっておこうかと。
そうなると、リビングに置いておく小物入れになるスペースがほしい。今年の買い物リストはこれかな。

こうやって書くとちょっと恥ずかしい宣言だ。
でも、学生の頃より明らかに部屋が散らかってるのが事実で、まずはこの三つを実践して1年後に振り返ろうと思う。

今年の目標

自己研鑽時間をちゃんと確保する

2011年の後半に実践した「始業前&お昼休みの自己研鑽」を今年も継続する。
業務が忙しくなると、ついついサボりがちになっちゃったので、今年はここを改善したい。お昼休みはまだしも、始業前の1時間弱は自己研鑽に当て続けよう。
まずはアセンブラの応用力強化!

Club DB2にもう少し多く参加する

2011年は担当チーム、担当職掌の変更のために、参加したいテーマに参加できないことが多かったが、今年は、もう少し仕事と自己研鑽のバランスを取る。

Club DB2に加えて、もう一つか二つ、社内でも社外でも参加する勉強会を増やす。

2009年から参加してるClub DB2。勉強会に参加することの意義を身を持って感じれば感じるほど、Club DB2だけではなく、もっといろんな勉強会に参加したいと思ってきた。
何でもかんでも参加すればいいわけじゃないだろうけど、まずは気軽にいろんな勉強会に参加してみて、今年の後半には継続参加する勉強会を決めたいと思う。

アウトプット量をさらに増やす。

2010年までに比べれば2011年のアウトプット量は多分10倍以上だったと思う。でも、これって、これまでのアウトプット量がほとんどなかったからで、世間の技術者と比べたらまだまだ少ない。
今年は技術にこだわらず、さらにアウトプットを増やしていきたい。
具体的には、月に2回Blog or みんカラを書くことを目標とする。

プライベートな目標は後3つたてたので、これをちゃんと実践していこう。
個人的には、目標は絞ったほうが良いと思っているので、まずはこの7つ。

ClubDB2参加記録 第130回 IBMのテクノロジートレンド に行ってきました。

久しぶりにClubDB2に参加してきました。
最近は、参加したくても夜勤と日程が重なったり、私用で日程が調整できなかったり、残念な思いをすることが多かったのですが、久しぶりに楽しい時間を過ごしてきました。
テーマはIBMのテクノロジートレンド。毎度ながらDB2にこだわらないのがClubDB2らしいし、ClubDB2の参加しやすいところですね。
最近は、業務の主担当はDB2を離れているので、幅広い知識を得る意味でも、楽しく参加させていただいています。


さて、今回の講師はIBM クラウドエバンジェリストの米持(@pandrbox)さん。
第119回(ClubDB2 第119回「RESTの基礎と、XQfulによるXML-DB活用」に参加してきました - k_masuの日記)に続く登壇です。
前回も非常に楽しかったのですが、今回も、本線の話に加えて、所々で逸れていく横道のお話が非常に楽しかったです。

米持さん、最近はIBMの全Softwareブランドを担当されているそうです。あれだけあるブランドを全部担当するって・・・エバンジェリストの肩書きは伊達ではない、ってことですね。
さらに、小学生時代に無量大数まで数字の桁を覚えたってすごい。しかもそれをIBMのCM1979 日本IBM 数字桁篇 - YouTubeで覚えたって・・・

IBMのテクノロジートレンド = IBMの考えるIT

背景
  • データの爆発的増加
    • 2007年から2011年の4年間で全世界のデータは10倍に
    • Twitterを流れるデータは、1日1千万件。一昔なら、DWHが扱うデータ量が1日で!
  • データの非構造化
    • テキストデータや、マルチメディアデータの増加
IBMのSolution

このような状態に対するIBMのSolution(キーワード)がSmaterComputing。
Cloud、BigData、OptimizedSystemsの組み合わせ(Virtuous Cycle:効循環、相乗効果)

Cloud

Cloudのメリット
  • デリバリースピード

デリバリースピードが格段に上がってきている。
ここは@bizuayeuさんがつぶやいたとおり。このスピード感はすごい。見習わないといけない。

  • デリバリーコスト

ここはそのままデメリットにもなるんだけど、初期投資ゼロ円ってのはやっぱりすごい。

Cloudのデメリット
  • パフォーマンス

やっぱりパフォーマンスを突き詰めようとするとCloudは不利。VM経由じゃ最後の最後はチューニングできない、というのは会場みんな一致した感想だったんじゃないかと。この答えが、HybridITにつながっていく。

  • コスト

「え?コスト?クラウドってコストが安いんじゃないの?」って声が聞こえてきそうですよね。でも、ここもちゃんと話してくれるのでありがたい。そうだよな、と頷きながら聞いてました。

キーワードは『クラウドは安くない。ちゃんと返しましょう』。勝手にキーワード作りました(^^;

IBMの10円クラウドを例にすると、
1コア、2Gメモリの仮想マシンが 10円/h
1年使うと 10円 x 24h x 365日 = 87,600円

でも、最近のサーバって4コアですよね。
しかも、1コアあたり2スレッド(?)

で、これを計算すると
87,600円 x 8 = 約70万円

ま、分かっていることですが、常時利用するならオンプレミスのほうが安いですよね。
もちろん、前出したデリバリースピードとか、デリバリーコストがバカに出来ないから、これだけで「常時利用システム = オンプレミス」とは判断できないわけですが。

Cloudのトレンド ー> Hybrid IT

Public Cloud、Private Cloud、Traditional ITの組み合わせによるシステム。
パフォーマンスが必要ならTraditional IT
テンポラリなシステム(デモ、開発、検証)や、スモールスタート、ピーク性が読みにくいシステム 等々にはPublic Cloud。
大企業なら、社内システムの集約にPrivate Cloud。

事例がこちら。えっと、bizuayeuさんのツイートに頼りっぱなしですね。

まぁ書いてみればそのまんまですし、米持さんもおっしゃっていたとおりですが、Traditional ITってのはなくならないですよね。ダウンサイジングの波があっても、結局メインフレームがなくならなかったように。
でも、その市場は確実に小さくなっていくわけで、今まの技術と経験だけであと25年食っていけるのか。見極めが必要だと感じる今日この頃です。

BigData

BigDataをどのように分類するのか。IBMレイテンシー(リアルタイム性?)とスループット(大量計算)の軸で考えている。

レイテンシーを狙う分野では「いかにCPUをぶん回すか」。
スループットを狙う分野では「いかにI/O BUSをフルに使うか」。
後者がまさにHadoopな訳ですね。

Stream Computing

レイテンシー(リアルタイム)を目指しているのがStreamingの分野。
以前、ClubDB2でお聞きしたInfoSphere Streamがこの分野の製品。前回の講義では、株のトレーディングシステムなどを実例としてあげていらっしゃいましたが、今回の例はイタリア 電力会社のスマートメータ。各家庭(30万件?)の電力使用量を15分間隔で計測。現状、過去のトレンドをもとに電力料金を随時変更している。各家庭には電力単価と利用量、要は利用料金が表示されるので、

電力使用量増加 ー> 単価を上げる ー> 各家庭に値上げが通知される ー> みんなが節電 ー> ピークが抑えられる

という狙いらしい。

Distributed Data Processing : MapReduce
  • 統計学者はみんな分かっている。全量検査が一番正しい。でも、処理しきれないからサンプル検査している。
  • 市場構造が変化して、LongTailを狙いたい ー> 全量検査しないとみつけられない(見つけにくい)

IBM製品(BigInsight)の特徴はこちら(笑)

デモとサンプルコードを見ただけでいかにJaqlが便利かわかりました。
でも、このへんって、ASAKUSA FWとかとどういう関係になるんでしょう。
Hadoop周りは全然勉強出来ていないので、もう少し整理の必要ありです。

あと、BigInsightについてくるBigSheetsはやっぱりいい製品(おまけ?)ですよね。
でも、2次会でも話したんですが、HDFS上(要はサーバー上)にあるデータを扱えるようにして欲しいですね。毎回データをアップロードしないといけないのは敷居が高いと思うんです。

2次会!

今回は2次会まで参加してきました。
2次会の様子は@muka_さんのtweetにて。。。(^^;

いやぁ、辛かったですね。私の口では甘口が限界でした。
激辛(?)を美味しそうに食べていた米持さんと@muka_さんってすごい・・・

でも、辛くないチヂミは美味しかった。

あ、そういえば、PureScaleのはいっているキャリーバックの写真を撮り忘れました。世界最小(?)のPureScaleも、きっとClubDB2で紹介されるのかなぁ。楽しみにしてます。

電車の都合で少し早めにお暇させていただきましたが楽しい時間をありがとうございました!

毎度ながら運営の皆さん、講演していただく講師の方々、参加者の皆さんには感謝感謝です。ありがとうございます。

3/14 在宅自習 アウトプットまとめ(1)

在宅ワーク環境がないので、在宅自習をしています。
だらだらとしないためにアウトプットをまとめる。完全な自己満足です。

焼畑農業をやめるために---新卒準備カレンダー 2011春

焼畑農業をやめるために---新卒準備カレンダー 2011春 - 西尾泰和のはてなダイアリー

会社における会社員の価値とは?
そんなに単純に割り切る、すべてがドライな世界ではないけども、という注釈付きで。
で、会社員は、会社に価値を提供することで給与を得ている。定量的に測れる価値、定性的にしか測れない価値。ちょっと話題がずれるけど、すべての価値が定量的に測れるわけではないから評価制度って難しいわけですよね。

で、このエントリから理解したこと。

  • 自分の価値を高めよう
  • 勉強会は自分の価値を高める絶好の場所(錬金術の場)
  • でも、一方的に価値をもらうのではなくてGive & Takeだよね
  • そんなに難しく考えず、自分が得意な分野を深彫りすればGiveできる

自分の経験では、Giveってそんなに難しく無いですよね。この業界で5年10年やっていれば、何かしら詳しい分野があるはず。それが参加している勉強会にマッチしているか、がちょっと難易度が高いけど、そんなの無視する。(良い意味でね)。

以下、気になったフレーズを引用。

価値を増やすには?
(中略)
しかし価値の生産速度は増やせます。たとえば、どうすると失敗するか学習して成功率を上げる。もっと速いマシンを買う。もっと効率のいいツールの使い方を覚えて生産性を上げる。打ちやすいキーボードを買う。そうやって価値の生産速度が1.5倍になったとすれば今まで8時間で8の価値を作っていたところが 12になるわけです。つまり労働時間を増やすことなく、1日あたり4単位の価値が生み出されるのです。この「生産速度をあげる方法」自体もメタな価値だと言えるでしょう。
焼畑農業をやめるために---新卒準備カレンダー 2011春)

簡単なことの組み合わせでもあるし、ガバっと生産性をあげられることもありますよね。大切なのは、「生産性を上げる」ことを常に意識すること。(それだけだと息苦しくなっちゃうから、メリハリをつけて)

勉強会という錬金術の場
(中略)
の知っている勉強会では例えばこういう会話がなされます:「え、Eclipse使ってるのにCtrl+1を知らないの?!」
(中略)
つまり知識の交換です。お互いに自分の持っている知識をコピーして与え合うことで、みんなで自分の価値を高め合う場、それが勉強会です。IT産業って知識による生産性向上効果がやたら高い業種なんですよね。この錬金術を知らないなんてもったいないですよ。

なぜこんなに発言しにくい?――集団浅慮(カイゼン!思考力)

GLOBIS 知見録

集団で議論しているときに、場の空気に逆らえずに、結果として望ましくない結論になりやすい、という記事。
自分自身、ついリーダーとして会議を取り仕切りたくなる性分なので、最近は現場リーダーに議事進行を任せるようにしている。そしてできるだけ発言しない。できるだけできるだけ。リーダーがなにか発言すると、現場はどうしても萎縮しやすいですよね。その点、SonicGurdenの合宿では、カンパニー長の倉貫さんは午後から登場して、午前中は現場メンバーだけで話し合いをするらしい。自分のいないところでミーティングをしているってリーダーからするとちょっと怖いけど、そこまで思い切らなきゃやっぱり効果は出にくいんだろうな。

逆に、自分が参加者の場合、積極的に逆説的意見を述べるようにしている。たまにピントを外しすぎて場の空気を乱す場合もあるけれど、多分「悪魔の代弁者役」になれてるってことかな?

4月からは立場も変わるけど、良い点は継続、悪い点は改善しよう。

以下、一部引用です。

 では、集団浅慮を避け、グループによる思考を適切に行うにはどうしたらいいのでしょう。ジャニスは次のような防止策を提案しています。
(一部抜粋)
・集団のリーダーは、各メンバーが批判者としての役割を果たすように鼓舞する
・集団の中心的人物は、最初から自分の好みや期待を述べることを控えて公平な姿勢をとり、数多くの選択肢の探索を行うように部下を鼓舞する
・集団がとるべき選択肢を評価するとき、多数意見に挑戦するDevil's advocate(悪魔の代弁者)役を設ける
(なぜこんなに発言しにくい?――集団浅慮(カイゼン!思考力))

Amazing European Offices

Amazing European Offices - Business Insider

欧米各国の驚きオフィスの写真集。
要は従業員に何を求めているか、ってことだと思う。
知的アウトプット、知的人間同士のコラボレーション(?)による新しい何かを求めると、フリーな空間や、個人の空間(個室)を作ったり、直接業務に関係ないリラックスエリアをつくろう、ってことになるんだろう。
翻って日本のIT業界びオフィス。
会社が従業員に何を求めているか・・・。ちょっと悲しくなる。
でも、そういう現状に甘えることなく変えていきたい。そのキーワードはコミュニケーションだと思う。

一番「いいな」って思ったのがこの写真。
http://static.businessinsider.com/image/4d777f664bd7c8a22b020000-590/this-is-where-you-have-meetings.jpg

何を話しているのかはわからないけど(^^;

ClubDB2 第120回「あなたも惚れる!Netezza」に参加してきました。

Welcome to Wikis
今週のCLUB DB2はデータウェアハウスアプライアンスのNetezzaについて熱く語っていただきます(2/25 渋谷) | Unofficial DB2 BLOG

毎度毎度のClubDB2参加記録。
今回のテーマは、2010年にIBMが買収したDWHアプライアンス Netezzaでした。

DWHは(DWHも?)まったくの畑違いなのですが、何事も勉強、と思い参加してきました。

Netezzaとは

Netezzaのコンセプト

難しいといわれるDWHを簡単/工パフォーマンスに/安く使えるようにする。

とにかくキーワードとして何回も出てきたのが、「アプライアンス = 白物家電 = 簡単に」。そのために不要と判断した機能は徹底的に取り除いています。
会場が一番どよめいたのが、「CREATE INDEXはエラーになる」「INDEXは悪だ!」というセリフでした。
 

どのくらい早いのか

会場でデモを行ったのですが、以下のとおり、すさまじい速度でした。これでつるしのDBMSで、索引も何も作っていない、というのだから、簡単で早いというのは納得でした。
  

  • CREATE DB 〜〜
  • CREATE TABLE 〜〜〜〜

指定するパラメータは列名とデータタイプ、データのハッシュ方法(後述)のみ

  • データロード

1GB/1500万行のデータロードに9.77秒(200MB x 5並列)

  • データのSELECT

SELECT COUNT(*)〜〜は5秒
SELECT SUM(xx) GROUP BY 〜〜 ORDER BY 〜〜も10秒未満(だったはず)

感じたこと

とにかく感じたのが、「すっげ〜〜〜〜」ということ。つるしでもってきてこんなにスピードが出ちゃって、(後日書くつもりだけど)仕組み的にすごく考えていて、まさにNetezzaに惚れてしまいました。

あと、我々技術者は、ついついHOW(どうやって早くするか)ということに着目してしまうけど、顧客にとって重要なのは、当たり前ですがWHAT(そのデータで何ができるのか)。それを突き詰めた製品がNetezzaであると。
価格は標準モデル(?)でx億円。
これを高いと見るか、安いと見るか、BI/DWHの相場観について不勉強な私には直感的にはわからなかったのですが、国内で5年で数十台売れていることから、少なからず大規模ユーザーには価値がある、ということだと思います。
ただ、この製品をSIer(インフラ屋)としてどう担ぐのが良いか。クラウド同様、インフラ屋にとっては既存のビジネスモデルのなかでは単純に売上が下がってしまう、何かを変えないといけないな、と(答えにはたどり着いていませんが)考えさせられました。
 

その他Tips

  • デモ機の貸し出し制度あり。1〜2週間、無償で貸し出していただける。Netezzaとしても、POC(Proof Of Concept)として、ユーザーに使ってもらってから購入してもらうことをポリシーとしている。
  • 導入後1〜2日で利用開始可能。ラックタイプなので、免震床であれば、搬入して電源をつないで、LANケーブルをつないだらその場で利用開始できそうな勢い。
  • 運用上はいくつかの注意点がある。
    • 制約を作れないので、データ重複はユーザー側で回避する必要がある。→一度データをテンポラリ表にLOADして、そこからNotExit条件で、INTO xxx FROM SELECT 〜〜 で対応するのが良い。
    • (PostgresSQLベースなので)夜間バッチの最後にVacumm処理が必要(自動Vacummは止めてある)
    • 追加発注でUpgradeが可能だが、データの再配置のためにダウンタイムが発生する。

その他面白かった話

  • OracleがExaDataを発表する際に、Larry Ellisonが「これでNetezzaに勝てる」と連呼。これでNetezzaが一躍有名になった!
  • (この機械は、基本的に全てHotSwapになっていて、ユーザーでも故障箇所の交換ができるので)、米国ではオンサイトスペア保守(客先にスペアパーツを常備。交換はユーザーが行い、故障部品はメーカーに返送してもらう)を採用している。日本国内は通常の駆けつけ保守。

技術的な特徴はまた明日まとめようと。