postgresql - CSG फ़ाइल डेटा को PostgreSQL तालिका में कैसे आयात करें?




7 Answers

इस संक्षिप्त लेख पर एक नज़र डालें।

समाधान यहां पर आधारित है:

अपनी तालिका बनाएं:

CREATE TABLE zip_codes 
(ZIP char(5), LATITUDE double precision, LONGITUDE double precision, 
CITY varchar, STATE char(2), COUNTY varchar, ZIP_CLASS varchar);

अपनी सीएसवी फ़ाइल से डेटा को तालिका में कॉपी करें:

COPY zip_codes FROM '/path/to/csv/ZIP_CODES.txt' WITH (FORMAT csv);

मैं एक संग्रहित प्रक्रिया कैसे लिख सकता हूं जो CSV फ़ाइल से डेटा आयात करता है और तालिका को पॉप्युलेट करता है?




ऐसा करने का एक त्वरित तरीका पायथन पांडा पुस्तकालय (संस्करण 0.15 या ऊपर सबसे अच्छा काम करता है) के साथ है। यह आपके लिए कॉलम बनाने में संभाल लेगा - यद्यपि स्पष्ट रूप से डेटा प्रकारों के लिए जो विकल्प बनाता है वह शायद आप नहीं चाहते हैं। यदि आप जो भी चाहते हैं वह काफी नहीं करता है तो आप हमेशा टेम्पलेट के रूप में जेनरेट की गई 'बिल्ड टेबल' कोड का उपयोग कर सकते हैं।

यहां एक साधारण उदाहरण दिया गया है:

import pandas as pd
df = pd.read_csv('mypath.csv')
df.columns = [c.lower() for c in df.columns] #postgres doesn't like capitals or spaces

from sqlalchemy import create_engine
engine = create_engine('postgresql://username:[email protected]:5432/dbname')

df.to_sql("my_table_name", engine)

और यहां कुछ कोड है जो आपको दिखाता है कि विभिन्न विकल्पों को कैसे सेट करें:

#Set is so the raw sql output is logged
import logging
logging.basicConfig()
logging.getLogger('sqlalchemy.engine').setLevel(logging.INFO)

df.to_sql("my_table_name2", 
          engine, 
          if_exists="append",  #options are ‘fail’, ‘replace’, ‘append’, default ‘fail’
          index=False, #Do not output the index of the dataframe
          dtype={'col1': sqlalchemy.types.NUMERIC,
                 'col2': sqlalchemy.types.String}) #Datatypes should be [sqlalchemy types][1]



जैसा पौलुस ने उल्लेख किया है, आयात pgAdmin में काम करता है:

तालिका -> आयात पर राइट क्लिक करें

स्थानीय फ़ाइल, प्रारूप और कोडिंग का चयन करें

यहां एक जर्मन पीजीएडमिन जीयूआई स्क्रीनशॉट है:

डीबीवीस्यूलाइज़र के साथ आप भी इसी तरह की चीज कर सकते हैं (मेरे पास लाइसेंस है, मुफ्त संस्करण के बारे में निश्चित नहीं है)

तालिका पर राइट क्लिक करें -> टेबल डेटा आयात करें ...




COPY table_name FROM 'path/to/data.csv' DELIMITER ',' CSV HEADER;



इस एसक्यूएल कोड का प्रयोग करें

    copy table_name(atribute1,attribute2,attribute3...)
    from 'E:\test.csv' delimiter ',' csv header

हेडर कीवर्ड डीबीएमएस को यह बताता है कि सीएसवी फ़ाइल में गुणों वाला हेडर है

अधिक जानकारी के लिए http://www.postgresqltutorial.com/import-csv-file-into-posgresql-table/




तालिका बनाएं और सीएसवी फ़ाइल में तालिका बनाने के लिए उपयोग किए जाने वाले कॉलम आवश्यक हैं।

  1. पोस्टग्रेज़ खोलें और लक्ष्य तालिका पर राइट क्लिक करें जिसे आप लोड करना चाहते हैं और फ़ाइल विकल्प अनुभाग में निम्न चरणों को आयात और अद्यतन करें का चयन करें

  2. अब फ़ाइल नाम में अपनी फाइल ब्राउज़ करें

  3. प्रारूप में सीएसवी का चयन करें

  4. आईएसओ_885 9_5 के रूप में एन्कोडिंग

अब goto Misc। विकल्प और हेडर जांचें और आयात पर क्लिक करें।




  1. पहले एक टेबल बनाएँ

  2. फिर तालिका विवरण की प्रतिलिपि बनाने के लिए कॉपी कमांड का उपयोग करें:

कॉपी table_name (सी 1, सी 2, सी 3 ....)
'पथ से आपकी सीएसवी फ़ाइल' delimiter ',' csv शीर्षलेख से;

धन्यवाद




Related