目次

Search

  1. はじめに
  2. コンポーネント
  3. APIコレクション
  4. ビジネスサービス
  5. ファイルリスナ
  6. 固定長ファイル形式
  7. 階層マッパー
  8. 階層スキーマ
  9. 業種別データサービスカスタマイザ
  10. インテリジェント構造モデル
  11. インテリジェント構造モデルの改良
  12. マップレット
  13. 保存済みクエリ
  14. 共有シーケンス
  15. ユーザー定義関数

コンポーネント

コンポーネント

ユースケース

ユースケース

ストリーミングメディアサービス会社のオペレーショングループで働いているとします。所属するチームが求めるのは、サーバーファームからのWebログを処理して業務分析を行い、保守上の問題を特定することです。
バックエンドシステムは、サーバーアクセスとサーバーファーム内のシステム負荷に関するデータを収集します。チームが求めるのは、過去数週間に最大のサーバー負荷を引き起こした操作を特定することです。その後、監査目的でデータを保存することも必要です。
データアナリストがデータを処理する前に、データを解析する必要があります。ただし、ログは半構造化された状態であり、サーバーのアップグレード後はログファイルの構造がわずかに変わり、一部の情報については形式が変わる可能性もあります。標準のトランスフォーメーションでは、これによってデータ損失やログ処理の失敗が発生する場合があります。
入力データにヘッダーが含まれている場合、インテリジェント構造検出はさまざまな場所へのデータドリフトをサポートします。入力データにヘッダーが含まれていない場合、
インテリジェント構造検出
は入力の最後の追加のデータを識別します。
最初のログファイルの構造は次のとおりです。
05967|2014-09-19|04:49:50.476|51.88.6.206|custid=83834785|cntry=Tanzania|city=Mtwango|movie={b1027374-6eec-4568-8af6-6c037d828c66|"Touch of Evil"}|paid=true 01357|2014-11-13|18:07:57.441|88.2.218.236|custid=41834772|movie={01924cd3-87f4-4492-b26c-268342e87eaf|"The Good, the Bad and the Ugly"}|paid=true 00873|2014-06-14|09:16:14.522|134.254.152.84|custid=58770178|movie={cd381236-53bd-4119-b2ce-315dae932782|"Donnie Darko"}|paid=true 02112|2015-01-29|20:40:37.210|105.107.203.34|custid=49774177|cntry=Colombia|city=Palmito|movie={ba1c48ed-d9ac-4bcb-be5d-cf3afbb61f04|"Lagaan: Once Upon a Time in India"}|paid=false 00408|2014-06-24|03:44:33.612|172.149.175.30|custid=29613035|cntry=Iran|city=Bastak|movie={3d022c51-f87f-487a-bc7f-1b9e5d138791|"The Shining"}|paid=false 03568|2015-01-07|11:36:50.52|82.81.202.22|custid=27515249|cntry=Philippines|city=Magallanes|movie={ad3ae2b4-496e-4f79-a6dd-202ec932e0ae|"Inglourious Basterds"}|paid=true
サーバーのアップグレード後に、一部のログファイルは次のような構造になります。
0448|2015-04-07|01:50:5.35|27.248.247.174|custid=613068|cntry=Iran|city=Sarĕb|movie={50fb37b-621-484e-a565-2b5c1cbdc43|"Network"}|paid=false|ua=Mozilla/5.0 (Windows NT 5.1) 02780|2014-12-28|08:14:58.685|17.2.236.233|custid=731|cntry=Greece|city=Néa Róda|movie={1876aea0-3cb5-4c7a-22f-d33f233210|"Full Metal Jacket"}|paid=true|ua=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) 03353|2015-04-20|21:02:40.532|143.48.11.171|custid=83736441|cntry=Russia|city=Mozhaysk|movie={67272f85-bfc-418a-82ea-a7c4ae6b028a|"Gangs of Wasseypur"}|paid=true|ua=Mozilla/5.0 (iPad; CPU OS 5_1 like Mac OS X) 04073|2014-10-25|15:33:03.442|87.235.48.100|custid=861028|cntry=Indonesia|city=Lamalera|movie={4a511f3-6367-4017-874e-50a46f5ea567|"Shutter Island"}|paid=false|ua=Mozilla/5.0 (X11; Linux x86_64) 02170|2015-02-1|23:36:40.271|25.14.204.46|custid=1240203|cntry=Albania|city=Lukovë|movie={2047efa-22c6-431c-87d4-ca73af1034|"The Grapes of Wrath"}|paid=false|ua=Mozilla/5.0 (Windows NT 6.1)
データ形式は様々で、一部のデータについては場所も変わっています。
次の図は、データの変化を示しています。
この図は、予期されるログデータの入力形式と変化を示しています。入力ファイルでは日付形式が変化し、また一部のデータについては場所も変わっています。
このような場合、個々のトランスフォーメーションを手動で作成する代わりに
インテリジェント構造モデル
を作成して、関連するデータセットを判別することができます。
インテリジェント構造
インテリジェント構造検出
で作成し、データの構造を自動的に識別します。
次の図は、作成する
インテリジェント構造
を示しています。
この図は、ノードの階層を持つWebログの入力ファイルから作成するインテリジェント構造を示しています。一番上の行では、tableはelementの親です。2行目の要素は、number、datetime、IP、custid、cntry、city、movie、およびpaidの親です。3行目では、datetimeはdate and timeの親、custidはcustidの親、cntryはcntryの親、cityはcityの親、movieはmovieの親、そしてpaidはpaidの親です。4行目では、movieがmovieの親です。4行目では、movieはGUIDと値の親です。
データを確認すると、モデルの最初の要素は
number
で、実際にはユーザートランザクションIDを表しています。この要素名を
transactionId
に変更します。
次の図は、更新された
インテリジェント構造
を示しています。
この図は、numberノードをtransactionIdに変更した後のインテリジェント構造を示しています。インテリジェント構造が[ビジュアルモデル]タブに表示されており、各ノードに関連する出力データが[リレーショナル出力]タブに表示されています。
インテリジェント構造
インテリジェント構造モデル
として保存した後、構造パーサートランスフォーメーションを作成し、それにモデルを割り当てます。
データ統合
マッピングには、トランスフォーメーションをソース、ターゲット、その他のトランスフォーメーションとともに追加できます。マッピングがソース接続からAmazon S3入力バケットなどのデータをフェッチした後、構造パーサーはインテリジェント構造モデルを使用してデータを処理します。トランスフォーメーションは、さらに処理を進めるため、Webログデータをダウンストリームトランスフォーメーションに渡し、続いてAmazon S3出力バケットなどのターゲットに渡します。