Cloudera DataFlow Designerのご紹介:セフルサービス・ノーコードのデータフロー設計

Cloudera DataFlow Designerのご紹介:セフルサービス・ノーコードのデータフロー設計

クラウドネイティブなDataFlowサービスの一部として提供されるData Flow Designer Technical Previewは、すべてのデータ配信ニーズに対応するデータフローを、開発者がコード不要のビジュアルなインターフェイスを使用して構築できるようにします。

by Michael Kohs
この記事は、2022/12/09 に公開された「Introducing Cloudera DataFlow Designer: Self-service, No-Code Dataflow Design」の翻訳です。以下全ての情報は原文の公開時点のものになります。

Cloudera は、2015年から Apache NiFi の企業向けサポートを提供し、何百もの組織がオンプレミスやパブリッククラウド上でデータ移動パイプラインをコントロールするのを支援してきました。それらの組織と連携してきた経験から、新たなデータフローの開発やミッションクリティカルな本番環境でのサポートに関する開発者や管理者のニーズについて、多くのことを学ぶことができました。

2021年に当社はCloudera DataFlow for the Public Cloud(CDF-PC)をリリースし、本番環境で NiFi フローを実行する際に管理者が直面する運用上の課題に対処しました。これにより、現在 NiFi を利用しているユーザーは、DataFlow Deployment を作成することで当社のクラウドサービス内に自らの NiFi フローを持ち込み、実行できるようになりました。DataFlow Deployment には、オートスケーリング、ワンボタンでの NiFi バージョンアップ、KPI を通じた集中監視、マルチクラウド対応、強力なコマンドラインインターフェース (CLI) による自動化などのメリットがあります。また、最近、DataFlow Functionsの一般提供も発表し、AWS Lambda、Azure Functions、Google Cloud Functionsなどのサーバーレスコンピューティング環境でNiFiフローを実行できるようにしました。

DataFlow DeploymentとDataFlow Functionsが利用できるようになったことで、フロー管理者は、パブリッククラウド内の本番環境でデータフローを稼動させるために、最適なオプションを選択できるようになりました。次は、開発者のニーズと、開発者がクラウドでデータフローを構築する際に直面する課題への対処へと焦点を移す番です。

開発者のセルフサービスを可能にする

開発者は、新しいデータソースに接続し、複数のデータ変換ステップをつなげ、そのフローを通過するデータを調査する必要があります。NiFiのGUI画面でノーコードなドラッグ&ドロップUI、450以上のすぐに使えるプロセッサおよびコネクタ、並びにフロー内で個々のプロセッサを起動し、データがそのフローを通過する際の影響を即座に確認することで、インタラクティブにデータを調べることができる能力は、開発者に高く評価されています。

当社はこれまで、組織が使用するデータソースとデータ保存先がますます増えていること、および、より多様な開発者によるデータ移動フローの構築が期待されていることを観察してきました。この観察結果から、開発者向けツールを初心者にも使いやすくするのと同時に、パワーユーザーが必要とする高度なオプションも提供する、ユニバーサルな開発者アクセシビリティが必要なことがさらに浮き彫りになっています。このアクセシビリティの重要な側面は、開発者がセルフサービスでデータフロー開発を行えるようにすることです。そのためには、開発者がローカルにインストールされたApache NiFiを自ら管理するか、すべての開発者が使用できる集中開発環境をプラットフォームチームが管理する必要があるため、それが課題となっています。

もし、プラットフォーム管理者に負担をかけることなく、開発者自身も Apache NiFi を管理する必要がない方法があるとしたらどうでしょうか?誰でもすぐに使い始めることができる、管理しやすいセルフサービスの開発環境を開発者に提供できるとしたら?

それは、私たちが自らに問いかけてきた質問です。そして、今回、Clouderaのお客様のためにセルフサービスのデータフロー開発を実現する、DataFlow Designerのテクニカルプレビュー版を発表できることを、たいへん嬉しく思います。

新たなビジュアルエディタ

開発者の生産性を高め、セルフサービスを可能にするために再構築された、新たなビジュアルエディタです。

