目录

一. 使用说明

1. 导入

import "github.com/volcengine/datafinder-sdk-openapi-go/dslcontent"

2. dsl样例以及说明

a. 事件查询).

                Query( //查询指标名称, 每个Query表示的是并列关系,Query()方法里面的表示顺序关系  //dslcontent.Show()返回*QueryBuilder
                    dslcontent.Show("A", "A"). //dslcontent.Show()返回*QueryBuilder
                                    Group("app_name").
                                    GroupV2("os_name", "common_param").
                                    EventWithoutEventId("origin", "predefin
import "github.com/volcengine/datafinder-sdk-openapi-go/dslcontent"

//方法返回事件查询的示例DSL
func GetEventDSL() dslcontent.DSL {
    builder := dslcontent.EventBuilder()
    return builder.
        AppID(xxx).  // AppIDs()支持传入多个AppID
        RangePeriod("day", 1562688000, 1563206400, false).
        RangePeriod("hour", 1562688000, 1563206400, false).
        ProfileGroup("app_channel").  // 公共属性分组指标
        ProfileGroupV2("os_name", "common_param").  // 公共属性分组的指标,如果设置了ProfileGroup,以其中的内容优先
        SkipCache(false).
        Tags(map[string]interface{}{
            "contains_today": 0,
            "show_yesterday": 0,
            "series_type":    "line",
            "show_map":       map[string]string{},
        }).
        AndProfileFilter(
            dslcontent.IntExprProfile("user_is_new", "=", []int{0}).
                // IntExprProfile() 默认的operationType="profile",value支持int string slice,或者基本数组类型值
                Show("老用户", "1")).
        AndProfileFilter(
            dslcontent.StringExprProfile("language", "=", []string{"zj_CN", "zh_cn"}).
                StringExprProfile("age", "!=", []int{20}).
                Show("zh_CN, zh_cn; not(20)", "2")e_pageview", "pv"). //Event()可以输入EventId
                            MeasureInfo("pct", "event_index", 100).
                            AndFilter(
                    dslcontent.StringExprProfile("os_name", "=", []string{"windows"}).
                        StringExprProfile("network_type", "!=", []string{"wifi"}).
                        Show("referer", "referrer_label"))).
        Query(
            dslcontent.Show("B", "B").
                Group("app_name").  // Groups()支持传入string列表
                GroupV2("os_name", "common_param"),   // 查询分组信息,如果设置了Group则以其内容优先。
                EventWithoutEventId("origin", "page_open", "pv").
                AndFilter(
                    dslcontent.EmptyExpr().
                        Show("app_id", "app_id_label"))).
        BuildDSL()
}

b. 转换查询

import "github.com/volcengine/datafinder-sdk-openapi-go/dslcontent"

//方法返回的是转换查询的DSL
func GetFunnelDSL() dslcontent.DSL {
   builder := dslcontent.FunnelBuilder()
   return builder.AppID(xxx).RangePeriod("day", 1560268800, 1562774400, false).Group("os_name").
      Page(10, 2).
      Window("day", 10).
      SkipCache(false).
      AndProfileFilter(dslcontent.IntExprProfile("user_is_new", "=", []int{0}).
         StringExprProfile("network_type", "!=", []string{"4g", "3g"}).
         Show("1", "老用户; not(4g, 3g)")).
      QueryList([]*dslcontent.QueryBuilder{   //QueryList(qbs []*QueryBuilder)接收指针,定义QueryBuilder指针数组
         dslcontent.Show("1", "查询1").
            Sample(100).
            EventWithoutEventId("origin", "play_time", "pv").
            AndFilter(dslcontent.StringExprProfile("os_name", "=", []string{"windows"}).
               Show("referer_label", "referrer")),
         dslcontent.Show("2", "查询2").
            Sample(100).
            EventWithoutEventId("origin", "app_launch", "pv")}).
      BuildDSL()
}

c. 生命周期查询

import "github.com/volcengine/datafinder-sdk-openapi-go/dslcontent"

//方法返回生命周期查询的示例DSL
func GetLifeCycleDSL() dslcontent.DSL {
   builder := dslcontent.LifeCycleBuilder()
   return builder.AppID(xxx).
      RangePeriod("day", 1561910400, 1562428800, false).
      Page(10, 2).
      Window("day", 1).SkipCache(false).
      Tags(map[string]interface{}{
         "series_type":           "line",
         "contains_today":        0,
         "metrics_type":          "number",
         "disabled_in_dashboard": true,
      }).
      AndProfileFilter(
         dslcontent.StringExprProfile("custom_mp_platform", "=", []int{2}).
            StringExprProfile("app_channel", "in", []string{"alibaba", "baidu"}).
            Show("1", "全体用户")).
      Query(dslcontent.Show("active_user", "active_user").
         Sample(100).EventWithoutEventId("origin", "app_launch", "pv")).
      BuildDSL()
}

d. 用户路径查询

import "github.com/volcengine/datafinder-sdk-openapi-go/dslcontent"

//方法返回用户路径查询的示例DSL
func GetPathFinderDSL() dslcontent.DSL {
    builder := dslcontent.PathFindBuilder()
    return builder.AppID(xxx).
        RangePeriod("day", 1563120000, 1563638400, false).
        Page(10, 2).
        Window("minute", 10).
        SkipCache(false).
        IsStack(false).
        AndProfileFilter(
            dslcontent.StringExprProfile("os_name", "in", []string{"android", "ios"}).
                StringExprProfile("network_type", "in", []string{"wifi", "4g"}).
                Show("1", "android, ios; wifi, 4g")).
        QueryList([]*dslcontent.QueryBuilder{  //QueryList(qbs []*QueryBuilder)接收指针,定义QueryBuilder指针数组
            dslcontent.Show("1", "查询1").
                Sample(100).
                EventWithTypeAndName("origin", "app_launch").
                AndFilter(dslcontent.EmptyExpr().Show("1", "全体用户")),
            dslcontent.Show("2", "查询2").
                Sample(100).
                EventWithTypeAndName("origin", "register").
                AndFilter(dslcontent.EmptyExpr().Show("1", "全体用户")),
            dslcontent.Show("3", "查询3").
                Sample(100).
                EventWithTypeAndName("origin", "register").
                AndFilter(dslcontent.EmptyExpr().Show("1", "全体用户")),
        }).BuildDSL()
}

e. 留存查询

import "github.com/volcengine/datafinder-sdk-openapi-go/dslcontent"

//方法返回留存查询的示例DSL
func GetRetentionDSL() dslcontent.DSL {
   builder := dslcontent.RetentionBuilder()
   return builder.AppID(xxx).
      RangePeriod("day", 1561910400, 1563033600, false).
      Page(10, 2).
      Group("network_type").
      Window("day", 30).
      SkipCache(false).
      IsStack(false).
      Tags(map[string]interface{}{
         "retention_from": "custom",
         "series_type":    "table",
      }).
      AndProfileFilter(dslcontent.IntExprProfile("user_is_new", "=", []int{0}).
         Show("1", "老用户")).
      QueryList(
         []*dslcontent.QueryBuilder{
            dslcontent.Show("first", "起始事件").
               EventWithoutEventId("origin", "page_open", "pv").
               AndFilter(
                  dslcontent.StringExprProfile("os_name", "=", []string{"windows", "mac", "ios"}).
                     StringExprProfile("network_type", "!=", []string{"4g"}).
                     Show("os_name_label", "os_name,network_type")),
            dslcontent.Show("return", "回访事件").
               EventWithTypeAndName("origin", "any_event").
               AndFilter(dslcontent.StringExprProfile("os_name", "=", []string{"windows", "mac"}).
                  StringExprProfile("os_name", "=", []string{"Chrome", "Internet Explore"}).
                  Show("1", "全体用户"))}).
      BuildDSL()

}

f. WEB SESSION查询

import "github.com/volcengine/datafinder-sdk-openapi-go/dslcontent"

//方法返回web session查询的示例DSL
func GetWebDSL() dslcontent.DSL {
   builder := dslcontent.WebBuilder()
   return builder.AppID(xxx).
      RangePeriod("day", 1562774400, 1563292800, false).
      Page(10, 2).
      ProfileGroup("browser").
      Web("first", 1200).
      SkipCache(false).
      IsStack(false).
      Tags(map[string]interface{}{
         "contains_today": 0,
         "series_type":    "line",
      }).AndProfileFilter(
      dslcontent.StringExprProfile("os_name", "=", []string{"windows", "android"}).
         Show("1", "操作系统")).
      QueryList([]*dslcontent.QueryBuilder{
         dslcontent.Show("session_count", "会话数").
            Sample(100).
            EventWithoutEventId("origin", "predefine_pageview", "session_count").
            AndFilter(dslcontent.EmptyExpr().Show("1", "source")),
         dslcontent.Show("average_session_duration", "平均会话时长").
            EventWithoutEventId("origin", "predefine_pageview", "average_session_duration").
            AndFilter(dslcontent.EmptyExpr().Show("1", "source")),
         dslcontent.Show("bounce_rate", "跳出率").
            EventWithoutEventId("origin", "predefine_pageview", "bounce_rate").
            AndFilter(dslcontent.EmptyExpr().Show("1", "source")),
         dslcontent.Show("average_session_depth", "平均会话深度").
            EventWithoutEventId("origin", "predefine_pageview", "average_session_depth").
            AndFilter(dslcontent.EmptyExpr().Show("1", "source")),
      }).BuildDSL()
}

g. topk查询

import "github.com/volcengine/datafinder-sdk-openapi-go/dslcontent"

//方法返回topK查询的示例DSL
func GetTopKDSL() dslcontent.DSL {
   builder := dslcontent.TopKBuilder()
   return builder.AppID(xxx).
      RangePeriod("day", 1563379200, 1563897600, false).
      OrderAsc("app_version").
      Page(10, 2).
      SkipCache(true).
      Tags(map[string]interface{}{
         "contains_today": 0,
         "show_yesterday": 0,
         "series_type":    "line",
         "show_map":       map[string]string{},
      }).
      AndProfileFilter(dslcontent.IntExprProfile("ab_version", "=", []int{1}).
         IntExprProfile("user_is_new", "=", []int{0}).
         Show("B", "新用户")).
      Query(dslcontent.Show("A", "查询A").
         Sample(100).
         EventWithoutEventId("origin", "predefine_pageview", "pv").
         MeasureInfo("pct", "event_index", 100).
         AndFilter(dslcontent.StringExpr("referrer", "=", "event_param", []string{"http://www.baidu.com", "http://www.bytedance.com"}).
            Show("referer_label", "referer"))).
      BuildDSL()
}

二:dsl client 使用说明

1. 导入

import "github.com/volcengine/datafinder-sdk-openapi-go/dslcontent"

2. 使用方式

参考 example_by_sdk.go

var (
   ak = "***"
   sk = "***"
)

//如果需要指定url: client:= dslcontent.NewRangersClientWithUrl(ak,sk,url)
    client := dslcontent.NewRangersClient(ak, sk)
    res, err := client.DataRangers("/openapi/v1/xxx/date/2020-05-03/2020-05-09/downloads", "get")
    if err != nil {
        fmt.Println(err)
        return
    }
    data, err := ioutil.ReadAll(res.Body)
    fmt.Println(err, string(data))
关于
96.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802032778号