Django Hive 连接
Django Hive connectivity
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'sampletest',
'OPTIONS': {
'driver': '/opt/cloudera/hiveodbc/lib/64/libclouderahiveodbc64.so',
'dsn': 'Hive1',
'host_is_server': True,
},
}
}
以上是Django对接Hive数据库的设置;当我 运行 下面给出的项目时,我遇到了一个问题:
django.db.utils.Error: ('HY000', u"[HY000] [Cloudera][Hardy] (80) Syntax or semantic analysis error thrown in server while executing query. Error message from server: Error while compiling statement: FAILED: ParseException line 1:7 character '@' not supported here\nline 1:8 character '@' not supported here (80) (SQLExecDirectW)")
发生它的查询实际上是一个标准查询
"SELECT @@TRANCOUNT"
连接时由 Django 触发
请提出解决方案。提前致谢。
据我所知,Django 与 Hive 不兼容。您正在使用的数据库引擎 django-pyodbc-azure
仅适用于 SQL 服务器。 Django 开箱即用地支持 PostgreSQL、MySQL、SQLite 和 Oracle。 SQL 服务器通过第三方引擎支持,例如 django-pyodbc-azure
。我不知道目前支持的任何其他引擎(MongoDB 曾经有一个引擎,但尚未维护)。
也就是说,Django的default
设置和ORM交互你大概可以使用上述引擎之一,直接使用pyodbc
连接到Python级别的Hive;我做了类似的事情,我对 Django 使用 PostgreSQL,对数据使用不受支持的数据库。祝你好运!
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'sampletest',
'OPTIONS': {
'driver': '/opt/cloudera/hiveodbc/lib/64/libclouderahiveodbc64.so',
'dsn': 'Hive1',
'host_is_server': True,
},
}
}
以上是Django对接Hive数据库的设置;当我 运行 下面给出的项目时,我遇到了一个问题:
django.db.utils.Error: ('HY000', u"[HY000] [Cloudera][Hardy] (80) Syntax or semantic analysis error thrown in server while executing query. Error message from server: Error while compiling statement: FAILED: ParseException line 1:7 character '@' not supported here\nline 1:8 character '@' not supported here (80) (SQLExecDirectW)")
发生它的查询实际上是一个标准查询
"SELECT @@TRANCOUNT"
连接时由 Django 触发
请提出解决方案。提前致谢。
据我所知,Django 与 Hive 不兼容。您正在使用的数据库引擎 django-pyodbc-azure
仅适用于 SQL 服务器。 Django 开箱即用地支持 PostgreSQL、MySQL、SQLite 和 Oracle。 SQL 服务器通过第三方引擎支持,例如 django-pyodbc-azure
。我不知道目前支持的任何其他引擎(MongoDB 曾经有一个引擎,但尚未维护)。
也就是说,Django的default
设置和ORM交互你大概可以使用上述引擎之一,直接使用pyodbc
连接到Python级别的Hive;我做了类似的事情,我对 Django 使用 PostgreSQL,对数据使用不受支持的数据库。祝你好运!