New string functions and operators in Fabric Data Warehouseの変更点と確認ポイント

Microsoft Fabric Data Warehouseで文字列処理を多用している場合、2026年6月19日に確認された「New string functions and operators in Fabric Data Warehouse」は見逃せない更新です。結論から言うと、既存処理をすぐ変更しなければならない強制的な移行ではなく、表記ゆれ検出・あいまい検索・Unicode文字列・SQLの可読性改善に使える新しいT-SQL機能がプレビューとして追加されたという内容です。

特に確認すべきなのは、EDIT_DISTANCEやJARO_WINKLER_SIMILARITYなどの近似文字列マッチング関数をデータ品質改善に使えるか、||や||=を既存の+連結と混在させても意図したNULL処理になるか、UNISTRを国際化対応や特殊文字の扱いに使う場合に照合順序や文字コードの制約に引っかからないか、という3点です。Microsoft Fabric Blogでは、この更新はFabric Data Warehouse向けのプレビュー機能として紹介されています。([Microsoft Fabric Community][1])

目次

New string functions and operators in Fabric Data Warehouse は何が変わった?

今回の変更は、Fabric Data Warehouseで利用できる文字列処理機能の拡張です。大きく分けると、次の2系統があります。

追加された機能目的使いどころ
EDIT_DISTANCE2つの文字列の差分の大きさを数値化誤字、表記ゆれ、近い文字列の検出
EDIT_DISTANCE_SIMILARITY文字列の類似度を0〜100で評価類似度のしきい値で候補を絞る
JARO_WINKLER_DISTANCE文字列の距離を評価。先頭が一致する文字列を重視氏名、地名、短いラベルの照合
JARO_WINKLER_SIMILARITYJaro-Winkler方式の類似度を0〜100で評価顧客名、店舗名、都市名などの名寄せ
| |ANSI SQLスタイルの文字列連結SQLの可読性向上、他DBとの互換性改善
| | =変数への文字列追加を簡潔に記述動的SQLやメッセージ文字列の組み立て
UNISTRUnicodeエスケープを使った文字列リテラルの扱い絵文字、記号、多言語文字、特殊文字の表現

Microsoftの説明では、これらは「実データで起こる表記ゆれ」への対応をSQL内で行いやすくするものです。例として、Hong Kong、Hongkong、Hong-Kongのような地名の揺れや、名前・場所の入力差異を検出する用途が挙げられています。([Microsoft Fabric Community][1])

今回の分類はNoticeです。そのため、期限付きの廃止対応や設定変更を急ぐタイプの告知ではなく、Fabric Data WarehouseのSQL開発者・データエンジニアが新機能として検証すべき更新と捉えるのが現実的です。

影響を受けるMicrosoft Fabric利用者

今回の影響を受けやすいのは、Fabric Data Warehouseを単なる保存先ではなく、SQLでデータ整形・照合・分析前処理を行っているチームです。

影響が大きいケース

次のような運用をしている場合は、早めに検証する価値があります。

利用シーン確認すべき理由
顧客名・会社名・店舗名の名寄せ完全一致では拾えない表記ゆれをSQLで検出できる可能性がある
住所・都市名・国名の標準化手入力データや外部連携データの揺れを抽出しやすい
Power BI用の集計前処理レポート側ではなくWarehouse側で揺れを整理できる
Data FactoryやNotebookで文字列クレンジングしている一部処理をT-SQLに寄せられる可能性がある
複数DB製品からFabricへSQLを移行している| |によりANSI SQL寄りの文字列連結が書きやすくなる
多言語データや記号を扱うUNISTRでUnicode表現を扱いやすくなる

一方で、既存のSQLが自動的に書き換わるわけではありません。既存処理への直接的な破壊的変更というより、今後のクエリ設計やデータ品質改善の選択肢が増えたという影響です。

近似文字列マッチングで何ができるようになるか

今回の目玉は、EDIT_DISTANCE、EDIT_DISTANCE_SIMILARITY、JARO_WINKLER_DISTANCE、JARO_WINKLER_SIMILARITYです。

