2012-07-13 13 views
6

मैं जानना चाहता हूं कि क्या एचडीएफ 5 रीयल-टाइम डेटा लॉगिंग के लिए उपयुक्त है या नहीं?क्या वास्तविक समय माप के लिए एचडीएफ 5 उपयुक्त है

अधिक सटीक: मैं एक ऐसी परियोजना पर काम करता हूं जिसमें हम लगातार (नमूना दर 30 से 400 हर्ट्ज तक की नमूना) अलग-अलग स्वरूपों (टेलीमेट्री, संकेत, वीडियो) के उचित मात्रा में डेटा (कई घंटे) मिश्रण करते हैं।

हमें संभावित क्रैश पर खोने से बचाने के लिए वास्तविक समय (या थोड़ी देर के साथ) में डेटा लिखा जाना है।

हमारा पहला प्रोटोटाइप sqlite3 पर आधारित है, हालांकि हमें लगता है कि कुछ सीमाएं लंबे समय तक उपयोग से बढ़ सकती हैं: गति, एक डेटाबेस == एक फ़ाइल, और कई धागे से डेटाबेस तक पहुंचने में कठिनाइयों (पढ़ने और लिखने पर अपवाद लॉक एक ही समय में)।

तो, मैं डिस्क पर डेटा स्टोरेज (और आंतरिक प्रतिनिधित्व के लिए numpy/pytable) के लिए बैक एंड के रूप में hdf5 का उपयोग करने की संभावना पर विचार कर रहा हूं। क्या आपको लगता है कि इस तरह के पायथन बाध्यकारी से नियमित रूप से hdf5 फ़ाइल को अद्यतन करना संभव है?

उत्तर

1

एचडीएफ 5 पैकेट टेबल वास्तविक समय माप के लिए उपयुक्त हैं - हालांकि आप नियमित रूप से पुरानी पॉज़िक्स फ़ाइल में डेटा के निश्चित आकार पैकेट का उपयोग करके बेहतर हो जाते हैं और बाद में परिवर्तित कर सकते हैं। ऐसा इसलिए है क्योंकि इस समय एचडीएफ 5 बहुत मजबूत नहीं है और निम्न स्तर की फ़ाइल आईओ कोड का उपयोग करके विभिन्न गारंटी प्रदान नहीं करता है - ने कहा कि निम्न स्तर कोड वास्तव में काम करने में काफी आसान है। कुछ बिंदु पर, जब आप जिस डेटा के साथ काम कर रहे हैं, उसके साथ जटिल हो, तो एचडीएफ 5 में आना चाहिए, लेकिन निम्न स्तर की फ़ाइल आईओ के सापेक्ष जागरूक रहें, यह हेवीवेट है और इसके वैश्विक म्यूटेक्स उपयोग के कारण उचित निर्धारण/प्रदर्शन के साथ बहुप्रचारित नहीं किया जा सकता है। इसके अतिरिक्त, यदि सिस्टम उदाहरण के लिए दुर्घटनाग्रस्त हो जाता है, परिणामी एचडीएफ 5 फाइल कचरा/अप्राप्य है - इसे एक दिन तय किया जाएगा, लेकिन एचडीएफ समूह के लिए धन की आवश्यकता होगी और इसे अगले दशक में पूरा किया जाए।

मेरी पॉलिसी जब भी संभव हो पैकेट लॉग फ़ाइलों का उपयोग करना है। फिर इन फ़ाइलों को दीर्घकालिक उपयोग + संपीड़न + अन्य उपकरणों/कार्यक्रमों द्वारा उपयोग के लिए रिकॉर्ड करने के बाद परिणाम तुरंत एचडीएफ 5 में परिवर्तित करें। रिकॉर्डर ने कहा कि मैं लिखने के समय बाइनरी संरचना को समझाते हुए एक एचडीएफ 5 फाइल को डंप करने के लिए तैयार हूं ताकि मैं समझ सकूं कि पैकेट लॉग फाइलों में कौन से स्ट्रक्चर हैं और पैकेट लोड करने के बाद वास्तविक एचडीएफ फ़ाइल में हाथ है स्मृति में ऊपर

जो कुछ भी कहा और किया गया है, उसके साथ the packet table api from boeing पर एक नज़र डालें। एचडी सी ++ लाइब्रेरी में एचडीएफ 5 के साथ आता है जो ब्लैक भेड़ सी ++ बाध्यकारी है, हालांकि मुझे इसे अपने उपयोग के लिए पैच करना पड़ा है।

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