このトピックでは、Logstore およびマネージド CSV ファイルからデータを分析するためのフェデレーテッドクエリの実行方法について説明します。
前提条件
-
ログが収集されました。詳細については、「データ収集」をご参照ください。
-
インデックスが設定されています。詳細については、「インデックスの作成」をご参照ください。
-
CSVファイルが作成されます。
-
Log Service Python SDK がインストール済みである必要があります。詳細については、「Log Service Python SDK のインストール」をご参照ください。
Log Service は aliyun-log-python-sdk 0.7.3 以降をサポートしています。SDK をアップグレードするには、pip install aliyun-log-python-sdk -U コマンドを実行します。
制限事項
-
関連付け可能な CSV ファイルは 1 つだけです。
-
CSV ファイルの最大サイズは 50 MB です。SDK はファイルを Log Service にアップロードする前に圧縮します。圧縮後のファイルサイズは 9.9 MB より小さくする必要があります。
例
たとえば、Logstore を使用してユーザーのログイン操作を記録し、CSV ファイルで性別や年齢などの基本的なユーザー情報を管理できます。Logstore と CSV ファイルを関連付けることで、ユーザー属性に基づいたユーザー活動の分析が可能になります。
-
Logstore
userid:100001 action:login __time__:1637737306 -
CSV ファイル

操作手順
-
Python SDK を使用して ExternalStore を作成します。
Python SDK の詳細については、「Python SDK の概要」をご参照ください。
from aliyun.log import * endpoint='cn-shanghai.log.aliyuncs.com' accessKeyId='test-project' accessKey='TAI****YDw' project='lr****VM' ext_logstore='user_meta' csv_file='./user.csv' client = LogClient(endpoint, accessKeyId, accessKey) res = client.create_external_store(project, ExternalStoreCsvConfig(ext_logstore, csv_file, [ {"name" : "userid", "type" : "bigint"}, {"name" : "nick", "type" : "varchar"}, {"name" : "gender", "type" : "varchar"}, {"name" : "province", "type" : "varchar"}, {"name" : "age", "type" : "bigint"} ])) res.log_print()パラメーター
説明
endpoint
Log Service のサービスエンドポイントです。詳細については、「サービスエンドポイント」をご参照ください。
accessKeyId
Alibaba Cloud アカウントの AccessKey ID です。詳細については、「AccessKey ペア」をご参照ください。
警告AccessKey ペアの漏洩リスクを低減するため、RAM ユーザーの AccessKey ペアを使用することを推奨します。
accessKey
Alibaba Cloud アカウントの AccessKey シークレットです。詳細については、「AccessKey ペア」をご参照ください。
project
送信先 Logstore が配置されているプロジェクトです。
ext_logstore
ExternalStore の名前であり、仮想テーブルの名前でもあります。以下のルールに従って指定してください:
-
小文字、数字、ハイフン (-)、アンダースコア (_) のみを使用できます。
-
先頭および末尾は小文字または数字で始まり・終わります。
-
長さは 3 文字以上 63 文字以下である必要があります。
csv_file
ローカル CSV ファイルのパスおよびファイル名です。
テーブルスキーマ
仮想テーブルのスキーマ(列名およびデータの型を含む)です。以下のコードはサンプルです。実際のデータに合わせて値を変更してください。
[ {"name" : "userid", "type" : "bigint"}, {"name" : "nick", "type" : "varchar"}, {"name" : "gender", "type" : "varchar"}, {"name" : "province", "type" : "varchar"}, {"name" : "age", "type" : "bigint"} ] -
Simple Log Service コンソール にログインします。
「プロジェクト」セクションで、対象のプロジェクトをクリックします。

タブで、対象の Logstore をクリックします。

-
ExternalStore の作成を確認します。
ここでは、
user_metaが ExternalStore の名前です。実際の名前に置き換えてください。* | SELECT * FROM user_metaクエリ結果として CSV ファイルの内容が返された場合、ExternalStore の作成が正常に完了したことを確認できます。

-
Logstore と CSV ファイルを結合します。
この例では、Logstore の userid フィールドと CSV ファイルの userid フィールドを使用してフェデレーテッドクエリを作成します。ここで、
website_logは Logstore の名前、user_metaは定義した ExternalStore の名前です。実際の値に置き換えてください。* | SELECT * FROM website_log JOIN user_meta ON website_log.userid = user_meta.userid