0
Help us understand the problem. What are the problem?

posted at

updated at

IBM Cloud Pak for Data as a Service ハンズオン資料(4.ETL編)2021年8月作成/2022年3月更新

4.ETL編

Cloud Pak for Data as a Serviceハンズオンメニュー一覧

#1.サンプルプロジェクトを作成

  • プロジェクトの一覧画面(すべてのプロジェクトを表示)から、「新規プロジェクト」をクリック。
    スクリーンショット 2021-08-01 14.06.10.png

  • 「サンプルまたはファイルからプロジェクトを作成」を選択。
    スクリーンショット 2021-08-01 14.07.25.png

  • 「サンプルから」タブをクリックし、「COVID-19 Tracking with IBM Datastage」を選択。
    スクリーンショット 2021-08-01 14.09.36.png

  • 「作成」ボタンをクリック。

  • なお、作成ボタンが青くない場合は、「コラボレーターになれるユーザーを制限する」のチェックボックスをオフにしてからオンにすると、青くなるかもしれません。
    スクリーンショット 2021-08-01 14.11.18.png

  • 作成を待ちます。
    スクリーンショット 2021-08-01 14.11.35.png

  • 作成されたようなので、「新規プロジェクトの表示」をクリックします。
    スクリーンショット 2021-08-01 14.13.24.png

  • サンプルプロジェクトが表示されました。これは「概要」タブです。
    スクリーンショット 2022-03-11 16.30.03.png

  • すべて英語ですし長いですが、時間があればREADME を読んで概要を理解してみましょう。
    スクリーンショット 2022-03-19 22.21.53.png

  • 要約すると以下のようなことが記載されています。

    • DatastageはETL/ELTを実現します。
    • COVID19の2つの症例データを使用します。
      • 大学でのCOVIDの症例数のデータ:colleges.csv
      • 郡レベルでの症例数の時系列データ:counties.csv
    • これらを結合して、その結果をジョブログで確認する、というのがこのフローの内容です。
    • 参考までに、サポートされるデータソースのリンクも記載されていました。これもちょっと見てみましょう。

2.Datastageフローを確認

  • 「資産」タブには「接続」が2つと「DataStageフロー」、あと説明用のPDFが保存されています。

    • 2つの「接続」は、すでにDatastageフローの中に組み込まれています。
  • PDFは、時間があるときに読んでみましょう。
    スクリーンショット 2022-03-11 16.35.54.png

  • ここでは「Datastageフロー」をクリックして中身を見てみましょう。

スクリーンショット 2022-03-20 22.25.04.png

2.1.接続先データ(コネクター)確認

2.1.1.Colleges アイコン確認

  • まず、個別の中身を見ていきます。左上の「Colleges」アイコンをダブルクリックしてみます。
    スクリーンショット 2022-03-19 23.37.00.png

  • 画面右側のCollegesの「ステージ」タブのプロパティーをクリックし、「接続の選択」が「COVID Tracking Colleges」になっていることを確認。
    スクリーンショット 2021-08-01 14.35.43.png

  • 「Preview data」をクリックし、データの中身を確認。「クローズ」をクリックして閉じる。
    スクリーンショット 2021-08-01 14.40.42.png

  • 各列の意味については、こちらのサイトの「Data」の箇所から引用しますが、以下のとおりです。

    • date: The date of the last update.
    • state: The state where the college is located.
    • county: The county where the college is located.
    • city: The city where the college is located.
    • ipeds_id: The Integrated Postsecondary Education Data System (IPEDS) ID number for the college.
    • college: The name of the college or university.
    • cases: The total number of reported Covid-19 cases among university students and employees in all fields, including those whose roles as doctors, nurses, pharmacists or medical students put them at higher risk of contracting the virus, since the beginning of the pandemic.
    • cases_2021: The total number of newly reported Covid-19 cases since Jan. 1, 2021 only. notes: Specific methodological notes that apply to the institution, for example if the count includes cases from a medical unit, and if there is a possibility that duplicate cases have been counted due to the manner in which the institution reports data.
  • 続いて、「出力」タブをクリックし、「列」をクリック。出力される列が確認できます。
    スクリーンショット 2021-08-01 14.46.17.png

2.1.2.FIPS アイコン確認

