Microsoft Azure Synapse SQLコネクタ > SQL ELTの最適化 > SQL ELTの最適化接続を使用したMicrosoft Azure Synapse SQL
  

SQL ELTの最適化接続を使用したMicrosoft Azure Synapse SQL

Microsoft Azure Synapse SQL接続を含むマッピングに対してSQL ELTの最適化を設定できます。SQL ELTの最適化により、マッピングのパフォーマンスが向上します。
マッピングタスクでSQL ELTの最適化を設定するには、SQL ELTの最適化詳細セッションプロパティを使用します。
Microsoft Azure Data Lake Storage Gen2から読み取りを行い、SQL ELTの最適化を使用してMicrosoft Azure Synapse SQLに書き込みを行うタスクを実行すると、タスクはトランスフォーメーションロジックをPolyBaseクエリに変換します。
Microsoft Azure Synapse SQL接続を使用してMicrosoft Azure Synapse SQLに対してデータの読み取りおよび書き込みを行うようにマッピングでSQL ELTの最適化を設定できる場合は、テーブル、外部テーブル、カスタムクエリ、およびビューからデータの読み取りを行うことができます。

Microsoft Azure Synapse SQLでの関数

SQL ELTの最適化を使用して、トランスフォーメーション内の関数をMicrosoft Azure Synapse SQLにプッシュできます。
SQL ELTの最適化を使用した場合、Secure Agentはデータベース内の同等の関数を判断して、トランスフォーメーションの式、フィルタまたはアグリゲータを変換します。
次の表に、Microsoft Azure Synapse SQL接続を含むマッピングに対してSQL ELTの最適化を設定する場合に使用できるSQL ELT関数を示します。
機能
機能
機能
ABS()
LAST_DAY()
SIGN()
ADD_TO_DATE()
LENGTH()
SIN()
ASCII()
LN()
SINH()
AVG()
LOG()
SOUNDEX()
CEIL()
LOWER()
SQRT()
CHR()
LPAD()
STDDEV()
CONCAT()
LTRIM()
SUBSTR()
COS()
MAKE_DATE_TIME()
SUM()
COUNT()
MAX()
SYSDATE()
DATE_DIFF()
MD5()
SYSTIMESTAMP()
DECODE()
MIN()
TAN()
EXP()
MOD()
TANH()
FIRST()1
POWER()
TO_BIGINT()
FLOOR()
REG_MATCH()
TO_CHAR(DATE)
GET_DATE_PART()
REPLACECHR()
TO_CHAR(NUMBER)
IIF()
REPLACESTR()
TO_DATE()
IN()
ROUND(DATES)
TO_DECIMAL()
INSTR()
ROUND(NUMBER)
TO_FLOAT()
IS_DATE()
RPAD()
TO_INTEGER()
IS_NUMBER()
RTRIM()
TRUNC(DATE)
IS_SPACES()
SESSSTARTTIME()1
TRUNC(NUMBER)
ISNULL()
SET_DATE_PART()
UPPER()
LAST()1
SHA-256 ()1
VARIANCE()
1詳細モードのマッピングには適用されません。
次の表に、SQL ELT関数の構文とその説明を示します。
機能
構文
説明
ADD_TO_DATE
ADD_TO_DATE (date, format, amount)
サポートされている形式:
  • - yyyy
  • - mm
  • - dd
  • - hh
  • - MI
  • - ss
  • - ms
  • - us
  • - ns
DATE_DIFF
DATE_DIFF(date1, date2, format)
サポートされている形式:
  • - yyyy
  • - mm
  • - dd
  • - hh
  • - MI
  • - ss
  • - ms
  • - us
  • - ns
DECODE
value , first_search , first_result [, second_search , second_result ]...[, default ]
値には、バイナリを除く任意のデータ型を含めることができます。有効な式を必要に応じて入力できます。trueまたはfalseを値として使用することはできません。
検索引数に条件を追加することはできません。
例:
DECODE ( CONST_NAME,
         'Five', 5,
         'Pythagoras', 1.414213562,
         'Archimedes', 3.141592654,
         'Pi', 3.141592654 )
FIRST
FIRST (value)
GET_DATE_PART
GET_DATE_PART (date, format)
サポートされている形式:
  • - yyyy
  • - mm
  • - dd
  • - hh
  • - MI
  • - ss
  • - ms
  • - us
  • - ns
IIF
IIF (condition, value1 [,value2])
IN
  • - アグリゲータトランスフォーメーションと式トランスフォーメーション
  • IIF(IN(search_value, value1, [value2, ..., valueN,]), 'TRUE', 'FALSE')
  • - フィルタトランスフォーメーション
  • IN(search_value, value1, [value2, ..., valueN,])
