我有一个程序,我一直在使用由 Lukas Lalinsky 开发的phoenixdb软件包,但在过去的几天里它似乎变得非常不稳定。我认为这是由于数据库的大小(因为它不断增长)。通过不稳定,我的意思是大约一半的查询失败并出现运行时异常。
所以我继续前进并试图找到一种更稳定的方式来连接我的Phoenix“服务器”。因此,我想尝试JDBC连接。据我所知,Phoenix应该与JDBC有很好的集成。
但是我在理解如何设置初始连接方面遇到了问题。
我阅读了JayDeBeApi软件包的以下Usage部分,但我不知道驱动程序类是什么或它位于何处?如果我必须自己下载?如何设置?等等。
我希望有人在这里知道并希望详细解释。
谢谢!
我已经设法找出我的连接语句应该是这样的:
import jaybedeapi as jdbc
conn = jdbc.connect('org.apache.phoenix.jdbc.PhoenixDriver', ['jdbc:phoenix:<ip>:<port>:', '', ''], '<location-of-phoenix-client.jar>')
但是我仍然不知道从哪里获取phoenix-client.jar
文件以及如何引用它。
答案 0 :(得分:3)
在设置Java项目并在该开发环境中测试JDBC并获得成功连接后,我设法找到了解决方案。
为了使JDBC连接在Java中工作,我使用了Apache here的Phoenix发行版中的JDBC驱动程序。我使用了匹配我的Phoenix和HBase版本的驱动程序 - phoenix-4.9.0-HBase-1.2-client.jar
一旦完成设置并且我可以使用Java连接到Phoenix,我就开始尝试使用Python进行设置。我开始使用以下内容连接到Phoenix:
import jaydebeapi as jdbc
import os
cwd = os.getcwd()
jar = cwd + '/phoenix-4.9.0-HBase-1.2-client.jar'
drivername = 'org.apache.phoenix.jdbc.PhoenixDriver'
url = 'jdbc:phoenix:<ip>:<port>/'
conn = jdbc.connect(drivername, url, jar)
现在我使用Python通过JDBC成功连接到Phoenix。希望将来其他人可以在将来使用这个问题。
我使用以下内容创建了一个游标,可以发出如下命令:
cursor = conn.cursor()
sql = """SELECT ...."""
cursor.execute(sql)
resp = cursor.fetchone() # could use .fetchall() or .fetchmany() if needed
我希望这有助于那里的人!