因此,上周我能够开始将Appengine日志流式传输到BigQuery中,并且现在试图将一些数据从日志条目中拉出到表中。正则表达式QueryString针对BigQuery中的特定问题解析
protoPayload.resource中的数据是包含查询字符串参数请求的页面。
protoPayload.resource的内容看起来像下面的例子:
/service.html?device_ID=123456
/service.html?v=2&device_ID=78ec9b4a56
我越来越近,但是当有DEVICE_ID前另一个项目,我没有得到它。正如你可以看到我对Regex不太好,但它是我认为我可以解析查询中的数据的唯一方法。为了从第一个例子中得到设备ID,我可以使用下面的例子。很棒。我的下一个挑战是第二个参数存在时的数据。设备ID的长度可以在10到26个字符之间变化。
SELECT
RIGHT(Regexp_extract(protoPayload.resource,r'[\?&]([^&]+)'),
length(Regexp_extract(protoPayload.resource,r'[\?&]([^&]+)'))-10) as Device_ID
FROM logs
我想什么是刚刚从查询字符串值DEVICE_ID如:
78ec9b4a56
如果有你的protoPayload.resource例如换行还是有实际2个查询字符串每个记录? – 2015-02-11 19:01:44