一部のシナリオでは、外部テーブルを使用してログをクエリおよび分析する必要があります。 このトピックでは、LogstoreをObject Storage Service (OSS) 外部テーブルに関連付けてクエリと分析を実行する方法について説明します。
始める前に
このタスクについて
会社Aは電子決済会社です。 会社Aは、ユーザの年齢、地理的位置、および性別が支払いの好みに与える影響を分析したいと考えている。 A社は、Log Serviceを使用して支払い行動ログを収集し、ユーザープロパティ情報をOSSバケットに保存しています。 支払い動作ログには、請求書と支払い方法が含まれます。 ユーザプロパティ情報は、ユーザに関する地理的位置、年齢、および性別情報を含む。 Log Serviceのクエリと分析エンジンを使用すると、Logstoreを外部ストアに関連付けてクエリと分析を実行できます。 外部ストアには、MySQLデータベースとOSSバケットが含まれます。 ユーザープロパティに関連するメトリックを分析するには、SQL JOIN構文を使用して支払い動作ログをユーザープロパティ情報に関連付けることができます。
Log ServiceをOSSバケットに関連付けてクエリと分析を実行すると、次のメリットが得られます。
- 費用対効果: 更新頻度の低いデータをOSSバケットに保存すると、内部ネットワーク経由でデータを読み取ることができます。 この場合、ストレージサービスの料金のみを支払う必要があり、インターネットトラフィックの料金はかかりません。
- O&Mワークロードの削減: すべてのデータを1つのストレージシステムに保存することなく、軽量な関連付け分析を実行できます。
- 高効率: SQL文を使用して、数秒以内にデータを分析し、分析結果を表示できます。 よく照会される分析結果に基づいてグラフを作成することもできます。 次に、グラフをクリックして分析結果を表示できます。
手順
- CSVファイルを作成し、OSSバケットにアップロードします。
- Log Service コンソールにログインします。
- [プロジェクト] セクションで、表示するプロジェクト名をクリックします。
- を選択します。 [Logstore] タブで、表示する Logstore をクリックします。
- 表示されたページで、検索ボックスにクエリステートメントを入力し、[検索と分析] をクリックします。 次の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値にoss。 oss - 外部ストアが作成されているかどうかを確認します。 次のステートメントを実行します。 定義したテーブルコンテンツが返されると、外部ストアが作成されます。 user_meta1は外部ストアの名前です。 このパラメーターは、ビジネス要件に基づいて設定できます。
* | select * from user_meta1
- 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
- さまざまな性別のユーザーからのアクセス要求を分析します。