Django Hive连接

问题描述 投票:1回答:1
DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'sampletest',
        'OPTIONS': {
           'driver': '/opt/cloudera/hiveodbc/lib/64/libclouderahiveodbc64.so',
           'dsn': 'Hive1',
           'host_is_server': True,
        },
    }
}

以上是与Hive数据库连接的Django设置;我在运行下面给出的项目时面临一个问题:

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在连接时触发的

请建议解决方案。提前致谢。

python django hive pyodbc django-pyodbc-azure
1个回答
0
投票

AFAIK,Django与Django Hive不兼容。您正在使用的数据库引擎django-pyodbc-azure仅适用于SQL Server。 Django开箱即用支持PostgreSQL,MySQL,SQLite和Oracle。 SQL Server通过第三方引擎(如django-pyodbc-azure)支持。我不知道任何其他当前支持的引擎(MongoDB曾经有一个引擎,但尚未维护)。

也就是说,您可以使用上述引擎之一进行Django的default设置和ORM交互,并使用pyodbc直接连接到Python级别的Hive;我做了类似的事情,我使用PostgreSQL用于Django,以及一个不受支持的数据库。祝好运!

© www.soinside.com 2019 - 2024. All rights reserved.