Oracle から Databricks レイクハウスへ ― 移行アクセラレーター導入事例

12 Nov 202610 Min Readviews 0comments 0
Oracle から Databricks レイクハウスへ ― 移行アクセラレーター導入事例 — Innovational Office Solution

導入事例:会員名簿の「髙橋さん」が「?橋さん」にならないように ― Emulus Consulting の Oracle → Databricks 移行

― 「髙」と「﨑」が化けない移行 ― Shift_JIS の Oracle DWH を UTF-8 のレイクハウスへ

概要

  • 提供:Innovational Office Solution + Databricks Lakebridge
  • お客様:Emulus Consulting
  • 移行対象:テーブル 1,850 本(42 TB)、PL/SQL パッケージ・プロシージャ 640 本、マテリアライズドビュー 96 本、スケジューラージョブ 310 本
  • 自動変換精度:初期段階で 82% を自動変換(70%~90% の範囲)。残りは専門家の調整と業務部門の確認で完了
  • お問い合わせ:Admin@innovationalofficesolution.com
  • 無料PoC:AnyBI to Power BI & AnyETL to Fabric ページ

背景:20年分のデータと、新しい問い

Emulus Consulting が支援する流通業のお客様は、2000年代から Oracle を DWH として運用してきました。約 280 店舗の POS 実績、約 450 万人の会員情報、商品マスタ、発注データが蓄積され、毎朝の売上日報や月次の商品分析を支えてきた基盤です。

Oracle Database 19c は Premier Support が2029年12月31日、Extended Support が2032年12月31日まで提供されており、ソフトウェアの期限に追われていたわけではありません。移行のきっかけは事業側からの新しい問いでした。

「天候や曜日、販促を加味した需要予測で、店舗ごとの発注量を自動で提案できないか。」

需要予測には、数年分の POS 明細と外部データを機械学習で扱う必要があります。分析のたびに Oracle から CSV を抽出して別のサーバーに運ぶやり方では、量的にも鮮度的にも限界がありました。データと機械学習を同じ場所で扱える Databricks への移行が決まりました。

見落としがちな最大のリスク:文字コード

このデータベースは日本語キャラクターセット JA16SJISTILDE で構築されていました。移行先の Databricks(Delta Lake)は UTF-8 が前提です。単純に変換すると、次のような問題が起こります。

文字の種類例起こりうる問題
異体字(いわゆる外字・旧字体)髙、﨑、德、栁「?」や別の文字に化ける、名寄せが崩れる
機種依存文字①~⑳、㈱、Ⅲ、№商品名・住所が化ける、検索で一致しない
波ダッシュ・全角チルダの揺れ〜 と ~同じ商品名が別物として扱われる
半角カナカブシキガイシャ全角との混在で名寄せが崩れる
文字数ではなくバイト数で切った項目SUBSTRB で切った名称2バイト文字の途中で切れた不正なデータ

会員名簿の「髙橋さん」が「?橋さん」になれば、DM の宛名もポイントの名寄せも狂います。Emulus は、文字コード変換をコード変換と同じ重さの独立したワークストリームとして扱いました。

移行アプローチ

STEP 1|アセスメント

データディクショナリ、実行履歴、スケジューラー定義から依存関係と実行頻度を可視化しました。Lakebridge の評価機能の結果もあわせて、売上・会員・商品の業務領域ごとに4つの移行ウェーブを決めています。過去 12 か月参照されていないテーブル 410 本(全体の 22%)は移行対象から外しました。

STEP 2|文字コードの全件スキャン

文字列列 3,200 列、約 61 億件を全件スキャンし、UTF-8 へ変換したときに問題が起きる文字を列ごとに洗い出しました。該当したのは約 18 万件、文字の種類で 1,140 種です。見つかった文字は、①正しく対応する UTF-8 の文字に変換するもの、②業務ルールで正規化するもの(波ダッシュの統一、半角カナの全角化など)、③業務部門の判断が必要なもの、に仕分けし、変換表として管理しました。

STEP 3|データ移行

大きなファクトテーブルはパーティション単位で並列に抽出し、変換表を適用したうえで Delta テーブルとして Bronze 層に格納しました。切り替えまでの6週間は、更新タイムスタンプによる差分同期を続けています。

STEP 4|PL/SQL の変換

Lakebridge のコンバーターで Oracle SQL を Databricks SQL に変換し、手続き的な部分は本アクセラレーターが担当しました。

  • 集合処理で書けるロジック → Spark SQL
  • カーソルループ・行単位処理 → 集合演算の MERGE または PySpark
  • SUBSTRB / LENGTHB などバイト単位の文字列関数 → 文字単位の関数に書き換え(意図を業務部門に確認)
  • DBMS_SCHEDULER → Lakeflow Jobs

初期自動変換精度は 82% でした。

STEP 5|突合(PulseQA)

件数・合計値・NULL 件数に加えて、文字列列のハッシュ比較を行い、変換表どおりに変わった文字以外に差がないことを確認しました。Oracle では空文字('')が NULL として扱われる点も、全文字列列でチェックしています。

Oracle と Databricks の対応表

OracleDatabricks
テーブル(JA16SJISTILDE)Delta テーブル(UTF-8)
PL/SQL パッケージ・プロシージャSpark SQL / PySpark
カーソル FOR ループ集合演算の MERGE INTO
SUBSTRB / LENGTHBsubstring / length(文字単位)
MERGEDelta Lake MERGE INTO
CONNECT BY再帰 CTE
DECODE / NVLCASE / COALESCE
マテリアライズドビューGold 層テーブル(ジョブで更新)
DBMS_SCHEDULERLakeflow Jobs
VPDUnity Catalog の行フィルター・列マスク

成果

  • PL/SQL 640 本を初期自動変換精度 82% で移行(プロジェクト期間 22 週間)
  • 文字列列 3,200 列、約 61 億件のデータで文字化けゼロを確認
  • 夜間バッチ:6 時間 40 分 → 55 分
  • 移行後 4 か月で、店舗別需要予測モデルを本番化(対象 280 店舗)
  • 予測にもとづく発注提案で、生鮮・日配の廃棄ロス 17%・欠品 23% を削減
  • Oracle の分析用途リソースを 64% 削減

文字コードの診断から始めませんか

御社の PL/SQL バッチ5本と主要テーブルの文字コード診断を、無料で実施します。

無料PoC(概念実証)
Microsoft Solution Partner

Shift_JIS の Oracle DWH を Databricks へ移行

20年分の Shift_JIS 系 Oracle DWH(40TB+)を UTF-8 の Databricks レイクハウスへ。外字・機種依存文字の完全対応と PL/SQL の PySpark 自動変換を実現します。

外字・旧字体(髙、﨑等)の文字化け防止マッピング初期自動変換精度 82% で PL/SQL を PySpark 化Shift_JIS / CP932 全件スキャンツール提供主要テーブルと PL/SQL 5 本で文字コード無料診断
無料 PoC を申し込む移行スペシャリストに相談
🔒 リスクなし•⚡ 24時間以内返信
発行:Office Solution AI Labs(Microsoft Solution Partner for Data & AI)
#日本語#Oracle#Databricks#Shift_JIS#外字対応#UTF-8#Delta Lake#事例

Contact Us

Advance Analytics of next generation

We are an authorized implementation partner of Snowflake, Databricks, Amazon, Automation Anywhere, Denodo, DataDog, New Relic, and Elastic.

Copyrights © 2026 Office Solution AI Labs