簡體   English   中英

將 Google Data Studio 社區連接器與 BigQuery 結合使用時的時間戳查詢問題

[英]Timestamp query issue when using Google Data Studio community connector with BigQuery

我遇到一個問題,Google Data Studio 將錯誤的時間戳數據發送到我的社區連接器,因此當我嘗試過濾日期時,出現錯誤。 我有兩個 BigQuery TIMESTAMP類型的字段(名為timestampcreated_at ),它們都未經修改地傳遞到我的社區連接器。 一旦我將日期過濾器添加到報告中(以便進行時間序列或常規過濾),如下所示:

在此處輸入圖像描述

然后我來自連接器的查詢(在我的 BigQuery 項目歷史記錄中查看)開始像這樣失敗:

Could not cast literal "20200825" to type TIMESTAMP at [1:677]

BigQuery 中的查詢看起來像這樣:

SELECT t0.created_at, SUM(t0.sum_metric) AS t0_qt_1z4br3iwbc FROM (SELECT field1, field2, field3) from data_name.table_name where user_identifier in (2)) AS t0 WHERE (t0.created_at >= '20200825' AND t0.created_at <= '20200831') GROUP BY t0.created_at ORDER BY t0.created_at ASC;

這真的感覺像是關於 BigQuery 的社區連接器的錯誤。 有什么辦法解決這個問題嗎? 我只是做錯了什么我沒有看到嗎?

好的,我解決了這個問題。 在您的社區連接器中,您需要將其添加到您的配置中:

config.setDateRangeRequired(true);

這將在您的 getData 請求中發送一個 startDate 和 endDate 參數(默認為 28 天)。 像這樣在getData()中訪問它們:

var startDate = request.dateRange.startDate;
var endDate = request.dateRange.endDate

然后根據需要在您的查詢中使用它們。

作為旁注,如果您在 Google Data Studio 中存儲timestamp字段並制作社區連接器,則需要設置計算字段,以便報告適當地處理它(顯示人類可讀的日期而不是時間戳). 我首先將時間戳字段作為字符串從數據庫中讀取出來,例如: STRING(timestamp, 'UTC') AS timestamp ,然后使用該值創建一個維度。 這是在如下模式中完成的(如果不同,請使用適合您的領域的解析):

fields.newDimension()
  .setId('date_timestamp')
  .setName('date_timestamp')
  .setDescription('Timestamp as a date.')
  .setFormula("TODATE($timestamp, '%Y-%m-%d %H:%M:%S%z', '%Y%m%d')")
  .setType(types.YEAR_MONTH_DAY)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM