---
title: "Pentaho Data Integration から MariaDB ColumnStore へバルクデータロード"
publish_date: 2019-05-07
updated_date: 2023-10-12
author: "MariaDB"
tags:
  - name: "Analytics"
    url: "/ja/resources/blog/tag/analytics-ja.md"
  - name: "ColumnStore"
    url: "/ja/resources/blog/tag/columnstore-ja.md"
---

# Pentaho Data Integration から MariaDB ColumnStore へバルクデータロード

MariaDB の BI(Business Intelligence)/データ分析/DWH(Data Warehouse)用列指向データベース，MariaDB ColumnStore は現時点では Linux しかサポートしていません。

しかしながら多くの企業において，Linux デスクトップが利用されていることはほとんどなく，Windows クライアントから ColumnStore サーバに SSH ログインし，cpimport によるデータインポートには煩雑さが伴います。

ColumnStore 1.2 では新たに Windows 版 PDI(Pentaho Data Integration)用 MariaDB ColumnStore bulk loader plugin が追加され，Windows 上で PDI を利用する場合，GUI で簡単にデータインポート，ETL等の作業を行うことが可能となりました。  
今回はその利用法に関して解説致します。

### 実行環境

###### クライアント

- Microsoft Windows 10 Pro 1803
- [Pentaho Data Integration(PDI) Community Edition(CE) 8.2.0.0-342](https://sourceforge.net/projects/pentaho/files/Pentaho%208.2/client-tools/pdi-ce-8.2.0.0-342.zip/download)
- Java 1.8.0\_201
- [MariaDB Connector/J 2.4.1](https://downloads.mariadb.com/Connectors/java/connector-java-2.4.1/mariadb-java-client-2.4.1.jar)

###### ColumnStore サーバ

- CentOS 7.6.1810
- [MariaDB ColumnStore 1.2.3](https://downloads.mariadb.com/ColumnStore/1.2.3/centos/x86_64/7/mariadb-columnstore-1.2.3-1-centos7.x86_64.rpm.tar.gz) single(UM+PM combined) node 構成

### PDI CE のインストール

PDI CE は SourceForge 上で公開されており，以下からダウンロード可能です。

<https://sourceforge.net/projects/pentaho/files/Pentaho%208.2/client-tools/>

ダウンロード後，適当なフォルダに展開します。今回は C:\\pdice8.2 に展開します。  
なお，[Pentaho Enterprise Edition](http://www.hitachivantara.com/go/pentaho.html) でも MariaDB ColumnStore bulk loader plugin は利用可能です。

### MariaDB ColumnStore PDI プラグインのインストール

[mariadb-columnstore-kettle-bulk-exporter-plugin-1.2.3-1-x64-win.zip](https://downloads.mariadb.com/Data-Adapters/mariadb-streaming-data-adapters/kettle-data-adapter/1.2.3/winx64-packages/mariadb-columnstore-kettle-bulk-exporter-plugin-1.2.3-1-x64-win.zip) をダウンロード，PDI CE 8.2 plugin フォルダ(今回はC:\\pdice8.2\\data-integration\\plugins)に展開します。

### MariaDB Connector/J のインストール

執筆時点での最新版，[mariadb-java-client-2.4.1.jar](https://downloads.mariadb.com/Connectors/java/connector-java-2.4.1/mariadb-java-client-2.4.1.jar) をダウンロード，PDI CE 8.2 lib フォルダ(C:\\pdice8.2\\data-integration\\lib)にコピーします。

### Columnstore.xml のコピー

ColumnStoreサーバの /usr/local/mariadb/columnstore/etc/Columnstore.xml をSFTP等でクライアントWindows PCにコピーします。Columnstore.xml 内でIPアドレスが 127.0.0.1 になっている場合，Windows PCからアクセス可能となるよう，IPアドレスを一括置換します。

修正前:

&lt;IPAddr&gt;127.0.0.1&lt;/IPAddr&gt;

修正後(例):

&lt;IPAddr&gt;192.168.2.12&lt;/IPAddr&gt;

### CSV File Input ステップの設定

今回は GitHub で公開されている [ColumnStore 用サンプルデータ](https://github.com/mariadb-corporation/mariadb-columnstore-samples)の opps(opportunities) を用います。  
CSV データは mock\_opp\_data.csv になりますが，事前に ColumnStore サーバ上で create\_opps\_tab.sh を実行し，テーブルを作成しておきます。  
PDI 上で File – New – Transformation で新規の Transformation を作成し，Canvas に CSV FIle Input を drag &amp; drop します。

![](https://www.s-style.co.jp/blog/wp-content/uploads/2019/05/PDI-CSV-file-input-300x222.png)

CSV ファイルの選択，File encoding の選択等を行います。  
CSVファイルからインポートを行う場合，先頭行(Header row)に各フィールド名を含めることで，各フィールドのマッピングを半自動的に行うことができます。その場合は Header row present ? をチェックします。

### MariaDB ColumnStore bulk loaderステップの設定

左ペイン(Designタブ)から MariaDB ColumnStore Bulk Loaderステップを Canvas に drag &amp; dropし，CSV File Input ステップと接続します。

![](https://www.s-style.co.jp/blog/wp-content/uploads/2019/05/MCS-bulk-load-PDI-300x190.png)

Target database, table 等を指定，下部の Settings タブで Columnstore.xml を選択，デーテベース接続設定を行います。

### データベース接続設定

事前に以下のようにColumnStoreサーバ上で接続ユーザを作成しておきます。

`GRANT ALL ON *.* to pentaho@’%’ IDENTIFIED BY ‘password’;<br></br>FLUSH PRIVILEGES;<br></br>`

![](https://www.s-style.co.jp/blog/wp-content/uploads/2019/05/connection-settings-300x192.png)

接続設定ウインドウで以下の項目を設定します。

- 接続タイプ: MariaDB(JDBC)
- ホスト名/IPアドレス
- インポート先データベース名
- 待受Port番号(デフォルト: 3306)
- ユーザ名
- パスワード

### CSV – ColumnStore テーブル間の Field マッピング

MariaDB ColumnStore Bulk Loaderステップの Filed mapping タブを選択すると，CSV データと ColumnStore テーブル間のfield(カラム)のマッピングの確認，修正を行うことができます。  
CSVファイルからのインポートを行う場合，先頭行(Header row)に各フィールド名を含めることで，各フィールドのマッピングを半自動的に行うことができます。

![](https://www.s-style.co.jp/blog/wp-content/uploads/2019/05/bulk-load-field-mapping-300x101.png)

### ColumnStore へ bulk load

Canvas 左上にある Run ボタンをクリックすることで CSV ファイルからのバルクロードを開始することができます。ロード開始後，Canvas 下部に Execution Results ペインが表示されますので，Logging タブに以下のようなログが記録され，最後に Spoon – The transformation has finished!! と表示されていれば正常にインポートが完了したことが確認できます。

```
2019/04/05 12:20:02 - Spoon - Using legacy execution engine
2019/04/05 12:20:02 - Spoon - Transformation opened.
2019/04/05 12:20:02 - Spoon - Launching transformation [test-bulk-load-123]...
2019/04/05 12:20:02 - Spoon - Started the transformation execution.
2019/04/05 12:20:02 - test-bulk-load-123 - Dispatching started for transformation [test-bulk-load-123]
2019/04/05 12:20:02 - CSV file input.0 - Header row skipped in file 'C:\pdice8.2\mariadb-columnstore-samples\opps\mock_opp_data.csv'
2019/04/05 12:20:02 - CSV file input.0 - Finished processing (I=1001, O=0, R=0, W=1000, U=0, E=0)
2019/04/05 12:20:02 - MariaDB ColumnStore Bulk Loader.0 - mcsapi version: 1.2.3-3d1ab30
2019/04/05 12:20:02 - MariaDB ColumnStore Bulk Loader.0 - javamcsapi version: 1.2.3-3d1ab30
2019/04/05 12:20:03 - MariaDB ColumnStore Bulk Loader.0 - Finished processing (I=0, O=0, R=1000, W=1000, U=0, E=0)
2019/04/05 12:20:03 - Spoon - The transformation has finished!!

```

### まとめ

今回は Windows 上で Pentaho Data Integration を利用し，リモート MariaDB ColumnStore サーバに CSV ファイルからバルクデータロードを行う手順について解説いたしました。  
なお，2019年2月末開催の MariaDB Corporation ユーザ会議，OpenWorks 2019 にて Pentaho EE / Tableau 2019.1 と MariaDB ColumnStore との連携について講演しており，スライド(英語版)を以下のリンクより閲覧/ダウンロードいただけます。

[Using Pentaho/Tableau with MariaDB ColumnStore @ OpenWorks 2019](https://www.slideshare.net/GOTOSatoru/openworks2019-using-pentahotableau-with-mariadb-columnstore-133630869)