<< トップページへ


 Talend によるデータハンドリングの基本



はじめに

「大規模データ」というと、どのくらいの容量のデータを想像するでしょうか。例えば「50万行、100列」のデータサイズはおおよそ200〜300メガバイトくらいのものです(もちろん中身として、どんな値を有しているかによります)。いまや64bitマシンは一般的な家庭用(?)パソコンとして出回っていますが、5年くらい前(2010年頃)ではハイスペックなマシンというイメージでした。当時はほとんど32bitマシンで、この200メガバイトほどのデータをRなどで処理しようとするとメモリオーバーで処理などできませんでした。つまり200メガバイトもあるようなデータファイルは「それなりに大規模である」といってもよいかもしれない、ということです。

さてそうなると、1ギガバイトあるデータファイルというと「もう立派な大規模データ」といっても過言ではないのです。実際、映画などのDVDは2〜3ギガ程度ありますから、「数値や文字が入力されているだけ」のファイルで1ギガといったら相当なものでしょう。なお少しスペックの高い(64bit、メモリ8ギガ、Core-i7)であれば、2ギガ程度のデータファイルをRでも扱うことができますが、複雑なことを処理しようとすると少し厳しいものがあります(メモリ容量に対して繊細になる必要があります)。

このような状況で5ギガ、10ギガというデータを扱うにはどうしたらよいでしょうか。

もちろんデータマイニングの流行りのせいか、Rでも「bigmemory」というパッケージが用意されていたり(とはいっても随分、以前からありますが)、メモリを節約して処理できるようなノウハウ(関数)が出回るようになっています。また、現在でもmySQLなどは健在ですが、いずれにせよ「ハッキリいって、敷居が高い」というのが事実だと思います。Rにせよ、mYSQLにせよ、初心者が覚えるには時間がかかりますし、実業務の中で「安全に・正確に」使いこなしていくには不安要素が多いものです。

しかし、最近は(これも別に少し以前からあったものではありますが)「ETLツール」とよばれるものが出回りつつあります。今回、このページで紹介するのも、タイトルに書いてあるように「talend」(『タレンド』と読みます)というETLツールです。これはRやmySQLよりもUI(ユーザーインターフェース)に優れており、操作を視覚的に行うことができます(GUI)。また、操作方法も簡単で、初心者にとっても扱いやすいツールといえます。

とはいえ、何も情報のないところから使い始めるとなると、それなりに骨が折れるものです・・・。すこし補足しておくと「一度、使い方を知ってしまえば」簡単だということになります。逆にいうと、最初に使い方を把握するまでは、何かしらの説明が必要だということです。ただ、talendについて書かれた本はAmazonでも見つけることができませんし(英語の本のみ)、Googleで検索してもパッとしたものが見当たりません(かつてはRも同じような状況でした)。そこで本ページを見てもられば、高度なことではなくとも「自分で調べて色々と試して勉強していける」レベルにまでは、できるようになるかと思います。


コンテンツ

ここでは「大規模なデータ」を一時的に加工することで、Rなどで扱えるファイルサイズにすることを主な目的として学んでいきましょう(あまり高度なデータ加工処理はtalendではやらないというスタンスで説明しています)。

  1. データのインポート
  2. 特定の条件にマッチするレコードを抽出する
  3. グループ集計を行う
  4. Excelのピボットテーブルのようにクロス集計する
  5. 複数のテーブルを紐付ける
  6. 特定の列だけを抽出する