2017-03-14 161 views
0

我在Google Big Query中有幾個大型表格。每個表格都包含相同的列。表格按月分開。例如。 all_relevant_data_anuary,all_relevant_data_february等Google Big Query和Tableau

我想將所有數據都放到Tableau中以顯示在儀表板中,但每次只能使用過濾器或參數調用1個月。這是這樣,那個月的數據纔會被返回。

我可以在tableau中使用參數僅調用我需要的表創建自定義sql連接。例如。

選擇 All_relevant_data_ * 其中monthyear = [月參數]

還是我更好地轉儲這一切在1個表中,然後使用一個參數*?例如

選擇 All_relevant_data_all_months *如果monthyear = [月參數]

如果我要做到這一點,將其加載所有的數據到畫面還是會只調用我在儀表板中選擇哪個月?

我一直在tableau的tabledaterange奮鬥,不知道如何做到這一點,如果這是一個選項。

任何幫助很好地收到。

感謝。

回答

0

這聽起來像你對wildcard tables感興趣。誰不服用partitioned tables利用大多數用戶有其表設置了後綴,如201701012017020120170301等。如果這是你的情況下,也可以編寫一個查詢,如:

SELECT * FROM `All_relevant_data_*` 
WHERE _TABLE_SUFFIX BETWEEN '20170101' AND '20170301'; 

如果您的表格確實有後綴,例如JanuaryFebruary,您仍然可以使此方法起作用,例如從名稱中提取月份數:

SELECT * FROM `All_relevant_data_*` 
WHERE EXTRACT(MONTH FROM PARSE_DATE('%B', _TABLE_SUFFIX)) BETWEEN 
    1 AND 3; 

如果你想,爲了返回月份列在其上分別篩選查詢,您可以使用這些修飾形式之一:

-- Assumes that _TABLE_SUFFIX is e.g. 20170314 
SELECT *, PARSE_DATE('%Y%m%d', _TABLE_SUFFIX) AS date 
FROM `All_relevant_data_*`; 

或者:

-- Assumes that _TABLE_SUFFIX is e.g. January 
SELECT *, EXTRACT(MONTH FROM PARSE_DATE('%B', _TABLE_SUFFIX)) AS month_number 
FROM `All_relevant_data_*`; 
+0

謝謝艾略特。那麼我將如何選擇我需要的月份?這是通過使用過濾器還是參數來減少進入的數據量 –

+0

我添加了幾個可能適用於您的示例。我對Tableau不是很熟悉,但我假設您可以使用其中的一個,並在'date'或'month_number'上添加一個篩選器,具體取決於您使用哪一個篩選器。 –

+0

謝謝。我將在稍後嘗試這種方式 –