ACADEMYTreasure Data User Engagement

Treasure Academy – Basic – 演習手順書

ホーム » Treasure Academy – Basic – 演習手順書

こちらのコンテンツはアカデミー受講者さまのみに公開しております。自社ドメインのメールアドレスでログインください。当社サービスに関するお問い合わせはこちらからお願いいたします。

ログイン

スライドページに戻る

演習1: TD Consoleを使用したTreasure CDPへのアクセス


この演習の目的

チェックリスト

この演習では、TD Consoleにブラウザからアクセスします。TD ConsoleはTreasure CDPを利用する上で起点となるツールなので、アクセス手段を知っておくことは重要です。 オプション演習では、主に開発者が使用するTD ToolbeltをインストールしてCLIからアクセスします。なお、演習環境は米国リージョンを使用します。

結果

次のことができるようになります。 ブラウザから TD Consoleにログインできる。 次のオプション演習で、CLIを使用してTreasure Dataにアクセスできる。

始める前に

演習用のアカウントが必要です。受講者の皆様には演習用にお一人1アカウントが提供されています。 アカウントが不明な場合は 受講者ページの「ご自身のTreasure Academy進捗状況の確認方法」から、問合せフォームにてお問い合わせてください。


手順

Step1. 事前に提供されているアカウント(メールアドレス、パスワード)を確認しておきます。

    ID:     ____________  
    パスワード: ____________

※ Treasure Academy からの進捗確認メールやリマインダーメールに記載されています。

Step2. ウェブブラウザを立ち上げて、次のURLにアクセスします。

次のようなログイン画面が表示されます。

Note:  演習の環境では米国リージョンを使用しています。実際の業務で他のリージョンを使用する場合はURLが異なりますのでご注意ください。

Step3. 前のステップで確認したアカウント情報を使用して、Treasure Dataにブラウザからログインします。

解答例はクリック

Step3.1 EMAILとPASSWORDを入力して[LOGIN]ボタンをクリックします。

Step3.2 ログインに成功すると次のような画面が表示されます。この画面が表示されたら演習は成功です。

Note: この画面(TD Console)から利用できるメニューについては後ほど紹介します。興味のある方は左側の縦軸がメニューになっているので、アイコンを自由にクリックしてみてください。

Step4. (オプション)必要に応じて、TD Consoleからログアウトします。

解答例はクリック

Step4.1 一番左下のアイコンをクリックし、表示されるメニューから[Sign Out]をクリックしてログアウトすることができます。

※この演習はここで終了です※

 

オプション演習2: TD Toolbeltを使用したCLIでのTreasure CDPへのアクセス


この演習の目的

チェックリスト

このオプション演習では、TD Toolbeltを使用してTreasure Dataにアクセスします。TD Toolbeltは主に開発者向けのツールです。 この演習ではお手元の環境にTD Toolbeltをインストールする必要があるため、Project Leaderの方、またはTD Toolbeltをインストールできる環境がない場合はスキップしていただいて構いません。

結果

次のことができるようになります。

  • TD Toolbeltがインストールできる
  • td accountコマンドを使って認証が行える

始める前に

演習用のアカウントが必要です。受講者の皆様には演習用にお一人1アカウントが提供されています。 アカウントが不明な場合は 受講者ページの「ご自身のTreasure Academy進捗状況の確認方法」から、問合せフォームにてお問い合わせてください。


手順

Step1. TD Toolbeltのインストールを行います。

TD Toolbeltは以下のURLからダウンロードが可能です。

インストール手順はプラットフォームにより異なります。次のURLを参考に、お手元の環境にインストールを行なってください。

解答例はクリック

例: Ubuntu 20.04 TLSへのインストール

$ apt install curl
$ curl ¥ https://toolbelt.treasuredata.com/sh/install-ubuntu-bionic-td-agent3.sh | sh

Step2. TD Toolbeltのインストールを確認します。

コンソールからtdコマンドを入力して、usageが表示されることを確認します。

解答例はクリック

Step2.1. コマンドラインからtdと入力し、Enterキーを押します。Usageが表示されます。

$ td
usage: td [options] COMMAND [args]
 
