MaxComputeを支えるツール・TunnelとIntelliJ IDEAについて
本記事では、MaxComputeを支えるツール・TunnelおよびIntelliJ IDEAについてを説明します。
前書き
MaxCompute (旧プロダクト名 ODPS) は、大規模データウェアハウジングのためのフルマネージドかつマルチテナント形式のデータ処理プラットフォームです。さまざまなデータインポートソリューションと分散計算モデルにより、大規模データの効率的な照会、運用コストの削減、データセキュリティを実現します。
少し前になりますが、MaxComputeについての資料をSlideShareへアップロードしていますので、こちらも参考になればと思います。
今回はAlibaba Cloud MaxComputeを支えるツール・TunnelおよびIntelliJ IDEAについてを紹介します。
Tunnelについて
TunnelはMaxCompute(odps)クライアントコマンドツールです。これを使用してコマンドベースで操作することができます。
Tunnelのインストール・セットアップ
以下、ソースコードから、ツールをダウンロードし実行します。
注意として、クライアント側はJava 8以降が必要です。
あとはterminalにて、bin/odpscmdを起動します。
以下はwindowsの例ですが、Macでも同様に操作できます。
続いて、confフォルダのodps_config.iniファイルを編集しながらクライアント情報を設定します。
AK(access_id/access_key)、project_name、endpointは必須入力欄なので記載します。
endpointはここから確認できます。日本リージョンなので、http://service.ap-northeast-1.maxcompute.aliyun.com/api
を選択します。
再度、bin/odpscmdを起動すると、MaxComputeのProjectに入り、操作することが出来ます。
Tunnelのコマンドはこちらhelpが詳しいですので、参考にいただければ幸いです。
Tunnelの具体的な使い方
・Tunnelを使ったCSVファイルのアップロード
・ユーザーの権限やロールの確認
・プロジェクトの権限やセキュリティ確認
・SQL操作
などが挙げられます。そこは用途に応じて確認できれば幸いです。
IntelliJ IDEAについて
IntelliJ IDEAはJetBrains社製のJava系向けIDE(統合開発環境)です。Javaの開発環境としても人気があるツールです。
ここにMaxCompute(odps)のプラグインがあり、 IntelliJ IDEAからMaxComputeを操作することができます。
IntelliJ IDEAのインストール・セットアップ
IntelliJ IDEAの操作についてはネットにて色々出回ってるので、ここでは割愛します。
もちろん、IntelliJ IDEA Community Edition(無料版) でも問題ございません。
IntelliJ IDEAの具体的な使い方
IntelliJ IDEAでMaxCompute Studioを使った簡単なdemoとして、CSVファイルの特定列をJavaコードでカスタマイズしてみます。
次のような出力がゴールとなります。
IntelliJ IDEA にて、「File」 > 「設定」 > 「プラグイン」 でMaxCompute Stdioをインストールします。
「File」>「New」>「Project」>「MaxCompute Studio」でMaxComputeプロジェクトを作成します。
「File」 > 「New」 > 「Module」 > 「MaxCompute Java」 でMaxComputeモジュールを作成します。
src/main/java:Java
はJavaプログラム開発用のソースコードです。
examples
はユニットテスト (UT) の例を含むサンプルコード。UTの開発やコンパイルの例を見ることができます。
warehouse
はローカルでの実行に必要なスキーマとデータ。
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のロジックを更新します。
TextExtractor.javaファイルのtextLineToRecord関数は、データファイルのテキスト行からデータを取り出す方法を定義します。
要件に基づいて関連する関数を更新します。このデモの場合、関数はデータのロード中にcustom_idをフォーマットします。
コードの更新後、mvnコマンドを使用してターゲットパッケージを構築します。
モジュールフォルダに移動し、mvn packageを実行します。
今度はDataWorks DataStdioの Resource画面に遷移します。
上記の手順でビルドされたパッケージ [CustomizedExtractor-1.0-SNAPSHOT.jar] をアップロードします。
Resource画面で、 [CustomizedExtractor-1.0-SNAPSHOT.jar] を適用するようにします。
準備ができたら、Create Tableモーダルにてテーブルを作成します。
ファイル形式をカスタムファイル形式として選択し、カスタマイズされたハンドラに基づいてリソースとクラスを設定します。
Tableをコミットします。
結果、OSSにあったCSVファイルのデータを変換し表示するようになりました。
最後に
MaxComputeを支えるツール・TunnelおよびIntelliJ IDEAについてを説明しました。TunnelおよびIntelliJ IDEAを使うことで、様々な開発環境として運用することができます。
DataWorksらGUI操作だけでは物足りない場合、このツールを使うことで解決することもできますので、ご参考にいただければ幸いです。