2014-06-12 11 views
6

मैं वाइल्डकार्ड दिनांक वाली तालिकाओं से डेटा का चयन करने के लिए Google bigquery का उपयोग करने का प्रयास कर रहा हूं। मैं TABLE_DATE_RANGE फ़ंक्शन का उपयोग करने में सक्षम होना चाहता हूं, लेकिन मुझे बड़ी तारीख सीमा (> 1 वर्ष) से ​​पूछताछ करने की आवश्यकता है। अभी मेरी क्वेरी डेटा का एक वर्ष के महत्वपूर्ण के लिए काम करता है, लेकिन मैं अधिक कुछ भी मिलता है:1 साल से अधिक टेबल के साथ TABLE_DATE_RANGE का उपयोग

त्रुटि: TABLE_DATE_RANGE त्रुटि: बहुत दिनों

#Fails 
SELECT 
    system_id, sample_date, e_pv_array 
FROM 
    (TABLE_DATE_RANGE(workspace.intervaldata, 
        TIMESTAMP('2009-03-01'), 
        TIMESTAMP('2010-03-04'))) 
WHERE 
    system_id = 20006 
    and e_pv_array is not null; 

#Works 
SELECT 
    system_id, sample_date, e_pv_array 
FROM 
    (TABLE_DATE_RANGE(workspace.intervaldata, 
        TIMESTAMP('2009-03-01'), 
        TIMESTAMP('2010-03-03'))) 
WHERE 
    system_id = 20006 
    and e_pv_array is not null; 

यह सिर्फ bigquery की एक सीमा है ? या 1 साल से अधिक की तारीख सीमा के साथ टेबल वाइल्डकार्ड का उपयोग करने का कोई तरीका है?

उत्तर

5

मुझे TABLE_DATE_RANGE() के साथ भी समस्याएं आई हैं। यहाँ एक संभावित समाधान है, यह मानते हुए अपने टेबल, workspace.intervaldata20090303 नाम हैं आदि .:

SELECT 
system_id, sample_date, e_pv_array 
FROM 
TABLE_QUERY(workspace, "integer(regexp_extract(table_id, r'intervaldata([0-9]+)')) BETWEEN 20090301 and 20100304") 
WHERE 
system_id = 20006 
and e_pv_array is not null; 

मैं एक ऐसी ही परिदृश्य (तारीख विभाजित तालिका) है और प्रश्नों को चलाने के लिए TABLE_QUERY का उपयोग कर डेटा के वर्षों के 2 से ज्यादा कर रहा हूँ() त्रुटियों के बिना।

संबंधित मुद्दे