2012-05-15 23 views
8

कोई भी Google Bigquery में किसी तालिका से डेटा के हिस्सों को हटाने के लिए समर्थन जोड़ने के लिए किसी भी योजना के बारे में जानता है? हमारे पास अभी मुद्दा यह है कि हम समय के साथ एकत्रित डेटा बिंदुओं के विश्लेषण के लिए इसका उपयोग कर रहे हैं। हम आंकड़ों के पिछले X दिनों में प्रश्नों को चलाने के लिए चाहते हैं, हालांकि डेटा के अंतिम X दिनों के बाद हमें अब BigQuery में डेटा स्टोर करने की आवश्यकता नहीं है।Google BigQuery पंक्तियों को हटाएं?

वर्तमान में हम डेटा को हटाने का विचार कर सकते हैं एकमात्र तरीका डेटा की पूरी तालिका को हटाना होगा, फिर इसे फिर से बनाएं और इसे डेटा के दिनों की संख्या के साथ लोड करें। हालांकि हमें हमारे डेटा को दैनिक सीएसवी फाइलों में भी स्टोर करने की आवश्यकता होगी, जो इष्टतम नहीं है।

इस मुद्दे को संभालने के तरीके पर कोई सिफारिशें या यदि निकट भविष्य में कोई डिलीट पंक्तियां आ रही हैं?

उत्तर

12

2016 अद्यतन: BigQuery नष्ट कर सकते हैं और अद्यतन पंक्तियों अब - आपके उपयोग के मामले वर्णन करने के लिए एफ एच

https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax


धन्यवाद। BigQuery केवल डिजाइन द्वारा संलग्न है। वर्तमान में हम मौजूदा डेटासेट से एकल पंक्तियों या पंक्तियों के बैच को हटाने का समर्थन नहीं करते हैं।

वर्तमान में, एक "घूर्णन" लॉग प्रणाली चीज़ें आवश्यक लागू करने के लिए या तो: 1. प्रत्येक दिन एक नया टेबल बनाएं (और पुराने तालिकाओं को नष्ट कि यदि आवश्यक है) 2. समय से एक मेज और जिज्ञासा के लिए आपके डेटा में संलग्न करें/दिनांक

मैं वास्तव में प्रत्येक दिन के लिए एक नई तालिका बनाने की सिफारिश करता हूं। चूंकि बिगक्वायर से पूछे गए डेटा की मात्रा से शुल्क लिया जाता है, इसलिए यह हर समय पूरे बड़े डेटासेट पर पूछताछ करने के बजाय आपके लिए सबसे अधिक आर्थिक होगा।

वैसे - आप वर्तमान में अपना डेटा कैसे एकत्र कर रहे हैं?

+0

सुझाव अच्छा है। वर्तमान में हम इसे MySQL में संग्रहीत कर रहे हैं, डेटा को डंप करें जो हम वास्तव में एक CSV पर संसाधित करते हैं और इसे अपलोड करते हैं। मैं किसी विशिष्ट डेटासेट में तालिकाओं की संख्या पर किसी भी सीमा के लिए चारों ओर देख रहा हूं, लेकिन कोई भी नहीं ढूंढ सकता। क्या यह कोई सीमा नहीं होने पर सही है? – Daum

+1

यदि आप घूर्णन तालिकाओं को ले रहे हैं तो बस एक FYI - BigQuery अब तालिका समाप्ति समय का समर्थन करता है। आप 'bq update --expiration dataset.table' का उपयोग कर bq टूल के साथ तालिका को अपडेट कर सकते हैं। –

+0

@Daum BigQuery के पास प्रति डेटासेट बनाने वाली तालिकाओं की संख्या पर कोई सीमा नहीं है। –

2

इसके अलावा, यदि लागू हो, तो आप BigQuery के ओमिट रिकॉर्ड IF को आजमा सकते हैं, जो आप हटाना चाहते हैं उसे छोड़कर सभी आइटम लौटने के लिए कर सकते हैं। फिर, उस क्वेरी परिणाम से एक नई तालिका बनाएं।

(उदाहरण गूगल संदर्भ डॉक्स से लिया)

SELECT * FROM 
    publicdata:samples.github_nested 

OMIT RECORD IF 
    COUNT(payload.pages.page_name) <= 80; 

स्रोत: https://cloud.google.com/bigquery/query-reference

13

बिग क्वेरी में रिकॉर्ड को हटाने के लिए, आप पहली बार मानक एसक्यूएल सक्षम करने के लिए किया है। स्टैंडर्ड एसक्यूएल

  1. ओपन BigQuery वेब UI को सक्षम करने के लिए

    कदम।

  2. क्वेरी लिखें लिखें पर क्लिक करें।
  3. विकल्प दिखाएँ पर क्लिक करें।
  4. उपयोग विरासत एसक्यूएल चेकबॉक्स को अनचेक करें।

यह BigQuery तालिकाओं

अब से अद्यतन करने के लिए, सम्मिलित करें, और हटाने के डेटा BigQuery गतिशील हेरफेर भाषा (DML) सक्षम हो जाएगा, तो आप रिकॉर्ड को हटाना सादे SQL क्वेरी लिख सकते हैं (रों)

DELETE [FROM] target_name [alias] WHERE condition 

आप उल्लेख कर सकते हैं: https://cloud.google.com/bigquery/docs/reference/standard-sql/dml-syntax#delete_statement

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