2017-12-22 2 views
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.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" 

입니다 : 나는 아래에 주어진 프로젝트를 실행할 때 여기에이 문제에 직면하고있다

해결책을 제안하십시오. 미리 감사드립니다.

답변

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 수준에서 하이브에 연결할 수 있습니다. 나는 PostgreSQL for Django와 데이터를 지원하지 않는 데이터베이스를 사용하여 비슷한 것을합니다. 행운을 빕니다!