2017-08-08 7 views
2

私はscala/flink/sparkを初めて使っていて、いくつか質問があります。 現在、flinkを使用しているscalaが使用されています。正しいフレームワークを使用していますか?

データフローの一般的な考え方は次のようになります。
CSVファイル - > FLINK - >弾> FLINK(プロセスデータ) - >のMongoDB - >タブロー

セミコロンあるログファイルの膨大な数があります分離された。 私のデータベースとしてelasticsearchにそれらのファイルを書きたいと思います。 (これは既に動作しています)
さまざまな種類の解析が必要になりました(一貫性レポート/生産性レポート)。 これらのレポートでは、さまざまな種類の列が必要です。

アイデアは、flinkでelasticsearchから基本データをインポートし、データを編集してmongodbに保存して、データの視覚化をtableauで行うことができます。

編集は平日のような追加の列を追加することからなる、と私はFLINKは、データソースなどの弾性を使用する可能性を与えるものではありませんことを発見した研究のビットの後

// +-------+-----+-----+ 
// | status|date |time | 
// +-------+-----+-----+ 
// | start | 1.1 |7:00 | 
// | run_a | 1.1 |7:20 | 
// | run_b | 1.1 |7:50 | 
// +-------+-----+-----+ 


// +-------+-------+-------+----+ 
// | status|s_time |e_time |day | 
// +-------+-------+-------+----| 
// | start | 7:00 |7:20 | MON| 
// | run_a | 7:20 |7:50 | MON| 
// | run_b | 7:50 |nextVal| MON| 
// +-------+-------+-------+----+ 

/異なるステータスの終了時刻を開始します。 githubプロジェクトhttps://github.com/mnubo/flink-elasticsearch-source-connectorがありますが、1年以上更新されていません。これは、私が同じクエリでkibanaに入るヒット数が少ないので、正しく動作していないようです。 選択肢はありますか?これはデフォルトではサポートされないのはなぜですか?

これらのテーブル変換は、フリンクで実行できますか?それはフリンクでそれらを行うのが理にかなっていますか? (私はそれらを達成するのに本当に苦労しているので)

私はこのプロジェクトのために適切なフレームワークを使用していますか?それはより多くの機能/コミュニティプロジェクトを提供するので私は火花に切り替える必要がありますか?まず

+1

スパークは良い選択です。火花はより安定しており、図書館では豊富にあります。 –

答えて

1

、あなたのターゲットは、ログ(強力な検索、可視化、保存する)を有する唯一の治療法である場合は、車輪の再発明とELK stack を使用していないことができますが、次の能力を得るだろう -

  • データ収集および検索エンジンのようなKibana
  • ElasticsearchLogstash
  • 解析と可視化
  • クラウド(AWSまたは01と
  • のシームレスな統合により、ログ解析エンジン)

しかし、このソフトウェアはあるshareware - あなたは、無料版ではすべての機能にアクセスすることができません、私は私の個人的な経験から言うことができる - 試用版の製造での使用に適している - それは本当に人生が容易になります。

あなたは格納するために独自にカスタマイズパイプラインを作りたい場合は、変換および治療ログや他のファイルApache Sparkこの目的のために優れたソリューションです - あなたが望むすべてを操作するためのSparkETLようなソリューションを使用することができます - 建物のデータパイプラインがされ(read from elasticsearch - >process it - >save to mongo; take from mongo - >send to visualisationなど) - あなたはachieve speedup(Sparkの以前のバージョンと比較して)Spark 2.0を利用することができます。

また、そこにすでにSpark - Mongo - ESの統合とsolution準備ができているか、ESMongoにコネクタを使用して経由で自分の作ることができます。 Flinkについては、Sparkの代わりに使用できますが、Sparkはより成熟した技術であり、より広いコミュニティを持っています。代わりに、StreamsetsまたはNiFiのように、システム間のデータフロー(マウスで必要なコンポーネントをドラッグする)を迅速に開発/プロトタイプ作成するために、ETLソリューションを使用することができます。

+0

徹底的で詳細な回答をいただきありがとうございます。私はそれを多く感謝します。私は火花を見て、私の仕事を実装しようとします。 私の理解から、elasticsearch-hadoopをdependencieとして追加する必要はありません。もし私がhadoopをインストールしていないのであれば、elasticsearch-spark-20をインポートしてはいけませんか? @rukavitsya – user2811630

+0

@ user2811630もちろん、HadoopなしでSparkを使用することもできます(たとえば、SparkはHadoopなしでうまく動作します)、ESに使用するコネクタはあなた次第であり、elasticsearch-sparkを使用すると十分です –

関連する問題