新たなセルフサービス開発者体験の中核をなすのが、新しいDataFlow Designerです。NiFiの最も人気のある機能が強化され、また、ユーザー体験に重要な改善が加えられており、そのすべてが新しくなった見た目と操作性で提示されています。

見た目と操作性が一新されたDesignerのキャンバス

図1:見た目と操作性が一新されたDesignerのキャンバス

従来の Apache NiFiのキャンバスに対する主な改善点の1つが、新しくなった拡張可能な設定サイドパネルです。開発者はこれを使い、キャンバス上で起こっていることから目を離すことなく、プロセッサの設定をすばやく編集することができます。このサイドパネルはコンテキストセンシティブになっており、フローコンポーネント内を移動するのに合わせて、関連する設定情報が即座に表示されます。

キャンバスから目を離すことなく、サイドパネルで設定の変更を適用

図2:キャンバスから目を離すことなく、サイドパネルで設定の変更を適用

新しいフローデザイナーによってより容易になるもう1つの例は、デザイナーUIを通してファイルを直接アップロードできる機能です。従来の NiFi 開発環境で開発者がファイルをアップロードするには、自ら NiFi インスタンスに SSH アクセスするか、管理者に依頼する必要がありました。JDBC ドライバや Python スクリプトなどのファイルをデザイナー内で直接アップロードできるようになったことにより、新たなフローをセフルサービスで構築できる部分が大幅に増えました。

サーバーへ SSH アクセスする必要なく、デザイナーを通してファイルを直接、簡単にアップロード

図3:サーバーへ SSH アクセスする必要なく、デザイナーを通してファイルを直接、簡単にアップロード

パラメータは、データフローを移植可能なものにするための重要な概念です。結局のところ、テストシステムに対して開発しているフローを本番環境へ移行する際には、ほとんどの場合、そのフローを本番システムに対して実行しなければならなくなります。つまり、本番環境に応じて、ソース(移動元)と保存先(移動先)の接続設定を調整する必要があります。そのための最良の方法は、それらの接続設定値をパラメータ化し、本番環境でフローをデプロイする際に異なる値を代入できるようにすることです。パラメータにはデフォルト値を設定することも、機密としてマークし、設定値を誰にも見られないようにすることもできます。

フローパラメータの中央管理

図4:フローパラメータの中央管理

Designerは、コンポーネント設定時のパラメータ直接入力と、設定値入力時のCTRL+SPACEキーによるオートコンプリートに対応しています。そのため、パラメータの管理は常に必要な場所で簡単に行うことができ、ビューを切り替えてパラメータを検索する必要はありません。

設定パネルでのパラメータ参照とオートコンプリート

図5:設定パネルでのパラメータ参照とオートコンプリート

必要に応じたインタラクティブ性とコストの削減

NiFiのユニークな特徴の1つは、データフロー全体を停止させることなく、フロー内の各コンポーネントと個別にやり取りできることです。この特徴のおかげで、開発者は、フローにテストデータを流しながらその場で処理ロジックを変更し、その変更が意図したとおりに動作するか検証することができます。例えば、データフローがKafkaトピックからイベントを読み込んでいる時に、そのイベントをフィルタリングして処理したいのにイベントの正確なスキーマがわからない場合、フィルタ条件を書く前にイベントの内容を覗いてみたいと思うかもしれません。NiFiを使えば、ソースプロセッサを設定して他のプロセッサとは別個に実行し、データを取得することができます。いったんデータを取得すれば、NiFiがそれをキューに格納し、イベントの内容やメタデータ属性を調べられるようになります。イベントの様子がわかれば、フローの次のステップに進み、フィルタ条件とさらなる処理ロジックを定義することができます。これにより、開発者は、各処理ステップを反復して検証したり、馴染みのない新しいデータソースを実装したりすることが容易になります。

私たちは、迅速でインタラクティブな開発プロセスを維持しながら、必要なインフラのコストを、特に開発者がフローを扱っていない時間帯に低く抑えたいと考えました。このニーズに対応するため、DataFlow Designerにテストセッションという新しい概念を導入しました。

