TunnelとIntelliJ IDEAについて

作成日:2021-03-09

MaxComputeを支えるツール・TunnelとIntelliJ IDEAについて

本記事では、MaxComputeを支えるツール・TunnelおよびIntelliJ IDEAについてを説明します。

前書き

MaxCompute (旧プロダクト名 ODPS) は、大規模データウェアハウジングのためのフルマネージドかつマルチテナント形式のデータ処理プラットフォームです。さまざまなデータインポートソリューションと分散計算モデルにより、大規模データの効率的な照会、運用コストの削減、データセキュリティを実現します。

img

少し前になりますが、MaxComputeについての資料をSlideShareへアップロードしていますので、こちらも参考になればと思います。

https://www.slideshare.net/sbcloud/alibaba-cloud-maxcompute

今回はAlibaba Cloud MaxComputeを支えるツール・TunnelおよびIntelliJ IDEAについてを紹介します。

Tunnelについて

TunnelはMaxCompute(odps)クライアントコマンドツールです。これを使用してコマンドベースで操作することができます。

img

https://www.alibabacloud.com/help/doc-detail/27837.htm

Tunnelのインストール・セットアップ

以下、ソースコードから、ツールをダウンロードし実行します。
注意として、クライアント側はJava 8以降が必要です。

https://github.com/aliyun/aliyun-odps-console/releases

img

あとはterminalにて、bin/odpscmdを起動します。
以下はwindowsの例ですが、Macでも同様に操作できます。

img

続いて、confフォルダのodps_config.iniファイルを編集しながらクライアント情報を設定します。 img

AK(access_id/access_key)、project_name、endpointは必須入力欄なので記載します。
endpointはここから確認できます。日本リージョンなので、http://service.ap-northeast-1.maxcompute.aliyun.com/apiを選択します。
img

https://www.alibabacloud.com/help/ja/doc-detail/34951.htm

再度、bin/odpscmdを起動すると、MaxComputeのProjectに入り、操作することが出来ます。 img

Tunnelのコマンドはこちらhelpが詳しいですので、参考にいただければ幸いです。

https://www.alibabacloud.com/help/doc-detail/27833.htm

Tunnelの具体的な使い方

Tunnelを使ったCSVファイルのアップロード
・ユーザーの権限やロールの確認
・プロジェクトの権限やセキュリティ確認
・SQL操作

などが挙げられます。そこは用途に応じて確認できれば幸いです。

https://www.alibabacloud.com/help/doc-detail/193815.htm


IntelliJ IDEAについて

IntelliJ IDEAはJetBrains社製のJava系向けIDE(統合開発環境)です。Javaの開発環境としても人気があるツールです。
ここにMaxCompute(odps)のプラグインがあり、 IntelliJ IDEAからMaxComputeを操作することができます。

IntelliJ IDEAのインストール・セットアップ

IntelliJ IDEAの操作についてはネットにて色々出回ってるので、ここでは割愛します。
もちろん、IntelliJ IDEA Community Edition(無料版) でも問題ございません。

https://www.alibabacloud.com/help/doc-detail/50889.htm

IntelliJ IDEAの具体的な使い方

IntelliJ IDEAでMaxCompute Studioを使った簡単なdemoとして、CSVファイルの特定列をJavaコードでカスタマイズしてみます。
次のような出力がゴールとなります。

img

IntelliJ IDEA にて、「File」 > 「設定」 > 「プラグイン」 でMaxCompute Stdioをインストールします。

img

「File」>「New」>「Project」>「MaxCompute Studio」でMaxComputeプロジェクトを作成します。

img

「File」 > 「New」 > 「Module」 > 「MaxCompute Java」 でMaxComputeモジュールを作成します。

img

src/main/java:JavaはJavaプログラム開発用のソースコードです。
examples はユニットテスト (UT) の例を含むサンプルコード。UTの開発やコンパイルの例を見ることができます。
warehouse はローカルでの実行に必要なスキーマとデータ。

img

AlibabaCloudは、gitプロジェクトのアドレスで事前定義されたエクストラクタのソースコードを以下のように提供しています。
https://github.com/aliyun/aliyun-odps-java-sdk/tree/master/odps-sdk-impl/odps-udf-example/src/main/java/com/aliyun/odps/udf/example/text
新しく作成したモジュールにすべてのJavaファイルを配置し、要件に基づいてTextExtractor.javaのロジックを更新します。

https://github.com/aliyun/aliyun-odps-java-sdk/tree/master/odps-sdk-impl/odps-udf-example/src/main/java/com/aliyun/odps/udf/example/text

img

TextExtractor.javaファイルのtextLineToRecord関数は、データファイルのテキスト行からデータを取り出す方法を定義します。
要件に基づいて関連する関数を更新します。このデモの場合、関数はデータのロード中にcustom_idをフォーマットします。

img

コードの更新後、mvnコマンドを使用してターゲットパッケージを構築します。
モジュールフォルダに移動し、mvn packageを実行します。

img

今度はDataWorks DataStdioの Resource画面に遷移します。
上記の手順でビルドされたパッケージ [CustomizedExtractor-1.0-SNAPSHOT.jar] をアップロードします。

img

Resource画面で、 [CustomizedExtractor-1.0-SNAPSHOT.jar] を適用するようにします。

img

準備ができたら、Create Tableモーダルにてテーブルを作成します。
img

ファイル形式をカスタムファイル形式として選択し、カスタマイズされたハンドラに基づいてリソースとクラスを設定します。

img

Tableをコミットします。

img

結果、OSSにあったCSVファイルのデータを変換し表示するようになりました。

img


最後に

MaxComputeを支えるツール・TunnelおよびIntelliJ IDEAについてを説明しました。TunnelおよびIntelliJ IDEAを使うことで、様々な開発環境として運用することができます。
DataWorksらGUI操作だけでは物足りない場合、このツールを使うことで解決することもできますので、ご参考にいただければ幸いです。

Hironobu Ohara
この記事を書いた人
Hironobu Ohara
Github Icon
2019年にAlibaba Cloudを担当。Databaseや収集、分散処理、ETL、検索、分析、機械学習基盤の構築、運用等を経て、現在分散系をメインとしたビッグデータとデータベースを得意・専門とするデータエンジニア。 AlibabaCloud MVP。
Close

Alibaba Cloudを始めてみましょう

ソフトバンクは、Alibaba Cloudのアカウント開設から、サービス展開までをお手伝いします。
Hatena