Log Serviceでは、JOIN構文を使用してLogstoreおよびMySQLデータベースからデータを照会できます。 クエリ結果はデータベースに保存されます。

始める前に

An外部店作成されます。 詳細については、「外部 MySQL ストレージ」をご参照ください。

手順

  1. Log Service コンソールにログインします。
  2. [プロジェクト] セクションで、表示するプロジェクト名をクリックします。
  3. [ログストレージ] > [Logstore] を選択します。 [Logstore] タブで、表示する Logstore をクリックします。
  4. クエリ文を実行します。
    Log Serviceは次のJOIN構文をサポートしています。
    [INNER ] JOIN
    左 [外] JOIN
    RIGHT [ OUTER ] JOIN
    FULL [ OUTER ] JOIN
    次のサンプルコードは、結合クエリの例を示しています。 詳細については、「LogstoreをMySQLデータベースに関連付けてクエリと分析を実行する」をご参照ください。
    メソッド: postlogstorelogs | select count(1) , histogram(logstore) from log l join join_meta m on l.projectid = cast( m.ikey as varchar)
    重要
    • JOIN構文は、LogstoreとMySQLデータベースの小さなテーブルでのみ使用できます。 小さなテーブルには20 MB未満のデータが含まれています。
    • クエリステートメントでは、Logstoreの名前がjoinキーワードの前にあり、外部ストアの名前がjoinキーワードの後にある必要があります。
    • クエリ文で外部ストアの名前を指定する必要があります。 システムがステートメントを実行すると、名前がデータベース名とテーブル名の組み合わせに置き換えられます。 テーブル名のみを入力しないでください。
  5. クエリ結果をMySQLデータベースに保存します。
    Log Service使用する挿入クエリ結果を使用してデータベースにinsert声明。 The以下サンプルコードの例を提供INSERTステートメント:
    メソッド: postlogstorelogs | method_output select cast (varchar(65535) としてメソッド) に挿入し、メソッドごとにロググループからカウント (1)

サンプルPythonスクリプト

# エンコーディング: utf-8
から__将来__輸入print_function
aliyunから。ログ輸入 *
aliyunから。ログ。util輸入base64_encodestring
ランダムから輸入randint
輸入時間
輸入os
datetimeから輸入datetime
    endpoint = os.environ.get('ALIYUN_LOG_SAMPLE_ENDPOINT', 'cn-chengdu.log.aliyuncs.com')
    accessKeyId = os.environ.get('ALIYUN_LOG_SAMPLE_ACCESSID ', '')
    accessKey = os.environ.get('ALIYUN_LOG_SAMPLE_ACCESSKEY', '')
    logstore = os.environ.get('ALIYUN_LOG_SAMPLE_LOGSTORE', '')
    project = "ali-yunlei-chengdu"
    クライアント=LogClient (エンドポイント、accessKeyId、accessKey、トークン)
    # 外部ストレージを作成 
    解像度=クライアント。create_external_store (プロジェクト、ExternalStoreConfig("rds_store" 、"地域" 、"rds-vpc" 、"vpc id" 、"Instance ID" 、"Instance IPアドレス" 、"Instanceポート" 、"Username" 、"Password" 、"Database名" 、"Table名")) 。
    res.log_print()
    # 外部ストアに関する詳細を取得します。 
    res = client.get_external_store(project,"rds_store");
    res.log_print()
    res = client.list_external_store(project,"");
    res.log_print();
    # Execute参加クエリ。 
    req = GetLogsRequest(project,logstore,From,To,"" "select count (1) from" + logstore "s join meta m on s.projectid = cast(m.ikey as varchar)");
    res = client.get_logs(req)
    res.log_print();
     # クエリ結果をMySQLデータベースに保存します。 
    req = GetLogsRequest(project,logstore,From,To,"","insert into rds_store select count(1) from" + logstore );
    res = client.get_logs(req)
    res.log_print();