PostGIS में बड़ी CSV फ़ाइल आयात करें


12

मैं CSG फ़ाइलों को PostGIS में आयात करने का प्रयास कर रहा हूं। इस पोस्ट के बाद , मैंने पहले टेबल बनाए हैं। मुझे यह कहते हुए अन्य सुझाव मिले कि मैं कॉपी कमांड चला सकता हूं।

अगर मैं यह कमांड चलाता हूं:

COPY table FROM '/Users/macbook/file.csv' DELIMITERS ',' CSV HEADER;

इसने मेज की नकल बिल्कुल नहीं की। यह कहता है कि "तालिका" मान्यता प्राप्त नहीं है।

मैंने यह कोशिश की:

COPY moulding
(Borough,Block,Lot,CD,CT2010,CB2010,SchoolDist,Council,ZipCode,FireComp,PolicePrct,Address,ZoneDist1,ZoneDist2,ZoneDist3,ZoneDist4,Overlay1,Overlay2,SPDist1,SPDist2,LtdHeight,AllZoning1,AllZoning2,SplitZone,BldgClass,LandUse,Easements,OwnerType,OwnerName,LotArea,BldgArea,ComArea,ResArea,OfficeArea,RetailArea,GarageArea,StrgeArea,FactryArea,OtherArea,AreaSource,NumBldgs,NumFloors,UnitsRes,UnitsTotal,LotFront,LotDepth,BldgFront,BldgDepth,Ext,ProxCode,IrrLotCode,LotType,BsmtCode,AssessLand,AssessTot,ExemptLand,ExemptTot,YearBuilt,BuiltCode,YearAlter1,YearAlter2,HistDist,Landmark,BuiltFAR,ResidFAR,CommFAR,FacilFAR,BoroCode,BBL,CondoNo,Tract2010,XCoord,YCoord,ZoneMap,ZMCode,Sanborn,TaxMap,EDesigNum,APPBBL,APPDate,PLUTOMapID,Version)
FROM
'/Users/macbook/file.csv'
DELIMITERS
','
CSV HEADER;

लेकिन काम भी नहीं किया।

ऐसे डेटा सेट का एक उदाहरण इस लिंक से डाउनलोड किया जा सकता है :

क्या मुझे एक मॉडल बनाना चाहिए और फिर उसे निष्पादित करना चाहिए?


3
आप की कोशिश कीCOPY moulding FROM '/Users/macbook/file.csv' DELIMITERS ',' CSV HEADER;
UnderDark

क्या tableआपके सार्वजनिक स्कीमा में एक टेबल है ?
लुइस डी सूसा

नहीं ! मैं कॉपी फ़ंक्शन का उपयोग करके उस फ़ाइल को आयात करने की कोशिश कर रहा हूं।
user3001937

क्या आप वास्तव में CSV या शेपफाइल का उपयोग कर रहे हैं? आपका सवाल CSV कहता है, लेकिन नमूना shp है ... इसके अलावा, आप कौन से संस्करण का प्रयोग कर रहे हैं?
ब्रैडहार्ड्स

@ ब्रैडहार्ड: यदि आप फ़ाइल डाउनलोड करते हैं, तो मुझे सीएसवी एक्सटेंशन वाली फ़ाइल मिल जाती है। मैं Postgis के नवीनतम संस्करण का उपयोग करता हूं। psql (9.3.1, सर्वर 9.3.2)
user3001937

जवाबों:


10

आप लगभग वहाँ हैं, लेकिन मुझे लगता है कि समस्या वह हो सकती है जिस तालिका को आप लोड कर रहे हैं।

आपके पास पहले से ही सही स्तंभ प्रकारों के साथ PostGIS में बनाई गई एक तालिका होनी चाहिए

उदाहरण के लिए

CREATE TABLE nycdata (
    BOROUGH varchar,
    BLOCK varch,
    DATE date,
    VERSION numeric);

लेकिन आपको सीएसवी में उसी प्रकार के डेटा के साथ कॉलम प्रकार से मेल खाना चाहिए।

आप सभी डेटा प्रकार यहां देख सकते हैं http://www.postgresql.org/docs/9.1/static/datatype.html

एक बार जब आप तालिका बना लेते हैं तो आप मूल कमांड का उपयोग कर सकते हैं

COPY nycdata FROM '/Users/macbook/data.csv' DELIMITERS ',' CSV HEADER;

फिर आपको अनुक्रमणिका और एक ज्यामिति बनाने की आवश्यकता होगी


4

यह एक .vrt फ़ाइल का उपयोग करके GDAL के साथ भी किया जा सकता है, हालाँकि यह मेमोरी इंटेंसिव हो सकता है।

आप vrt की तरह दिखेंगे:

<OGRVRTDataSource> 
<OGRVRTLayer name="feature_name"> 
    <SrcDataSource>your_csv.csv</SrcDataSource> 
    <GeometryType>wkbPoint</GeometryType> 
    <LayerSRS>EPSG:27700</LayerSRS> 
    <GeometryField encoding="PointFromColumns" x="Eastings" y="Northings"/> 
</OGRVRTLayer> 

फिर बस:

ogr2ogr -progress -nln table_name_doesnt_need_to_exist -skipfailures  PostgreSQL PG:"dbname='dbname' host='localhost' port='5432'  user='username' password='password'" vrt_filename.vrt

एक पूर्ण गाइड के लिए देखें:

लोड हो रहा है CSV OS CodePoint डेटा PostGIS में

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.