日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

關聯Logstore與MySQL數據庫進行查詢分析

本文以游戲公司數據分析場景為例,介紹日志服務Logstore與MySQL數據庫關聯分析功能。

前提條件

背景信息

某游戲公司,主要包括兩大類數據:用戶游戲日志數據和用戶元數據。日志服務可實時采集用戶游戲日志數據,包括操作、目標、血、魔法值、網絡、支付手段、點擊位置、狀態碼、用戶ID等信息。然而用戶元數據,包括用戶的性別、注冊時間、地域等信息,不能打印到日志中,所以一般存儲到數據庫中。現在該公司希望將用戶游戲日志與用戶元數據進行聯合分析,獲得最佳的游戲運營方案。

針對上述需求,日志服務查詢分析引擎,提供Logstore和外部數據源(ExternalStore,例如MySQL數據庫、OSS等)聯合查詢分析功能。您可以使用SQL的JOIN語法把用戶游戲日志和用戶元數據關聯起來,分析與用戶屬性相關的指標。除此之外,您還可以將計算結果直接寫入外部數據源中,便于結果的進一步處理。背景信息

操作步驟

  1. 在MySQL數據庫中,創建用戶屬性表。

    創建一張名為join_meta的數據表,用于保存用戶ID、昵稱、性別、年齡、注冊時間、賬戶余額和注冊地域。

    CREATE TABLE `join_meta` ( 
      `uid` int(11) NOT NULL DEFAULT '0', 
      `user_nick` text, 
      `gender` tinyint(1) DEFAULT NULL, 
      `age` int(11) DEFAULT NULL, 
      `register_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
      `balance` float DEFAULT NULL, 
      `region` text, PRIMARY KEY (`uid`) 
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8
  2. 添加白名單。

    • 如果是RDS MySQL數據庫,需添加白名單地址100.104.0.0/16、11.194.0.0/16和11.201.0.0/16。更多信息,請參見設置IP白名單

    • 如果是專有網絡下ECS上自建的MySQL數據庫且ECS上設置了安全組,需設置安全組規則,允許100.104.0.0/16、11.194.0.0/16和11.201.0.0/16網段訪問。具體操作,請參見添加安全組規則

  3. 創建ExternalStore。

    1. 安裝日志服務CLI。更多信息,請參見CLI概述

    2. 創建配置文件/home/config.json

    3. /home/config.json文件中添加如下腳本,并根據實際情況替換參數配置。

      {
          "externalStoreName":"sls_join_meta_store",
          "storeType":"rds-vpc",
          "parameter":{
              "region":"cn-qingdao",
              "vpc-id":"vpc-m5eq4irc1pucp*******",
              "host":"localhost",
              "port":"3306",
              "username":"user",
              "password":"****",
              "db":"scmc",
              "table":"join_meta"
          }
      }

      參數

      說明

      externalStoreName

      ExternalStore名稱,必須小寫。

      storeType

      數據源類型,固定為rds-vpc。

      region

      地域。詳細說明如下:

      • 如果是RDS MySQL數據庫,則配置region為RDS實例所在地域。

      • 如果是專有網絡下ECS上自建的MySQL數據庫,則配置region為ECS實例所在地域。

      重要

      RDS實例或ECS實例必須與日志服務Project處于同一地域。

      vpc-id

      VPC ID。詳細說明如下:

      • 如果是專有網絡下的RDS MySQL數據庫,則配置vpc-id為RDS實例所屬專有網絡的ID。

      • 如果是專有網絡下的ADB MySQL數據庫,則配置vpc-id為ADB實例所屬專有網絡的ID。

      • 如果是專有網絡下ECS上自建的MySQL數據庫,則配置vpc-id為ECS實例所屬專有網絡的ID。

      • 如果數據庫host可以通過公網訪問,則vpc-id無需提供

      host

      數據庫地址。詳細說明如下:

      • 如果是專有網絡下的RDS MySQL數據庫,則配置host為RDS實例的內網地址(內網域名或內網IP地址)。

      • 如果是專有網絡下的ADB MySQL數據庫,則配置host為ADB實例的內網地址(內網域名或內網IP地址)。

      • 如果是專有網絡下ECS上自建的MySQL數據庫,則配置host為ECS的私網IP地址。

      • 如果數據庫通過公網可以訪問,則配置對應的公網域名或公網IP地址。

      port

      端口號。詳細說明如下:

      • 如果是RDS MySQL數據庫,則配置port為RDS實例的端口號。

      • 如果是專有網絡下ECS上自建的MySQL數據庫,則配置port為ECS上MySQL的服務端口。

      username

      數據庫用戶名。

      password

      數據庫密碼。

      db

      數據庫。

      table

      數據庫表。

    4. 創建ExternalStore。

      其中project_name為日志服務Project名稱,請根據實際情況替換。

      aliyunlog log create_external_store --project_name="log-rds-demo" --config="file://./home/config.json" 
    5. 查詢ExternalStore信息

      命令執行成功后,無響應消息。您可以執行aliyunlog log get_external_store --project_name="log-rds-demo" --store_name="sls_join_meta_store" --format-output=json查詢RDS MySQL外部數據源詳細信息。

      {
       "externalStoreName": "sls_join_meta_store",
       "parameter": {
       "db": "scmc",
       "host": "rm-bp1******rm76.mysql.rds.aliyuncs.com",
       "instance-id": "",
       "port": "3306",
       "region": "cn-qingdao",
       "table": "join_meta",
       "timezone": "",
       "username": "user",
       "vpc-id": "vpc-m5eq4irc1pucp*******"
       },
       "storeType": "rds-vpc"
      }
  4. 使用JOIN語法進行聯合查詢分析。

    1. 登錄日志服務控制臺

    2. 在Project列表區域,單擊目標Project。

    3. 日志存儲 > 日志庫頁簽中,單擊目標Logstore。

    4. 執行查詢分析語句。

      指定日志中的userid字段和數據庫表中的uid字段關聯Logstore和MySQL數據庫。

      • 分析活躍用戶的性別分布。

        * | 
        select 
          case gender when 1 then '男性' else '女性' end as gender, 
          count(1) as pv 
        from log l join sls_join_meta_store u on l.userid = u.uid 
        group by gender 
        order by pv desc

        關聯分析

      • 分析不同地域活躍度。

        * | 
        select region , count(1) as pv 
        from log l join sls_join_meta_store u on l.userid = u.uid 
        group by region 
        order by pv desc

        活躍度

      • 分析不同性別的消費情況。

        * | 
        select 
          case gender when 1 then '男性' else '女性' end as gender, 
          sum(money) as money 
        from log l join sls_join_meta_store u on l.userid = u.uid 
        group by gender 
        order by money desc
  5. 保存查詢分析結果到MySQL數據庫中。

    1. 在MySQL數據庫中,創建名為report的數據表,該表存儲每分鐘的PV值。

      CREATE TABLE `report` ( 
        `minute` bigint(20) DEFAULT NULL, 
        `pv` bigint(20) DEFAULT NULL 
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8
    2. 參見步驟3為report表創建ExternalStore。

    3. 在日志服務Logstore的查詢分析頁面中,執行如下查詢語句將分析結果保存到report表,其中sls_report_store對應的是sls的外表名稱。

      * | insert into sls_report_store select __time__- __time__ % 300 as min, count(1) as pv group by min

      保存成功后,您可以在MySQL數據庫中查看保存結果。SQL結果