これまでFabric Data Warehouseで表記ゆれを探す場合、LIKE、REPLACE、LOWER、TRIM、手作業の正規化テーブルなどを組み合わせる必要がありました。今回の関数を使うと、「完全一致しないが似ている文字列」をSQLで評価しやすくなります。

実務で使いやすい例

たとえば、顧客マスターに次のような会社名が混在しているとします。

入力値人間が見た判断
山田商事株式会社正式名
山田商事(株)同一企業の可能性
ヤマダ商事株式会社同一企業の可能性
山田商事同一企業の可能性
山本商事株式会社別企業の可能性

完全一致だけでは同じ候補として拾えません。しかし、近似文字列マッチングを使うと、類似度の高い候補を抽出し、人間の確認対象としてリスト化できます。

SELECT
    CustomerName,
    EDIT_DISTANCE_SIMILARITY(CustomerName, N'山田商事株式会社') AS Similarity
FROM dbo.CustomerMaster
WHERE EDIT_DISTANCE_SIMILARITY(CustomerName, N'山田商事株式会社') >= 80;

このようなクエリは、最終判断を自動化するというより、確認すべき候補を減らす目的で使うと実務に合います。類似度80以上だから同一と断定するのではなく、「レビュー対象」「候補グループ」「名寄せ候補」として扱うのが安全です。

Microsoft Learnでは、EDIT_DISTANCE_SIMILARITYは0が一致なし、100が完全一致を示す類似度を返すと説明されています。また、EDIT_DISTANCE系の関数はプレビューであり、現時点では転置をサポートしない点も明記されています。(Microsoft Learn)

EDIT_DISTANCE系とJARO_WINKLER系の使い分け

近似文字列マッチングは便利ですが、どの関数を使うかで結果の見え方が変わります。最初は次のように考えると選びやすくなります。

関数向いている用途判断のしやすさ
EDIT_DISTANCE何文字分違うかを見たい場合距離が小さいほど近い
EDIT_DISTANCE_SIMILARITY類似度のしきい値で抽出したい場合0〜100で扱いやすい
JARO_WINKLER_DISTANCE短い名称や先頭一致を重視したい場合距離が小さいほど近い
JARO_WINKLER_SIMILARITY氏名・地名・商品名の候補順位付け0〜100で扱いやすい

初心者や運用担当者が最初に試すなら、EDIT_DISTANCE_SIMILARITYまたはJARO_WINKLER_SIMILARITYが扱いやすいです。スコアが0〜100で返るため、Power BIや監査用テーブルに出したときも説明しやすいからです。

たとえば、データ品質チェックの運用では次のようにしきい値を分けると判断しやすくなります。

類似度スコアの例運用上の扱い
95〜100自動補正候補。ただし初期運用では人の確認を残す
85〜94同一候補としてレビュー
70〜84参考候補。誤検出が増えやすい
69以下原則として別データ扱い

しきい値はデータの種類によって変わります。会社名のように長い文字列では高め、地名や人名のように短い文字列では誤検出が起きやすいため、最初は厳しめに設定するのが無難です。

|| と ||= は便利だがNULL処理に注意

||は、文字列を連結するANSI SQLスタイルの演算子です。従来のT-SQLでは+やCONCAT()を使う場面が多くありましたが、||を使うことで他のSQL製品に近い書き方ができます。Microsoft Learnでも、||はANSI SQL標準に従う文字列連結演算子として説明されています。(Microsoft Learn)

SELECT LastName || ', ' || FirstName AS DisplayName
FROM dbo.Users;

ただし、ここで注意したいのがNULLです。||はSET CONCAT_NULL_YIELDS_NULLの設定に従わず、入力のどれかがNULLなら結果もNULLになります。これは既存の+連結やCONCAT()に慣れているチームでは、見落としやすいポイントです。(Microsoft Learn)

たとえば、MiddleNameがNULLの可能性がある場合は、次のようにCOALESCEを使う方が安全です。

SELECT
    LastName || ' ' || COALESCE(MiddleName || ' ', '') || FirstName AS FullName
FROM dbo.Users;

