はじめに

Data Transformsは、Autonomous Databaseに組み込まれているデータ統合ツールです。Database Actionsからアクセス可能で、異種のソースからAutonomous Databaseにデータをロードして変換するためのツールです。ドラッグアンドドロップ、ノーコードで簡単に操作できます。データウェアハウスの構築や分析アプリケーションへのデータ供給など、あらゆるデータ統合のニーズに対応できます。

Data TransformsはOracle Data Integratorをベースにしています。オンプレミスおよびOCIの両方で、多くのお客様において高性能なデータ統合アーキテクチャとして証明されている、ELT(Extract/Load/Transform)手法を使用しています。

本章ではAutonomous Databaseの付属ツールであるData Transformsを用いて、少ない労力でデータを変換する方法を紹介します。

所要時間 : 約60分

前提条件 :

目次:


1. 事前準備

実際にData Transformsを使用する前に、起動したADBインスタンスから新しいユーザー(QTEAM)を作成し、本チュートリアルで使用するサンプルデータ(Movie Sales 2020.csv)をロードします。

次の手順に従って、QTEAMユーザーを作成します。すでに作っている場合は、ステップ2に進んでください。

  1. 下記のリンクを参考に、QTEAMユーザーを作成します。
    分析用のデータベース・ユーザーを作成しよう(Database Actions)

    *ユーザーを作成の際に、付与されたロールから以下の2つのユーザーロールを、以下の画像のように有効にします。
    ・DWROLE
    ・DATA_TRANSFORMS_USER

    QTEAMを作成する際の付与されたロールの選択1

    QTEAMを作成する際の付与されたロールの選択2

    ※[付与済]と[デフォルト]の両方のボックスにチェックをつけてください。

  2. QTEAMユーザーが作成されたことを確認したら、QTEAMユーザーカードの右下にある新しいタブで開くアイコン(赤枠)をクリックして、QTEAMユーザーでログインし直します。

    QTEAMユーザーが作成された画面

  3. 下記のリンク参考に、Movie Sales 2020.csvをロードします。
    手元のPCからCSVデータをロードしてみよう


