2013-06-24 5 views
5

का उपयोग कर आर और वर्टिका कनेक्ट करें यह मेरा पहला समय वर्टिका से जुड़ रहा है। मैं आरओडीबीसी लाइब्रेरी का उपयोग करके पहले से ही एक MySQL डेटाबेस से जुड़ा हुआ हूं।आरओडीबीसी

मैं वर्टिका में डेटाबेस सेटअप और जब मैं आर का उपयोग कर वर्टिका से कनेक्ट करने की कोशिश की मैं https://my.vertica.com/download-community-edition/

से खिड़कियों 64-बिट ODBC ड्राइवर स्थापित है, मैं नीचे त्रुटि मिलती है:

channel = odbcDriverConnect(connection = "Server=myserver.edu;Database=mydb;User=mydb;Password=password") 

Warning messages: 
1: In odbcDriverConnect(connection = "Server=myserver.edu;Database=mydb;User=mydb;Password=password") : 
[RODBC] ERROR: state IM002, code 0, message [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified 
2: In odbcDriverConnect(connection = "Server=myserver.edu;Database=mydb;User=mydb;Password=password") : 
ODBC connection failed 

क्या कोई मुझे बता सकता है कि इसे कैसे ठीक किया जाए? या आर का उपयोग कर वर्टिका से कनेक्ट करने के लिए कोई और तरीका है?

उत्तर

11

यह सबसे तेज़ नहीं हो सकता है, लेकिन मैं आर से वर्टिका जेडीबीसी चालक का उपयोग करना पसंद करता हूं। ओडीबीसी चालकों को काम करना विभिन्न ऑपरेटिंग सिस्टमों में थोड़ा गन्दा है। यदि आपके पास पहले से ही जावा रनटाइम एनवायरनमेंट (जेआरई) अन्य अनुप्रयोगों के लिए स्थापित है तो यह काफी सरल है।

MyVertica पोर्टल से अपने वर्टिका सर्वर संस्करण के लिए वर्टिका जेडीबीसी ड्राइवर डाउनलोड करें। अपने ऑपरेटिंग सिस्टम के लिए उचित स्थान पर ड्राइवर (ए .jar फ़ाइल) रखें।

अपने कार्यक्षेत्र में RJDBC स्थापित करें:

install.packages("RJDBC",dep=TRUE) 

अपने आर स्क्रिप्ट में, RJDBC मॉड्यूल लोड और वर्टिका चालक का एक उदाहरण बनाने के लिए, स्थान और ड्राइवर के फ़ाइल नाम को इंगित करने के क्लासपाथ तर्क का समायोजन आप डाउनलोड किया गया:

library(RJDBC) 
vDriver <- JDBC(driverClass="com.vertica.jdbc.Driver", classPath="full\path\to\driver\vertica_jdbc_VERSION.jar") 

ड्राइवर वस्तु का उपयोग कर एक नया कनेक्शन बनाने, मेजबान, उपयोगकर्ता नाम और पासवर्ड के लिए अपने कनेक्शन विवरण प्रतिस्थापन:

vertica <- dbConnect(vDriver, "jdbc:vertica://host:5433/db", "username", "password") 

फिर अपने एसक्यूएल क्वेरी चला:

myframe = dbGetQuery(vertica, "select Address,City,State,ZipCode from MyTable") 
+2

धन्यवाद @bpanulla। इसने काम कर दिया। मुझे उसमें एक छोटा सुधार जोड़ने की जरूरत है। vDriver vDriver होना चाहिए <- जेडीबीसी (driverClass = "com.vertica.jdbc.Driver", classPath = "path \ to \ driver \ vertica_VERSION_jdk_5.jar") – Jana

+0

अहह दिलचस्प। मैं अभी भी वर्टिका 5 का उपयोग कर रहा हूं, इसलिए हो सकता है कि उन्होंने नए संस्करणों के लिए पैकेज बदल दिया हो। – bpanulla

+0

धन्यवाद @bpanulla। क्या वैसे भी मैं जेडीबीसी का उपयोग कर वर्टिका में एक टैब सीमांकित टेक्स्ट फ़ाइल अपलोड कर सकता हूं? – Jana

1

आप JDBC समारोह में क्लासपाथ तर्क में डबल स्लैश का उपयोग करने के लिए है। उदाहरण के लिए ,

vDriver <- JDBC(driverClass="com.vertica.jdbc.Driver", 
classPath="C:\\Program Files\\Vertica Systems\\JDBC\\vertica-jdk5-6.1.2-0.jar") 

, मेरे लिए काम किया है, जबकि बस को कॉपी करने और मार्ग में विफल रहा है चिपकाने।

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