||=は、変数に文字列を追加して代入するための演算子です。短い動的SQLやログメッセージの組み立てでは便利ですが、変数の宣言長を超えると切り捨てが起きる可能性があります。Microsoft Learnでは、変数がLOB型でない場合、結果は宣言された型の最大長に切り詰められると説明されています。(Microsoft Learn)

DECLARE @message nvarchar(100) = N'処理開始: ';
SET @message ||= N'顧客マスター検証';
SELECT @message;

運用で使う場合は、nvarchar(100)のような短い変数に安易に連結し続けないことが重要です。長くなる可能性がある文字列は、最初からnvarchar(max)などを検討してください。

UNISTR はUnicode対応に便利だが照合順序を確認する

UNISTRは、Unicodeエスケープを使って文字列を表現するための関数です。多言語データ、記号、絵文字、特殊文字をSQLで扱う場面で役立ちます。Microsoft Learnでは、\xxxxまたは\+xxxxxx形式でUnicode値を指定でき、NCHARより複数のUnicode値やエスケープシーケンスを扱いやすいと説明されています。(Microsoft Learn)

SELECT UNISTR(N'\306F\3044') AS JapaneseText;

上記のように、Unicode値を使って文字を表せるため、SQLスクリプト内で特殊文字を明示的に扱いたい場合に便利です。

ただし、charやvarcharで使う場合は照合順序に注意が必要です。Microsoft Learnでは、charやvarcharの入力では有効なUTF-8照合順序が必要で、レガシーコードページの照合順序とは互換性がないと説明されています。(Microsoft Learn)

日本語データを扱う現場では、nvarcharを使っているか、既存テーブルの照合順序がどうなっているかを確認してから検証するのが安全です。特に、外部システムから取り込んだ古い文字コード由来のデータが混在している場合、想定通りに表示・比較できるかをサンプルデータで確認してください。

すぐ確認したい設定・SQL・運用ポイント

今回のNoticeを受けて、管理者やデータエンジニアがすぐに確認すべきポイントを整理します。

確認項目確認する理由推奨アクション
対象ワークロードFabric Data Warehouseで文字列処理をしているかWarehouse、SQL analytics endpoint、関連SQLを洗い出す
既存の名寄せ処理NotebookやPipelineで重い前処理をしていないかSQL関数で置き換えられる候補を探す
NULL連結の扱い| |利用時に結果がNULLになる可能性があるCOALESCEやCONCAT()との使い分けを決める
文字列長連結結果が切り捨てられる可能性があるvarchar(max)、nvarchar(max)の要否を確認
照合順序UNISTRや多言語文字の扱いに影響するUTF-8照合順序やnvarchar利用を確認
プレビュー利用方針本番利用の判断が必要重要処理では検証環境から始める
性能近似マッチングは比較対象が多いと重くなりやすい対象列、件数、しきい値、前処理を絞る

特に重要なのは性能です。近似文字列マッチングは便利ですが、全行対全行の比較に使うと処理量が急増します。たとえば10万件の顧客名を総当たりで比較すると、単純計算で膨大な比較が発生します。

実務では、次のように段階的に絞り込むのが現実的です。

SELECT
    c.CustomerId,
    c.CustomerName,
    r.ReferenceName,
    EDIT_DISTANCE_SIMILARITY(c.CustomerName, r.ReferenceName) AS Similarity
FROM dbo.CustomerMaster AS c
JOIN dbo.ReferenceCustomer AS r
    ON LEFT(c.CustomerName, 1) = LEFT(r.ReferenceName, 1)
WHERE EDIT_DISTANCE_SIMILARITY(c.CustomerName, r.ReferenceName) >= 85;

この例では、最初の1文字が一致するものに絞ってから類似度を計算しています。実際には、都道府県、国コード、法人種別、メールドメイン、電話番号の一部など、業務データに合った前処理条件を加えると、誤検出と処理負荷を減らしやすくなります。

既存環境で急いで変更すべきか

今回の更新だけを理由に、既存SQLを急いで全面的に書き換える必要はありません。むしろ、既存の安定した処理を変更する場合は、差分検証を行うべきです。

優先度は次のように考えると判断しやすくなります。

