/ SQLAlchemy मॉडल में स्टोरिंग पांडा डेटाफ़्रेम - अजगर, पांडा, फ्लास्क, sqlalchemy

SQLAlchemy मॉडल में pandas डेटाफ्रेम संग्रहीत करना - पायथन, पांडा, फ्लास्क, sqlalchemy

मैं अनुमति देता है कि एक फ्लास्क आवेदन का निर्माण कर रहा हूँउपयोगकर्ता CSV फ़ाइलों (अलग-अलग कॉलम के साथ) को अपलोड करने, अपलोड की गई फ़ाइलों का पूर्वावलोकन करने, सारांश आँकड़े बनाने, जटिल रूपांतरण / एकत्रीकरण (कभी-कभी सेलेरी नौकरियों के माध्यम से) करने के लिए, और फिर संशोधित डेटा निर्यात करते हैं। अपलोड की गई फ़ाइल को पंडों के डेटाफ़्रेम में पढ़ा जा रहा है, जो मुझे अधिकतर जटिल डेटा काम को कुशलता से संभालने की अनुमति देता है।

मैं संबद्ध के साथ इन DataFrames की तरह हैमेटाडेटा (समय अपलोड, फ़ाइल अपलोड करने वाले उपयोगकर्ता की आईडी, आदि) को बनाए रखने और कई उपयोगकर्ताओं के लिए विभिन्न दृश्यों के लिए पास होने के लिए उपलब्ध रहने के लिए। हालाँकि, मुझे यकीन नहीं है कि डेटा को मेरे SQLAlchemy मॉडल में शामिल करना सबसे अच्छा है (मैं बैकएंड पर PostgreSQL का उपयोग कर रहा हूं)।

तीन दृष्टिकोण मैंने माना है:

  • DataFrame को Cramming a PickleType और इसे सीधे डीबी में संग्रहीत करना। यह सबसे सीधा समाधान लगता है, लेकिन इसका मतलब है कि मैं डेटाबेस में बड़ी द्विआधारी वस्तुओं को चिपकाऊंगा।
  • DataFrame को चुनना, उसे लिखनाफाइलसिस्टम, और मॉडल में स्ट्रिंग के रूप में पथ को संचयित करना। यह डेटाबेस को छोटा रखता है लेकिन डेटाबेस के बैकअप के समय कुछ जटिलता जोड़ता है और उपयोगकर्ताओं को पहले से अपलोड की गई फ़ाइलों को हटाने जैसे काम करने की अनुमति देता है।
  • JSON (DataFrame.to_json()) और भंडारण के रूप में json प्रकार (पोस्टग्रेक्यूएल के नक्शे) json प्रकार)। यह हर बार डेटाफ्रेम के एक्सेस के दौरान JSON को पार्स करने का ओवरहेड जोड़ता है, लेकिन यह डेटा को सीधे माध्यम से प्रसारित करने की अनुमति देता है PostgreSQL JSON ऑपरेटरों.

प्रत्येक के फायदे और कमियों को देखते हुए (जिनमें मैं "अनजान हूँ"), वहाँ एक पसंदीदा तरीका है SQLAlchemy मॉडल में पांडा डेटाफ्रेम को शामिल करना?

उत्तर:

जवाब के लिए 5 № 1

JSON और PostgreSQL समाधान की ओर जाएं। मैं एक पंडों की परियोजना पर हूं, जिसने फाइल सिस्टम पर अचार के साथ शुरुआत की, और पंडों के साथ डेटा प्रोसेसिंग के लिए डेटा को एक क्लास ऑब्जेक्ट में लोड किया। हालाँकि, जैसे-जैसे डेटा बड़ा होता गया, हमने SQLAlchemy / SQLite3 के साथ खेला। अब, हम पा रहे हैं कि SQLAlchemy / PostgreSQL के साथ काम करना और भी बेहतर है। मुझे लगता है कि हमारा अगला कदम JSON होगा। मज़े करो! पंडों की चट्टानें!