【问题标题】:Django Hive connectivityDjango Hive 连接
【发布时间】:2018-06-04 21:17:45
【问题描述】:
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】:

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

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

    【讨论】:

      猜你喜欢
      • 2015-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-02
      • 2015-06-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多