INSTR
INSTR(string, search_value)
INSTR (string, search_value [,start [,occurrence]])
INSTR (string, search_value)構文を使用する場合は、検索値を%で囲む必要があります。
INSTR (string, search_value [,start [,occurrence]])構文を使用する場合、検索値は、検索するシーケンスを含む文字式である必要があります。開始パラメータとオカレンスパラメータにデフォルト値を使用する場合は、検索値を%で囲む必要があります。
開始パラメータとオカレンスパラメータのデフォルト値は1です。
IS_DATE
IS_DATE(value [,format])
  • - アグリゲータトランスフォーメーションと式トランスフォーメーション
    • - IS_DATE(column name)
    • - IIF(IS_DATE(colname), value1 [,value2])
    • - IIF(IS_DATE(colname)=0 or 1, value1 [,value2])
  • - フィルタトランスフォーメーションとルータートランスフォーメーション
    • - IS_DATE(column name)=0 or 1
    • - IIF ( IS_DATE(colname), 0 or 1, 0 or 1)
    • - IIF(IS_DATE(column name)=0 or 1, 0 or 1, 0 or 1)
サポートされている形式:
  • - dd mon yyyy
  • - hh:mi:ss
  • - mm/dd/yyyy
  • - MM/DD/YYYY HH24:MI:SS
  • - yyyy
  • - yyyy-mm-dd
  • - yyyy-mm-dd hh:mi:ss
  • - yyyy.mm.dd
  • - yyyy/mm/dd
  • - yyyymmdd
  • - mon dd yyyy hh:miAM
  • - Mon dd, yyyy
  • - mon dd yyyy hh:mi:ss:mmmAM
  • - mm-dd-yyyy
  • - dd mon yyyy hh:mi:ss:mmm
  • - yyyy-mm-dd hh:mi:ss.mmm
  • - mm/dd/yy hh:mi:ss AM
  • - yyyy-mm-ddThh:mi:ss.mmm
  • - yyyy-MM-ddThh:mm:ss.fffZ
  • - dd mon yyyy hh:mi:ss:mmmAM
日付範囲: 1753/01/01~9999/12/31
ISNULL
  • - アグリゲータトランスフォーメーションと式トランスフォーメーション
    • - IIF(ISNULL(colname), value1 [,value2])
    • - IIF(ISNULL(colname)=0 or 1, value1 [,value2] )
  • - フィルタトランスフォーメーションとルータートランスフォーメーション
    • - ISNULL(column_name)
    • - IIF(ISNULL(column name), 0 or 1, 0 or 1)
IS_NUMBER
  • - アグリゲータトランスフォーメーションと式トランスフォーメーション
    • - IS_NUMBER(column name)
    • - IIF(IS_NUMBER(colname), value1 [,value2])
    • - IIF(IS_NUMBER(colname)=0 or 1, value1 [,value2])
  • - フィルタトランスフォーメーションとルータートランスフォーメーション
    • - IS_NUMBER(column name)=0 or 1
    • - IIF(IS_NUMBER(column name), 0 or 1, 0 or 1)
    • - IIF(IS_NUMBER(column name)=0 or 1, 0 or 1, 0 or 1)
IS_SPACES
  • - アグリゲータトランスフォーメーションと式トランスフォーメーション
    • - IS_SPACES(column name)
    • - IIF(IS_SPACES(colname), value1 [,value2])
    • - IIF(IS_SPACES(colname)=0 or 1, value1 [,value2]
  • - フィルタトランスフォーメーションとルータートランスフォーメーション
    • - IS_SPACES(colname) = 0 or 1
    • - IIF (IS_SPACES(colname), 0 or 1, 0 or 1)
    • - IIF(IS_SPACES(column name)=0 or 1, 0 or 1, 0 or 1)
LAST
LAST (value)
LAST_DAY
LAST_DAY (date)
LTRIMおよびRTRIM
LTRIM (string)
RTRIM (string)
LTRIMまたはRTRIM関数には1つの引数のみを渡すことができます。
REG_MATCH
REG_MATCH( subject, pattern )
パターンで使用されるサポートされている正規表現構文:
  • - .
  • - [^a-z]
  • - [a-zA-Z0-9]
  • - \d
  • - \s
  • - \w
ROUND(DATES)
ROUND( date [, format ] )
サポートされている形式:
  • - yy
  • - mm
  • - dd
  • - hh
  • - MI
  • - ss
TANH
EXP()関数を次の式で使用して、TANHを計算します。
TANH(x) = (EXP(2 * x) - 1) / (EXP(2 * x) + 1)
xの最大値: 354
xの最小値: -354
xの値が354を上回るか、-354を下回る場合は、次の式を使用します。
CASE WHEN X > 354 THEN 1 WHEN X < -354 THEN -1 ELSE TANH(X) END
TO_BIGINT
TO_BIGINT (numeric expression [, flag ])
TO_INTEGERは、フラグがTRUEまたは非ゼロの数字の場合に小数点以下を切り捨てます。
フラグがFALSEまたはゼロの場合、あるいはこの引数が省略された場合、TO_INTEGERは値を近似値の整数に丸めます。
関数には1つの引数のみを渡すことができます。
TO_CHAR(Date)
TO_CHAR (date [,format])
サポートされている形式を指定してください。formatは戻り値の形式を定義するもので、date引数の値の形式を定義するものではありません。
サポートされている形式:
  • - mm.yyyy
  • - dd/mm/yyyy
  • - dd.mm.yyyy
  • - dd-mm-yyyy
  • - dd mon yyyy
  • - mm/dd/yyyy
  • - hh:mi:ss
  • - yyyy.mm.dd
  • - yyyy/mm/dd
  • - yyyymmdd
  • - yyyy-mm-dd hh:mi:ss
  • - MM/DD/YYYY HH24:MI:SS
TO_DATE
TO_DATE (string [,format])
formatは、string引数の各部分と一致している必要があります。
サポートされている形式:
  • - dd/mm/yyyy
  • - dd.mm.yyyy
  • - dd-mm-yyyy
  • - dd mon yyyy
  • - mm/dd/yyyy
  • - hh:mi:ss
  • - yyyy
  • - yyyymm
  • - yyyymmdd
  • - yyyy-mm-dd
  • - yyyy.mm.dd
  • - yyyy/mm/dd
  • - yyyy-mm-dd hh:mi:ss
SUBSTR
SUBSTR (string, start [,length ])
start引数は正の数である必要があります。
lengthは0より大きい整数である必要があります。

Microsoft Azure Synapse SQLでの演算子

SQL ELTの最適化を使用した場合、Secure Agentはデータベース内の同等の演算子を特定することで、トランスフォーメーション内の式を変換します。同等の演算子がない場合、Secure Agentはトランスフォーメーションロジックを処理します。
次の表に、Microsoft Azure Synapse SQL接続を含むマッピングに対してSQL ELTの最適化を設定する場合に使用できるSQL ELT演算子を示します。
演算子
+ - * /
%
= > < >= <= <>
! =
NOT AND OR

Microsoft Azure Synapse SQLでのトランスフォーメーション

SQL ELTの最適化を設定すると、データ統合は、設定されたトランスフォーメーションをMicrosoft Azure Synapse SQLにプッシュしようとします。
次のトランスフォーメーションをMicrosoft Azure Synapse SQLにプッシュできます。
*詳細モードのマッピングには適用されません。

アグリゲータトランスフォーメーション

完全なSQL ELTの最適化を設定し、アグリゲータトランスフォーメーションをプッシュしてMicrosoft Azure Synapse SQLで処理することができます。

集計計算

次の集計計算を実行できます。

受信ポート

アグリゲータトランスフォーメーションを設定し、集計関数または詳細モードのマッピングのグループ化フィールドで受信ポートが使用されていない場合は、ダミーのMAX()関数がクエリ内に生成され、マッピングは完全なSQL ELTの最適化で実行されます。

式トランスフォーメーション

完全なSQL ELTの最適化を設定し、式トランスフォーメーションをプッシュしてMicrosoft Azure Synapse SQLで処理することができます。
マッピング内の各ソースに式トランスフォーメーションを追加してから、マッピング内のダウンストリームに結合することができます。さらに、トランスフォーメーションから分岐してから、マッピングのダウンストリームのトランスフォーメーションに分岐する複数の式トランスフォーメーションを追加できます。
式トランスフォーメーションを設定するときは、次のルールを考慮して、変数を式に含めてください。

ルックアップトランスフォーメーション

完全なSQL ELTの最適化を設定し、ルックアップトランスフォーメーションをプッシュしてMicrosoft Azure Synapse SQLで処理することができます。接続済みのルックアップおよび未接続のルックアップをプッシュできます。
ルックアップを設定するときは、次のルールを考慮してください。

SQLトランスフォーメーション

SQL ELTの最適化が有効なMicrosoft Azure Synapse SQLマッピングでSQLクエリを処理するように、SQLトランスフォーメーションを設定できます。

関数を使用したクエリの実行

入力したクエリの関数をSQLトランスフォーメーションに含めて、Microsoft Synapse SQLターゲットエンドポイントでクエリを実行できます。関数をプッシュするには、SELECT句のSQL文のみを使用する必要があります。選択クエリまたは関数でカラム名を指定します。
SQL文ではFROM句またはWHERE句を使用しないでください。例えば、「SELECT*FROM TABLE」などの文を使用して関数をプッシュしないでください。
入力したクエリでは、次のような関数を使用できます。
サポートされている関数の詳細については、Microsoft Azure Synapse SQLのドキュメントを参照してください。

ユーザー定義関数

SQLトランスフォーメーションでカスタムクエリを設定して、Microsoft Azure Synapse SQLのSQLユーザー定義関数(UDF)から読み取ることができます。UDF名に改行文字が含まれるUDFを読み取ることはできません。

ルールおよびガイドライン

SQLトランスフォーメーションを設定する際は、次のルールとガイドラインを考慮してください。

Microsoft Azure Synapse SQLマッピングでサポートされている機能

SQL ELTの最適化を設定すると、マッピングでは、ソーストランスフォーメーション、ルックアップトランスフォーメーション、およびターゲットトランスフォーメーションで次のMicrosoft Azure Synapse SQLプロパティがサポートされます。
サポートされていないプロパティを設定すると、マッピングはSQL ELTの最適化を使用して実行されますが、プロパティは無視されます。SQL ELTクエリの生成に失敗した場合、マッピングはSQL ELTの最適化を使用せずに実行されます。
ソース
SQL ELTの最適化を設定する場合、マッピングではMicrosoft Azure Synapse SQLソースに対する次のプロパティがサポートされます。
ターゲット
SQL ELTの最適化を設定する場合、マッピングではMicrosoft Azure Synapse SQLターゲットに対する次のプロパティがサポートされます。
Lookup
SQL ELTの最適化を設定する場合、マッピングではMicrosoft Azure Synapse SQLの接続済みのルックアップと未接続のルックアップに対する次のプロパティがサポートされます。
注: マッピングがSQL ELTの最適化を使用せずに実行されている場合、[Azure BLOBコンテナ名]または[ADLS FileSystem名]は必須フィールドです。ソースのSQL ELTの最適化を使用してマッピングを実行している場合、[Azure BLOBコンテナ名]は必須フィールドです。

Microsoft Azure Data Lake Storage Gen2ソースでサポートされている機能

SQL ELTの最適化を設定する場合、マッピングではMicrosoft Azure Data Lake Storage Gen2ソースに対する次のプロパティがサポートされます。
ソース
注: 大文字と小文字が区別されるMicrosoft Azure Data Lake Storage Gen2のデータベースからデータを読み込むこともできます。
Lookup
SQL ELTの最適化を設定する場合、マッピングではMicrosoft Azure Data Lake Storage Gen2の接続済みのルックアップと未接続のルックアップに対する次のプロパティがサポートされます。

Microsoft Azure Synapse SQLソースオブジェクトに対するカスタムクエリの設定

カスタムクエリをMicrosoft Azure Synapse SQLにプッシュダウンできます。
ソースオブジェクトとしてカスタムクエリを含むタスクを実行する前に、マッピングタスクのプロパティで[一時的なビューの作成]セッションのプロパティを設定できます。
プロパティを設定するには次のタスクを実行します。
  1. 1マッピングタスクで、[ランタイムオプション]タブの[SQL ELTの最適化]セクションに移動します。
  2. 2要件に応じて、[一時的なビューの作成]オプションを設定します。
  3. 3[完了]をクリックします。

SQL ELTの最適化のルールとガイドライン

Microsoft Azure Synapse SQLデータベースに対するSQL ELTの最適化には、特定のルールとガイドラインが適用されます。
一般的なルールとガイドライン
マッピングに対してSQL ELTの最適化を有効にする場合は、次のルールとガイドラインを考慮してください。
Microsoft Azure Synapse SQLソースとターゲットを使用したマッピング
Microsoft Azure Synapse SQLに対してデータの読み取りと書き込みを行うマッピングでSQL ELTの最適化を設定する場合は、次のルールとガイドラインを使用してください。
Microsoft Azure Data Lake Storage Gen2ソースを使用したマッピングと、Microsoft Azure Synapse SQLターゲットへの書き込み
Microsoft Azure Data Lake Storage Gen2ソースから読み取りを行い、Microsoft Azure Synapse SQLターゲットに書き込みを行うマッピングでSQL ELTの最適化を設定する場合は、次のルールとガイドラインを使用してください。
詳細モードのマッピング
詳細モードのマッピングでSQL ELTの最適化を設定する場合は、次のルールとガイドラインを使用してください。