背景

本ページでは、OSS に基づいて maxcompute を使用し、Pb データウェアハウスを構築する方法に焦点を当てています。

  • OSS

    Object Storage OSS は、ホットからコールドまでのさまざまなストレージシナリオに対応できる、標準および低頻度アクセスに対応したアーカイブストレージタイプを提供しています。 一方、OSS は hadoop open source community と連携させることができ、また、EMR、bulk computing、maxcompute、machine learning Pai、Data Lake Analytics、 function computing、その他の Alibaba Cloud コンピューティング 製品と緻密に連携し合っています。

    ユーザーは OSS ベースのデータ分析アプリケーション、mapreduce、hive/pig/spark などのバッチ処理 (ログのオフライン計算など)、双方向性クエリ分析 (aperla、presto、FIG)、ディープラーニングトレーニング (Ali cloud Pai)、Gene レンダリング処理配信 (一括処理)、ビッグデータアプリケーション (maxcompute)、およびフロー処理 (関数計算) などを作成できます。

  • MaxCompute

    Maxcompute は、高速で完全に管理されたデータウェアハウスソリューションを提供するビッグデータコンピューティングサービスです。OSS、効率的で経済的な分析、大量のデータの処理と組み合わせることができます。 Maxcompute の処理性能は世界トップレベルに達しており、Forster によりクラウドデータウェアハウスの世界的リーダーとして指名されています。

  • OSS 外部テーブルクエリ機能

    maxcompute premium には、重要な機能である OSS 外観クエリ機能があります。 この機能は、maxcompute テーブルにデータをロードする代わりに、OSS 内の多数のファイルを直接クエリするのに役立ちます。データを移動するための時間と労力の両方を節約し、保存コストをより節約します。

    maxcompute + OSS 設定を使用することで、以下の利点があります。

    • Maxcompute はサーバーフリーの分散コンピューティングアーキテクチャです。サーバーインフラストラクチャの追加のメンテナンスや管理は不要です。OSS ユーザーのニーズに応じて、一時的な問い合わせサービスを提供するのに便利かつ適時であり、企業が多くのコストを節約するのに役立ちます。
    • OSS は、膨大な数のオブジェクトストレージサービスを提供しています。 ユーザーは OSS に一元的な方法でデータを保存し、OSS は計算と保存をわけることを可能にしています。また、多くのコンピューティングアプリケーションや企業は、OSS で使用されるデータにアクセスし、データを1 箇所に格納することができます。
    • OSS 上では、オープンソース形式の構造化ファイル avro、CSV、Orc、parquet、rcfile、regexserde、sequencefile、textfile をサポートしています。また、gzip 圧縮形式の処理もサポートしています。

一般的な適用シナリオ

インターネットファイナンスアプリケーションは、日々、OSSS に多数のファイナンスデータ交換ドキュメントを保存する必要があり、特大のテキストファイルの構造化分析が必要です。 maxcompute の OSS 外部テーブルクエリ機能を使用することで、ユーザーは外部テーブルを使用した分析をするのに OSS 上の大きなファイルを maxcompute に直接ロードできるため、リンク全体の効率が大幅に向上します。

操作手順

