データが、きれいに統一された単一の形式で届くことはほとんどありません。取引先からCSVのエクスポートファイルが送られてくることもあれば、社内APIがJSON形式でアクティビティを記録し、分析パイプラインがParquet形式で出力することもあります。従来、これらをひとつのテーブルにまとめるには、形式ごとに別々に取り込んだうえで、自分で整合性を取る必要がありました。Navicat 18で刷新されたインポートウィザードは、まさにこの課題に対応するためのものです。ここでは、MySQLのサンプルデータベース「classicmodels」をもとに作成した3つの異なる形式のファイルを、ひとつのテーブルに統合する手順を紹介します。
Parquetが対応形式に追加
Parquetが、インポートウィザードの既存の対応形式(CSV、JSON、XML、Excel、DBaseなど)に加わり、ソース形式として選択できるようになりました。特にデータエンジニアリングでは、これは重要な改善です。ParquetはSparkやPandas、多くのクラウドデータウェアハウスでデフォルトの出力形式として使われており、事前に変換せず、そのままテーブルへ取り込めるようになったことで、これまで不足していた機能が補われました。
ひとつの画面で複数のソースとテーブルを管理
さらに大きく変わったのは、ウィザードの構成です。ファイルごとにウィザードを実行する代わりに、新しい[ソースファイルとターゲットテーブル]画面では、形式の異なる複数のソースを一度に追加し、それぞれにターゲットテーブルを個別に割り当てることができます。2つのファイルを同じターゲットに割り当てると、個別にインポートを繰り返すことなく、両方のデータがひとつのテーブルに統合されます。
実践:3つの形式をひとつのテーブルに統合
地域ごとに分かれた3つの顧客ファイルがあるとします。ヨーロッパ向けのJSONファイル、南北アメリカ向けのCSVファイル、その他地域向けのParquetファイルです。これら3つをひとつの新しいテーブルにまとめたい場合、Navicat 18では以下の手順で実行できます。
- Navicatのメインウィンドウで、[ナビゲーションペイン]の[テーブル]を選択し、[オブジェクトツールバー]の[インポートウィザード]ボタンをクリックします。下図の赤枠部分です。

- [ソースファイルとターゲットテーブル]画面で、[ソースの追加]をクリックし、[JSONファイル (*.json)]を選択して、ヨーロッパ向けのエクスポートファイルを選択します。
- 再度[ソースの追加]をクリックし、ドロップダウンから[CSVファイル (*.csv)]を選択して、南北アメリカ向けのエクスポートファイルを選択します。
- もう一度[ソースの追加]をクリックし、[Parquetファイル (*.parquet)]を選択して、残りのエクスポートファイルを選択します。
- Navicatは、自動的に[新しいテーブル]を[ターゲットテーブル]として設定します。既存のテーブルを選択するか、名前を手動で変更することで、ターゲットを変更できます。3行すべての[ターゲットテーブル]を「customers_demo」に設定します。

設定が完了すると、[ソースファイルとターゲットテーブル]画面は次のような表示になります。

- [次へ]をクリックして、各ソースのフィールドマッピングを確認します。ウィザードが各形式固有のデータ型を統一されたターゲットスキーマに調整するため、CSVの文字列、JSONのキー、Parquetの列は、いずれも同じ一連のフィールドに取り込まれます。左側で各ソースに対応するcustomers_demoを選択すると、[結果プレビュー]ペインで内容を確認できます。Navicatでは、実際にデータを書き込む前に変換後の結果が表示されるため、インポートを確定する前に列の不一致を確認できます。

- [次へ]をクリックして、[インポートモード]を選択します。この例で選択できるのは、ターゲットテーブルにレコードを追加する方法と、すべてのレコードを削除してソースから再投入する方法の2つです。今回は新しいターゲットテーブルを作成するため、デフォルトの追加オプションをそのまま使用します。

- [次へ]をクリックして最終ステップに進み、[開始]をクリックしてインポートを実行します。
インポートの進行に合わせて、Navicatが出力ログを生成します。各ソースについてcustomers_demoテーブルの作成を試みますが、2つ目以降のファイルではテーブルがすでに存在するため、エラーが発生します。ただし、問題はありません。Navicatはそのまま新しいレコードの追加を続行します。実際にサマリーを見ると、63件すべてのレコードが正常に追加されたことを確認できます。

ウィザードを閉じると、新しいテーブルがオブジェクトリストに表示されます。

テーブルを開き、データが正しく取り込まれたことも確認できます。

この機能を知っておくメリット
目立つ機能ではありませんが、ファイル形式の異なる複数のシステムから出力データを集め、日常的に統合している方にとっては、非常に実用的です。形式の異なる複数のソースをウィザードで指定し、一度の操作ですべてをひとつのテーブルに取り込めるため、これまでスクリプト作成に多くの手間を要していた作業を、数回のクリックで実行できるようになりました。