優先度対象対応方針
高表記ゆれ・名寄せ・重複検出に課題がある環境検証用クエリを作り、精度と性能を確認
中複数DBからFabricへ移行中の環境| |の採用可否とNULL処理ルールを設計
中多言語・特殊文字を扱う環境UNISTRと照合順序を検証
低単純な集計・数値分析中心の環境すぐの対応は不要。機能把握に留める

また、Microsoft Learnの各関数ページではプレビュー機能であることが示されています。プレビュー機能は仕様や動作が変わる可能性があるため、基幹処理や監査対象の本番処理に組み込む場合は、リリースノートと公式ドキュメントを確認しながら段階的に導入するのが安全です。(Microsoft Learn)

管理者・開発者向けの実践チェックリスト

Fabric管理者やデータ基盤担当者は、次の順番で確認すると効率的です。

既存処理の棚卸し

まず、Warehouse内で文字列加工をしているSQLを洗い出します。特に、LIKE、REPLACE、TRIM、LOWER、UPPER、CONCAT、+による文字列連結を多用しているクエリは確認対象です。

確認したいのは、「新関数に置き換えるべきか」ではなく、「新関数を使うと保守しやすくなる処理があるか」です。すべてを変更する必要はありません。

サンプルデータで精度を確認する

次に、実データから100〜1,000件程度のサンプルを取り、類似度スコアを出してみます。ここで重要なのは、正解データを人間が確認することです。

「85以上なら同一」と最初から決めるのではなく、業務担当者が見て納得できる境界値を探してください。人名、会社名、住所、商品名では適切なしきい値が変わります。

NULLと文字列長のルールを決める

||を使う場合は、チーム内でNULLの扱いを統一しておくとトラブルを避けられます。

たとえば、次のようなルールを決めておくと安全です。

ルール例
NULLを空文字として扱いたい場合COALESCE(ColumnName, '')を使う
NULLを異常値として検出したい場合あえて| |のNULL伝播を利用する
表示名を作る場合CONCAT()と| |のどちらを標準にするか決める
長いログ文字列を作る場合nvarchar(max)を使う

本番投入前に性能を測る

近似マッチング関数は、使い方によっては便利な反面、比較回数が増えやすい処理です。Power BIの更新前処理や定期バッチに組み込む場合は、対象件数を変えて実行時間を測ってください。

特に次のようなクエリは注意が必要です。

-- 注意:件数が多いテーブル同士で総当たりに近い比較をすると重くなりやすい
SELECT *
FROM dbo.CustomerA AS a
JOIN dbo.CustomerB AS b
    ON EDIT_DISTANCE_SIMILARITY(a.Name, b.Name) >= 85;

このような書き方をする前に、国、地域、頭文字、法人番号、メールドメインなどで候補を絞る設計を検討しましょう。

今回の変更をどう活用すべきか

今回の「New string functions and operators in Fabric Data Warehouse」は、Fabric Data Warehouseをより実務的なデータ品質改善の場として使いやすくする更新です。単に文字列関数が増えたというより、これまでSQL外で処理していた名寄せ、表記ゆれ検出、Unicode文字列処理をWarehouse側に寄せられる可能性があります。

ただし、プレビュー機能であること、NULL連結の挙動、文字列長の切り捨て、照合順序、近似マッチングの性能には注意が必要です。特に本番データの自動補正に使う場合は、最初から自動更新するのではなく、候補抽出、業務確認、しきい値調整、段階導入の順に進めるのが安全です。

まずは、Fabric Data Warehouse内で表記ゆれや重複候補の検出に困っているテーブルを1つ選び、EDIT_DISTANCE_SIMILARITYまたはJARO_WINKLER_SIMILARITYで候補リストを作ってみてください。そこで精度と処理時間を確認し、効果が見える処理から運用に組み込むのが、今回の更新を最も実務的に活かす進め方です。
[1]: https://community.fabric.microsoft.com/t5/Fabric-Updates-Blog/New-string-functions-and-operators-in-Fabric-Data-Warehouse/ba-p/5195232 “
New string functions and operators in Fabric Data … – Microsoft Fabric Community
“

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次