2017-12-22 6 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設定です。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" 

である:ここで私は、私は以下の通りであるプロジェクトを実行するときに問題に直面しています

解決策をご提案ください。前もって感謝します。

答えて

0

AFAIK、DjangoはDjango Hiveと互換性がありません。使用しているデータベースエンジン、django-pyodbc-azureはSQL Server専用です。 DjangoはPostgreSQL、MySQL、SQLite、Oracleをサポートしています。 SQL Serverは、django-pyodbc-azureのようなサードパーティのエンジンでサポートされています。現在サポートされている他のエンジンについてはわかりません(MongoDBはエンジンを持っていましたが、維持されていません)。

これはおそらくDjangoのdefault設定とORMのやり取りに上記のエンジンの1つを使用し、pyodbcを直接PythonレベルでHiveに接続することができます。私はDjango用のPostgreSQLとデータ用のサポートされていないデータベースを使って、同様のことを行います。がんばろう!

関連する問題