使用探测信息服务创建模式的完整表示。

mozilla-schema-generator的Python项目详细描述


#Mozilla Schema Generator

用于生成Mozilla遥测ping的完整表示的库。


有关ping的更通用结构,请参见[Mozilla管道架构](https://www.github.com/mozilla services/Mozilla管道服务)
。此库采用这些通用结构,并填充
我们希望在适当位置看到的所有探测器。


[主ping](http://gecko docs.mozilla.org.s3.amazonaws.com/toolkit/components/telemetry/telemetry/data/main ping.html)
是历史上的firefox桌面ping,包含了一万多条数据。
2.[收集ping](https://github.com/mozilla/glean廑parser)是为更通用的数据收集创建的新ping类型。

此库从[探测信息服务](https://www.github.com/mozilla/probe scraper)获取这些ping中应包含的信息。

其中的模式用于与
[schema transpiler]集成(https://www.github.com/mozilla/jsonschema transpiler)。
此存储库生成的模式可以转换为avro和bigquery。它们定义了[bq sink]写入的avro和bigquery表的模式(https://www.github.com/mozilla/gcp insertion)



这个库可以通过将模式分成多个表来考虑这个限制。每个
表都有一些在每个表中重复的公共信息,然后是该表唯一的字段集。这些表的连接提供了ping中可用的完整
字段集。


要决定表拆分,我们在配置
文件中包含"table_group"配置。例如,"payload/histograms"有"table_group:histograms";这表示
将有一个只输出直方图的表。

下一个表的新字段。
例如,main_histograms_1和main_histograms_2。


注意:只有提供"-split"参数时,表才会被拆分。

生成的模式保证了
更正确,因为它们包括每个度量和探测的显式定义。

gquery):
```
mozilla schema generate main ping--split--out dir main ping
```

out dir参数将是ping的名称空间。


应用程序,对于应用程序发送的每个ping


```
mozilla schema generate glean ping
````

将架构写入目录:
`````
mozilla schema generator generate main ping--out dir main ping
```

若要查看选项的完整列表,请运行"mozilla schema generator generate glean ping--help"。


配置文件

配置文件默认位于`/config`。您还可以在运行生成器时指定自己的配置文件。

配置文件将ping的某些部分与某些类型的探测或度量匹配。配置文件的嵌套
与它正在填充的ping匹配。为了例如,glean将探测类型存储在
"metrics"键下,因此嵌套看起来如下:
```
{
"metrics":{
"string":{
<;metric-id>;:{…}
}
}
}
```

t包含特定的"metric"id>;,模式生成器会这样做。为了包含在ping的那一部分中可以找到的正确度量,
我们将对"config.yaml"文件进行如下组织:

```
度量:
字符串:
匹配:
类型:字符串
````

使用metrics、
和"type:string"的ping模式的操作确保我们只在其中放置string metrics。您可以对来自[probe info service](https://probeinfo.telemetry.mozilla.org/glean/glean/metrics)的ping信息中的任何字段进行精确的
匹配,
它还包含[desktop probe](https://probeinfo.telemetry.mozilla.org/firefox/all/main/all-u probe)。

任何字段下都允许新的附加关键字:
*`contains`-例如`process:contains:main`,表示`process`字段是数组
,它只应与包含条目"main"的字段匹配。
*`not`-例如`send_in_pings:not:glean_ping_info`,表示我们应该匹配
"send_in_pings"的任何字段,但"glean_ping_info"除外。


目前我们不分采摘,只分主打。有关详细信息,请参阅[bigquery
限制和拆分](bigquery限制和拆分)一节。


欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何在Mapreduce程序中两次遍历文本值的迭代器?   java通过web服务获取cookie值中的用户名和密码   Coref分解的javahobbs算法   安卓文件提供商java。lang.IllegalArgumentException:未能找到包含   java从json获取元素   java重复链接列表   java如何保护远程mysql数据库连接   java如何从csv文件中删除特定条目?   java重载一个采用基类并指导扩展类方法实现的方法   java BouncyCastle将自定义别名设置为算法   javasocket传输   从MySQL多线程Java获取响应   JavaHBase api通过行ID列表获取数据行信息   Java应用程序容器