16864


App EngineのLogをStreaming InsertでBigQueryにExportしています。

Application
LogはprotoPayload.line.logMessageにRepeatedFieldとして格納されているのですが、以下のクエリではRepeatedFieldの順番が失われてしまいます。  
Application Logの順番が狂うと、中身が追いにくいので、RepeatedFieldの順番のままに表示したいのですが、何か良い手はないでしょうか？

[code]

    SELECT insertId, protoPayload.resource, protoPayload.taskQueueName, protoPayload.startTime, protoPayload.endTime, protoPayload.line.logMessage 
    FROM [dataset.table] 
    WHERE (protoPayload.status / 100) = 5
    ORDER BY insertId, protoPayload.startTime, protoPayload.endTime
    LIMIT 1000
    
[/code]


CC BY-SA 3.0
2015-04-13T02:20:29.943
9091
2015-09-23T03:45:07.243
2015-04-13T02:26:12.560
4361
4361
question
google-bigquery
Repeated Fieldの内容を順番通りに表示したい


App EngineのLogであれば、protoPayload.line.timeの昇順に並べれば、ひとまず見たい内容にはできました！

[code]

    SELECT insertId, protoPayload.resource, protoPayload.taskQueueName, protoPayload.startTime, protoPayload.endTime, protoPayload.line.time, protoPayload.line.logMessage 
    FROM [dataset.table] 
    WHERE (protoPayload.status / 100) = 5
    ORDER BY insertId, protoPayload.startTime, protoPayload.endTime, protoPayload.line.time
    LIMIT 1000
    
[/code]

ただ、これはRepeated Fieldの順番通りに表示しているわけではないので、引き続き有識者の回答をお待ちしております！


CC BY-SA 3.0
2015-04-13T02:33:37.903
9093
2015-04-13T02:33:37.903
4361
9091
answer


Position Functionを利用すれば、repeated fieldの添字を取れるため、順番通りに表示できることが分かりました！

[code]

    SELECT insertId, protoPayload.resource, protoPayload.taskQueueName, protoPayload.startTime, protoPayload.endTime, protoPayload.line.time, POSITION(protoPayload.line.logMessage) AS logPosition, protoPayload.line.logMessage 
    FROM [dataset.table] 
    WHERE (protoPayload.status / 100) = 5
    ORDER BY insertId, logPosition, protoPayload.startTime, protoPayload.endTime
    LIMIT 1000
    
[/code]


CC BY-SA 3.0
2015-09-23T03:45:07.243
16864
2015-09-23T03:45:07.243
4361
9091
answer