用于生成可随时间遍历的模板化度量提取查询的实用程序。
metric-builder的Python项目详细描述
公制生成器
用于生成可随时间遍历的模板化度量提取查询的实用程序。在
先决条件
运行此代码需要以下内容:
- Python3
安装
待定。。。在
使用
为了提取给定的度量,需要实例化Metric
对象:
metric=Metric(query=""" SELECT count(*) AS total FROM `project.dataset.table` WHERE DATETIME_TRUNC(created_datetime, DAY) = '{{ reference_time | format_date('%Y-%m-%d') }}' """,reader=BigQueryReader(json_credentials_path='/path/to/creds.json'))
query
参数是一个模板化查询,您可以使用模板过滤器将reference_time
datetime
对象格式化为所需的格式。在
reader
参数是实际要连接到所需数据库并执行查询的对象。在
metric
对象现在可以用于获取给定时间点的度量,如下所示:
结果以字典列表的形式返回。在
模板过滤器
Jinja2用作模板引擎。因此,所有内置的Jinja过滤器都是可用的。为了方便起见,添加了相关的自定义模板过滤器:
格式化日期
指定日期时间的格式:
'{{ reference_time | format_date('%Y-%m-%d') }}'
日三角洲
将给定日期时间对象更改指定的天数:
'{{ reference_time | day_delta(-7) | format_date('%Y-%m-%d') }}'
读卡器
任何读取器都将实现以下用于执行查询的方法:
defexecute(self,query)->List[Dict[str,Any]]:...
BigQueryReader
底层客户机需要使用从请求的BigQuery表读取所需的特权进行身份验证。在
如果您使用以下身份验证:
gcloud auth login
或者
exportGOOGLE_APPLICATION_CREDENTIALS="/path/to/keyfile.json"
然后您可以像这样实例化Reader
:
reader=BigQueryReader()
另一个选项是使用服务帐户密钥文件显式验证:
reader=BigQueryReader(json_credentials_path='/path/to/creds.json')
HiveReader
很快就要来了。。。在
- 项目
标签: