Le composant de données IBM® Cloud Databases for PostgreSQL fournit une solution de stockage à moyen terme pour vos données IoT.
Présentation
Databases for PostgreSQL est une base de données pour vos données IoT d'historique les plus récentes.
Databases for PostgreSQL constitue également le lac de données qui est utilisé comme entrée pour le service d'analyse. Analytics Service écrit la sortie de la fonction dans le lac de données.
Flux de données
Platform Service collecte et conserve les données IoT à des fins d'accès et de traitement directs, ainsi qu'à des fins de stockage historique et d'analyse avec Platform Service.
Le flux de données se décline en quatre grandes phases :
Vos terminaux IoT envoient des données à Platform Service, qui agit en tant que courtier de messages et de gestionnaire en temps réel de données IoT.
Les données de type terminal sont immédiatement écrites dans la table Databases for PostgreSQL (iot_devicetype). Pour pouvoir stocker des données IoT depuis vos terminaux connectés, votre environnement doit répondre aux exigences d'IBM Maximo Asset Monitor, de la messagerie et de Databases for PostgreSQL.
Les données de fonction dérivées sont écrites dans les tables de fonctions spécifiques pour Analytics Service.
Les données des terminaux IoT et les données des fonctions dérivées de Analytics Service ne sont pas automatiquement purgées, elles doivent être gérées manuellement.
En outre, si vous souhaitez stocker des données IoT à partir de vos terminaux connectés dans Databases for PostgreSQL, votre environnement doit répondre aux exigences suivantes :
Exigences liées à Maximo Asset Monitor
Les exigences suivantes s'appliquent à la messagerie et à votre instance Maximo Asset Monitor.
Les contenus de terminal doivent être en format JSON ou HTML correct.
Il doit exister une interface logique de type terminal pour le type de terminal. L'interface logique est nécessaire pour la création des tables requises par Databases for PostgreSQL. Pour plus d'informations, voir Connexion des terminaux. Les
limitations suivantes s'appliquent aux interfaces logiques :
Seules les interfaces logiques de type terminal sont prises en charge. Les interfaces de type objet ne sont pas prises en charge.
Les données de type tableau JSON ne sont pas prises en charge en tant que données de propriété d'interface logique.
Les objets JSON imbriqués ne sont pas pris en charge en tant que données de propriété d'interface logique.
Chaque interface logique doit inclure un mappage d'interface physique complet. Si une propriété est manquante dans le contenu et qu'elle n'est pas explicitement mappée, il se peut que l'interface logique ne soit pas déclenchée et
aucune donnée n'est alors écrite ans Platform Service. Vous pouvez éviter ce problème en mappant explicitement les propriétés vides aux valeurs de contenu par défaut.
Dans le tableau de bord Platform Service, accédez à Terminaux > Types de terminal.
Sélectionnez le type de terminal pour lequel vous souhaitez mettre à jour le mappage d'interface logique.
Cliquez sur l'icône Editer dans l'onglet Interface du type de terminal.
Cliquez sur l'icône Editer de l'interface logique.
Cliquez sur Suivant pour obtenir le modèle d'état.
Editez la propriété susceptible de nécessiter la prise en charge de la valeur null.
Dans la section Mappage, activez Editeur avancé.
Editez le mappage : $exists($event.property) ? $event.property : {payload_value} Où :
.property est le nom de la propriété que vous modifiez.
$exists vérifie si la propriété existe dans le contenu.
{payload_value} est la valeur par défaut que vous souhaitez envoyer si la propriété est manquante dans le contenu réel, par exemple : "String", -9999null
Sauvegardez vos modifications et déployez l'interface logique.
Pour prendre en charge les valeurs null des propriétés, configurez null en tant que type de données pris en charge pour la propriété. La configuration de la prise en charge de la valeur null doit s'effectuer à l'aide
de l'API HTTP, qui est protégée par l'authentification de base HTTP et nécessite une clé d'API et un jeton d'authentification. Pour plus d'informations sur les clés d'API et les jetons, voir Connexion à l'aide d'une clé d'API.
Mettez à jour le contenu du schéma de sorte qu'il prenne en charge les valeurs NULL. Sauvegardez la réponse de l'étape 2 dans un fichier JSON et éditez les propriétés qui doivent prendre en charge les valeurs null, par exemple, modifiez
"property": "string" en "property": ["string", "null"]
Fonctionnalité des propriétés supplémentaires Lorsque vous configurez vos interfaces logiques, vous pouvez utiliser l'indicateur des propriétés supplémentaires pour autoriser des propriétés supplémentaires dans le schéma JSON d'état. Pour
que les mises à jour de schéma soient correctement traitées, la fonctionnalité des propriétés supplémentaires doit être définie sur off.
Exigences de Databases for PostgreSQL
Les exigences suivantes s'appliquent à votre instance Databases for PostgreSQL.
Noms de table Ne renommez pas les tables créées par le système dans Databases for PostgreSQL. Toutes les modifications apportées aux tables doivent être effectuées via la mise à jour de l'interface logique correspondante.
Noms de colonne réservés Assurez-vous que les propriétés de message incluses dans les charges de message ne dupliquent pas des noms de colonne Maximo Asset Monitor Databases for PostgreSQL propriétaires. Dans le cadre du processus d'ingestion
de données, un certain nombre de colonnes sont ajoutées pour l'identification des enregistrements depuis une perspective IoT. Pour plus d'informations, voir Schémas et tables. Les noms de colonne suivants sont réservés
et ne doivent pas être inclus en tant que noms de propriété dans les contenus :
devicetype
ID de terminal
logicalinterface_id
eventtype
format
rcv_timestamp_utc
updated_utc
Types de données de colonne Les types de données de colonne sont automatiquement créés en fonction des types de données affectés aux propriétés de l'interface logique. Pour mettre à jour le type de données, vous devez modifier l'interface
logique. Si vous modifiez le type de données d'une propriété, la table Databases for PostgreSQL existante est renommée à des fins de sauvegarde et une nouvelle table est créée.
Paramètres par défaut pour Databases for PostgreSQL
Les paramètres de configuration par défaut sont les suivants :
La capacité de stockage des données est définie par votre plan. Pour plus d'informations, reportez-vous à la rubrique Surveillance de l'utilisation.
Analytics Service : Les tables de la base de données Analytics Service sont gérées par l'utilisateur. Voir les informations "d'optimisation".
Schémas et tables
Dans Databases for PostgreSQL, les données de terminaux IoT sont stockées sous forme de tables. Maximo Asset Monitor crée automatiquement l'ensemble des schémas et tables pour gérer intégralement l'insertion de données.
Tables générales Platform Service
Toutes les données IoT accessibles par l'utilisateur sont stockées dans des tables en fonction du type de terminal et suivent la même convention d'attribution de nom : iot_devicetype.
Les tables suivantes sont disponibles :
Table
Détails
iot_devicetype
Cette table principale de type de terminal contient l'ensemble des données pour le schéma en cours.
iot_devicetype_v+timestamp
Ces tables sont créées automatiquement lorsque le schéma est mis à jour et contient des données pour le nouveau schéma, identifiable par son horodatage. Pour plus d'informations, consultez la section Exigences.
Astuce : Toutes les tables utilisent le paramètre Cloudant NoSQL DB '_ID' comme clé principale.
Les identificateurs utilisés dans la table ci-dessus sont les suivants :
devicetype est le type de terminal pour lequel les données sont stockées.
timestamp représente l'horodatage de la mise à jour du schéma ayant déclenché le branchement de la table. Format : YYYYMMDDHHmmSSsss
Les tables iot_devicetype sont utilisées et contrôlées par Platform Service et ne doivent pas faire l'objet d'opérations SQL à l'exception de QUERY.
Les mises à niveau du schéma basé sur l'interface logique Platform Service peuvent être automatiquement fusionnées dans Databases for PostgreSQL :
Mise à jour du nom de l'interface logique.
Ajout d'une propriété ou attribution d'un nouveau nom à une propriété existante dans l'interface logique. Cette action a pour résultat d'ajouter une colonne de table de base de données avec le nom de la nouvelle propriété.
Tables Analytics Service
Toutes les données Analytics Service accessibles par les utilisateurs sont stockées dans des tables en fonction du type d'actif et suivent la convention d'attribution de nom suivante : dm_entity_grainid.
Les tables suivantes sont disponibles :
Table
Détails
dm_entity_grainid
Table de métriques dérivées qui contient la sortie d'une fonction à un grain particulier.
Les identificateurs utilisés dans la table ci-dessus sont les suivants :
asset est le type d'actif pour lequel les données de métriques dérivées sont stockées. Pour les entités basées sur des terminaux IoT, la partie asset du nom de la table correspond au type de terminal (DEVICETYPE).
GRAINID est la granularité avec laquelle les données ont été calculées.
Les tables Analytics Service sont utilisées et contrôlées par IBM Maximo Asset Monitor et ne doivent pas faire l'objet d'opérations SAL à l'exception de QUERY.
Accès aux données
Utilisez un outil de base de données externe ou l'API Databases for PostgreSQL pour extraire et traiter les données IoT dont vous avez besoin. Pour plus d'informations sur l'accès à l'API de service, voir API REST.
Astuce : Avec Analytics Service, vous pouvez accéder directement aux données PostgreSQL à partir du lac de données avec le tableau de bord de surveillance, puis utiliser ces données comme
entrée dans les fonctions d'analyse.
Etape 1 : Obtenir les données d'identification de Databases for PostgreSQL
Dans l'interface utilisateur Maximo Asset Monitor, cliquez sur Afficher les détails pour que le service Databases for PostgreSQL récupère les paramètres suivants. Ces paramètres sont obligatoires pour pouvoir vous connecter et extraire
les données IoT de la base de données :
Databases for PostgreSQL Données d'identification
Nom d'utilisateur
Chaîne alphanumérique.
Exemple : ibmcloudunique_identifier
Mot de passe
Chaîne alphanumérique.
Exemple : 15645 ... bb201
Nom de la base de données
Valeur par défaut : ibmclouddb
Schéma par défaut : public
Hôte
URI identifiant votre hôte Databases for PostgreSQL.
Exemple : unique_identifier.databases.appdomain.cloud.
Port
Numéro de port permettant d'accéder à votre instance Databases for PostgreSQL.
Exemple : 50000
Facultatif : certificat
Version codée en Base64 du certificat utilisé pour activer la connexion SSL.
Exemple : MIIDD ... Q3oaUA==
Pour en savoir plus sur l'autorisation Databases for PostgreSQL et sur la manière de fournir des données d'identification dans les appels d'API, consultez la documentation de Databases for PostgreSQL.
Etape 2 : Rechercher vos données de terminal IoT
Utilisez un outil de base de données externe pour vous connecter à Databases for PostgreSQL et accéder à vos données. Vous pouvez également faire accéder aux données à l'aide de l'API.
Databases for PostgreSQL recommande l'outil PGAdmin. Pour plus d'informations, consultez la section Outils d'administration de la documentation de
Databases for PostgreSQL.
Pour explorer vos données IoT, procédez comme suit :
Dans votre outil de base de données, connectez-vous à votre base de données Databases for PostgreSQL.
Explorez les tables Databases for PostgreSQL et les données.
Vos données de terminal se trouvent dans les tables iot_devicetype.
Pour Analytics Service, vous pouvez trouver les données de métrique dérivées dans les tables dm_entity+grain.
Les tables iot_devicetype sont utilisées et contrôlées par IBM Maximo Asset Monitor et ne doivent pas faire l'objet d'opérations SQL à l'exception de QUERY.
Etape 3 : Extraire les données de terminal IoT
Si votre plan inclut le module complémentaire Analytics Service, l'onglet Surveiller vous permet de tirer des indicateurs clés de performance (KPI) des données d'actif à l'aide
des fonctions d'analyse intégrées. Les utilisateurs d'un secteur d'activité peuvent facilement enrichir les données de métriques brutes provenant d'entités IoT et interagir avec elles à l'aide des fonctions d'analyse configurables
intégrées. Les spécialistes des données peuvent améliorer et personnaliser les fonctions standard via un ensemble d'API.
Rubriques connexes
Pour plus d'informations, voir les rubriques suivantes de la documentation Databases for PostgreSQL :