スクリーンショット 2022-03-19 23.38.42.png

  • 同じく画面中央下部の「FIPS」アイコンをクリックします。

  • 「接続の選択」で「COVID Tracking :FIPS」が選択されていることを確認します。

  • なお、FIPSとは、Federal IOnformation Processing Standards の略で、FIPSコードはアメリカの地域を表すコードです。counties.csvでは郡レベルのコードまで確認できます。
    スクリーンショット 2021-08-01 14.42.14.png

  • 「Preview data」をクリックし、データの中身を確認。「クローズ」をクリックして閉じる。
    スクリーンショット 2021-08-01 14.43.02.png

  • 各列の意味については、こちらのサイトの「Live Data」の箇所から引用しますが、以下のとおりです。

    • cases: The total number of cases of Covid-19, including both confirmed and probable.
    • deaths: The total number of deaths from Covid-19, including both confirmed and probable.
    • confirmed_cases: The number of laboratory confirmed Covid-19 cases only, or blank if not available.
    • confirmed_deaths: The number of laboratory confirmed Covid-19 deaths only, or blank if not available.
    • probable_cases: The number of probable Covid-19 cases only, or blank if not available.
    • probable_deaths: The number of probable Covid-19 deaths only, or blank if not available.
  • 続いて、「出力」タブをクリックし、「列」をクリック。出力される列が確認できます。
    スクリーンショット 2021-08-01 14.47.18.png

2.2.ステージ確認

  • 続いて、データソースからのデータを処理する各ステージの中身を確認します。

2.2.1.Filter アイコン確認

スクリーンショット 2022-03-19 23.42.37.png

  • 続いて、「College」アイコンの先にある「Filter」アイコンをクリックして中身を確認します。「ステージ」タブの「プロパティー」をクリックします。
  • フィルターの基準がcity='Providence'であることが確認できます。これはRhode Island州の州都であるProvidence市に結果を絞り込むという意味です。
    スクリーンショット 2021-08-01 14.50.14.png

2.2.2.Modify アイコン確認

スクリーンショット 2022-03-19 23.44.05.png

  • 続いて、「FIPS」アイコンの先にある「Modiry」アイコンをクリックして中身を確認します。「ステージ」タブの「プロパティー」をクリックします。

スクリーンショット 2022-03-20 0.04.50.png

  • 「仕様」欄に、このステージでの処理内容が記載されています。「date」「cases」「state」列を削除していることがわかります。

  • 「入力」タブを見てみると、「date」「cases」「state」列が記載されていますが、
    スクリーンショット 2022-03-20 0.11.09.png
    スクリーンショット 2022-03-20 0.11.47.png

  • 「出力」タブを見てみると、「date」「cases」「state」列が削除されています。
    スクリーンショット 2022-03-20 0.12.53.png

2.2.3.Join アイコン確認

  • 「ステージ」タブの「プロパティー」をクリック。結合キーとして、「country」が設定されていることが確認できます。
    スクリーンショット 2021-08-01 14.53.31.png

  • Joinの方法として左上部(Left Outer Join )の設定になっています。
    スクリーンショット 2021-08-01 15.50.04.png

  • 「ステージ」タブの「リンク順序」をクリックすると、どちらの入力が右か左かが確認できます。

  • 今回、左側にあるのは、「Link_2」つまり「College」を修正した「Filter」からのリンクになります。

スクリーンショット 2022-03-21 18.30.55.png

スクリーンショット 2022-03-21 18.32.53.png

2.3.ジョブの保存・コンパイル・実行

  • 画面左上の「保存」ボタンでジョブを保存します。

  • 画面左上の「コンパイル」ボタンでジョブをコンパイルします。
    スクリーンショット 2021-08-01 14.59.10.png

  • (コンパイルに成功した旨のメッセージが出たら)画面左上の「実行」ボタンでジョブを実行します。
    スクリーンショット 2021-08-01 15.01.05.png

  • 画面右上に実行状況が出ます。(実行依頼済)
    スクリーンショット 2021-08-01 15.01.28.png

  • (実行中)
    スクリーンショット 2021-08-01 15.01.48.png

  • 実行が完了しました。
    スクリーンショット 2021-08-01 15.02.19.png

  • 「ログの表示」をクリックすると、ログが表示されます。下方へスクロールしてみましょう。
    スクリーンショット 2021-08-01 15.06.27.png

  • 「Peek,1」のログの箇所で、Left Outer Joinされた結果が出力されています。
    スクリーンショット 2021-08-01 15.48.42.png

  • 列の左側の下向き▽(▽)をクリックすると詳細が見られます。

スクリーンショット 2022-03-22 11.11.58.png

スクリーンショット 2022-03-22 11.10.02.png

2.4.ジョブの修正・コンパイル・実行

