Dive into Apache Hop

September 07, 2024

Apache Hop


Apache Hop は、Kettle 8.2.0.7からForkしたデータオーケストレーションツールです。

Apache Hopは、2021年12月にApacheのTLP(Top Level Project)になりましたので、incubatorの表記が無くなりました。 そのため、apache/incubator-hop-web は apache/hop-web に更新しました。

  • 1.2.0 から 2.0.0 に書き直しました。(June 24, 2022)
  • 2.0.1 に書き直しました。(July 29, 2022)
  • 2.1.0 に書き直しました。(November 28, 2022)
  • 2.6.0 に書き直しました。(November 11, 2023)
  • 2.7.0 に書き直しました。(December 09, 2023)
  • 2.9.0 に書き直しました。(September 07, 2024)

準備


以下の材料を用意します。

なお、今回の作業はmacOS Sonoma/Apple Siliconで行っています。

  1. PC
    • ターミナル (Terminal)
    • Docker Desktop
      • 2GBの空き容量(ちょっと大きめです)
  2. インターネット回線
    • ダウンロードするモジュールが大きいのでそれなりの回線

Apache Hop Web


参照する場合はこちらです。

https://hub.docker.com/r/apache/hop-web

docker pull

時間がかかります。

docker pull apache/hop-web:2.9.0

docker run

以前、hop-web:x.x.x で、my-hop-webを作成されていた場合はコンフリクトエラーになります。 ですので「名前を変更する」か「hop-webの古いのを削除する」処理が必要です。

docker run  \
 -p 8080:8080  \
 --name my-hop-web \
 apache/hop-web:2.9.0

ターミナルにはこのように表示されます。

(表示が多いので最後だけを書きました)

Hop web: selected theme is: light
HOP_CONFIG_FOLDER: /usr/local/tomcat/webapps/ROOT/config
HOP_AUDIT_FOLDER: /usr/local/tomcat/webapps/ROOT/audit
HOP_GUI_ZOOM_FACTOR: 1.0
06-Sep-2024 22:16:00.024 INFO [main] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [/usr/local/tomcat/webapps/ROOT] has finished in [6,054] ms
06-Sep-2024 22:16:00.027 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
06-Sep-2024 22:16:00.036 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [6094] milliseconds

docker desktop

docker_desktop_container.png

Hop Webを使ってみましょう


Hop Webを使ってみましょう。

http://localhost:8080/ui

Menu bar: File, Edit, Run, Tools, Help

Main toolbar: New, Open ... Project, Environment

Perspectives toolbar: Metadata, Files, Search, Plugin, Neo4j

Hop Web Start

Pipelineを作りましょう


New (+) をクリックします。

Select the item to create のウィンドウが表示されます。

Hop Web New

上の左にPipelineという表示がありますのでこれを選択します。

手のアイコンがある画面が表示されます。

Hop Web New Pipeline

画面をクリックしてみましょう。

Hop Web New Action

Generate rowsを選択します。画面にGenerate rowsが表示されます。

再度、画面をクリックして、Add Sequenceを選択します。

Genetate rows, Add sequence

次に、線を引きます。

Generate rowsを選択する時に Shiftを押しながらAdd Sequenceまで引っ張りましょう。

Genetate rows to Add sequence

では、試しに実行してみましょう。

左にある「▶︎(Start the execution of the pipeline)」をクリックすると保存が表示されます。

save_run_options.png save_file_has_changed.png save_file.png

保存を行った後に実行されます。

Start the execution of the pipeline

フェイクデータを作りましょう


Generate rows

generate-rows.png

Limit 10 -> 1000

generate-rows-limit.png

Fake data

fake-data.png

Add line

fake-data-add-line.png

Line

fake-data-line.png

Fake data add item

  1. name
  2. street
  3. city
  4. phone

fake-data-add-item.png

Run


Save

run.png

Result

run-result.png

View

run-view.png

Add Text file output


Text file output

text-file-output.png

Run

text-file-output-run.png

View output

text-file-output-view.png

Output

text-file-output-result.png

組み合わせるとこんなのも可能です


Hop Beam

Source: https://hop.apache.org/blog/2022/03/hop-1.2.0/


Profile picture

Written by Koji Annoura who lives and works in Fukuoka Japan. You should follow them on Twitter