LoginSignup
4
0

More than 1 year has passed since last update.

SPSS ModelerのODBCバルクINSERTを使う

Last updated at Posted at 2023-03-09

SPSS Modelerでテーブルに書き出す際に、通常はSQLのINSERT文が使われます。INSERTは特にカラム表(Db2 Warehouse, Redshiftなど)に対して非常に遅いという問題があります。この場合ODBCバッチを使うという方法と外部ローダーを使うという方法があります。外部ローダーを使う方法があります。外部ローダーを使う方法は以下の記事に書きましたので、この記事ではODBCバッチを使う方法を紹介します。数十倍の速度が出ることもよくあります。

SPSS Modelerの外部ローダーを使う(Db2編) - Qiita

  • テスト環境
    • Modeler 18.4
    • Windows 11 64bit
    • Db2 Warehouse on cloud

*サンプルストリーム

デフォルトINSERT実行テスト

以下のようなデータをロードしてみます。日本語も含まれています。1万件のデータです。
image.png

「DBエクスポート」ノードを接続し、データソースとテーブル名を設定し、「詳細」をクリックします。
image.png

「バルクロードを使用」が「オフ」のままですので、ODBCバッチINSERTは行われません。
image.png

実行をすると113秒かかりました。
image.png

デフォルトINSERT実行テスト

「詳細オプション」で「バルクロードを使用」が「ODBC経由」にするとODBCバッチINSERTがおこなわれます。ODBCバッチINSERTに対応しているかどうかはODBCドライバーとRDBによります。

image.png

実行をすると1.48秒と、76倍の短縮ができました。
image.png

なお、バッチサイズを変更することでチューニングが可能です。

image.png

注意

ODBCバルクロードはRDBによっては圧縮効率が悪いことがあります。それが問題になる場合は、外部ローダーなどを検討いただく必要があります。

参考

データベース・エクスポートの拡張オプション - IBM Documentation

SPSS Modelerの外部ローダーを使う(Db2編) - Qiita

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0