- リリース ノート
- はじめる前に
- 基本情報
- Integrations
- プロセス アプリを使用する
- アプリを作成する
- データを読み込む
- データ変換中
- ダッシュボードをカスタマイズする
- ダッシュボードをパブリッシュする
- アプリ テンプレート
- 通知
- その他のリソース
- すぐに使えるタグと期限日
- Snowflake と SQL Server の SQL の違い
- 入力データを読み込むための設定
- SAP Ariba の抽出ツールを拡張する
- パフォーマンス特性

Process Mining
ローカルの開発環境では SQL Server で変換が実行され、Automation Suite の Process Mining では Snowflake が使用されます。ほとんどの SQL ステートメントは SQL Server と Snowflake の両方で動作しますが、構文が若干異なる可能性があり、それによって戻り値が異なる場合があります。
両方のデータベース システムで動作する SQL ステートメントを書くには、以下のようにします。
- フィールド名を二重引用符で囲みます (例:
Table."Field")。 -
Snowflake と SQL Server で異なる SQL 関数を使用しないようにします (例:
string_agg()とlistagg())。pm_utilsパッケージには、両方のデータベースで動作する関数が一式付属しています。詳しくは、「Multiple databases」をご覧ください。たとえばstring_agg()やlistagg()を使用する代わりにpm_utils.string_agg()を使用すれば、両方のデータベースで結果の挙動が同じになります。pm_utilsに目的の関数が含まれていない場合は、各データベースで適切な関数が呼び出されるように Jinja ステートメントを作成する必要があります。
pm_utils.concat() 関数を使用します。この関数を使用すると、SQL Server と Snowflake の両方で同じ結果が生成されます。
pm_utils.concat("This is a nice string", null) = "This is a nice string"文字列の連結は、+ や || などの演算子で行うべきではありません。これらの演算子は両方のデータベースで異なる (Snowflake では || が使用され、SQL Server では + が使用される) ためです。また、標準の concat() 関数の挙動も両方のシステムで異なります。具体的には以下のような違いがあります。
|
SQL Server |
Snowflake |
|---|---|
null 値は無視され、空の文字列として扱われます。
|
null 値があると、結果全体が null になります。
|
並べ替えは、Snowflake と SQL Server で異なる方法で処理されます。
... order by "Attribute_1" desc, "Attribute_2" ...null 値
|
SQL Server |
Snowflake |
|---|---|
null は既定で先頭に並べ替えられます (昇順)。
|
null は既定で末尾に並べ替えられます (昇順)。
|
大文字の処理
|
SQL Server |
Snowflake |
|---|---|
|
大文字は期待どおりに並べ替えられます (AaBbCc)。 |
最初に大文字で並べ替えられた後、小文字で並べ替えられます (ABCabc)。 |
ダッシュ
-Accountant-|
SQL Server |
Snowflake |
|---|---|
|
ダッシュは並べ替え時に無視されます (「-Accountant-」は「Accountant」と同じものとして扱われます)。 |
ダッシュは先頭に並べ替えられます。 |
値 "A" と " A" をグループ化すると、SQL Server では 1 つの値と見なされますが、Snowflake では 2 つの異なる値として見なされます。したがって、お使いのデータでこの問題が発生する可能性がある場合は、トリミングをお勧めします。
Table."Field" = "Some_value" と Table."Field" = "SOME_VALUE" は、SQL Server では同じ結果のセットが返されますが、Snowflake では 2 つの異なる結果のセットが返される可能性があります。
問題が発生しないように、ローカルの SQL Server データベースの挙動を Snowflake の挙動と一致するように変更することをお勧めします。これは、データベースの照合順序を大文字と小文字を区別する値に設定することで達成できます。