このノートでは、よくあるExploratoryデスクトップの問題と、それらの解決法をまとめていきます。
Google BigQueryからデータをインポートする際、SQLクエリにGEOGRAPHYデータ型のカラムが含まれていると、データのインポートに失敗し、以下のエラーが表示される場合があります。
Error : No method asJSON S3 class: wk_vctr
これを回避するために、SQLクエリで以下の関数を使用します。
参考: https://cloud.google.com/bigquery/docs/reference/standard-sql/geography_functions
Google BigQueryからデータをインポートしようとすると以下のようなエラーになりデータが取り込めないことがあります。
Unknown Type INTERNAL
この問題はSQLクエリーに含まれる列にIntervalというデータ型が使われている場合に発生します。 (参考: Interval Data Type)
この問題を回避するには、SQLクエリーの中で以下のようにIntervalのデータ型の列をCAST関数を使ってstringに変換します。
SELECT CAST(COL_A as STRING) as String_Column ...
参考: https://cloud.google.com/bigquery/docs/reference/standard-sql/conversion_functions#cast_as_string
PostgreSQLでデータをインポートする時に、SQL側でのデータタイプに以上がある場合は以下のエラーが表示される場合があります。
Error : No method asJSON S3 class: pq__int8
このエラーを回避するために、SQLクエリでデータ型を指定してからインポートすることで問題なくインポートすることができます。
select 列名::bigint from テーブル名;
上記の例では、数値型の列のためbigint型を指定しています。
SQL Server / Azure SQLにSQL native client 11.0で接続すると以下のようなエラーになることがあります。
Error in result_fetch(res@ptr, n) :
nanodbc/nanodbc.cpp:3069: 07009: [Microsoft][SQL Server Native Client 11.0]記述子のインデックス
その場合は、ODBC Driver for SQL Server のダウンロードからODBCドライバーをダウンロードしてインストールします。
そして、ExploratoryのMS SQL Server / Azure SQLのデータコネクションの設定で、MS SQL Server用のODBCドライバにSQL Server - ODBC Driver 18を選択してください。
MacでSnowflakeやMS SQLサーバーのデータソースのインポートアイコンをクリックしても、インポートダイアログが開かないことがあります。またSnowflakeやAzureのデータコネクションが開かない場合があります。
その場合は、こちらのノートに従ってunixODBCをインストールすることで問題を解決できます。
別の列の値をもとに日本語を返すようなCASEステートメントを実行すると、文字が欠けたり、文字化けする場合があります。
その場合は、こちらのノートに従って問題を回避してください。
Snowflakeに対してSQLクエリを実行しようとすると、次のエラーが発生することがあります。
Error : nanodbc/nanodbc.cpp:1138: 00000 [Snowflake][Support] (50404) Invalid connection string.
その場合は、こちらのコミュニティポストに従ってコネクションを修正してください。
ODBCデータソースでOracleに接続する際、Oracle Databaseの文字エンコーディングがJA16SJISといったUTF-8でないものが設定されていて、クライアントのNLS_LANGがUTF-8に設定されていると、以下のエラーが発生する場合があります。
その場合は、Oracle ODBC ドライバ構成開き、「Workarounds」タブをクリックします。 「SQL_WCHAR強制サポートする」チェックボックスにチェックを入れます。
上記の解決方法を試してもうまく問題が解決しないときや、これら以外の問題に当たっているときは、サポートチーム (support@exploratory.io) までご連絡ください。