開発者は新しいデータフローを作成すると、ただちにDesignerへと転送され、リソースが作成されるのを待つ必要なくフローの構築を始めることができます。すぐにプロセッサをキャンバスへドラッグ&ドロップし、パラメータやサービスを作成して、設定の変更を適用することが可能です。 

図6: 開発者は、NiFiリソースの割り当てを必要とせず、すぐにデータフローの構築を開始できます。グレイアウトされたプロセッサは、テストセッションがアクティブでないことを示しています。

プロセッサを実行してフローロジックをテストしたいと思ったら、すぐにテストセッションを開始することができます。NiFiリソースのプロビジョニングは数分以内に行われます。

 テストセッションは、NiFi開発者が好むインタラクティブな体験を提供します。

図7: テストセッションは、NiFi開発者が好むインタラクティブな体験を提供します。

テストセッションがアクティブになれば、開発者は個々のプロセッサやサービスを起動または停止し、フロー内のデータを調べてフロー設計を検証することができます。テストセッションが不要になったら開発者がセッションを終了させ、リソースを解放してコストを削減することができます。テストセッションは、開発者にとって、オンデマンドのNiFiサンドボックスのような役割を果たします。

図8:テストセッションが開始されると、開発者はプロセッサとやり取りし、データフローによって処理されるデータを監視することができます

図8:テストセッションが開始されると、開発者はプロセッサとやり取りし、データフローによって処理されるデータを監視することができます

合理化された開発から本番までのデプロイプロセス

データフローの開発とテストは、データフローのライフサイクルの最初のステップであり、本番環境でのデータフローのデプロイおよびモニタリングとうまく統合する必要があります。CDF-PCでデザイナーを利用できるようにしたことで、フロー開発者とフロー管理者のどちらも、合理化されたプロセスを通してサポートできるようになりました。

図9:開発者は必要に応じて新しいドラフトフローを作成できます

図9:開発者は必要に応じて新しいドラフトフローを作成できます

開発者は、ドラフトフローを作成・構築し、デザイナーを使ってテストしてから、中央のDataFlowカタログに公開します。DataFlowカタログに登録されれば、フロー管理者は選択したクラウドプロバイダー(AWSやAzure)にそのフローをデプロイすることができ、オートースケーリングやワンボタンでのNiFiバージョンアップ、KPIを通じた集中監視、強力なCLIによる自動化など、前述の機能の恩恵を受けられるようになります。

図10a:テストセッションを利用したドラフトフローの検証が終われば、開発者は本番デプロイのため、DataFlowカタログへフローを公開することができます。

図10a:テストセッションを利用したドラフトフローの検証が終われば、開発者は本番デプロイのため、DataFlowカタログへフローを公開することができます。

図10b:公開ステップの一部として、開発者はコメントを残すことができます。また、デプロイを開始できるカタログへとリダイレクトされます。

図10b:公開ステップの一部として、開発者はコメントを残すことができます。また、デプロイを開始できるカタログへとリダイレクトされます。

今後の展望と次の段階

DataFlow Designerテクニカルプレビュー版は、組織があらゆるデータ配信ニーズのために使用することができ、全ての開発者が技術的バックグラウンドに関係なくアクセスできる、クラウドネイティブなサービスという私たちのビジョンを実現するための、重要なステップです。Cloudera DataFlow for the Public Cloud (CDF-PC)は、Designerを使用した新たなフローの開発から、ユースケースに応じてDataFlow DeploymentまたはDataFlow Functionsを使用する本番環境でのテストおよび実行まで、データフローのライフサイクル全体をカバーします。

図11:Cloudera DataFlow for the Public Cloud (CDF-PC)はユニバーサルデータ配信を可能にします

図11:Cloudera DataFlow for the Public Cloud (CDF-PC)はユニバーサルデータ配信を可能にします

DataFlow Designerは現在、テクニカルプレビュー版として、CDP Public Cloudのお客様に利用していただけます。アクセスをご希望の場合は、Clouderaのアカウントチームまたはサポートまでお問い合わせください。

Cloudera Japan Marketing
この著者の他の記事

コメントする

あなたのメールアドレスは公開されません。また、コメントにリンクを貼ることはできません。