datasqill stellt einen Jdbc-Proxy zur Verfügung, der frei verwendet werden kann.
Der Proxy kann zwischen eine Java Appliaktion und einen beliebigen 3rd Party Jdbc-Treiber geschaltet werden. Anwendungsfälle für einen solchen Proxy sind Messung von Laufzeiten, Logging von Jdbc-Aufrufen oder Vereinheitlichung des Verhaltens von Jdbc-Treibern und Kapselung von spezifischen Eigenheiten dieser Treiber.
Besonderheiten:
Der Proxytreiber liefert statt eines geöhnlichen CLOB eine DsProxyClob Implementierung.
Sofern man nicht DsProxy Methoden nutzt bei der Verwendung vom CLOB (sondern native), kann man mit getPhysicalClob den nativen CLOB erhalten.
Die folgenden Java system properties können gesetzt werden:
de.datasqill.dsproxy.pool.maxOpenConnections default 30 : maximum 30 open connections at the same time de.datasqill.dsproxy.pool.maxConnectionAgeInMinutes default 60 : 1 hour de.datasqill.dsproxy.pool.maxWaitForConnectionInMillis default -1 : wait forever de.datasqill.dsproxy.printSQL false : set to true if every sql execeuted sql statement shall be printed to stdout
printOpenObjectsOnClose
wenn man im datasqill Connection String
dboptionlist={printOpenObjectsOnClose=summary}
setzt, dann wird die Anzahl der nicht geschlossenen Datenbankobjekte pro Objekttyp im Log ausgegeben.
Snowflake hat einige Properties, die man mit übergeben kann. Insbesondere für die Authentifizierung benötigt man folgende:
Die folgenden zusätzlichen Connectionparameter können gesetzt werden.
Hierbei gibt man sie im letzten Block im keyfile Eintrag vor dem Kennwort an:
SQTS_DB_XX jdbc:dsproxy:snowflake://<host>/?useArrowResultFormat=false||dboptionlist={user=datasqill,warehouse=<WH>,db=<Database>,schema=<Schema>,authenticator=SNOWFLAKE_JWT,private_key_file=<PATH OF Public Key>,loginTimeout=10,disablePlatformDetection=true,printOpenObjectsOnClose=summary,bulkTempDir=/tmp,bulkStageDir=@stage.migration,printTimings=true}|