2 つの簡単な例を見てみます。このページでは、maxcompute の外観機能によって OSS データを分析および処理する方法を紹介します。

  • シナリオ1: モノのインターネットデータ収集分析
    1. 手順 1: 実行準備
      1. OSS と maxcompute サービスを開きます。

        Web サイトから OSS サービスと maxcompute サービスを別々に開き、OSS バケットの maxcompute プロジェクトを作成します。

      2. OSS にデータを収集します。

        このページで説明されているベストプラクティスを検証するため、テスト用の任意のデータセットを使用します。 この例では、OSS 上の CSV のバッチを用意します。 データとエンドポイントは fig、バケットは OSS-ODPS-test、データファイル格納パスは /Demo/vehicle です。

      3. OSS へのアクセスを maxcompute に許可します。

        Maxcompute は OSS データに直接アクセスする必要があるため、OSS のデータ関連の権限を maxcompute のアクセスアカウントに割り当てる必要があります。 Ali クラウドアカウントに直接サインインした後、[完了] をクリックします。

    2. 手順 2: maxcompute を使用して外部テーブルを作成
      次の文を使用して外部テーブルを作成します。
      Create external table if not exists fig
      
          Vehicle ID int,
          Recorddid int,
          Matientid int,
          Calls int,
          Maid double,
          Maid double,
          Recordtime string,
          Direction string
      
          Stored by 'com. aliyun. ODPS. csvstoragehandler'
          LOCATION "Oss:/oss-cn-beijing-internal.aliyuncs.com/oss-odps-test/Demo /';
    3. 手順 3: maxcompute を使用して外部テーブルをクエリする

      外部テーブルの作成に成功したら、通常どおり外部テーブルを使用できます。

      Hypothesis /Demo/vehicle. CSV のデータは次のとおりです。

      1,1, 51,1, 46.81006,-92.08174, 9/14/2014 0: s, S
      1, 13, 1, 46.81006,-92.08174, 0: 00, ne
      1,3, 48,1, 46.81006,-92.08174, 9/14/2014 0: ne, ne
      1,4, 30,1, 46.81006,-92.08174, 9/14/2014 0: w, W
      1,5, 47,1, 46.81006,-92.08174, 9/14/2014 0: s, S
      1,6, 9,1, 46.81006,-92.08174, 9/14/2014 0: s, S
      1,7, 53,1, 46.81006,-92.08174, 9/14/2014 0: n, n
      1,8, 63,1, 46.81006,-92.08174, 9/14/2014 0: sw, SW
      1,9, 4,1, 46.81006,-92.08174, 9/14/2014 0:, ne
      1,10, 31, 1, 46.81006,-92.08174, 9/14/2014 n: 00, n

      次の SQL 文を実行します。

      Select recorddid, painentid, direction from glaswhere painentid> 25;

      出力結果は次の通りです。

      
      | Recorddid | matientid | direction |
      
      | 1 | 51 | S |
      | 3 | 48 | ne |
      | 4 | 30 | w |
      | 5 | 47 | S |
      | 7 | 53 | n |
      | 8 | 63 | SW |
      | 10 | 31 | n |
      							
  • シナリオ 2: Alibaba Cloud Products の消費請求書の分析
    1. 手順 1: 実行準備
      1. OSS と maxcompute サービスを開きます。

        Web サイトから OSS サービスと maxcompute サービスを別々に開き、OSS バケットの maxcompute プロジェクトを作成します。

      2. OSS へのアクセスを maxcompute に許可します。

        Maxcompute は OSS データに直接アクセスする必要があるため、OSS のデータ関連の権限を maxcompute のアクセスアカウントに割り当てる必要があります。 Ali クラウドアカウントに直接サインインした後、[完了] をクリックします。

    2. 手順 2: コストセンターを介して、課金情報のデータを OSS と同期させる
      1. サービスが開始されると、消費詳細データの増分インスタンスが日々生成され、次の図に示すように指定されたバケットに格納されます。

    3. 手順 3: 課金情報のクラスを maxcompute に登録する
      1. カスタムコードをダウンロードするには、次のリンクをクリックしてください。odps-udf-example-0.30.0-SNAPSHOT-jar-with-dependencies.jar
      2. 次のコマンドを実行してカスタムコードコンパイルをパッケージ化し、Maxcompute にアップロードします。
        add jar odps-udf-example-0.30.0-SNAPSHOT-jar-with-dependencies.jar
    4. 手順 4: maxcompute を使用して外部テーブルを作成

      5 月 4 日の請求消費テーブルを作成する外部テーブルのサンプルは次のとおりです。

      Create external table if not exists fig
      
      Month string,
      Resource owner string,
      Consumer time string,
      Consumer type string,
      Bill number string,
      Commodity string,
      Billing method string,
      Service start time string,
      Service End Time string,
      Length of service string,
      Financial Accounting Unit string,
      Resource ID string,
      Resource nickname string,
      Tag string,
      Field string,
      Available zone string,
      Public Network IP string,
      Internal network IP string,
      Resource Configuration string,
      Original Value string,
      Discount Amount string,
      Payable amount string,
      Billing Item 1 string,
      Use 1 string,
      The resource package deducts 1 string,
      Original Value 1 string,
      Payable amount 1 string,
      Billing Item 2 string,
      Use 2 string,
      The resource package deducts 2 string,
      2 string,
      Payable amount 2 string,
      Charge Item 3 string,
      Use 3 string,
      The resource package deducts 3 string,
      3 string,
      Payable amount 3 string,
      Billing Item 4 string,
      Use 4 string,
      The resource package deducts 4 string,
      4 string,
      Amount Payable 4 string,
      Billing Item 5 string,
      Use 5 string,
      The resource package deducts 5 string,
      5 string,
      Amount Payable 5 string,
      Billing Item 6 string,
      Use 6 string,
      The resource package deducts 6 string,
      6 string,
      Amount Payable 6 string,
      Billing Item 7 string,
      Use 7 string,
      The resource package deducts 7 string,
      7 string,
      Amount Payable 7 string,
      8 string,
      Use 8 string,
      The resource package deducts 8 string,
      8 string,
      Amount Payable 8 string,
      Billing Item 9 string,
      Use 9 string,
      Resource bundle deducts 9 string,
      9 string,
      Amount Payable 9 string
      
      Stored by 'com. aliyun. ODPS. UDF. example. text. textstoragehandler '-- stored by specifies the Class Name of the custom storagehandler.
      With serdeproperties (
      'odps.text.option.complex.text.enabled'='true', 
      'odps.text.option.strict.mode'='false'
      -- When you encounter an inconsistent Number of columns, it does not throw an exception if the actual number of columns is less than the number of Schema columns, match All columns in order and fill in the remaining insufficient columns with null.
      
      LOCATION 'oss://oss-cn-beijing-internal.aliyuncs.com/oms-yl/2018-05-04/'
      USING 'text_oss.jar '; -- you also need to specify the jar package where the text processing class definition is located in the bill.
    5. 手順 5: maxcompute を使用して外部テーブルをクエリする

      例として、EC の消費請求書詳細のスナップショットをクエリします。コマンドは次のとおりです。

      Select month, original price, discount amount, payable amount, charge item 1, usage from oms_oss where commodity = snapshot );

まとめ

上記の例は、maxcompute を使用して OSS 上の大量のデータを分析し、ビッグデータ分析の効率を 1 分のレベルまで向上させ、大量のデータ値をより効率的かつ低コストでマイニングする方法を示しています。