À propos de Openflow Connector for Oracle¶
Note
Ce connecteur est soumis aux conditions d’utilisation de Snowflake Connector.
Note
L’Openflow Connector for Oracle est également soumis à des conditions de service supplémentaires en plus des conditions de service standard du connecteur. Pour plus d’informations, consultez le Complément du connecteur Openflow pour Oracle.
Cette rubrique décrit les concepts de base de Openflow Connector for Oracle, son flux de travail et ses limites.
À propos de Openflow Connector for Oracle¶
Le site Openflow Connector for Oracle connecte une instance de base de données Oracle à Snowflake et réplique les données des tables sélectionnées en temps quasi réel ou selon une planification spécifique. Le connecteur crée également un journal de toutes les modifications de données, qui est disponible avec l’état actuel des tables répliquées.
Cas d’utilisation¶
Le connecteur prend en charge le cas d’utilisation suivant :
Répliquez les tables de la base de données Oracle dans Snowflake pour obtenir un rapport complet et centralisé.
Modèles de licence et contraintes critiques¶
Le site Openflow Connector for Oracle prend en charge deux modèles de licence distincts. Vous devez sélectionner le modèle correct avant l’installation. Si vous ne sélectionnez pas le modèle correct, vous risquez d’entraîner un échec du déploiement ou des engagements financiers imprévus.
Pour des conditions de licence détaillées, des comparaisons et des instructions de configuration, voir Octroi de licence XStream Oracle.
1. Licence intégrée (fournie par Snowflake)¶
Snowflake vous fournit directement la licence Oracle XStream moyennant des frais. Ce modèle vous permet d’utiliser la réplication XStream sans contrat direct avec Oracle. Pour plus d’informations, voir Détails de la licence intégrée et le Complément du connecteur Openflow pour Oracle.
Période |
Détails |
|---|---|
Facturation |
Les frais de licence et d’assistance et maintenance (S&M) sont prélevés sur votre capacité Snowflake. |
Engagement |
L’activation déclenche une période de 36 mois non résiliable (après la période d’essai de 60 jours). |
Cycle de vie |
|
Gestion de UI |
Toutes les actions de licence (Démarrer/Annuler l’essai, Utilisation de la surveillance, Désactiver) sont effectuées par l’ORGADMIN dans Snowsight sous Admin » Terms » Openflow for Oracle. Pour des instructions étape par étape, consultez Openflow Connector for Oracle : Activer et gérer les conditions commerciales. |
Restrictions |
Les clients suivants ne sont pas éligibles :
|
2. Licence indépendante (Bring Your Own License - BYOL)¶
Vous fournissez votre propre licence Oracle qui inclut XStream (par exemple, licence Oracle GoldenGate). Pour plus d’informations, voir Détails relatifs aux licences indépendantes (BYOL).
Période |
Détails |
|---|---|
Facturation |
Aucuns frais de licence supplémentaire de la part de Snowflake. Les coûts de stockage et de calcul standard (par exemple, Openflow Compute) s’appliquent. |
Conformité |
Vous êtes seul responsable de la conformité de votre licence Oracle. |
Utilisation |
Obligatoire pour le secteur public, la marketplace GCP et les clients revendeurs. |
Choisir un modèle de licence Oracle XStream¶
L’Openflow Connector for Oracle exige une licence payante pour les services Oracle XStream. Deux modèles de licence sont disponibles :
Licence Oracle intégrée
Licence Oracle indépendante (Bring Your Own License - BYOL)
Utilisez le tableau suivant pour déterminer le modèle approprié à votre organisation.
Considération |
Licence intégrée |
Licence indépendante (BYOL) |
|---|---|---|
À qui cela s’adresse-t-il ? |
Clients ayant besoin d’une licence pour la technologie Oracle XStream et souhaitent l’acheter directement dans le cadre de leur contrat Snowflake. |
Clients qui possèdent déjà une licence Oracle GoldenGate ou un autre contrat Oracle qui prévoit un droit pour XStream. |
Facturation |
Facturé via Snowflake en fonction du nombre de cœurs de processeur sur votre source Oracle DB. Comporte un engagement non résiliable de 36 mois. Également facturé pour les services d’assistance et de maintenance. En outre, les coûts de stockage et de calcul standard (par exemple, Openflow Compute) s’appliquent. |
Pas de frais de licence supplémentaires ni de frais d’assistance et de maintenance pour les services Oracle XStream de la part de Snowflake. Vous êtes responsable de l’ensemble des licences et de la conformité directement auprès d’Oracle. Les coûts de stockage et de calcul standard (par exemple, Openflow Compute) s’appliquent. |
Configuration |
Nécessite que vous saisissiez le nombre de cœurs de CPU de votre DB Oracle et un facteur de multiplicateur de processeur dans les paramètres du connecteur. |
Ne nécessite pas que vous fournissiez les informations de cœurs de CPU à Snowflake. |
Période d’essai |
Comprend un essai gratuit de 60 jours pour un maximum de 16 cœurs sous licence. La facturation commence automatiquement le 61e jour. |
Aucune période d’essai n’est proposée via Snowflake. Votre utilisation est soumise à votre contrat Oracle existant. |
Détails de la licence intégrée¶
En choisissant cette option, vous obtenez le droit d’utiliser la technologie Oracle XStream avec le connecteur via Snowflake. Soyez attentif aux conditions essentielles suivantes :
Facturation¶
Les services Oracle XStream sont facturés mensuellement et prélevés sur votre solde de capacité Snowflake. Les frais comportent deux éléments : des frais de licence et des frais d’assistance et de maintenance (S&M). Les frais de licence sont calculés en fonction du nombre de cœurs de processeur dans votre base de données source Oracle, multipliés par le facteur de cœur de processeur Oracle.
Engagement (la règle du « 61e jour »)¶
Les 60 premiers jours sont gratuits pour un maximum de 16 cœurs sous licence. Toutefois, l’activation du connecteur au-delà de la période d’essai de 60 jours déclenche une période de facturation de 36 mois non résiliable (« Condition initiale »).
Conversion automatique : La facturation commence automatiquement le jour 61. Pour éviter les frais, vous devez annuler l’essai dans le tableau de bord Admin » Terms » Openflow for Oracle avant le jour 60.
Verrouillé : Si votre contrat Snowflake est résilié pendant cette période initiale, le solde restant dû pour la période initiale devient immédiatement exigible.
Renouvellement après la période initiale et pénalités¶
Après la période initiale, les frais de licence s’élèvent à 0 $, mais les frais d’assistance et de maintenance (S&M) sont toujours en vigueur.
Conséquences de la désactivation : Vous pouvez désactiver le renouvellement S&M via le tableau de bord dans Admin » Terms » Openflow for Oracle. Toutefois, si la couverture S&M s’arrête, les processeurs du connecteur sont bloqués. Pour reprendre les opérations, vous devez acheter une NEW licence intégrée (réinitialisation de l’engagement de 36 mois à plein tarif).
Exigences¶
Vous êtes responsable de la déclaration précise du nombre de cœurs de processeur et du facteur de cœur correct dans la configuration du connecteur. Ces informations doivent être actualisées si le matériel de votre base de données source change.
Restrictions¶
Si cette option n’est pas disponible :
Entités du secteur public (par exemple, entités gouvernementales et de l’éducation).
Les clients qui achètent Snowflake via la marketplace GCP.
Clients ayant conclu un contrat avec Snowflake via un revendeur tiers (par exemple ,CDW, Optiv).
Configuration¶
Pour configurer la licence intégrée :
Vérifiez et acceptez les conditions du Complément du connecteur Openflow pour Oracle présentées dans l’UI.
Sélectionnez le type de Embedded License.
Saisissez les détails du nombre de cœurs de CPU pour votre base de données Oracle source : Nombre total de cœurs (le nombre total de cœurs physiques sur le serveur de la base de données source) et Facteur de cœur (le facteur de cœur de processeur Oracle, par exemple, 0,5 pour les processeurs Intel). Consultez la table des facteurs de base du processeur Oracle pour connaître la valeur correcte.
Détails relatifs à la licence indépendante (BYOL)¶
Cette option est destinée aux clients qui ont déjà obtenu la licence de la technologie Oracle nécessaire.
Exigences¶
Vous êtes seul responsable de vous assurer que votre utilisation du connecteur est conforme aux conditions de votre contrat de licence Oracle existant. Snowflake ne valide ni ne vérifie vos droits Oracle.
Configuration¶
Pour configurer la licence indépendante (BYOL) :
Vérifiez et acceptez les conditions du Complément du connecteur Openflow pour Oracle présentées dans l’UI.
Sélectionnez le type de Independent License.
Lors de la configuration du connecteur, procédez sans saisir le nombre de cœurs ni les informations relatives à la facturation.
Exigences Openflow¶
Les exigences suivantes en matière d’exécution Openflow s’appliquent à Openflow Connector for Oracle :
La taille du runtime doit être au moins Medium. Utilisez un environnement d’exécution plus grand lorsque vous répliquez de grands volumes de données, en particulier lorsque la taille des lignes est importante.
Le connecteur ne prend pas en charge les environnements d’exécution Openflow à plusieurs nœuds. Configurez l’environnement d’exécution de ce connecteur avec Min nodes et Max nodes définis sur
1.
Versions et plateformes Oracle prises en charge¶
Les versions et plateformes suivantes de la base de données Oracle sont prises en charge :
Versions de la base de données Oracle 12cR2 et ultérieures
Serveurs sur site
Oracle Exadata
OCI VM/Bare Metal
RDS AWS personnalisé pour Oracle
RDS standard à locataire unique AWS pour Oracle
Limitations¶
Les limitations suivantes s’appliquent à l’Openflow Connector for Oracle :
RDS standard à locataire unique AWS pour Oracle n’est pas pris en charge.
Les bases de données autonomes Oracle (ATP/ADW) ne sont pas prises en charge.
Les offres SaaS Oracle telles que Oracle Fusion Cloud Applications et NetSuite ne sont pas prises en charge.
Le connecteur nécessite la version de déploiement Openflow 0.55.0 ou ultérieure pour BYOC.
Le runtime Openflow doit être créé après l’installation de la version de déploiement Openflow requise.
Seules les tables de base de données contenant des clés primaires peuvent être répliquées.
Le connecteur fonctionne dans une seule base de données/un seul conteneur (PDB ouCDB). Pour répliquer des tables provenant de plusieurs conteneurs, vous devez configurer des instances de connecteur distinctes pour chaque conteneur.
Le connecteur ne prend pas en charge le nouvel ajout d’une colonne après sa suppression.
Le connecteur ne réplique pas les valeurs individuelles supérieures à 16 MB. Par défaut, le traitement d’une telle valeur entraîne le marquage définitif de l’échec de la table associée. Pour éviter les échecs de table, modifiez le paramètre de destination Stratégie de valeur surdimensionnée.
Fonctionnement du connecteur¶
Les sections suivantes décrivent comment le connecteur fonctionne dans différents contextes, notamment la réplication, les modifications de schéma et la conservation des données.
Comment les tables sont-elles répliquées ?¶
Les tables sont répliquées dans les zones de préparation suivantes :
Introspection du schéma : le connecteur découvre les colonnes de la table source, y compris les noms et les types de colonnes, puis les valide par rapport aux limites de Snowflake et du connecteur. Les échecs de validation entraînent l’échec de cette préparation et le cycle s’achève. Les échecs de validation entraînent l’échec de cette phase et le cycle se terminera. Une fois cette zone de préparation correctement terminée, le connecteur crée une table de destination vide dans Snowflake.
Chargement d’un instantané : le connecteur copie toutes les données disponibles dans la table source dans la table de destination. Si cette zone de préparation échoue, plus aucune donnée n’est répliquée. Une fois l’opération réussie, les données de la table source sont disponibles dans la table de destination.
Chargement incrémentiel : le connecteur suit les modifications apportées à la table source et applique ces modifications à la table de destination. Ce processus se poursuit jusqu’à ce que la table soit retirée de la réplication. Ce processus se poursuit jusqu’à ce que la table soit retirée de la réplication. L’échec à ce stade arrête définitivement la réplication de la table source, jusqu’à ce que le problème soit résolu.
Statut de réplication de la table¶
Les défaillances intermédiaires, telles que les erreurs de connexion, n’empêchent pas la réplication de la table. Toutefois, les défaillances permanentes, telles que les types de données non pris en charge, empêchent la réplication de la table.
Pour résoudre les problèmes de réplication ou vérifier qu’une table a été correctement supprimée du flux de réplication, consultez le magasin d’états des tables (Table State Store) :
Dans le canevas de l’environnement d’exécution Openflow, cliquez avec le bouton droit de la souris sur un groupe de processeurs et choisissez Controller Services. Une table répertoriant les services du contrôleur s’affiche.
Localisez la ligne intitulée Table State Store, cliquez sur le bouton More
sur le côté droit de la ligne, puis choisissez View State.
Une liste des tables et de leurs états actuels s’affiche. Renseignez le champ de recherche pour filtrer la liste par nom de table. Les états possibles sont :
NEW : La table est planifiée pour la réplication, mais la réplication n’a pas commencé.
SNAPSHOT_REPLICATION : Le connecteur copie des données existantes. Cet état s’affiche jusqu’à ce que tous les enregistrements soient stockés dans la table de destination.
INCREMENTAL_REPLICATION : Le connecteur réplique activement les modifications. Cet état s’affiche après la fin de la réplication des instantanés et continue de s’afficher indéfiniment jusqu’à ce qu’une table soit supprimée de la réplication ou que la réplication échoue.
FAILED : La réplication s’est définitivement arrêtée en raison d’une erreur.
Note
Le canevas de l’environnement d’exécution Openflow n’affiche pas les modifications de l’état de la table, mais uniquement l’état actuel de la table. Toutefois, les modifications de l’état des tables sont enregistrées dans les journaux lorsqu’elles se produisent. Recherchez le message de journal suivant :
Replication state for table <database_name>.<schema_name>.<table_name> changed from <old_state> to <new_state>
Si une défaillance permanente empêche la réplication d’une table, supprimez la table de la réplication. Après avoir résolu le problème à l’origine de l’échec, vous pouvez ajouter à nouveau la table à la réplication. Pour plus d’informations, consultez Redémarrer la réplication des tables.
Conservation des données¶
Comprendre la conservation des données¶
Le connecteur suit une logique de conservation des données où les données client ne sont jamais automatiquement supprimées. Vous conservez la propriété et le contrôle total de vos données répliquées, et le connecteur préserve les informations historiques au lieu de les supprimer définitivement.
Cette approche a les implications suivantes :
Les lignes supprimées de la table source sont supprimées logiciellement dans la table de destination plutôt que d’être supprimées physiquement.
Les colonnes supprimées de la table source sont renommées dans la table de destination au lieu d’être supprimées.
Les tables de journal sont conservées indéfiniment et ne sont pas automatiquement nettoyées.
Colonnes de métadonnées de la table de destination¶
Chaque table de destination comprend les colonnes de métadonnées suivantes qui suivent les informations de réplication :
Nom de la colonne |
Type |
Description |
|---|---|---|
|
TIMESTAMP_NTZ |
Horodatage du moment où la ligne a été initialement insérée dans la table de destination. |
|
TIMESTAMP_NTZ |
Horodatage de la dernière mise à jour de la ligne dans la table de destination. |
|
BOOLEAN |
Indique si la ligne a été supprimée de la table source. Lorsque |
Lignes supprimées logiciellement¶
Lorsqu’une ligne est supprimée de la table source, le connecteur ne la supprime pas physiquement de la table de destination. Au lieu de cela, la ligne est marquée comme supprimée en définissant la colonne de métadonnées _SNOWFLAKE_DELETED sur true.
Cette approche vous permet de :
Conserver les données historiques à des fins d’audit ou de conformité.
Interroger les enregistrements supprimés lorsque cela est nécessaire.
Décider quand et comment supprimer définitivement des données en fonction de vos besoins.
Pour interroger uniquement les lignes actives (non supprimées), filtrez sur la colonne _SNOWFLAKE_DELETED :
SELECT * FROM my_table WHERE _SNOWFLAKE_DELETED = FALSE;
Pour interroger les lignes supprimées :
SELECT * FROM my_table WHERE _SNOWFLAKE_DELETED = TRUE;
Colonnes supprimées¶
Lorsqu’une colonne est supprimée de la table source, le connecteur ne supprime pas la colonne correspondante de la table de destination. Au lieu de cela, la colonne est renommée en ajoutant le suffixe __SNOWFLAKE_DELETED pour préserver les valeurs historiques.
Par exemple, si une colonne nommée EMAIL est supprimée de la table source, elle est renommée en EMAIL__SNOWFLAKE_DELETED dans la table de destination. Les lignes qui existaient avant la suppression de la colonne conservent leurs valeurs d’origine, tandis que les lignes ajoutées après la suppression affichent NULL dans cette colonne.
Vous pouvez toujours interroger les valeurs historiques à partir de la colonne renommée :
SELECT EMAIL__SNOWFLAKE_DELETED FROM my_table;
Colonnes renommées¶
En raison de limitations dans les mécanismes CDC (Change Data Capture), le connecteur ne peut pas faire la distinction entre une colonne renommée et une colonne supprimée, suivie de l’ajout d’une nouvelle colonne. Par conséquent, lorsque vous renommez une colonne dans la table source, le connecteur traite cela comme deux opérations distinctes : supprimer la colonne d’origine et ajouter une nouvelle colonne avec le nouveau nom.
Par exemple, si vous renommez une colonne A en B dans la table source, la table de destination contiendra :
A__SNOWFLAKE_DELETED: Contient les valeurs d’avant le changement de nom. Les lignes ajoutées après le changement de nom affichentNULLdans cette colonne.B: Contient les valeurs d’après le changement de nom. Les lignes qui existaient avant le changement de nom affichentNULLdans cette colonne.
Interrogation de colonnes renommées¶
Pour récupérer les données des colonnes d’origine et des colonnes renommées en une seule colonne unifiée, utilisez une expression COALESCE ou CASE :
SELECT
COALESCE(B, A__SNOWFLAKE_DELETED) AS A_RENAMED_TO_B
FROM my_table;
Vous pouvez également utiliser une expression CASE :
SELECT
CASE
WHEN B IS NOT NULL THEN B
ELSE A__SNOWFLAKE_DELETED
END AS A_RENAMED_TO_B
FROM my_table;
Création d’une vue pour des colonnes renommées¶
Plutôt que de modifier manuellement la table de destination, vous pouvez créer une vue qui présente la colonne renommée comme une seule colonne unifiée. Cette approche est recommandée, car elle préserve les données d’origine et évite les problèmes potentiels liés à la réplication en cours.
CREATE VIEW my_table_unified AS
SELECT
*,
COALESCE(B, A__SNOWFLAKE_DELETED) AS A_RENAMED_TO_B
FROM my_table;
Important
La modification manuelle de la structure de la table de destination (par exemple, la suppression ou le renommage de colonnes) n’est pas recommandée, car elle peut interférer avec la réplication en cours et entraîner des incohérences de données.
Tables de journal¶
Lors de la réplication incrémentielle, les modifications de la base de données source sont d’abord écrites dans les tables de journal avant d’être fusionnées dans les tables de destination. Le connecteur ne supprime pas automatiquement les données des tables de journal, car ces données peuvent être utiles à des fins d’audit, de débogage ou de retraitement.
Les tables de journal sont créées dans le même schéma que les tables de destination correspondantes et suivent cette convention de dénomination :
<TABLE_NAME>_JOURNAL_<timestamp>_<number>
Où :
<TABLE_NAME>est le nom de la table de destination.<timestamp>est l’horodatage de création au format d’époque Unix (secondes depuis le 1er janvier 1970), garantissant l’unicité.<number>commence à 1 et incrémente chaque fois que le schéma de la table de destination change, soit en raison de modifications de schéma dans la table source, soit en raison de modifications des filtres de colonnes.
Par exemple, si votre table de destination est SALES.ORDERS, la table du journal peut être nommée SALES.ORDERS_JOURNAL_1705320000_1.
Important
Ne supprimez pas les tables de journal pendant la réplication en cours. La suppression d’une table de journal active peut entraîner des pertes de données ou des échecs de réplication. Ne supprimez les tables de journal qu’une fois que la table source correspondante a été entièrement retirée de la réplication.
Gestion du stockage des tables de journal¶
Si vous devez gérer les coûts de stockage en supprimant les anciennes données du journal, vous pouvez créer une tâche Snowflake qui nettoie périodiquement les tables de journal pour les tables qui ne sont plus répliquées.
Avant d’implémenter le nettoyage du journal, vérifiez que :
Les tables sources correspondantes ont été entièrement retirées de la réplication.
Vous n’avez plus besoin des données du journal à des fins d’audit ou de traitement.
Pour plus d’informations sur la création et la gestion de tâches pour le nettoyage automatisé, consultez Introduction aux tâches.
Prochaines étapes¶
Après avoir consulté cette rubrique, passez aux étapes suivantes :
Examinez Openflow Connector for Oracle : Activer et gérer les conditions commerciales pour activer le connecteur, accepter les conditions d’Oracle XStream et configurer votre modèle de licence.
Examinez Openflow Connector for Oracle : Mappage de données pour comprendre comment le connecteur fait correspondre les types de données aux types de données Snowflake.
Examinez Configurer des tâches pour le Openflow Connector for Oracle pour configurer le connecteur.