options:
  -c, --config PATH      path to the configuration file (default: ~/.td/td.conf)
  -k, --apikey KEY      use this API key instead of reading the config file
  -e, --endpoint API_SERVER     specify the URL for API server to use (default: https://api.treasuredata.com).
                                    The URL must contain a scheme (http:// or https:// prefix) to be valid.
                                    Valid IPv4 addresses are accepted as well in place of the host name.
    --import-endpoint API_IMPORT_SERVER
                                specify the URL for API Import server to use (default: https://api-import.treasuredata.com).
    --insecure                  Insecure access: disable SSL (enabled by default)
  -v, --verbose                 verbose mode
  -h, --help                    show help
  -r, --retry-post-requests     retry on failed post requests.
                                Warning: can cause resource duplication, such as duplicated job submissions.
        --version                   show version
 
Basic commands:
                                        
  db       # create/delete/list databases            
  table        # create/delete/list/import/export/tail tables  
  query         # issue a query                     
  job           # show/kill/list jobs                 
  import        # manage bulk import sessions (Java based      
                # fast processing)                   
  bulk_import   # manage bulk import sessions             
                # (Old Ruby-based implementation)          
  result        # create/delete/list result URLs          
  sched         # create/delete/list schedules that run a 
                # query periodically
  schema        # create/delete/modify schemas of tables
  connector     # manage connectors
  workflow      # manage workflows
 
Additional commands:
 
  status        # show scheds, jobs, tables and results
  apikey        # show/set API key
  server        # show status of the Treasure Data server
  sample        # create a sample log file
  help          # show help messages
 
Type 'td help COMMAND' for more information on a specific command.

 

Step3. Treasure Dataと認証を行います。

td accountコマンドを使用して認証を行います。アカウント情報は演習1と同じです。認証が成功するとAuthenticated successfully. と表示されます。

解答例はクリック

Step3.1. コマンドラインからtd accountと入力し、Enterキーを押します。

Email: と表示されたら、アカウント情報のEMAILを入力します。

$ td account
Enter your Treasure Data credentials. For Google SSO user, please see https://support.treasuredata.com/hc/en-us/articles/360000720048-Treasure-Data-Toolbelt-Command-line-Interface#Google%20SSO%20Users   
Email: **training-15943985799@example.com** ←提供されているアカウント 
Password (typing will be hidden): ←パスワード(画面には表示されません) 
Authenticated successfully.                        
Use 'td db:create <db_name>' to create a database.

Step4. (オプション)tdコマンドを使用します。

認証に成功したら、usage で表示されたtdコマンドの一つを入力します。例えばtd db:listコマンド(データベースを一覧する)を実行し、結果が帰ってくることを確認します。

解答例はクリック

Step4.1. コマンドラインから td db:list と入力し、Enterキーを押します。

利用可能なデータベースの一覧が表示されます。(この結果と同じにならない可能性があります)

$ td db:list                 
+--------------------+----------+
| Name               | Count    |
+--------------------+----------+
| basic              | 10       |
| information_schema | 0        |
| pandas_test        | 3        |
| rss_db             | 416      |
| sample_datasets    | 0        |
| tdce               | 39080556 |
| timeseries         | 4224     |
| wf_handson_db      | 30       |
+--------------------+----------+
8   rows in set

Note: 再認証とtd.confファイル認証が成功すると、ホームディレクトリに .td という名前のフォルダが作成され、そのフォルダに td.confという名前のファイルが作成されます。次回以降はこのファイルの情報を使用して認証するため、毎回メールアドレスとパスワードを入力する必要はありません。

別のアカウントでログインする必要がある場合は、再度 td accountコマンドを実行します。この時に-fオプションを使用して認証情報を上書きしてください。-fオプションを指定しない場合は認証情報が更新されないため、次のようなエラーが表示されます。

$ td account
Account is already configured with 'training-15943985799@example.com' account. 
Add '-f' option to overwrite.
※この演習はここで終了です※

演習3: Data Connectorでデータを取り込んでみよう

この演習の目的

チェックリスト

この演習では、TD ConsoleのData Connectorを使用して、AWSのS3に事前に用意されているCSVファイルのデータをCDP上のテーブル取り込みます。 CDP環境を構築する上で、データの取り込みは重要です。この演習では取り込みを行う上で必要な手順を確認します。

結果

次のことができるようになります。

  • 外部サイトから実際のデータの取り込みが行え
  • Data Connectorの操作ができるようになる
  • 取り込んだデータを確認できる

始める前に

事前にTD Consoleにログインしている必要があります。また、この演習ではAWSのS3にCSVファイルが用意されています。次の情報を使用してインポートを行います。

  • Bucket: td-ce-beginner-public
  • Path Prefix: hands-on/dummy_personal_information.csv

参考ドキュメント

Note: AWS S3とは、Amazonがクラウド上で提供しているストレージサービスです。CDPにデータを取り込む場合、外部のシステムから直接Treasure CDPにデータを送れない場合も多いため、外部のシステム→S3→Treasure CDP のように、データを一旦S3にコピーし、S3からTreasure CDPにデータをインポートするようにすることも一般的です。

データをS3に置く場合、セキュリティのため、認証によってデータを保護するのが一般的です。しかし今回の演習では、簡素化のために最低限の情報のみが必要になっています。
前述の Bucket(バケット) とは、S3において、ファイルサーバーの「フォルダ」に相当するような概念です。また、Path Prefixはバケットに含まれる「ファイル」に相当します。

この後の手順で使用されるS3に関する用語

EndpointとRegion

AWSにプログラムで接続する際に指定するURL。演習では不要(空白のまま)

Authentication

認証方法。この演習ではanonymousを選択

インポートするCSVデータのイメージ


この演習の目的

Step1. TD Consoleにログインしていない場合はブラウザからログインします。

Step2. [Integration Hub]から[Catalog]を選択し、必要な情報を入力します。

Step2.1. TD Consoleの左側のアイコンから[Integration Hub]メニューを選択し、メニューから[Catalog]を選びます。

次のようにCatalog一覧が表示されます。

Step3. S3からCSVファイルをインポートするための設定を行います。

Step3.1. カタログ画面では、Treasure CDPが用意している接続先のアイコン群から必要な接続先を選択して、必要な情報を指定します。今回の演習では、amazon S3 のアイコンにマウスカーソルを合わせてクリックします。

Step3.2. New Authentication ダイアログでは必要な情報を入力します。

CredentialsではAmazon S3の認証情報の入力が求められます。今回の演習では利便性のため認証は不要になっています。詳細はこの演習の目的にあるドキュメントをご覧ください。

  • Endpoint: 空白(通常はRegionかEndpointを指定)
  • Region: 空白(通常はRegionかEndpointを指定)
  • Authentication Method: anonymousを選択(セキュリティ上認証が必要な場合はbasicやsessionを選択し、Access Key IDやSecret access keyを指定します)
  • Access Key ID: 空白(通常はAWS S3で発行される)
  • Secret Access Key: 空白(通常はAWS S3で発行される)

[Continue] ボタンをクリックします。

Step3.3. Details画面では名前を入力します。名前を入力して設定を保存し、次の手順でその名前を使用します。

任意の名前が指定できますが、今回は以下の値を使用します。

  • Name: basic_s3_load_test

※入力できる文字は、英数字小文字と_(アンダースコア)です。

最後に[Done] ボタンをクリックして、設定を完了します。(既にその名前で設定が保存されている場合は “has already been taken”というエラーメッセージが表示されるので、別の名前を指定してから[Done]ボタンを押してください)。

Step3.4. 自動的にAuthentications画面に遷移します。作成されている接続先の認証情報が一覧表示されます。

Note:この手順を初めて行った場合は、3.3の手順で名前を指定した basic_s3_load_test のみが表示されます。

Step4. Authenticationsメニューでは、データソースへのセキュアな接続を作成します。

今回の演習で、AWS S3上にあるCSVファイルをTDに転送するための設定を行います。

  1. Integration HubメニューのAuthencticationsメニューにて、前の手順で作成したbasic_s3_load_testからNew Sourceを選択してコネクションを設定します。
  2. 続いてNew Sourceを選択してコネクションを設定します。
  3. ウィザードの各ステップでは、以下の値をそれぞれ使用して設定してください。(詳細は手順4.1以降をご覧ください)。

Step4.1. TD ConsoleのIntegration HubメニューからAuthenticationsメニューを選択します。

Step4.2. Step3.3で作成した basic_s3_load_test の右側にある[New Source]をクリックします。データソースを作成するためのウィザードが表示されます。

ウィザードで設定中、項目が表示されない場合は、ブラウザでページをリロードしてみてください

Step4.3 次の画面のように、ウィザードの5つのステップで必要な項目を指定していきます。

1. Connection

まず、「1. Connection」の設定では、Data Transfer Nameを入力します。Data Transfer Nameとは、データ転送の設定に名前をつけて保存しておくために使います。

任意の名前が指定できますが、この演習では以下の値を設定します。

  • Data Transfer Name: s3 load test
[Next]ボタンをクリックして次に進みます。

2. Source Table

続いて「2. Source Table」の設定では、取り込み元(ソース)に関する設定を行います。

今回は、事前にAmazon S3に用意されているCSVファイルに関する情報を指定します。このダイアログでは、S3のBucketやパス、正規表現、フィルタ等を指定することができますが、今回の演習では入力が必要なのはBucket、Path Prefixの2箇所のみです。その他の項目について関心がある方はドキュメントをご覧ください。

  • Bucket:td-ce-beginner-public
  • Path Prefix:hands-on/dummy_personal_information.csv
[Next]ボタンをクリックして次に進みます。

Note:Incremental? チェックボックスに関する補足
Sourceの作成時に「Incremental?」チェックボックスをONに指定した場合、以前取り込みを行ったファイルは再度追加されません。(デフォルトの設定はON)
設定を誤って、同じデータを2重にインポートしないようにこのような仕様になっていますが、複数回テストを繰り返す必要がある場合はこのチェックを外してください。

3. Data Settings

続いて「3. Data Settings」の設定では、Treasure CDPにデータをインポートする際、テーブルに正しくインポートするための設定を行います。(CSVの場合は区切り文字は何か、先頭行を無視するかどうかなどの指定を行います。)

今回の演習用のデータは、区切り文字がカンマ(,)、1行目には列の名前が含まれており。これらデフォルトの設定項目を変更する必要はありません。

画面を下にスクロールすると、Amazon S3に置かれているCSVファイルをData Connectorが解釈して推論したスキーマ情報(列とデータ型)が表示されていることがわかります(次の図)。

左側が列名、右側がデータの型です。前述の通り、演習用のデータにはヘッダ行があり、上記の図のように日本語の列名が含まれています。しかし、Hive/Prestoでは列名に日本語を使用することができないため、Data Connectorが自動的に次のような列名に置き換えます。

列名が正しく解釈されなかった場合例:

しかし、この列名(___2など)だと、直感的に何を意味しているかわからないため不便です。したがって、Schema Settingsでは、推論されたColumn Name(列名)を次のように変更します。(今回、Data Typeの変更は不要です)

Column Name Data Type
id long
name string
kana string
roma string
gender string
phone string
email string
birthday timestamp
変更後のイメージ

[Next]ボタンをクリックして次に進みます。

4. Data Preview

次の「4. Data Preview」画面では取り込むデータの確認ができます。実際にデータを取り込む前に、データが正しいことを確認します。

[Generate Preview] ボタンをクリックし、少し待つと画面上に取り込むデータのプレビューが表示されます。横方向にスクロールして列を確認できます。

画面上で上記のように表示され、問題がないようであれば[Next]ボタンをクリックして次の設定に進みます。問題があった場合は[Back]ボタンを押して、必要に応じて設定を修正してください。

5. Data Placement

最後に「5. Data Placement」の画面では、データの取り込み先に関する情報を指定します。

今回の演習では次のように指定してください。

  • Database: Create New Databaseを指定し、Database Nameはbasic
    (新しくbasicという名前のデータベースを作成する)
  • Table: Create New Tableを指定し、Table Nameはs3_load_test
    (新しくs3_load_testという名前のテーブルを作成し、そのテーブルに取り込む)
  • Method: Always Replaceを選択(後述)
  • Timestamp-based Partition Key: time

それ以外の項目はデフォルト値のままにしておきます。

Note:3種類のMethod
データ取り込み時は3種類のメソッドから選択します。(以前は2種類でした) ・Append: は既存のテーブルに追加(存在しているデータはそのまま)
・Always Replace: はデータを追加する前に既存のデータを削除します。追加するデータが0件でも既存データが削除されてしまいます。
・Replace on new data:は「新しいデータ」がある場合、既存のデータを削除して新しいデータを追記します。Always Replaceと異なり、新しいデータがない場合は既存データを削除しません。

Step4.4. 最後に[Create & Run Now] ボタンをクリックして、データの取り込み処理を開始します。処理が開始すると Integration Hub の Sources メニューに遷移し、これまでの手順で設定したソースが表示されます。

データ量にもよりますが、データの取り込みには多少の時間がかかります。インポート処理が正しく完了すると、Sourcesの一覧にあるソースのLast Runのアイコンが緑色に変わり、インポート処理を実行した時刻が表示されます。(画面が切り替わらないので、ブラウザのリロードが必要です)

アイコンが緑にならない、またはデータのインポートがうまくいかない場合は、ここまでの手順に不備がないか、あるいは次のオプション手順でジョブの詳細画面を参考に、エラーが生じているかどうかを確認してください。問題が解決しない場合はインストラクターまでお問い合わせください。

Step5. (オプション)必要に応じてデータの取り込み状況を確認します。

大量のデータの取り込みに時間がかかっている場合、あるいは取り込みに失敗してエラーになっている場合のデバッグには次の手順で確認します。

取り込み状況の確認は2通りの方法があります。

Step5.1. Sources画面のデータソースから、Last Runの右側にあるアイコンをクリックします。

次のようなダイアログが表示され、進行状況が表示されます。

Step5.2. あるいは、2番目の方法として、TD ConsoleのJobsメニューをクリックします。

一番上に Data Import というジョブが表示されているはずです。(他の処理が行われている場合、先頭に表示されていない場合もあります)

Note: なお、この画面の右側のメニューで、Database(今回の場合はbasic)を指定して、データベース名でフィルタリングすることもできます。

ジョブをクリックするとログが表示されます。

Step6. インポートしたデータを確認します。

TD Consoleを用いて正しくデータがインポートされているかどうかを確認します。

Step6.1. TD ConsoleのData WorkbenchメニューからDatabasesを選択します。

Step6.2 演習で作成した basic データベースと、事前に用意されたいくつかのデータベースが表示されます。

Step6.3. この演習で作成した basic データベースをクリックします。

演習で作成した s3_load_test テーブルが表示され、列数、行数、インポートした時刻が表示されているはずです。

Step6.4. s3_load_testテーブルをクリックし、CSVファイルが正しくインポートされていることを確認します。必要に応じて[Schema]、[Details]タブもクリックしてご確認ください。

Note: time列は自動的に取り込み時間が付与されます。

※この演習はここで終了です※

演習4: 取り込んだデータにクエリを実行してみる

この演習の目的

チェックリスト

この演習では、Data Connectorを使用して取り込んだデータに対して、SQLを用いて簡単なクエリを実行します。この演習ではHive、Prestoの両方の実行エンジンを使用します。 Treasure CDPでは、データの加工や分析にSQLが利用できます。この手順では、SQLを実行する手順を確認することができます。 なお、SQLに詳しくない方は、この演習で実行するクエリの内容を気にする必要はありません。SQLの構文についてはSQL基礎編で詳しく扱います。

結果

次のことができるようになります。

  • TD Consoleからデータベース、テーブルを確認できる
  • TD ConsoleのQueriesを使用して、事前に取り込んだデータに対してクエリを実行し、結果を表示できる
  • Hive / Presto の実行エンジンを切り替えてクエリを実行できる

始める前に

この演習を実行する前に、演習3の手順を完了してデータを取り込んでおく必要があります。


手順

Step1. TD Consoleにログインしていない場合はブラウザからログインします。

Step2. TD ConsoleのData WorkbenchメニューからQueriesメニューを選択します。

右上の [New Query]ボタンをクリックしてクエリ入力画面を表示します。

Step3. Prestoを使用して以下のクエリを実行します。

SELECT * FROM s3_load_test

Step3.1. クエリ画面で、左上のデータベース選択リストボックスから basic データベースを選択します。

演習3で作成した s3_load_test テーブルが表示されているはずです。(現時点ではこのデータベースには1つのテーブルしか含まれていません)

Step3.2. クエリ入力画面(以下のスクリーンショットを参照)に以下のクエリを入力します。

SELECT * FROM s3_load_test

上記のように途中まで入力すると候補が表示されるので、矢印キーで候補を選択し、Tabキーを押して入力を補完できます。

Step3.3. クエリを入力したら、右上の[Run]ボタンをクリックしてクエリを実行します。

実行結果は下のペインのQuery Resultタブに表示されます。

Step4. Hiveを使用して同じクエリを実行します。

SELECT * FROM s3_load_test

Step4.1. クエリ画面のType:をPrestoからHive 2020.1 (stable)に変更します。(なお、選択できるHiveのバージョンが異なる場合があります)

Note: Hive 0.13という項目も選択できますが、これは古いバージョンのHiveです。過去のバージョンで利用しているクエリの互換性のために選択できるようになっていますが、特に理由がなければHive 2020.1 (stable) を選択してください。

Step4.2. 先ほどPrestoで実行したのと同じクエリを実行します。

  • クエリの結果はPrestoと同じでしたか?
  • PrestoとHiveでクエリにかかった時間は異なりましたか?

Note: Prestoはクエリを処理する際にメモリを使用して高速化します。Hiveはクエリを処理する際に複数のタスクに分けて処理を行いますが、途中のデータを一時的にディスクに書き出す必要があります。よって一般的にPrestoの方が高速です。

Step5. オプション: SQLに詳しい方は自由にクエリを実行してください。

※この演習はここで終了です※

Back to top button