2017-03-15 56 views
0

我按照link設置了BigQuery數據訪問日誌的日誌導出。如何在BigQuery數據訪問日誌中記錄自定義信息?

在我的用例中,客戶端沒有直接訪問BigQuery的權限。他們調用REST API從BigQuery中獲取數據並將其提供給客戶端。我需要記錄一些自定義信息,如請求數據的用戶ID等,以及BigQuery數據訪問日誌。 我嘗試使用userAgent字段,通過使用用戶標識設置應用程序名稱,但它沒有顯示在數據訪問日誌中。

有沒有辦法在數據訪問日誌中記錄自定義信息?

回答

1

您可以添加自定義數據作爲對查詢的評論嗎?

# hello, I'm a comment and I have meta-data 
SELECT * FROM `wherever` 

只是要小心的第一行,你可以用它來#legacySQL和#standardSQL

#standardSQL 
# for metadata, respect the first line of the query to choose SQL variant 
# hello, I'm a comment and I have meta-data 
SELECT * FROM `wherever` 
+0

謝謝@Felipe的目的。 –

2

之間要求的BigQuery選擇下面是一些我看到的選項。


1 - 使用jobReference.jobId作業的財產

您可以設置它,這樣它將包含的任何信息你可在工作API調用的時間

jobReference.jobId string [Required] The ID of the job. The ID must contain 
          only letters (a-z, A-Z), numbers (0-9), 
          underscores (_), or dashes (-). 
          The maximum length is 1,024 characters. 

我覺得1024個字符已足夠編碼您需要的任何元數據


2 - 另一種選擇是使用configuration.labels作業屬性。

configuration.labels object [Experimental] The labels associated with this job. 
          You can use these to organize and group your jobs. 
          Label keys and values can be no longer than 63 
          characters, can only contain lowercase letters, numeric 
          characters, underscores and dashes. International 
          characters are allowed. Label values are optional. 
          Label keys must start with a letter and each label in 
          the list must have a different key. 

你可以閱讀更多關於labelingLabeling Datasets。即使它描述了數據集的標籤 - 這是使用完全相同的概念與喬布斯


最後,我會建議避免調整用戶的查詢 - 尤其是對於插入一些元數據

+0

upvoted,謝謝! –

+0

謝謝@米哈伊爾。如果我使用'jobReference.jobId'字段,那麼我必須確保在每次查詢哪個是最好避免的附加複雜度時提供唯一的ID。並且'configuration.labels'似乎沒有記錄在BigQuery數據訪問日誌中。 –

+0

@SudarshanMurthy - 是的,你是正確的ID在結算項目中必須是唯一的。從我的練習 - 這絕不是問題:o) –