フォーム読み込み中
Alibaba Cloud DataWorks はビッグデータ収集、処理、分析のワンストップソリューションで、MaxCompute、Hologres、EMR、AnalyticDB、CDP など主流のコンピューティングエンジンに対応しています。DataWorks を利用する第一歩としては、他所で蓄積したソースデータをビッグデータストレージにインポートすることですので、今回は DataWorks を利用して OSS に保存しているソースデータを MaxCompute にインポートしてみたいと思います。
方法としては DataWorks の Data Integration 機能利用と自作コードによるインポート 2 つが考えられますので、前編と後編に分けて、前編に Data Integration 機能の利用方法、後編に自作コードによるインポート方法で、それぞれ同一 OSS からのデータインポート手順を紹介します。
DataWorks や MaxCompute を利用する事例は「【デモあり】Alibaba Cloudの最新技術で構築する リアルタイム分析をサポートしたDWH」という記事にも紹介されていますので、合わせてご参考ください。
DataWorks の Data Integration 機能を利用して、OSS 上のソースデータを MaxCompute Table にインポートします。
1-1.検証用 DataWorks Workspace を作成します。 DataWorks のコンソールを開き、「Create Workspace」をクリックします。
1-2.任意の「Workspace Name」を入力し、「Commit」をクリックします。
1-3.お勧めのビッグデータエンジンが表示されます。今回のエンジンは MaxCompute にしますので、「MaxCompute」右側の「Associate Now」をクリックします。
1-4.下記内容を入力し、「Complete Association」をクリックします。
Resource Display Name:任意入力
Project Source:Create project
Payment Model:Pay by Volume
Quota Group:Pay-as-you-go Quota
Data Type:2.0 Data Type
Encrypted:No encryption
Project Name:任意入力
Scheduled Access Identity:Alibaba Cloud primary account
1-5.Workspace と MaxCompute インスタンス紐付け完了の画面が表示され、「Back」をクリックし、Workspace 一覧に戻ります。
1-6.MaxCompute 側でインポート先のテーブルを作成します。Workspace 一覧画面で、検証用 Workspace 右側の「Data Studio」をクリックします。
1-7.Data Studio コンソールで「MaxCompute ー Table ー Create Table」を順にクリックします。
1-8.任意の「Table Name」を入力し、「Create」をクリックします。
1-9.「Create Field」をクリックし、下記の 4 つフィールドを作成します。
m_name, STRING m_age, STRING m_cardno, STRING m_birthday, STRING |
1-10.「Commit to Production Environment ー OK」をクリックし、テーブルを作成します。
1-11.左メニューの「Tenant Tables」から「手順1-10 で作成したテーブル」を特定し、「Preview」タブにて中身が空であることを確認します。
2-1.検証用 OSS バケットを作成します。下記内容を入力し、「OK」をクリックします。
Bucket Name:任意入力
Region:Tokyo
2-2.下記内容の CSV ファイルを作成し、手順2-1 で作成したバケットにアップロードします。
ファイル名:test.csv
Name,Age,CardNo,Birthday Nancy,23,1,2000/1/1 Bob,22,2,2001/1/1 Mary,21,3,2002/1/1 Jack,20,4,2003/1/1 Smith,19,5,2004/1/1 |
2-3.Create a RAM userに沿って、RAM ユーザを作成します。
2-4.Grant permissions to the RAM userに沿って、手順2-3で作成した RAM ユーザに「AliyunOSSReadOnlyAccess」権限を付与します。
2-5.手順2-3 で作成した RAM ユーザの詳細情報にて、「Create Accesskey」をクリックし、AccessKey 情報を生成します。
注意:AccessKey Secret は 1 回のみ表示されます。
3-1.Workspace 一覧画面にて、検証用 Workspace 右側の「Data Integration」をクリックします。
3-2.DataWorks に OSS へのアクセス権を付与します。「Create Data Source」をクリックします。
3-3. データソースタイプに「OSS」を選択します。
3-4.下記内容を入力し、「Complete」をクリックします。
Data Source Name:任意入力
Endpoint:http://oss-ap-northeast-1-internal.aliyuncs.com
Bucket:手順2-1 で作成したバケット
AccessKey ID:手順2-5 で作成した AccessKey ID
AccessKey Secret:手順2-5 で作成した AccessKey Secret
Access Mode:Access Key mode
3-5.Workspace 一覧画面にて、検証用 Workspace 右側の「DataStudio」をクリックします。
3-6.「Data Integration ー Create Node ー Batch Synchronization」を順にクリックし、Batch Synchronization ノードを作成します。
3-7.任意の「Name」を入力し、「Confirm」をクリックします。
3-8.Batch Synchronization ノードにて、データソースの設定を行います。下記のように入力し、「Preview」をクリックします。
Connection:手順3-4 で作成した Data Source
File Type:CSV
Object Name (Path Included):test.csv
Column Delimiter:,
Encoding:UTF-8
Null String:Do Not Process
Compression Format:No
Skip Header:Yes
3-9.正常な場合、CSV ファイルの一部が表示されます。
3-10.データターゲットの設定を行います。下記内容を入力後に、自動的にマッピングされます。
Connection:MaxCompute
Table:手順1-10 で作成したテーブル
Write Mode:Insert Overwrite
Write by Converting Empty Strings into Null:No
3-11.共有リソースグループを選択します。「Configure Resource Group for Data Integration ー More」をクリックします。
3-12.「Shared Resource Group for Data Integration (Debugging)」を選択します。
3-13.「Save ー Run ー Run」を順にクリックし、ノードの実行を開始します。
3-14.しばらく待つと実行が完了します。
3-15.左メニューの「Tenant Tables」から「手順1-10 で作成したテーブル」を特定し、「Preview」タブにてCSVデータが反映されたことを確認します。
DataWorks の Data Integration 機能を利用して、OSS 上のソースデータを MaxCompute にインポートしてみました。OSS に蓄積したログ(アクセスログ、監査ログなど)を MaxCompute で分析したいニーズをよく聞きますので、この手順は役に立つと思います。操作手順は多めですが、GUI 利用可能ですのでスムーズに進めることができました。次回の後編では GUI を利用せず、自作コードを利用したデータインポート方法も紹介したいと思います。
条件に該当するページがございません