- Notes de publication
- Avant de commencer
- Démarrage
- Gestion de l’accès
- Travailler avec des applications de processus
- Créer des applications de processus
- Chargement des données
- Charger des données
- Retrieving the SQL Server database parameters
- Setting up a SQL Server account for data upload using an extractor
- Loading data using Theobald Xtract Universal
- Configuration système requise
- Configurer DataBridgeAgent
- Configuring CData Sync
- Ajouter un connecteur personnalisé à DataBridgeAgent
- Utiliser DataBridgeAgent avec le connecteur SAP pour l'accélérateur de découverte Purchase-to-Pay
- Utiliser DataBridgeAgent avec le connecteur SAP pour l'accélérateur de découverte Order-to-Cash
- Personnaliser les applications de processus
- Transformations de données
- Modification des transformations de données dans un environnement local
- Setting up a local test environment
- SQL differences between Snowflake and SQL Server
- Designing an event log
- Structure of transformations
- Tips for writing SQL
- Modèle d’application TemplateOne
- Modèle d’application Purchase to Pay
- Modèle d’application Order to Cash
- Basic troubleshooting guide
SQL differences between Snowflake and SQL Server
In a local development environment, transformations are run on SQL Server, while Snowflake is used in Process Mining Automation Suite. Although most SQL statements will work both on SQL Server and Snowflake, there can be slight differences in syntax, which may lead to different return results.
Pour écrire des instructions SQL qui fonctionnent sur les deux systèmes de base de données :
- Écrivez les noms de champ entre guillemets doubles, par exemple
Table."Field"
. -
Empêcher l'utilisation de fonctions SQL différentes dans Snowflake et SQL Server, par exemple
string_agg()
etlistagg()
.Le packagepm_utils
est fourni avec un ensemble de fonctions qui fonctionnent sur les deux types de bases de données, voir Bases de données multiples. Par exemple, au lieu d'utiliserstring_agg()
oulistagg()
,pm_utils.string_agg()
entraînera le même comportement pour les deux bases de données. Sipm_utils
ne contient pas la fonction souhaitée, une instruction Jinja doit être créée pour s'assurer que la fonction appropriée est appelée sur chaque base de données.
pm_utils.concat()
. Cela produira les mêmes résultats pour SQL Server et Snowflake.
pm_utils.concat("This is a nice string", null)
= "This is a nice string"
La concaténation de chaînes ne doit pas être effectuée avec des opérateurs tels que +
ou ||
, car ils sont différents pour les deux bases de données (Snowflake utilise ||
et SQL Server utilise +
). De plus, la fonction standard concat()
a un comportement différent sur les deux systèmes :
SQL Server |
Snowflake |
---|---|
null seront ignorées et traitées comme une chaîne vide.
|
null font que le résultat entier sera null .
|
Le tri est géré différemment dans Snowflake et dans SQL Server.
... order by "Attribute_1" desc, "Attribute_2" ...
SQL Server |
Snowflake |
---|---|
null sera trié par défaut en premier (croissant)
|
null sera trié par défaut en dernier (croissant)
|
SQL Server |
Snowflake |
---|---|
les majuscules sont triées comme prévu (AaBbCc) |
trie d'abord par majuscules, puis par lettres non majuscules (ABCabc) |
Lorsque vous effectuez un regroupement par valeurs « A » et « A », cela est considéré comme une seule valeur dans SQL Server, mais comme deux valeurs différentes dans Snowflake. Par conséquent, le rognage est conseillé si vos données peuvent causer ce problème.
Table."Field" = "Some_value"
et Table."Field" = "SOME_VALUE"
renverront le même ensemble de résultats dans SQL Server, mais potentiellement deux ensembles de résultats différents dans Snowflake.
Il est conseillé de modifier le comportement de votre base de données SQL Server locale pour qu'il corresponde au comportement de Snowflakes, afin d'éviter tout problème. Cela peut être accompli en définissant le classement de la base de données sur une valeur sensible à la casse.