2. Data Transformsの起動

  1. QTEAMユーザーでDatabase Actionsにログインした状態で、起動パッドを開きます。

    Database Avtionsの起動パッド

  2. Data Transforms(データ変換)の項目をクリックし、データベースのユーザー名(QTEAM)とパスワード(例: Welcome12345#)を入力します。

    Data Transformsのログイン画面1

  3. Data Transformsが立ち上がるまで、1~2分程度かかります。

    Data Transformsのログイン画面2

    ログインができると、ホーム画面はこのようになります。

    Data Transformsのホーム画面


3. Data Transformsを使ってみる

3-1. Autonomous Databaseへの接続

  1. Data Transformsのメインページで、画面左のConnectionsをクリックします。デフォルトのConnectionがすでに設定されています。以下の画像のように、すでに作成したADBインスタンスの名前になっているかと思います。本チュートリアルではデフォルトのConnectionではなく、新規にConnectionを作成する手順を踏みたいので、Create Connectionをクリックしてください。 Create Connectionの説明1

  2. Create Connectionに、必要な情報を入力していきます。

    ・Name: MovieStream 
    ・Connection Type: Oracle
    とし、Nextを押します。

    Create Connectionの説明2

  3. Use Credential Fileのトグルをオンにして有効にし、ウォレットファイルを選択します。サービス(データベース名_low, 例:atp01_low)を選び、ユーザーとパスワードを入力します。
    Test Connectionを押して、接続テストをします。成功したら、以下のような通知が画面右上に表示されます。

    Create Connectionの説明3

  4. 接続に成功したのを確認したら、Createをクリックして、Autonomous Databaseへの接続を作成します。

    Create Connectionの説明4

  5. Data Transformsを使用している間、操作に関する通知のうち、重要なものが記載されます。これらの通知を表示するには、画面上部のベルのアイコンをクリックします。

    Data Transformsの通知機能

3-2. データベース内のデータをインポートする

  1. ここで、QTEAMのスキーマにある表をインポートする必要があります。Data Entities(画面左)、Import Data Entitiesの順にクリックします。

    データのインポートの説明1

  2. 以下のようなダイアログが表示されます。データをロードするConnection名とスキーマ名を入力し、Startをクリックします。インポートのジョブの通知が表示されます。ジョブが終了するまでには数分かかります。

    データのインポートの説明2

  3. インポートされたか表示されます(ジョブが終了するまで数分待ち、表示されない場合は更新してください)。
    しばらくすると、movie_sales_2020がリストされます。必要に応じて、画面左下のFiltersで検索をかける(例: Nameにmoviesと入力)こともできます。
    リストされた表の右側にある3つの点をクリックし、Previewを選択します。

    インポートしたデータの確認1

  4. 2020年の全ての月のデータがありますが、本チュートリアルでは、第2四半期のデータのみを分析します。
    表の中身を見ると、DAYの値が大文字のものもあれば、最初の1文字のみ大文字のものもあります。これは、システムにデータをロードする時によく起こることで、データのエラーを修正する必要があります。そのため、データの変換機能がAutonomous Data Warehouseに組み込まれていることは、利便性の上で非常に重要です。 インポートしたデータの確認2

    画面右上の×をクリックして、プレビュー画面を閉じます。

3-3. Data Flowを作成する

  1. Projects(画面左)をクリックし、Create Data Flowをクリックします。

    Data Flowの作成1

  2. Data Transformsのツールでは、Data FlowはProjectsの中で構成されています。まだどちらも作っていないため、表示されるダイアログで1度に両方を定義することができます。ダイアログで以下のように指定し、Createをクリックします。

    ・Name: MovieStream_Q2FY2020
    ・Create new Project ラジオボタンがすでに選択されていると思われます。
    ・Project Name: MovieStream
    ・Description: Extract & fix data for Q2 FY2020

    Data Flowの作成2

  3. 続いて、Add a Schemaを入力する画面が出てきます。これは、自動で以下のように入力されるので、特に変更せずにOKボタンをクリックしてください。

    Data Flowの作成3

  4. Data Flowの詳細画面が表示されます。以下のように、画面は大きく4つのセクションに分かれています。

    Data Flowの詳細画面1

    ここからは、次のようにData Flowを定義します。

    ・MOVIE_SALES_2020にフィルタを適用して、Q2以外の月のデータを削除します。

    ・DAY列におけるエラーを修正します。

    ・結果を、新しい表のMOVIE_SALES_2020Q2に適用します。


  5. 次の手順で、Data Flowを構築します。

    1. 画面左側のData Entitiesの上部にある更新ボタン(円形矢印)をクリックします。

    2. QTEAMスキーマを展開して、表のリストを表示します。

    3. 表示されたリストから、MOVIE_SALES_2020をクリックします。

    4. MOVIE_SALES_2020をキャンバスにドラッグアンドドロップします。

    5. ツール・パレットから、DATA TRANSFORMタブをクリックします.

    6. フィルタをキャンバスにドラッグアンドドロップします。

    7. キャンバスに表示されているフィルタをクリックして選択します。

    8. 画面右側のプロパティの部分で、名前をQ2_Onlyと入力します。

    9. キャンバス上で、MOVIE_SALES_2020をクリックします。

    10. MOVIE_SALES_2020の右側の矢印を引き延ばして、フィルタに接続します。

    Data Flowを構築する手順

  6. 上記の手順が完了したら、キャンバス上でフィルタを選択します。

    Filterを選択するイメージ

  7. 次に、フィルタのプロパティを定義します。フィルタを選択した状態でフィルタのConditionをクリックし、編集ボタン(鉛筆マーク)をクリックします。

    Filterを選択するイメージ

  8. 表示されたエディターで、フィルタの条件を完成させます。以下の作業をエディターで行います。

    1. Sourcesのタブで、表を展開します。

    2. 列MONTHをExpressionにドラッグアンドドロップします。

    3. 以下の式を追加します。

       in ('April','May','June')
      

    Filterから月を絞り込むイメージ

  9. このステップでは、列 MOVIE_SALES_2020.DAYのデータのエラーを修正します。

    1. ツール・パレットで、DATA PREPARATIONタブをクリックします。

    2. Data Cleanseをキャンバスにドラッグアンドドロップします。

    3. 先ほど作成したフィルタをクリックし、そこから Data Cleanseまで矢印を引き延ばします。

    4. Data Cleanseをクリックして選択します。

    5. Nameに”Fix_AllCap_Days”、Descriptionに”Convert all values in column DAY to Title Case.”を入力します。

    列 MOVIE_SALES_2020.DAYのデータを修正するイメージ

  10. 右上の拡大ボタンをクリックします。

    列 MOVIE_SALES_2020.DAYのデータを修正し、プロパティを開くイメージ

  11. 表示されたプロパティ画面の中央の、Attributesタブをクリックします。

    プロパティを開いて、Attributesを押す画面

  12. MOVIE_SALES_2020.DAY列のデータから、先頭と末尾の空白を削除し、Title Case(最初の1文字のみを大文字)に変換し、データを修正する必要があります。以下のように、オプションを選択してください。

    プロパティから、実際にデータを修正する画面

  13. 完了したら、右上の折りたたみボタン(2本の斜めの矢印マーク)をクリックして、プロパティを閉じます。

  14. 最後に、フィルタリングおよび修正後のデータをロードするための表を作成します。

    Data Cleans(Fix_AllCap_Days)を選択し、枠の右上にあるグリッド状の表のアイコンをクリックします。

    キャンバス上で Data Cleansに表アイコンをクリックする画面

  15. 以下のような表作成のダイアログが表示されます。表の名前をMOVIE_SALES_2020Q2と指定します。(末尾がQ2であることを確認して下さい。)Aliasの入力は特に変更せずに、Saveをクリックします。

    MOVIE_SALES_2020Q2の表作成のダイアログ

  16. MOVIE_SALES_2020Q2を選択し、画面右側のプロパティから拡張ボタンをクリックします。

    MOVIE_SALES_2020Q2を選択し、プロパティ画面を開く画面

  17. 展開されたプロパティには、様々なタブがあります。デフォルトではAttributesが開かれていますが、以下のようにColumn Mappingタブをクリックします。

    プロパティ画面を開いて、Column Mappingをクリックすした画面

  18. このData Flowをまだ実行しておらず、表は存在しないので、プレビューで見るものは何もありません

    Optionsを選択して、次のようなダイアログを表示させます。表がまだ存在しないので、Create target tableがTrueになっていることを確認してください。

    プロパティ画面を開いて、Optionsを押した画面

  19. 右上の折りたたみボタンをクリックします。

    プロパティ画面を閉じる画面

    Data Flowのメイン画面に戻り、完成したData Flowを見ることができます。

  20. Data Flowを実行します。

    1. Save(フロッピーディスクのアイコン)をクリックします。

    2. 実行ボタン(緑色の三角のアイコン)をクリックします。

    Data Flowを実行する画面

    これまでのステップを完了すると、4月、5月、6月のデータのみを持つ表である、MOVIE_SALES_2020Q2が作成されます。日付は全て、最初の1文字のみ大文字に変更されています。

3-4. Jobの詳細を確認する

  1. Data Flowを実行すると、以下のような画面が出ます。

    Data Flowを実行したあとの画面

    ここでOKボタンを押しても構いません。また、表示されているリンクを踏むと、作成したJobの詳細画面に遷移し、データ変換のプロセスを見ることができます。

    Jobの詳細画面

    この画面では、Jobが2つのステップで実装されていることが分かります。

    ・Create target table

    ・Insert new rows

  2. Insert new rows-Load MOVIE_SALES_2020Q2のリンクを押すと、画面右側にこのステップの詳細を示すパネルが表示されます。上部にあるTarget Connectionタブを押すと、Data Flowの各ステップがどのように実装されたかが分かります。

    ・Filter Q2_2020は、WHERE句で実装されています。
    MONTH IN (‘April’,’May’,’June’)

    ・Data Cleanse操作のFix_AllCap_Daysは、INITCAP(TRIM(MOVIE_SALES_2020.DAY))で実装されています。 Jobの詳細画面からステップの詳細を示すパネルを表示した画面

  3. Closeをクリックして、画面左上のパンくずリストのJobsから、Data Transformsのメインページに戻ってください。

    ホーム画面に戻る

おわりに

本チュートリアルではData Transformsを使って、サンプルデータをトリミングしたり、修正したりしました。Data Transformsを使えば、Autonomous Databaseにすでにあるデータを簡単に変換できることが体験できたかと思います。また、他のソースからデータをロードして変換することも可能です。データ変換のためにSQL文を書いたり、外部のデータ統合ツールを使用する必要はありません。

参考資料

以上で、この章は終了です。
次の章にお進みください。


ページトップへ戻る

更新日時: