2016-07-07 9 views
1
2016-07-06 19:39:09,153:ERROR:root:Compiler <sqlalchemy.sql.compiler.GenericTypeCompiler object at 0x10c75d150> can't render element of type <class 'impala.sqlalchemy.STRING'> 
Traceback (most recent call last): 
    File "/Users/user_name/.virtualenvs/caravel27/lib/python2.7/site-packages/caravel/models.py", line 771, in fetch_metadata 
    datatype = "{}".format(col.type).upper() 
    File "/Users/user_name/.virtualenvs/caravel27/lib/python2.7/site-packages/sqlalchemy/sql/type_api.py", line 481, in __str__ 
    return unicode(self.compile()).\ 
    File "/Users/user_name/.virtualenvs/caravel27/lib/python2.7/site-packages/sqlalchemy/sql/type_api.py", line 468, in compile 
    return dialect.type_compiler.process(self) 
    File "/Users/user_name/.virtualenvs/caravel27/lib/python2.7/site-packages/sqlalchemy/sql/compiler.py", line 261, in process 
    return type_._compiler_dispatch(self, **kw) 
    File "/Users/user_name/.virtualenvs/caravel27/lib/python2.7/site-packages/sqlalchemy/sql/visitors.py", line 79, in _compiler_dispatch 
    raise exc.UnsupportedCompilationError(visitor, cls) 

Ähnliche Probleme wurden gemeldet here.Beim Verbinden von Caravel mit dem Hive-Server wird beim Laden einer Tabelle ein Fehler ausgegeben

Allerdings weiß ich nicht, wie bind=engine von sqlalchemy Verwendung im Fall passiert über caravel

Dies ist, wie Sie die Fehler replizieren können:

dann Karavelle caravel runserver -d mit laufenden Betrieb installiert werden. Fügen Sie dann eine hive2-Datenbank zu caravel hinzu. Dazu brauchst du Impyla. Nach der Installation verwenden Sie diese als sqlAlchemyURL impala://somehostname.compute.amazonaws.com:10000/database_name?auth_mechanism=‌​PLAIN. Die Testverbindung sollte Seems OK zurückgeben. Caravel sollte auch alle Tabellen in datenbankname erkennen können. Wenn ich jedoch eine Tabelle hinzufüge, identifiziert caravel alle Spalten als UNKNOWN-Typ. Dann schauen Sie sich die Protokolle an, die von caravel gepostet wurden und der oben erwähnte Fehler sollte protokolliert werden.

+0

Bitte legen Sie ein [minimal, vollständig und überprüfbar Beispiel] (http://stackoverflow.com/help/mcve), wenn für die Fehlersuche, Fragen zu stellen. Erstellen Sie mit anderen Worten ein kleines Beispiel, das den Fehler erzeugt. –

+0

Ich habe eine Karavelle mit 'caravel runserver -d' eingerichtet. Dann habe ich eine hive2-Datenbank mit impyla hinzugefügt. Dies ist die Adresse, die ich in die sqlAlchemyURL eingefügt habe: impala: //somehostname.compute.amazonaws.com: 10000/datenbankname? Auth_mechanism = PLAIN'. Die Testverbindung gibt 'Schein OK 'zurück. Caravel kann auch alle Tabellen in datenbankname finden. Wenn ich jedoch eine Tabelle hinzufüge, identifiziert caravel alle Spalten als UNKNOWN-Typ. Dann schaue ich mir die Logbücher von caravel an und der oben erwähnte Fehler wird protokolliert. – Sasaram

Antwort

Verwandte Themen