Docs Menu
Docs Home
/
BI Connector
/

タイプ変換モード

項目一覧

  • モード比較テーブル

バージョン 2.6 の新機能.

MongoDB Connector for BI は、SQL クエリを MongoDB 集計パイプラインに変換しようとします。 BI Connector がクエリを集計パイプラインに変換できない場合、メモリ内でクエリを実行し、レイテンシが増加します。 バージョン2.6より前は、 mongosqldは型の変換を集計式に変換できず、型の変換に依存するクエリの変換を妨げていました。

バージョン 2.6 以降では、 mongosql型変換モード は、式のパフォーマンスを向上させるために、すべての型変換をバージョン 4.0 以降を実行している MongoDB サーバーにプッシュダウンします。 このモードはデフォルトで有効になっていますが、 type_conversion_modeセッション変数を次のいずれかの値に設定することでセッションごとに構成できます。

モード
説明
mongosql
デフォルト。 バージョン 4.0 以降を実行している MongoDB サーバーにすべての型変換をプッシュダウンします。 MongoDB バージョン 4.0 より前のバージョンの場合、BI Connector はメモリ内で型変換を実行します。
mysql
MySQL の型変換セマンティクスを可能な限り一致させるように BI Connector に指示します。 BI Connector が集計言語で MySQL の型キャスト動作を複製できる場合は、実行のために式が MongoDB サーバーにプッシュダウンされます。 それ以外の場合、 mongosqldはメモリ内で式を実行します。

次の例では、 type_conversion_mode変数をmysqlに設定します。

SET SESSION type_conversion_mode = 'mysql';

重要

mongosql は、MySQL の動作を厳密に複製する必要がない限り、推奨される型キャスティング モードです。 上記の例では、 mysql型変換モードを設定しています。これは、 mongosqlがデフォルトであり、明示的に設定する必要がないためです。

型変換モードは次の両方に適用されます。

  • 明示的な型変換。 例:

    CAST("123" AS unsigned)
  • 暗黙的な 型変換 。 たとえば、 "123" + 456

次の表は、MySQL の型変換動作と BI Connector のデフォルトの型変換動作( mongosqlモード)との違いの概要を示しています。

から 型
入力するには
MySQL の動作
mongosqlモードの動作
Varchar
Numeric
さまざまな形式の string から数値を解析します。 詳細については、MySQL 数値リテラル を参照してください。 ドキュメント。
任意の先頭記号を使用した 10 進数形式の string から数値を解析します。
Varchar
タイムスタンプ
さまざまな形式の string から日付を解析します。 詳細については、「 MySQL の 日付と時間のリテラル 」を参照してください。 。
"%Y-%m-%dT%H:%M:%S.%LZ"形式の string から日付を解析します。
Int
タイムスタンプ
int の varchar 表現から日付を解析しようとします。 たとえば、整数20180809183456は日付2018-08-09 18:34:56.000000になります。
入力を UNIXエポックからの ミリ秒として扱います。 たとえば、 1533839696000
タイムスタンプ
Long
タイムスタンプをYYYYMMDDHHMMSS形式の long として解析します。 たとえば、 20180701123400
タイムスタンプを、UNIX エポックからのミリ秒を表す long として解析します。 たとえば、 1530448440000
タイムスタンプ
Varchar
タイムスタンプをYYYY-MM-DD HH:MM:SS.MMMMMM形式の varchar として解析します。 たとえば、 “2018-07-01 12:34:00.000000”
タイムスタンプをYYYY-MM-DDTHH:MM:SS:MMMZ形式の varchar として解析します。 たとえば、 “2018-07-01T12:34:00.000Z”

注意

mongosql は、MySQL の動作を厳密に複製する必要がある場合を除き、推奨される型キャスティング モードです。

戻る

ログ メッセージ