2.4.1.削除する列を追加する

  • 「Join」ステージでは、今回、Collegeが左、Countiesが右で、Left Outer Joinしていました。

  • つまり主なデータをCollegeとして、FIPS側にある、条件に合致するデータを付与する形です。

  • College側に、Counties側の情報「FIPS」を付与する、と考えた場合、余分な列は、「date」「cases」「state」以外にも有る為、ここでは削除する列を、以下の通り追加したいと思います。

  • 編集する箇所は、「Modify」ステージです。ダブルクリックして、「プロパティ」の「オプション」→「仕様」箇所の「編集」をクリックします。

スクリーンショット 2022-03-22 9.31.32.png

スクリーンショット 2022-03-22 9.33.03.png

  • 「Modify」ステージにて、以下が、元々の記載(date,cases,state をdropする)ですが、

    • 「drop date, cases, state」
  • 今回、以下のように削除対象の列を追記します。

    • 「drop date, cases, state, deaths, confirmed_cases, confirmed_deaths, probable_cases, probable_deaths」
      スクリーンショット 2022-03-21 23.27.26.png
  • 編集後、「適用して戻る」をクリックします。
    スクリーンショット 2022-03-22 9.35.59.png

  • 続いて、「出力」タブをクリックし、「列」の箇所の「編集」をクリックして、出力対象の列を修正します。
    スクリーンショット 2022-03-22 9.58.15.png

  • 列名のあたりがごちゃごちゃしていますので、ブラウザのズームでひとまず調整しましょう。50%くらいまでズームアウトするときれいには表示されます。

    • 100%の場合
      スクリーンショット 2022-03-22 10.15.06.png
    • 50%の場合
      スクリーンショット 2022-03-22 10.15.51.png
  • 今回、必要な列としては「county」「FIPS」のみですので、それ以外の「deaths」「confirmed_cases」「confirmed_deaths」「probable_cases」「probable_deaths」を削除するために、チェックボックスをクリックします。
    スクリーンショット 2022-03-22 10.18.04.png

  • 画面右上のゴミ箱のボタンをクリックし、対象の列を削除します。
    スクリーンショット 2022-03-22 10.21.15.png

  • 選択した列が削除されました。「適用して戻る」ボタンをクリックします。
    スクリーンショット 2022-03-22 10.22.39.png

  • 「Modify」ステージの「出力」タブの列が、「county」「FIPS」以外が削除されていることを確認し、「保存」をクリックします。
    スクリーンショット 2022-03-22 10.27.02.png

  • 画面右上で「保存中」と表示されていることを確認します。
    スクリーンショット 2022-03-22 9.37.38.png

  • 保存完了後、画面上部の「コンパイル」ボタンをクリックして、編集後の設定を実行可能な状態にします。
    スクリーンショット 2022-03-22 9.40.58.png

  • コンパイルが正常に完了したことを確認し、画面上部左側の「実行」ボタン(あるいは薄緑色のメッセージ右側の「ジョブの実行」)をクリックして、設定したジョブを実行します。
    スクリーンショット 2022-03-22 9.41.12.png

スクリーンショット 2022-03-22 9.41.23.png

  • ジョブの実行中です。
    スクリーンショット 2022-03-22 9.47.52.png

スクリーンショット 2022-03-22 9.48.21.png

  • ジョブが完了しました。ジョブのログを確認してみます。「ログの表示」或いは、画面右上の「ログ」ボタンをクリックします。

スクリーンショット 2022-03-22 10.30.32.png

スクリーンショット 2022-03-22 9.50.13.png

  • なお、参考までに、「Modify」ステージで出力列を編集せずにコンパイル・実行した場合にも正常に終了しますが、(警告有り)表示となります。

  • これは、出力列が定義されていながら、実際にはその列がDropされている為です。
    スクリーンショット 2022-03-22 9.49.33.png

  • ジョブログ画面が表示されます。

  • 画面を下の方へスクロールさせていきます。
    スクリーンショット 2022-03-22 10.35.05.png

  • 「Peek,1」という名前のログを確認します。左側の下向き三角(▽)をクリックします。
    スクリーンショット 2022-03-22 10.36.41.png

  • 出力されるデータ内容が確認できます。スクロールすると、「FIPS」も付与されていることがわかります。
    スクリーンショット 2022-03-22 10.41.41.png
    スクリーンショット 2022-03-22 10.42.04.png

以降、編集中です。

2.4.2.アウトプット先の変更

2.4.2.1.csvファイルへの書き出し

2.4.2.2.データベースへの書き出し

2.5.スケジューラ設定

  • 今回のハンズオンはこちらで終了です。

追加手順

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
0
Help us understand the problem. What are the problem?