Teradataでの正規表現の設定方法 - 7.0

EnrichVersion
7.0
EnrichProdName
Talend Big Data Platform
Talend Data Fabric
Talend Data Management Platform
Talend Data Services Platform
Talend MDM Platform
Talend Open Studio for Data Quality
Talend Open Studio for MDM
Talend Real-Time Big Data Platform
EnrichPlatform
Talend Studio
task
データクオリティとプレパレーション > データプロファイリング

Teradataで正規表現を使用する

正しくないデータを識別するには、パターンインジケーターを使用する方法があります。これらのインジケーターの作業には正規表現が使用されます。Teradataでは、正規表現関数はバージョン14からのみデフォルトでインストールされます。

バージョン14よりも古いバージョンのTeradataで正規表現関数を使用するには、ユーザー定義関数(UDF)をインストールする必要があります。

Teradataでのユーザー作成

CREATE FUNCTIONEXECUTE FUNCTIONというアクセス権を持つTeradataユーザーを作成する必要があります。

手順

  1. ユーザー名とパスワードにdbcを使ってTeradataにログインします。
  2. ユーザーを作成します。以下のコマンドを使用します:
    CREATE user test AS password=test perm = 200000000, SPOOL = 100000000;
  3. 作成したユーザーに対し、少なくともCREATE FUNCTIONEXECUTE FUNCTIONというアクセス権を付与します。

Cプログラムを使ったUDF (ユーザー定義関数)の作成

Cプログラムを使ってUDF (User Defined Function)関数を作成し、Teradataデータベースにインストールすれば、正規表現を使用できるようになります。

始める前に

  • このページの左パネルにある[Downloads] (ダウンロード)タブからRegex_INSTR.cファイルを取得します。

手順

  1. CプログラムをRegex_INSTR.cのような名前を付けて作成します。
  2. このCファイルを自分のTeradataデータベースに配置します。
  3. 先ほど作成したユーザーを使ってTeradataにログインします。
  4. UDF関数を作成します。たとえば次のようなコマンドを使用できます:
    CREATE FUNCTION Regex_INSTR (
    InputString VARCHAR(4096) CHARACTER SET LATIN,
    PatternString VARCHAR(512) CHARACTER SET LATIN )
    RETURNS INTEGER
    LANGUAGE C
    NO SQL
    EXTERNAL NAME 'CS!Regex_INSTR!/Regex_INSTR.c!F!Regex_INSTR1'
    PARAMETER STYLE SQL;
  5. 次のSQLインストラクションを使ってUDFをテストします:
    select Regex_INSTR('A','[A-Z]');
    このインストラクションによって1が返されます。

パターンインジケーターの編集とカラム分析での使用

データベース内の分析済みカラムで正規表現を使用できるようになる前に、SQLインストラクションとパターンを追加して作成した正規表現関数を宣言する必要があります。

手順

  1. Profilingパースペクティブで、[Libraries] (ライブラリー) > [Indicators] (インジケーター) > [System Indicators] (システムインジケーター)を展開します。
  2. [Pattern Matching] (パターンマッチング )フォルダーで、[Regular Expression Matching] (正規表現マッチング)をダブルクリックします。
  3. [Indicator Definition] (インジケーター定義)ビューで、[+]をクリックします。
  4. 新しいインジケーター行の[Database] (データベース)リストでからTeradataを選択します。
  5. 新しいフィールドの横にある[Edit...] (編集...)をクリックし、[Edit expression] (式の編集)ダイアログボックスを表示させます。
  6. [Expression] (式)ボックスに次のSQL式を追加します:
    SELECT COUNT(CASE WHEN Regex_INSTR(<%=__COLUMN_NAMES__%>,<%=__PATTERN_EXPR__%>) =1 THEN 1 END), COUNT(*)FROM <%=__TABLE_NAME__%> <%=__WHERE_CLAUSE__%>
  7. 変更したパターンインジケーターをカラム分析に追加します。
  8. 分析を実行し、[Analysis Results] (分析結果)ページに切り替えます。
  9. [Pattern Matching] (パターン一致)テーブルでパターン結果を右クリックし、たとえば[View invalid rows] (無効な行を表示)を選択します。SQLエディターが開き、無効なデータがリスト表示され、SQL式は次のようになります:
    SELECT * FROM "test"."Employee" WHERE ( not REGEX_INSTR("FULLNAME" , '^[A-Z]+' ) =1 OR "FULLNAME" IS NULL )

[Pattern Test] (パターンテスト)ビューの使用

[Pattern Test View] (パターン テストビュー)では、正規表現に対してテキストの文字列をテストできます。

手順

  1. Talend Studioのメニューバーで 、[Window] (ウィンドウ) > [Show View] (ビューの表示)をクリックします。
  2. フィルターフィールドにPattern Test Viewと入力します。
  3. [Pattern Test View] (パターンテストビュー)を選択し、[OK]をクリックします。
  4. [DB Connections] (DB接続)オプションを選択し、リストでTeradata接続を選択します。
  5. [Test Area] (テストエリア)[Regex]フィールドに、テスト文字列と正規表現をそれぞれ入力します。
  6. [Test] (テスト)ボタンをクリックします。

タスクの結果

一致または非一致のテキストがビューに表示されます。