Sources de données
Ajoutez une source de données pour chaque connexion partagée avec vous, nommez la table qu'elle écrit et gardez-la en marche — sans être administrateur de l'organisation.
Une source de données amène les lignes d'un système dans une table de votre espace de travail : une instance Home Assistant, une base PostgreSQL, un flux de qualité de l'air. Deux personnes se partagent le travail :
- Un administrateur de l'organisation installe l'extension et ajoute ses connexions dans Platform → Extensions — l'adresse et l'identifiant — et décide qui peut utiliser chaque connexion. Les connexions viennent d'abord : elles peuvent être ajoutées avant qu'une source de données qui les lit existe. Utiliser une connexion n'en montre jamais l'identifiant.
- Un ingénieur de données ajoute les sources de données dans Analytics, au travers des connexions partagées avec lui, et les garde en marche.
Qui peut ajouter et modifier une source de données
Vous pouvez ajouter une source de données, et changer sa connexion, sa planification, les tables qu'elle réplique et ce qui se passe lorsqu'elles gagnent des colonnes — ou la supprimer — lorsque les deux conditions sont réunies :
- vous pouvez écrire dans l'espace de travail (vous en êtes membre, pas lecteur), et
- la connexion qu'elle lit a été partagée avec vous (Utiliser), ou vous administrez l'organisation.
Un administrateur de l'organisation peut tout faire, partout. Vous ne pouvez modifier ou supprimer qu'une source de données dont la connexion est partagée avec vous.
Le droit d'installer une source dans votre environnement est la même décision que celle de l'installation depuis le Marketplace : avant toute installation, vous savez si l'ajouter l'installe, ou s'il faut demander à un administrateur de l'installer.
Demander l'accès
Si aucune connexion d'une source n'est partagée avec vous, demandez l'accès. Chaque administrateur de l'organisation reçoit une notification — et un e-mail, s'il reçoit les e-mails de notification — qui ouvre les connexions de la source dans Platform en vous proposant sous Qui peut l'utiliser, si bien que partager une connexion avec vous tient en un clic sur Partager. La demande est consignée dans le journal d'audit à votre nom. Vous pouvez demander une fois par jour pour chaque source et chaque environnement ; une nouvelle demande plus tôt vous indique que vous l'avez déjà faite.
Ajouter une source de données
Chaque connexion que vous choisissez devient une source de données à part entière, avec sa table, sa planification et son statut : deux connexions, deux sources de données. Une connexion qui alimente déjà une source de données de cette source peut être choisie de nouveau : la nouvelle source de données reçoit un nom distinct de l'existante, et vous choisissez sa table dans Correspondance des tables comme pour toute autre. Tout se passe dans un seul panneau de la page Sources de données ; rien n'est créé avant que vous appuyiez sur Ajouter.
Dans Analytics → Sources de données, choisissez Ajouter une source de données et recherchez la source. Les sources sont regroupées selon la manière dont leurs données arrivent — une base de données que Scrydon copie selon un calendrier est regroupée à part d’une base lue là où elle est, et dans chaque groupe les sources que vous pouvez ajouter viennent en premier. Une source pas encore installée dans votre environnement indique s'installe à l'ajout lorsque vous pouvez l'installer ; sinon, le panneau le dit et un administrateur de l'organisation l'installe. Une source déjà ajoutée dans un autre environnement de votre organisation est listée mais ne peut pas être ajoutée : une source de données vit dans un seul environnement à la fois, et le panneau le dit avant que vous choisissiez Ajouter. Une source liée à aucune connexion est une seule source de données : une fois ajoutée dans votre environnement, elle est listée comme Déjà ajoutée, et la choisir le dit et propose Ouvrir la source de données au lieu d'Ajouter.
La liste montre les connexions partagées avec vous dans cet environnement, sous le nom de l'environnement, chacune avec son état. Une connexion pas prête reste dans la liste, dit pourquoi et ne peut pas être choisie — y compris une connexion enregistrée pour Tous les environnements, qu'une source de base de données ne lit jamais : un administrateur de l'organisation obtient Modifier la connexion, qui l'ouvre dans Platform pour choisir son environnement, et toute autre personne Demander l'accès. Si aucune n'est partagée, la liste indique Aucune connexion partagée avec vous, le panneau nomme les administrateurs et propose Demander l'accès (voir plus haut), et il n'y a encore rien à ajouter ; un administrateur de l'organisation, qui peut utiliser toutes les connexions, se voit proposer Ajouter une connexion à la place. Lorsque la source qui tourne déjà ici pourrait utiliser plusieurs connexions, choisissez celle qu'elle conserve.
Une ligne indique où arrivent les lignes de chaque source de données, chaque table marquée (nouvelle) ou (réutilisée). Modifier la correspondance ouvre Correspondance des tables à côté du panneau : une règle de nommage nomme chaque nouvelle table, et chaque table est un champ où vous tapez un autre nom pour créer plutôt cette table, ou choisissez une table existante où vous pouvez écrire (voir Réutiliser une table existante). Pour exclure des tables, sélectionnez leurs lignes et choisissez Exclure ; une table exclue indique Exclue tant que vous ne lui donnez pas de destination. Lorsque le nom que donne la règle est déjà celui d'une table existante compatible, la source de données réutilise cette table au lieu d'en créer une seconde du même nom. Un nom pris par une table incompatible, invalide ou utilisé deux fois figure sous Demande une décision. Terminé conserve ce que vous avez décidé ; Retour revient au panneau tel qu'il était. Lorsque la source est installée par cet ajout, la source de données de la première connexion écrit la table propre de la source. Une source qui ne lit aucune connexion est une seule source de données avec une seule table : le panneau propose son Nom et sa Table, chacun partant de ceux de la source. Un nom de table que vous changez est vérifié pendant la saisie comme celui de toute nouvelle table — caractères autorisés, nom libre — et la ligne indique où arrivent ses lignes.
Une ligne réunit les valeurs par défaut : la fréquence des sources de données (voir Planification), la durée de conservation des lignes de leurs tables (fixée par un administrateur de l'organisation) et leur classification. Vous pouvez relever la classification quand les données sont plus sensibles ; l'abaisser sous le plancher de votre organisation pour les données non étiquetées revient à un administrateur, si bien que seul un administrateur se voit proposer une classification sous le plancher. La classification est celle avec laquelle la table est créée, et elle est consignée dans le journal d'audit à votre nom. Sans choix, une nouvelle table est créée avec le plancher de votre organisation — jamais en dessous. La ligne se termine par alertes activées : les sources de données alertent quand leur état change et figurent dans le récapitulatif quotidien (voir Alertes et récapitulatif quotidien). Désactivez Alertes pour les ajouter sans l'un ni l'autre ; le changement est consigné dans le journal d'audit à votre nom.
À côté d'Ajouter, le panneau indique ce qu'il crée — par exemple « Crée 2 sources, 1 table », une table réutilisée n'étant pas comptée — ou, tant qu'Ajouter est désactivé, pourquoi : aucune connexion choisie, aucune connexion qui puisse être choisie, aucune table choisie, ou ce qui reste à décider, avec ce qu'il faut faire — par exemple « 1 nom déjà pris — choisissez Nouvelle ou Réutiliser ». Ajouter reste désactivé tant que la ligne en donne la raison. Chaque lot est analysé à la recherche de données sensibles avant d'être écrit, et l'exécution est enregistrée à votre nom. Le panneau montre ensuite ce qu'est devenue chaque source de données — une source refusée dit pourquoi et n'arrête jamais les autres, et vous pouvez réessayer celles qui ont été refusées — ainsi que sa première exécution : quand les sources de données ont démarré et à quelle fréquence elles s'exécutent, puis une carte par source de données qui nomme la table qu'elle écrit et indique si elle est Active, encore à sa Première synchronisation, ou en échec. Une source de données push indique avant Ajouter qu'elle reçoit ses données sur son propre point de terminaison push ; tant que sa première livraison n'est pas arrivée, sa carte indique En attente de la première livraison, montre le chemin vers lequel son émetteur envoie, et Point de terminaison push montre le reste de ce dont l'émetteur a besoin (jamais le secret). Chaque carte dit, en phrases, combien de lignes l'exécution a lues et par quelle connexion (par exemple « 120 lignes lues depuis Home », lorsque vous pouvez utiliser cette connexion), ce que l'analyse des données sensibles a masqué ou mis de côté, par type et par nombre mais jamais la valeur (par exemple « Analysées : masquage de 1 adresse e-mail », ou des lignes mises de côté, ou « rien de masqué ni de mis de côté » ; une valeur qu'une règle se contente d'auditer n'y est pas comptée, et le journal d'audit l'enregistre), et combien de lignes elle a écrites — jamais avant qu'elles soient arrivées. Une carte montre toujours sa dernière exécution telle qu'elle s'est déroulée, jamais les chiffres d'une autre : celle qui n'a rien trouvé à modifier indique Aucune modification à écrire, et celle qui a échoué dit pourquoi (par exemple « L’exécution a échoué : … », ou pourquoi elle a été mise en pause) à côté de En échec ou En pause, plutôt que d'indiquer qu'elle attend sa première exécution. Une source de base de données affiche plutôt une ligne par table choisie, avec la table dans laquelle elle arrive, quand sa dernière exécution s'est terminée (par exemple « · 14:03 »), et où en est son exécution : lecture, puis ce que l'analyse a fait des lignes écrites jusque-là (« Analysées pour les données sensibles : rien de masqué ni de mis de côté »), écriture de ses lignes (« Écriture de 64 lignes… ») ou écrite, et Ouvrir la table une fois la table créée. Synchroniser cette table sur une ligne synchronise cette seule table, tout de suite : cela ne change pas le moment où la source de données s'exécutera ensuite selon sa planification, et un échec à cet endroit ne compte pas parmi les échecs qui mettent la source en pause — la ligne elle-même dit comment son exécution s'est passée. Une fois les lignes arrivées, Voir les lignes montre les premières lignes écrites par la source de données, Ouvrir la table ouvre sa table, et Synchroniser maintenant relance une source de données planifiée et suit cette exécution. Sous les cartes, une seule liste Activité les couvre toutes, de la plus récente à la plus ancienne, et se filtre par Info, Avertissement ou Erreur. Elle nomme qui a ajouté les sources de données (« You added Home sensors and Office sensors » ; une source ajoutée avant que les personnes soient enregistrées, ou par une installation automatique, ne nomme personne) et, pour chaque exécution, ce qu'elle a lu avant ce qu'elle a écrit. Tant que leurs alertes sont activées, le panneau l'indique sous la liste. La même vue est l'onglet Activité d'une source de données.
Nommer une table de destination
Un nom de table de destination :
- utilise des lettres minuscules, des chiffres et des tirets bas simples, et commence par une lettre ;
- compte 30 caractères au plus ;
- ne commence ni par
agent_, réservé aux tables créées par les agents, ni parmirror_, que la plateforme donne à une table de base de données que personne n’a nommée.
Une nouvelle table est écrite par une seule source de données. Un nom qu'une autre source de données de l'environnement écrit déjà — ou une table de ce nom qui existe déjà — est refusé, et vous en choisissez un autre, ou vous réutilisez cette table délibérément (ci-dessous). La table qu'écrit une source de données est fixée à sa création ; changer ensuite sa connexion ne la déplace pas.
Réutiliser une table existante
Plusieurs connexions d'une source peuvent écrire dans une seule table — par exemple la station météo de chaque site dans une table weather_all. Dans Correspondance des tables, ouvrez la liste d'une table : Tables existantes où vous pouvez écrire liste les tables de votre environnement dans lesquelles votre propre écriture serait autorisée, chacune indiquant si elle est compatible. Choisissez-en une pour chaque connexion qui doit la partager, ou sélectionnez des lignes et utilisez Réutiliser… pour les diriger toutes vers une même table.
Une table est compatible quand les lignes de la source y arrivent exactement comme dans une table à elle :
- c'est la table propre d'une source de données (pas une table que vous avez importée, une réplication de base de données ni une récupération à la demande), et cette source est planifiée, diffusée en continu, poussée ou importée (les tables d'une base de données réutilisent plutôt d'autres copies de base de données — voir Choisir les tables d'une source de base de données) ;
- personne ne la remplace : une source qui remplace toute sa table à chaque exécution ne peut pas en partager une, et aucune source ne peut partager la table d'une telle source ;
- elle a la même clé — et, pour une table qui met à jour les lignes par clé, la connexion fait partie de cette clé, si bien que les lignes de deux connexions ne s'écrasent jamais (une table à clé créée avant que les connexions puissent partager des tables n'est pas compatible) ;
- chaque colonne que la source écrit tient dans la colonne de la table telle quelle ou plus large (un entier tient dans un entier plus grand ou un décimal), et la table n'exige aucune valeur que la source n'écrit pas. Une colonne qui manque à la table lui est ajoutée, vide pour les lignes qu'elle a déjà ; une colonne que la source exige ne peut pas l'être ;
- elle est classée au moins aussi haut que les données de la source. Une table classée en dessous des données de la source ne les reçoit jamais, et vous ne pouvez pas ensuite relever la classification de la source au-dessus de la table qu'elle réutilise.
Chaque table compatible indique ce qu'elle gagne — Mêmes colonnes, ou combien de colonnes facultatives elle ajoute — et combien de sources de données y écrivent déjà, par exemple « Mêmes colonnes · 1 source écrit ici ». Une table incompatible reste dans la liste, marquée Incompatible, ne peut pas être choisie et indique pourquoi. Sur la page Tables, groupée par source de données, une table que plusieurs sources de données écrivent est listée sous chacune d'elles, marquée Partagée, et chaque groupe la compte ; le nombre de tables de la page la compte une seule fois, et une ligne au-dessus des groupes indique que la somme des groupes peut donc dépasser le total. L'onglet Activité de chaque source de données montre ses propres exécutions dans une table qu'elle réutilise, y compris celles diffusées en continu. Supprimer une source de données ne supprime jamais une table : elle cesse d'écrire, et la table et toutes ses lignes restent — que la source ait créé la table ou l'ait réutilisée, et pendant qu'une autre source l'écrit encore.
Étiquettes de ligne
Chaque table qu'écrit une source de données porte quatre colonnes de plus, remplies par la plateforme sur chaque ligne écrite :
| Colonne | Contient |
|---|---|
_source_id | La source de données qui a écrit la ligne |
_connection_id | La connexion par laquelle elle a été lue (vide pour une source liée à aucune connexion) |
_run_id | L'exécution qui l'a écrite : une exécution planifiée, une récupération à la demande, une réplication ou une livraison |
_loaded_at | Le moment où la plateforme a reçu la ligne |
Elles distinguent les lignes des sources de données qui partagent une table, et permettent de filtrer, d'auditer ou de supprimer les lignes d'une connexion. Voir les lignes d'une source de données s'en sert pour ne montrer que les lignes qu'elle a écrites, même dans une table qu'elle partage. Une source ne peut pas les fixer : ce qu'une ligne porte sous ces noms est remplacé. Une table créée avant les étiquettes de ligne reçoit les quatre colonnes à la prochaine écriture de sa source ; les lignes qu'elle a déjà les laissent vides, et son activité ne les présente jamais comme de nouvelles colonnes. L'aperçu de la table les masque jusqu'à ce que vous les affichiez avec son sélecteur de colonnes.
Chaque table qu'une source de données écrit porte aussi une colonne markings : les marquages qu'un lecteur doit détenir pour voir la ligne. Une source de données la laisse vide, si bien que ses lignes restent visibles pour quiconque peut lire la table ; une projection la remplit à partir des lignes qu'elle lit. C'est elle qui permet à une ontologie de lire la table d'une source de données — une table qui ne l'a pas, ou dont la colonne markings n'est pas un tableau, est signalée comme non approvisionnée. Comme les étiquettes de ligne, une table créée avant elle la reçoit à la prochaine écriture de sa source, son activité ne la présente jamais comme une nouvelle colonne, et l'aperçu de la table la masque jusqu'à ce que vous l'affichiez.
Dans une table à clé (une fusion), une exécution n'écrit que les lignes dont les valeurs ont changé. Une ligne qu'une exécution renvoie avec les mêmes valeurs reste telle quelle : ses étiquettes désignent toujours l'exécution qui l'a modifiée en dernier — _loaded_at indique quand ses valeurs actuelles sont arrivées, pas quand la source l'a envoyée pour la dernière fois — et une exécution qui ne change rien n'écrit rien. Une exécution ne signale comme écrites que les lignes qu'elle a changées : la ligne d'une table de base de données indique alors Aucune modification à écrire, et son activité garde une seule ligne pour toutes les exécutions successives qui n'ont rien changé — par exemple « Aucune modification de crm_orders depuis 14:03 », à la plus récente — au lieu d'une ligne « écrites » pour chacune.
Choisir les tables d'une source de base de données
Certaines sources de base de données vous laissent choisir leurs tables. Vous les choisissez dans le panneau Ajouter une source de données, avant l'ajout : dès que vous choisissez une connexion, le panneau lit cette base et liste ses schémas, tables et colonnes sous forme d'une seule arborescence, et Ajouter crée la source de données avec les tables choisies, l'endroit où chacune arrive, les colonnes qu'elle garde et sa classification, en une seule étape. Rien n'est créé avant Ajouter ; Annuler ne laisse rien derrière. Ensuite, ouvrez la source de données et son onglet Tables pour les modifier : il part des tables qu'elle réplique déjà et montre où en est chaque réplication :
- Ouvrez un schéma pour lister ses tables, et cochez les tables à répliquer ; cocher un schéma coche toutes les tables qu'il liste. Les schémas propres à la base (comme
information_schema,sysoupg_catalog) ne sont pas listés. La clé d'une table est dans sa ligne, à côté de son nom : la clé que la base indique ou, si elle n'en indique aucune, une colonne clé que vous y choisissez parmi les colonnes de la table dont la base indique qu'elles ont toujours une valeur — tant que vous ne l'avez pas fait, la table compte comme à décider. Enregistrer une clé que la table n'a pas, ou qui peut être vide, est refusé à côté de cette table ; une synchronisation qui ne peut toujours pas s'en servir comme clé échoue et indique pourquoi. Une table dont les colonnes évoquent des données personnelles le signale dès que son schéma la liste, si bien qu'une table cochée sans ouvrir ses colonnes est tout de même classée selon ce qu'elle contient (ci-dessous). - Vers · nouvelle ou existante, dans la même ligne, est l'endroit où arrive chaque table choisie : la nouvelle table que nomme la règle de nommage (
{schema}_{table}par défaut), une table que vous tapez dans le même champ, ou une table existante — la copie d'une autre source de base de données où vous pouvez écrire (ci-dessous). Un nom déjà utilisé ici, ou utilisé deux fois, est signalé dans la ligne et doit être changé avant que les tables démarrent. Décocher la table la retire de nouveau. - Une table cochée s'ouvre sur ses colonnes : elle lit toutes les colonnes tant que vous n'en excluez pas, et seules les colonnes gardées sont lues. Une colonne dont le nom évoque des données personnelles (une adresse e-mail, un numéro de téléphone, un nom, une adresse ou une date de naissance — une date de naissance compte dans les colonnes d'une source de données, pas dans celles d'un fichier téléversé) est signalée Données personnelles — d'après son nom et son type, jamais d'après une ligne — et une colonne exclue indique Exclue. Une table qui garde une telle colonne est classée Confidential, et une phrase par table sous l'arborescence l'indique — par exemple « 2 columns in customers look like personal data. email will be classified Confidential; phone is left out. » Une colonne clé reste toujours.
- Arrivée des lignes, replié sous les colonnes d'une table, réunit la façon dont ses lignes arrivent — mise à jour par clé (étape 1), par défaut, ou ajout des seules nouvelles lignes, selon une colonne d'horodatage, seule possibilité lorsqu'aucune colonne ne peut être la clé de la table —, si vous le souhaitez combien de jours de lignes conserver, et la Classification de la table, que vous pouvez relever mais jamais fixer sous celle qu'exigent ses données personnelles ni sous le minimum de votre organisation. Il s'ouvre de lui-même lorsque la table a besoin que vous fixiez l'un de ces éléments.
- Nouvelles colonnes, une ligne pour toutes les tables choisies, indique ce qui se passe lorsqu'une table gagne des colonnes (voir Quand la source ajoute des colonnes).
- Choisissez Ajouter — il indique combien de tables, par exemple Ajouter 2 tables (dans l'onglet Tables, Enregistrer). Les tables sont répliquées dès la prochaine synchronisation. Si une table est refusée après la création de la source de données, le panneau indique pourquoi à côté de son nom ; modifiez-la depuis l'onglet Tables.
Avec beaucoup de tables, Modifier la correspondance ouvre Correspondance des tables sur la même base : une règle de nommage — {table}, {schema}_{table} ou {source}_{table} — nomme chaque table listée, schéma par schéma et page par page, et Demande une décision ne montre que les tables dont le nom est pris, invalide ou utilisé deux fois, ou qui évoquent des données personnelles. Sélectionnez des lignes, ou un schéma entier, pour les créer ou les exclure en une fois ; Réutiliser… dirige les tables sélectionnées vers une table existante avec laquelle chacune est compatible.
Arriver dans une table existante. Une table de base de données peut écrire dans la copie d'une autre source de base de données plutôt que dans une table à elle — par exemple la table customers de deux bases de commandes dans une seule crm_customers. La liste montre les copies de votre environnement où vous pouvez écrire une fois les colonnes de la table lues, chacune indiquant si elle est compatible : c'est la copie d'une autre source de base de données (jamais une table à vous, une table récupérée ou diffusée en continu, ni une table que cette source de données écrit déjà), elle a la même clé et la connexion en fait partie (un ajout n'arrive que dans une table sans clé), ses lignes sont datées par la même colonne, chaque colonne que la table garde y a le même type, et elle est classée au moins aussi haut que les données de cette table. Une colonne qui lui manque est ajoutée, vide pour les lignes qu'elle a déjà ; une colonne de la table que la vôtre ne garde pas reste vide dans vos lignes. Vos lignes sont étiquetées avec votre source de données et votre connexion (voir Étiquettes de ligne), si bien qu'elles n'écrasent jamais celles d'une autre. La table garde son propre nom et son historique. Une table incompatible reste dans la liste, marquée Incompatible, ne peut pas être choisie et indique pourquoi. Supprimer l'une ou l'autre source de données conserve la table et toutes ses lignes.
Dès qu'une table a écrit des lignes dans sa destination, l'endroit où elle arrive (une nouvelle table ou l'existante), l'arrivée de ses lignes, sa colonne d'horodatage, son historique et sa classification restent tels quels (une table qui ajoute sans colonne d'horodatage peut encore en recevoir une) : enregistrer une modification de l'un d'eux est refusé et nomme la table. Seul ce qui se passe lorsqu'elle gagne des colonnes peut encore changer. Pour enregistrer une table autrement, ajoutez une autre source de données avec une nouvelle table de destination — la table existante et son historique sont conservés.
La base de données est lue via la connexion que vous avez choisie, avec l'identifiant de cette connexion : choisir ses tables demande donc le même accès qu'ajouter la source de données — écrire dans l'espace de travail, et la connexion partagée avec vous. Dans le panneau d'ajout, la base est connectée dès que vous choisissez la connexion ; pendant ces quelques secondes, le panneau indique Connexion à la base de données, et une base injoignable indique pourquoi. Cette connexion à la base vous appartient pendant votre choix : désélectionner la connexion, annuler ou fermer le panneau y met fin, et elle prend fin d'elle-même au bout d'une heure. Après l'ajout, la source de données se connecte avec la sienne ; l'onglet Tables lit par elle, et indique Connexion à la base de données pendant ce temps.
Arrivée des lignes
La façon dont les lignes arrivent décide de l'historique que conserve la table :
| Arrivée des lignes | Historique |
|---|---|
| Instantané — chaque synchronisation remplace la table | Dernière synchronisation seulement |
| Ajout — chaque synchronisation ajoute ses nouvelles lignes | Chaque version |
| Mise à jour par clé — une ligne dont la clé existe est mise à jour | Dernière version seulement, une ligne par clé |
Pour une source d'API (un flux, un appareil, un service), la façon dont les lignes arrivent est fixée par la définition de la source — elle façonne la table à sa création — et le détail de la source l'affiche ; une source de données ne peut pas en choisir une autre. Pour une table de base de données, vous choisissez l'ajout ou la mise à jour par clé en choisissant ses tables. L'instantané n'est pas proposé pour une table de base de données : la remplacer à chaque synchronisation supprimerait les lignes conservées, et une réplication ne supprime jamais de lignes.
Une table de base de données est mise à jour par clé sauf si vous choisissez autrement. L'ajout ne copie que les nouvelles lignes : chaque synchronisation lit les lignes dont la colonne d'horodatage — une colonne de date ou de date-heure dont la valeur ne fait que croître, comme la création ou la dernière modification d'une ligne — est plus récente que la plus récente copiée par la dernière synchronisation, et n'ajoute qu'elles ; une ligne sans valeur n'est pas copiée. L'ajout n'est donc proposé que lorsque les colonnes de la table en montrent une, et il demande de la choisir avant l'enregistrement. Ajouter de nouveau toute la table à chaque synchronisation n'est pas proposé : chaque ligne serait ajoutée à chaque fois.
Une mise à jour par clé peut aussi nommer une colonne d'horodatage, comme heure propre à la ligne. Sans elle, une ligne dont les valeurs n'ont pas changé n'est pas réécrite, et la table ne conserve pas d'historique : ses lignes gardent l'heure de leur première lecture, si bien que supprimer les lignes plus anciennes que quelques jours supprimerait des lignes que la base contient encore. Conserver l'historique est désactivé pour une telle table, et en enregistrer une avec un historique est refusé.
Une table sans colonne pouvant servir de clé ni colonne de date ou d'horodatage ne peut pas être répliquée : chaque synchronisation recopierait toutes ses lignes, et le panneau l'indique à côté d'elle.
Quand la source ajoute des colonnes
Une source d'API enregistre les colonnes que nomme sa définition. Un champ ajouté par le fournisseur n'est pas enregistré tant qu'une nouvelle version de la définition ne le déclare pas, et il n'y a rien à décider.
Une table de base de données peut gagner des colonnes à tout moment. Pour chaque table répliquée, vous choisissez ce qui se passe alors :
| Réglage | Ce qui se passe |
|---|---|
| Tout autoriser | Les nouvelles colonnes sont enregistrées, et la table de destination les reçoit. Les colonnes existantes ne sont jamais supprimées ni renommées. |
| Me demander d'abord (par défaut) | Les colonnes que la table possède déjà continuent d'arriver. Les nouvelles attendent : la source de données affiche schema changed et apparaît dans À traiter jusqu'à ce qu'une personne autorisée à la modifier choisisse Accepter et ajouter à la table dans sa vue d'ensemble. Elles sont enregistrées, et la table les reçoit, à la prochaine synchronisation. |
| Bloquer | Les nouvelles colonnes sont ignorées. Chaque synchronisation enregistre toujours les colonnes de la table, et indique celles qu'elle a ignorées. |
Une colonne que la table distante supprime ou change de type n'est pas une nouvelle colonne : la réplication s'arrête et indique que la destination a changé, quel que soit le réglage.
Planification
Une source qui s'exécute selon un calendrier — une source d'API qui interroge, ou une source de base de données qui réplique ses tables — suit l'intervalle de sa définition, sauf si vous en fixez un pour la source de données. Fixez-le à l'ajout de la source de données, ou plus tard dans son onglet Planification et conservation ; Utiliser le calendrier de la définition le rétablit.
L'intervalle peut être aussi court que la définition le permet — le champ l'indique, par exemple toutes les 1 min — et aussi long qu'une semaine. Une source de données ne s'exécute jamais plus souvent que sa définition ne le permet, même si sa définition relève plus tard cette limite. Un flux continu, un point de réception, un dépôt manuel ou une source récupérée à la demande ne s'exécute pas selon un calendrier : il n'y a rien à fixer.
Statut
Chaque source de données affiche un seul statut :
| Statut | Ce qu'il signifie |
|---|---|
| Saine | Sa dernière synchronisation a réussi. Un avertissement, comme un flux devenu silencieux ou une exécution qui a attendu une table occupée, s'affiche à côté. Une source de données déjà exécutée, puis reprise ou modifiée, indique En attente de sa prochaine exécution jusqu'à ce que sa planification l'exécute à nouveau ; la liste affiche cette exécution, et sa Dernière synchronisation, dès qu'elle aboutit — même une exécution qui n'a rien trouvé de nouveau — sans rechargement. Une source dont les premières lignes viennent de quelqu'un d'autre indique ce qu'elle attend jusqu'à leur arrivée : une source push En attente de sa première livraison, une source manuelle En attente de son premier import, et une source à la demande En attente de sa première récupération. |
| En échec | Sa dernière synchronisation a échoué, ou sa connexion ne peut pas la servir. Le statut dit pourquoi et qui corrige — l'administrateur de votre organisation pour une connexion, votre opérateur Scrydon pour un réglage du déploiement. |
| En pause | Les synchronisations planifiées sont ignorées jusqu'à ce que quelqu'un la reprenne. |
| En cours | Une synchronisation est en cours, ou elle attend la toute première exécution que la plateforme lance elle-même. |
Une source de base de données qui réplique ses tables est En échec tant que sa base ne peut pas être lue en direct, et affiche sinon sa dernière réplication : une réplication échouée reste En échec jusqu'à ce qu'une réplication réussisse, même si la base répond entre-temps.
Lorsque la réplication d'une source de base de données échoue autant d'exécutions d'affilée que le seuil de mise en pause automatique de votre organisation (10 sauf si un administrateur l'a modifié), sa copie est mise en pause : elle indique Copie suspendue après 10 exécutions échouées consécutives, avec la dernière erreur, et chaque administrateur de l'organisation reçoit une notification dans l'application. Seule la copie s'arrête — les requêtes en direct sur la base de données continuent de fonctionner. Corrigez la connexion, puis choisissez Reprendre la copie : la copie s'exécute de nouveau, son compteur d'échecs repart de zéro, et les requêtes en direct ne sont pas interrompues. Une exécution qui n'a pas pu démarrer parce que la table était occupée par une autre écriture ne compte pas pour le seuil ; elle est simplement relancée dans les minutes qui suivent. Mettre vous-même la source en pause arrête à la fois la copie et les requêtes en direct : le menu de la ligne propose Mettre en pause la copie pour une base de données copiée selon un planning, Mettre en pause l’accès en direct pour une base lue sur place, et Mettre en pause la synchronisation pour toute autre source, et vous demande de confirmer, en indiquant ce qui s'arrête et que ses tables et ses lignes sont conservées.
S'exécute au nom de la personne qui l'a ajoutée
Les exécutions planifiées d'une source de données, ainsi que celles que lancent Synchroniser maintenant et Synchroniser cette table, agissent au nom de la personne qui l'a ajoutée. Avant chaque exécution — pour un flux continu, toutes les 30 secondes tant qu'il est connecté — la plateforme vérifie que cette personne est toujours membre de l'organisation, peut toujours modifier les sources de données dans l'espace de travail (un administrateur de l'organisation le peut toujours) et peut toujours utiliser la connexion à laquelle la source de données est rattachée. Les lignes de l'exécution, ainsi que ses entrées dans le journal d'audit et dans l'historique de la table, sont enregistrées à son nom ; la table de la source de données appartient elle-même à la plateforme, quelle que soit la personne qui a ajouté la source.
Lorsque cette personne n'a plus cet accès — la connexion n'est plus partagée avec elle, elle a perdu l'accès à l'espace de travail, ou elle a quitté l'organisation — la source de données s'arrête au lieu de s'exécuter sans lui. Rien de ce que cette exécution a lu n'est écrit. Elle indique Arrêtée : la personne au nom de laquelle elle s'exécute a perdu l'accès et précise qui n'a plus accès à quelle connexion (une connexion non partagée avec vous n'est pas nommée). Un administrateur de l'organisation corrige cela en partageant de nouveau la connexion avec cette personne ou en lui rendant son accès ; choisissez ensuite Reprendre la synchronisation. Une source de données continue de s'exécuter au nom de la personne qui l'a ajoutée : pour qu'elle s'exécute au nom de quelqu'un d'autre, cette personne la supprime et l'ajoute de nouveau. Une source de base de données arrêtée ainsi arrête aussi ses requêtes en direct. Si la plateforme ne peut pas vérifier l'accès de la personne à ce moment, rien ne s'arrête : l'exécution est relancée.
Une source de données ajoutée avant que les personnes soient enregistrées s'exécute au nom de la plateforme, comme elle l'a toujours fait.
À traiter liste les sources de données en échec, celles mises en pause automatiquement après des échecs répétés, celles arrêtées parce que la personne au nom de laquelle elles s'exécutent a perdu l'accès, et les sources de base de données dont les tables ont gagné des colonnes qui attendent d'être acceptées. La colonne Connexion nomme la connexion que chacune lit ; une connexion non partagée avec vous n'est pas nommée.
Alertes et récapitulatif quotidien
Une source de données alerte sur un changement d'état, jamais à chaque exécution en échec :
| Alerte | Quand |
|---|---|
| A commencé à échouer | Sa première synchronisation en échec après un fonctionnement normal. Un échec qui n'est pas le sien — le fournisseur qui demande moins de requêtes, la politique de données qui n'a pas pu être vérifiée, un stockage plein, des lignes que Scrydon n'a pas pu écrire pour une raison de son côté — n'en est pas un et figure dans le récapitulatif quotidien. Une exécution qui a attendu une table occupée par une autre écriture, ou une table de base de données qu'une autre exécution de la même source copiait, n'en est pas un non plus : ces lignes sont écrites peu après et rien n'est consigné. Une source de données qui échouait déjà quand les alertes ont été activées pour elle — ou avant que votre déploiement ait des alertes — n'alerte pas avant d'avoir de nouveau bien fonctionné, puis d'échouer. |
| En retard | Une source planifiée ne s'est pas synchronisée pendant son intervalle, plus deux fois la durée de sa dernière exécution, plus cinq minutes. |
| Suspendue | Elle a échoué autant d'exécutions d'affilée que le seuil de suspension automatique de votre organisation — pour une source de base de données, c'est la copie qui est suspendue et les requêtes en direct continuent, et cette alerte est la notification Copie suspendue décrite sous Statut — ou elle s'est arrêtée parce que la personne au nom de laquelle elle s'exécute a perdu l'accès à sa connexion ou à son espace de travail, ou a quitté l'organisation. |
| Fonctionne de nouveau | Sa première bonne synchronisation après une alerte à son sujet. |
Chaque alerte nomme la source de données, la raison et qui corrige — l'administrateur de votre organisation pour une connexion, votre opérateur Scrydon pour un réglage du déploiement ou un planning en retard, sinon la personne qui maintient la source — et ouvre Sources de données. Un échec disparaît de lui-même après la prochaine exécution réussie.
Une source de données qui échoue et se rétablit sans cesse n'alerte pas sans cesse : après une alerte A commencé à échouer ou En retard, la suivante attend six heures, et ce qui se passe entre-temps — y compris le rétablissement qui y répond — va dans le récapitulatif. Une source en retard qui échoue ensuite, et une source en échec qui est ensuite suspendue, alertent tout de suite : elles disent quelque chose de nouveau.
Une fois par jour (à 07:00 UTC sauf si votre opérateur l'a changé), le récapitulatif quotidien liste, par source de données, ce qui a changé la veille sans demander d'alerte : exécutions en échec, avertissements comme des lignes masquées ou mises de côté par la politique de données, changements de schéma et lignes écrites. Chaque ligne commence par l'état de santé de la source de données tel que la liste l'affiche, suivi de ce qu'elle attend ou de ce qui s'est mal passé lorsque la liste le nomme — une source push à laquelle rien n'a encore été envoyé indique Saine · En attente de sa première livraison. Une source de données qui n'a fait qu'écrire des lignes n'y figure pas, et quand rien n'a changé pour aucune, il n'y a pas de récapitulatif. Vous recevez au plus un récapitulatif par jour et par organisation.
Les alertes et le récapitulatif vont aux administrateurs de votre organisation et à la personne qui a ajouté la source de données, tant qu'elle en est membre, dans la boîte de notifications et par e-mail sauf s'ils ont désactivé l'e-mail (voir Notifications). Le récapitulatif d'un administrateur liste toutes les sources de données ; le vôtre, celles que vous avez ajoutées. Une source de données ajoutée avec les alertes désactivées n'envoie ni l'un ni l'autre.
Modifier ou supprimer une source de données
Ouvrez une source de données pour voir ses onglets :
- Connexion — faites-la pointer vers une autre connexion partagée avec vous. Sa table et son historique restent ; les nouvelles lignes proviennent de la connexion que vous choisissez.
- Aperçu — pour une source de base de données, le réglage de chaque table répliquée pour les nouvelles colonnes (modifiable lorsque vous avez choisi ses tables), les colonnes en attente d'acceptation et celles que son réglage a ignorées.
- Planification et conservation — sa fréquence d'exécution, et la durée de conservation des lignes. Toute personne autorisée à modifier la source de données change sa planification. Seul un administrateur de l'organisation modifie la conservation, car une durée plus courte supprime les lignes plus anciennes ; les autres la voient.
- Point de terminaison push — pour une source de données qui reçoit des envois : le chemin vers lequel le système émetteur envoie, l'en-tête qui nomme chaque envoi, et la façon dont chaque envoi prouve son origine (un en-tête de signature ou d'identifiant, fondé sur le secret de la connexion). Le secret lui-même n'est jamais affiché, et l'hôte est l'hôte push public de votre déploiement — demandez-le à votre opérateur Scrydon. Quand le déploiement n'exécute pas les sources push, l'onglet l'indique. Il demande le même accès que la modification de la source de données.
- Supprimer — elle ne se synchronise plus. Ses tables et son historique de synchronisation sont conservés, et sa connexion n'est pas modifiée. L'onglet et la confirmation indiquent combien de tables elle conserve.
La source de données qu'une extension installe avec elle est supprimée par un administrateur de l'organisation, avec Supprimer la source de données dans la liste. Supprimer une source de données, quelle qu'elle soit, conserve ses tables et toutes leurs lignes : groupée par source de données, la page Tables les liste sous Source supprimée · son nom — le nom sous lequel la liste l'affichait ; une source de données supprimée avant que les noms soient conservés y affiche sa clé — qui indique qu'elles ne sont plus synchronisées, et vous supprimez une table là quand vous n'en avez plus besoin. Une source de données ajoutée plus tard ne les reprend jamais, même sous le même nom : c'est une nouvelle source de données avec ses propres tables, et sa première exécution et son activité commencent quand vous l'ajoutez. Pour écrire de nouveau dans une table conservée, choisissez-la sous Vers · table existante lorsque vous ajoutez la source de données.