一部のシナリオでは、外部テーブルを使用してログをクエリおよび分析する必要があります。 このトピックでは、LogstoreをObject Storage Service (OSS) 外部テーブルに関連付けてクエリと分析を実行する方法について説明します。

始める前に

  • ログが収集されていること。 詳細については、「データ収集の概要」をご参照ください。
  • インデックスが作成されます。 詳細については、「インデックスの作成」をご参照ください。
  • OSSバケットが作成されます。 詳細については、「バケットの作成」をご参照ください。

このタスクについて

会社Aは電子決済会社です。 会社Aは、ユーザの年齢、地理的位置、および性別が支払いの好みに与える影響を分析したいと考えている。 A社は、Log Serviceを使用して支払い行動ログを収集し、ユーザープロパティ情報をOSSバケットに保存しています。 支払い動作ログには、請求書と支払い方法が含まれます。 ユーザプロパティ情報は、ユーザに関する地理的位置、年齢、および性別情報を含む。 Log Serviceのクエリと分析エンジンを使用すると、Logstoreを外部ストアに関連付けてクエリと分析を実行できます。 外部ストアには、MySQLデータベースとOSSバケットが含まれます。 ユーザープロパティに関連するメトリックを分析するには、SQL JOIN構文を使用して支払い動作ログをユーザープロパティ情報に関連付けることができます。

Log ServiceをOSSバケットに関連付けてクエリと分析を実行すると、次のメリットが得られます。
  • 費用対効果: 更新頻度の低いデータをOSSバケットに保存すると、内部ネットワーク経由でデータを読み取ることができます。 この場合、ストレージサービスの料金のみを支払う必要があり、インターネットトラフィックの料金はかかりません。
  • O&Mワークロードの削減: すべてのデータを1つのストレージシステムに保存することなく、軽量な関連付け分析を実行できます。
  • 高効率: SQL文を使用して、数秒以内にデータを分析し、分析結果を表示できます。 よく照会される分析結果に基づいてグラフを作成することもできます。 次に、グラフをクリックして分析結果を表示できます。

手順

  1. CSVファイルを作成し、OSSバケットにアップロードします。
    1. user.csvという名前のファイルを作成します。
      userid, ニック, 性別, 州, 年齢
      1、ユーザーA、男性、上海、18
      2、ユーザーB、女性、浙江省、19
      3、ユーザーC、男性、広東省、18
    2. user.csvファイルをOSSバケットにアップロードします。 詳細については、「オブジェクトのアップロード」をご参照ください。
  2. Log Service コンソールにログインします。
  3. [プロジェクト] セクションで、表示するプロジェクト名をクリックします。
  4. [ログストレージ] > [Logstore] を選択します。 [Logstore] タブで、表示する Logstore をクリックします。
  5. 表示されたページで、検索ボックスにクエリステートメントを入力し、[検索と分析] をクリックします。
    次のSQL文を実行して、user_meta1という名前の仮想外部テーブルを作成し、そのテーブルをOSSオブジェクトuser.csvにマップします。 If結果出力は、SQLステートメントが正常に実行されると、と外部店作成されます。
    * | 作成テーブルuser_meta1 ( userid bigint、ニックvarchar、性別varchar、省varchar、年齢bigint) (エンドポイント=' oss-cn-hangzhou.aliyuncs.com ' 、accessid=' LTAI5t8y9c113M7V * * * *' 、accesskey=' Y45H7bqvvgapWZR * * * * ' 、バケット=' testoss' 、オブジェクト=ARRAY[' user.csv '] 、タイプ='oss')
    外部ストア
    SQL文で外部ストアの名前とテーブルスキーマを定義し、WITH句でOSSオブジェクトにアクセスするために必要な情報を定義します。 次の表は、各パラメーターの説明です。
    項目説明例:
    External店舗名外部ストアの名前。仮想外部テーブルの名前と同じです。 user_meta1
    テーブルのスキーマThe特性の仮想外部テーブル、含む列名とデータタイプ。 この例では、(userid bigint, nick varchar, gender varchar, province varchar, age bigint) と入力します。 (userid bigint、nick varchar、gender varchar、province varchar、age bigint)
    エンドポイントOSSの内部エンドポイント。 詳細については、「リージョンとエンドポイント」をご参照ください。 oss-cn-hangzhou.aliyuncs.com
    accessidご利用中のアカウントの Access Key ID を設定します。 詳細については、「AccessKey ペア」をご参照ください。 LTAI5t8y9c113M7V ****
    accesskeyご利用中のアカウントの Access Key secret を設定します。 詳細については、「AccessKey ペア」をご参照ください。 Y45H7bqvvgapWZR ****
    バケットCSVオブジェクトが保存されているOSSバケット。 testoss
    オブジェクトCSVオブジェクトのパス。
    説明 objectsパラメーターの値は配列です。 アレイは、複数の要素を含むことができる。 各要素はOSSオブジェクトを表します。
    user.csv
    タイプ外部ストアのタイプ。 Set値にossoss
  6. 外部ストアが作成されているかどうかを確認します。
    次のステートメントを実行します。 定義したテーブルコンテンツが返されると、外部ストアが作成されます。 user_meta1は外部ストアの名前です。 このパラメーターは、ビジネス要件に基づいて設定できます。
    * | select * from user_meta1
    チェック結果
  7. Log ServiceとOSSでJOINクエリを実行します。
    次のステートメントを実行してJOINクエリを実行します。 Logstoreは、LogstoreのIDフィールドとOSSオブジェクトのuseridフィールドに基づいてOSSオブジェクトに関連付けられます。 test_accesslogはLogstoreの名前です。 lはLogstoreのエイリアスです。 user_meta1は、定義する外部ストアの名前です。 ビジネス要件に基づいてパラメーターを設定できます。
    * | select * from test_accesslog l join user_meta1 u o n l.us erid = u.userid
    例:
    • さまざまな性別のユーザーからのアクセス要求を分析します。
      * | select u.gender, count (1) from test_accesslog l join user_meta1 u o n l.us erid = u.userid group by u.gender
      性別固有のアクセス統計
    • さまざまな年齢のユーザーからのアクセス要求を分析します。
      * | select u.age, count(1) from test_accesslog l join user_meta1 u o n l.us erid = u.userid group by u.age
      年齢別のアクセス統計
    • さまざまな年齢のユーザーのさまざまな時間範囲のアクセス傾向を分析します。
      * | select date_trunc('minute',__ time__) as minute, count(1) ,u.age from test_accesslog l join user_meta1 u o n l.us erid = u.userid group by u.age,minute
      時間固有のアクセス統計