Si vous avez travaillé avec postgresql, vous pouvez savoir qu'il stocke diverses statistiques dans les vues internes. Je veux obtenir des statistiques avec un certain intervalle et le stocker dans un fichier binaire. Je le vois de la façon suivante:Écrire structure avec différentes tailles dans le fichier binaire et le lire
- lire les stats avec PQexec() de libpq.
- En utilisant les informations sur le nombre de lignes et de colonnes du résultat, allouez un tableau de pointeurs 3D.
- résultat de vente au tableau 3d (ce qui est déjà une partie de struct)
- struct écriture avec tableau 3D dans un fichier binaire
- passez à l'étape 1 et répéter
Ensuite, il est possible de lire ce fichier binaire, lire struct dans le tableau 3d similaire, puis trier les valeurs, afficher et ainsi de suite. Et tout va bien, jusqu'à ce que le nombre de lignes soit constant, mais dans postgresql il y a des vues où le nombre de lignes est changé de façon permanente. Ainsi, les tailles des structures écrites seront toujours différentes et je ne sais pas comment lire correctement ces structures à partir du fichier (car j'ai besoin de connaître la taille de la structure).
Pourriez-vous me conseiller ou proposer un meilleur moyen de le faire?
Il semble que vous ayez juste besoin d'écrire des métadonnées en tant qu'en-tête dans votre fichier avant les données réelles. Vous n'aurez alors aucun problème pour encoder les tailles d'éléments. –
oui, je pensais à l'en-tête et il y a un moment qui me confond - Header est dans le fichier a ** fixé ** taille, donc nous pouvons mettre dans le fichier un nombre limité de snapshots de statistiques. Il est peut-être préférable d'utiliser l'en-tête dédié à l'utilisateur pour chaque accrochage aux statistiques. Et d'abord lire l'en-tête de ligne (où la taille est située), puis lire la date. – lesovsky