django配置单元连接

5kgi1eie  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(407)
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触发
请提出解决方案。提前谢谢。

xam8gpfp

xam8gpfp1#

好吧,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 for django,以及一个不受支持的数据数据库。祝你好运!

相关问题