月別: May 2016

The Lambda Architecture and Big Data Quality

  In my previous post about data quality in the Big Data era, we’ve seen some of the challenges raised by the recently born data operating system that came with Hadoop 2.0 and YARN . In Part 2 of this series, I’d like to explore how this new framework changes the traditional landscape of the data quality dimensions.  […]


Talend and “The Data Vault”

  In my previous blog “Beyond ‘The Data Vault’” I examined various data storage options and a practical architecture/design for an Enterprise Data Vault Warehouse.  As you may have realized by now I am quite smitten with this innovative data modeling methodology and recommend to anyone who is developing a ‘Data Lake’ or Data Warehouse […]


Stop Chasing Perfection in Analytics. Here’s Why

I wrote a blog around another favorite topic of mine, DevOps, a while back and in it I discussed the notion of perfection being the enemy of ‘good enough’. After some conversations these last few weeks, I have reaffirmed my stance and broadened it to include everything, especially analytics.  The things I hear time and […]


Apache Beamの紹介

  この記事は、Apache Beamプロジェクトの包括的な目標と目的について説明するシリーズ第1回です。 今後のブログでは、Apache Beamを使用してデータ処理ジョブを実装する方法について説明していきます。 すでにビッグデータプラットフォームを使用中であれば、そのプラットフォームの継続的な進化が重要です。 現在Apache Hadoop MapReduceジョブを使用してデータを処理している場合、Apache Sparkに移行することで、新しい機能を活用してパフォーマンスを向上できます。 既存のバッチ処理機能に加えて、ストリーミングデータ処理を実装することもお勧めします。 または、簡単な統合パターンを探したり、他のテクノロジーにアップグレードしたりしてもよいでしょう。 たとえば、現在Apache Sparkを使用している場合は、何らかのユースケース向けとして、またはメリットを評価するための概念実証(PoC)の一環として、Apache Flinkを使用することを検討できます。 オンサイトでさまざまなランタイムを使用している場合、異なるテクノロジーの間での切り替えは非常に難しく、またコストがかかる場合があります。 現在ASFでインキュベーションプロジェクトとなっている新しい分散処理ツールのApache Beamは抽象化レイヤーを提供し、これによって開発者はBeamプログラミングモデルを使用してBeamコードに注力できます。※2017年1月現在、トップレベルプロジェクトに昇格しました。 Apache Beamによって実装が使用中のランタイムテクノロジーに依存しなくなるので、テクノロジーをすばやく簡単に切り替えることが可能です。 Apache Beamは、その範囲についても非依存型プログラミングモデルを提供します。つまり、このプログラミングモデルは統一的であり、これによって開発者はバッチとストリーミングの両方のデータ処理を実装できます。 この特長は、Apache Beamという名称の由来でもあります (BatchのBとstrEAMのEAM)。 Beamプログラミングモデルを使用してデータプロセスを実装するには、Beamが提供するSDKまたはDSLを使用します。 使用するSDKは1つ(Java SDK)だけです。 ただし、Python SDKのリリースが見込まれており、Beamは近い将来にScala SDKと追加のDSL(XMLを使用する宣言的DSL等式)を提供予定です。 Apache Beamの場合、まずBeam SDKを選択してから、Beamパイプラインとしてデータ処理を実装します。 プロセスを展開して実行する実際のランタイムを考慮する必要はありません。 Apache Beamはランナーを提供し、 ランナーがパイプラインをターゲットランタイムに変換します。 Apache Beamは、Apache Spark、Apache Flink、及びGoogle Cloud Dataflowプラットフォーム用のターンキーランナーを提供します。 また、Apache Hadoop MapReduce、Apache Karaf等式の新しいランナーも近い将来に提供予定です。 このように、Apache Beamはビッグデータ環境を進化させるための、次のような独自の機能を提供します。 移植性 – データ処理ジョブはまったく同じであり、使用する実際のランタイムから切り離されています。 オンプレミス、クラウド、またはローカルで、異なるランナー(抽象化)とバックエンドにより同じコードを使用します。 統一的な処理 […]