keen-cli, 用于avid的命令行 接口

分享于 

15分钟阅读

GitHub

  繁體 雙語
A command line interface for Keen IO
  • 源代码名称:keen-cli
  • 源代码网址:http://www.github.com/keen/keen-cli
  • keen-cli源代码文档
  • keen-cli源代码下载
  • Git URL:
    git://www.github.com/keen/keen-cli.git
    Git Clone代码到本地:
    git clone http://www.github.com/keen/keen-cli
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/keen/keen-cli
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    cli

    Build Status

    面向Keen分析API的命令行 接口。

    社区支持 SDK

    这是一个的非官方社区支持 SDK。 如果发现任何问题或者有请求,请发布一个问题。

    安装

    avid是用 ruby 构建的,所以你需要使用 ruby 1.9 + 环境来使用它。 你可以在这里找到 ruby 安装指令

    安装 gem:

    $ gem install keen-cli

    通过运行 keen 命令验证命令是否在路径中。 你应该可以看到有关可用命令的信息。

    
    $ keen
    
    
    Commands:
    
    
     keen average # Alias for queries:run -a average
    
    
     keen collections:delete # Delete events from a collection
    
    
     keen count # Alias for queries:run -a count
    
    
     keen count-unique # Alias for queries:run -a count_unique
    
    
     keen docs # Open the full Keen IO documentation in a browser
    
    
     keen events:add # Add one or more events and print the result
    
    
     keen extraction # Alias for queries:run -a extraction
    
    
     keen help [COMMAND] # Describe available commands or one specific command
    
    
     keen maximum # Alias for queries:run -a maximum
    
    
     keen median # Alias for queries:run -a median
    
    
     keen minimum # Alias for queries:run -a minimum
    
    
     keen percentile # Alias for queries:run -a percentile
    
    
     keen projects:collections # Print information about a project's collections
    
    
     keen projects:describe # Print information about a project
    
    
     keen projects:open # Open a project's overview page in a browser
    
    
     keen projects:workbench # Open a project's workbench page in a browser
    
    
     keen queries:run # Run a query and print the result
    
    
     keen queries:url # Print the URL for a query
    
    
     keen select-unique # Alias for queries:run -a select_unique
    
    
     keen sum # Alias for queries:run -a sum
    
    
     keen version # Print the keen-cli version
    
    
    
    

    如果 keen 无法找到,你的ruby 安装可能会出现问题。 在这种情况下,请查看 rbenv。 如果你已经使用 rbenvkeen 仍然无法找到在安装后运行 rbenv rehash

    环境配置

    大多数keen命令需要一个项目和一个或者多个API键来执行有意义的操作。 默认情况下,keen尝试在进程环境或者当前目录中的.env 文件中查找这些文件。 这与 keen使用的heuristic和基于dotenv的启发式heuristic相同。

    .env 文件的示例如下所示:

    
    KEEN_PROJECT_ID=aaaaaaaaaaaaaaa
    
    
    KEEN_MASTER_KEY=xxxxxxxxxxxxxxx
    
    
    KEEN_WRITE_KEY=yyyyyyyyyyyyyyy
    
    
    KEEN_READ_KEY=zzzzzzzzzzzzzzz
    
    
    
    

    如果在使用这个. env 文件的目录中运行 keen,则它将假定上下文中的项目是由 KEEN_PROJECT_ID 指定的。

    要覆盖项目上下文,请使用 --project 选项:

    $ keen projects:describe --project XXXXXXXXXXXXXXX

    类似的替代可以用于 specifiying API键: --master-key--read-key--write-key

    例如:

    $ keen projects:describe --project XXXXXXXXXXXXXXX --master-key AAAAAAAAAAAAAA

    还存在较短的别名: 项目的-p,主键 -k,读取键的-r,以及用于写密钥的-w

    $ keen projects:describe -p XXXXXXXXXXXXXXX -k AAAAAAAAAAAAAA

    用法

    强烈的cli具有各种命令,而且大多数都是名称空间。

    项目
    • projects:open - 在浏览器中打开项目概述页
    • projects:workbench - 在浏览器中打开项目工作台页面
    • projects:describe - 获取有关项目的数据。 使用项目行资源
    • projects:collections - 获取有关项目集合的架构信息。 使用事件资源管理器。
    集合
    • collections:delete - 删除集合。 将筛选器和时间段作为选项。 需要确认通过 --force 跳过,但要小心:)
    事件

    events:add - 添加事件。

    参数:

    • --collection-c: 要将事件添加到的集合。 或者,如果你经常使用相同的集合,则可以在环境中设置 KEEN_COLLECTION_NAME
    • --batch-size: 发布到avid的事件的批次大小,默认为 1000.

    输入源参数:

    • --data-d: 在 命令行 上传递事件主体。 一定要在必要时使用引号。
    • --file-f: 包含事件的文件的NAME。

    你也可以通过 STDIN 传递输入。

    如果未指定,则假定来自任何源的数据格式都是换行符 JSON。 支持CSV和查询字符串,如输入。 关联的参数:

    • --csv: 指定CSV格式第一行必须包含列名。 包含 .的列名( 如 keen.timestamp ) 将转换为嵌套属性。
    • --params: 指定"Params"格式参数格式类似 property1=value1&property2=value 等等.

    各种示例:

    # add an empty event$ keen events:add --collection signups# use the shorter form of collection$ keen events:add -c signups# add a blank event to a collection specified by the environment:$ KEEN_COLLECTION_NAME=signups keen events:add# add an event from JSON using the --data parameter$ keen events:add -c signups --data "{ "username" : "dzello", "city": "San Francisco" }"# add an event from key value pairs using the --params parameter$ keen events:add -c signups --data "username=dzello&city=SF" --params# add events from a file that contains newline delimited json:# {"username" :"dzello","city" :"San Francisco" }# {"username" :"KarlTheFog","city" :"San Francisco" }# {"username" :"polarvortex","city" :"Chicago" }$ keen events:add -c signups --file events.json# add events from a file that contains an array of JSON objects# [{"apple" :"sauce" }, {"banana" :"pudding" }, {"cherry" :"pie" }]$ keen events:add -c signups --file events.json# add events from a file in CSV format. the first row must be column names:# username, city# dzello, San Francisco# KarlTheFog, San Francisco# polarvortex, Chicago$ keen events:add -c signups --file events.csv --csv# pipe in an event as JSON$ echo"{ "username" : "dzello", "city": "San Francisco" }"| keen events:add -c signups# pipe in multiple events as newline-delimited JSON$ cat events.json | keen events:add -c signups

    注释:

    • 在上传之前,keen.idkeen.created_at 属性会自动从事件中删除。 API生成这些属性,它将拒绝客户。 自动删除使得导出&的场景更加容易。
    查询

    queries:run - 运行查询并打印结果

    参数:

    • --collection-c: - 要查询的集合。 也可以通过 KEEN_COLLECTION_NAME 在环境中设置。
    • --analysis-type-a: 查询的分析类型。 仅在不使用查询命令别名时才需要。
    • --group-by-g: 查询的GROUP BY。 支持多个用逗号分隔的字段。
    • --target-property-y: 查询的目标属性。
    • --timeframe-t: 相对时间段,比如 last_60_minutes
    • --start-s: 绝对时间周期的开始时间。
    • --end-e: 绝对时间周期的结束时间。
    • --interval-i: 序列查询的间隔。
    • --filters-f: 查询的一组过滤器,作为JSON传递。
    • --percentile: 百分比值( 比如。 99 ) 用于百分比查询。
    • --property-names: 一个逗号分隔的属性名称列表。 仅提取。
    • --latest: 要检索的最新事件数。 仅提取。
    • --email: 通过电子邮件异步发送提取结果。 仅提取。
    • --spark: 为 spark ▁▂▃▅▇输出输出。 需要间隔和时间段字段。 将这里标志和管道输出设置为 spark 以可视化输出。

    输入源参数:

    • --data-d: 指定查询参数为JSON而不是查询参数。

    你也可以通过 STDIN 传递输入。

    一些示例:

    # run a count$ keen queries:run --collection signups --analysis-type count --timeframe this_14_days
    {
     "result": 1000
    }# run a count with collection name from. env# KEEN_COLLECTION_NAME=signups$ keen queries:run --analysis-type count --timeframe this_14_days
    {
     "result": 1000
    }# run a count with a group by$ keen queries:run --collection signups --analysis-type count --group-by username --timeframe this_14_days
    {
     "result": [
     {
     "username": "dzello",
     "result": 1000
     }
     ]
    }# run a query with a timeframe, target property, group by, and interval$ keen queries:run --collection signups --analysis-type count_unique --target-property age --group-by source --timeframe previous_24_hours --interval hourly
    {
     "result": [
     {
     "timeframe": {
     "start": "2014-06-27T01:00:00.000Z",
     "end": "2014-06-27T02:00:00.000Z" },
     "value": [
    . . .
     ]
     }
     }
    }# run a query with an absolute timeframe$ keen queries:run --analysis-type count --start 2014-07-01T00:00:00Z --end 2014-07-31T23:59:59Z
    {
     "result": 1000
    }# run an extraction with specific property names$ keen queries:run --collection minecraft-deaths --analysis-type extraction --property-names player,enemy --timeframe this_14_days
    {
     "result": [
     {
     "player": "dzello",
     "enemy": "creeper" },
     {
     "player": "dkador",
     "enemy": "creeper" }
     ]
    }# run a query using JSON to specify parameters$ echo"{ "event_collection" : "minecraft-deaths", "target_property": "level", "timeframe": "this_14_days" }"| keen queries:run -a average
    {
     "result": 2
    }

    查询URL生成

    运行不带参数的keen 以查看别名的完整列表。

    queries:url - 生成查询的URL,但不运行它。

    同样的参数也适用于 queries:run,除了一个额外的参数。

    • --exclude-api-key: 防止将API键查询参数包含在输出中

    查询别名

    对于每种类型的分析( 比如。 计数,平均值,提取,等等 ) 有一个别名,可以使用,而不是 queries:run。 命令 NAME 只是分析的类型,使用破折号来分隔单词。 下面是几个示例:

    $ keen count -c logins
    1000
    $ keen minimum -c cpu-checks -y iowait
    0.17

    全局参数

    适用于大多数命令的参数包括:

    • --pretty: 美化API响应 JSON。 默认为 true,设置 --pretty=false 以防止
    • --silent: 停止输出默认为 false。

    变更日志

    • 0.2.3 - 带 keen.created_atkeen.id的事件要添加。
    • 0.2.2 - 返回查询的完整 API JSON响应。
    • 0.2.1 - 添加 collections:delete 命令。
    • 0.1.9 - 支持json编码的过滤器和逗号分离多个 GROUP BY。
    • 0.1.8 - 输入的行也可以是JSON对象的数组。 --batch-size 参数现在已经正确识别。
    • 0.1.7 - 添加文档命令。
    • 0.1.6 - 大重构使导入事件更加清晰,批处理自动发生。 也添加 queries:url
    • 0.1.5 - 支持从具有 --file的文件中添加事件。 可以选择使用 --csv 从CSV添加。
    • 0.1.4 - 通过 --start--end 标志支持绝对时间。
    • 0.1.3 - 通过JSON添加查询。 添加查询别名。添加对提取字段的支持。
    • 0.1.2 - 将 project:show 更改为 project:describe
    • 0.1.1 - 添加 project:collections
    • 0.1.0 - 初始版本。

    敏锐的cli是开源的,贡献非常欢迎 !

    运行以下测试:

    
    $ bundle exec rake spec
    
    
    
    

    COM  INT  COMM  Comma  接口  命令行  
    相关文章