PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL में डेटाबेस में टेक्स्ट डेटा लोड करने का कोई तरीका है?

मैं अपनी बड़ी XML फ़ाइलों - 130GB या उससे बड़ी - के साथ एक दृष्टिकोण का उपयोग करता हूं - पूरी फ़ाइल को एक अस्थायी अनलॉग में अपलोड करना है तालिका और वहां से मैं अपनी इच्छित सामग्री निकालता हूं। Unlogged tables क्रैश-सुरक्षित नहीं हैं, लेकिन लॉग किए गए लोगों की तुलना में बहुत तेज़ हैं, जो पूरी तरह से अस्थायी तालिका के उद्देश्य के अनुरूप हैं;-)

निम्न तालिका को ध्यान में रखते हुए ..

CREATE UNLOGGED TABLE tmp (raw TEXT);

.. आप इस 1GB फ़ाइल को एक psql . का उपयोग करके आयात कर सकते हैं आपके कंसोल (यूनिक्स) से लाइन..

$ cat 1gb_file.txt | psql -d db -c "COPY tmp FROM STDIN" 

उसके बाद आपको केवल अपने तर्क को क्वेरी करने और अपनी इच्छित जानकारी निकालने की आवश्यकता है। अपनी तालिका के आकार के आधार पर, आप SELECT . से दूसरी तालिका बना सकते हैं , उदा.:

CREATE TABLE t AS
SELECT 
  trim((string_to_array(raw,','))[1]) AS operation,
  trim((string_to_array(raw,','))[2])::timestamp AS tmst,
  trim((string_to_array(raw,','))[3]) AS txt
FROM tmp
WHERE raw LIKE '%DEBUG%' AND
      raw LIKE '%ghtorrent-40%' AND 
      raw LIKE '%Repo EFForg/https-everywhere exists%'

string_to_array समायोजित करें फ़ंक्शन और WHERE अपने तर्क के लिए खंड! वैकल्पिक रूप से आप इन एकाधिक LIKE . को बदल सकते हैं एक SIMILAR TO . के संचालन के लिए ।

.. और आपका डेटा इसके साथ खेलने के लिए तैयार होगा:

SELECT * FROM t;

 operation |        tmst         |                               txt                                
-----------+---------------------+------------------------------------------------------------------
 DEBUG    | 2017-03-23 10:02:27 | ghtorrent-40 -- ghtorrent.rb:Repo EFForg/https-everywhere exists
(1 Zeile)

एक बार आपका डेटा एक्सट्रेक्ट हो जाने के बाद आप DROP TABLE tmp; . कर सकते हैं कुछ डिस्क स्थान खाली करने के लिए;)

आगे पढ़ने:COPY , PostgreSQL array functions और pattern matching




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. पोस्टग्रेस्क्ल सत्र/कनेक्शन को मारें

  2. PostgreSQL में महीने की संख्या को महीने के नाम में बदलें

  3. अंतिम डाली गई पंक्ति से मूल्य कैसे प्राप्त करें?

  4. Ansible PostgreSQL को प्यार करता है

  5. PostgreSQL संस्करण की जांच कैसे करें