Nous devons migrer un ancien système (million LOC) de SAP Ads (autrefois Sybase) ISAM Basé (ainsi appelé tables libres) à une base de données PostgreSQL.
Le système implémente le type de multitenancy concernant la mise en place de quelques informations de base (ID de chancellerie, ID client, exercice, etc.) Juste dans les chemins de dossiers Windows et Les instructions SQL utilisent celles-ci pour créer des adresses de table avec les chemins appropriés pour la table spécifique (-Files).
Étant donné que SAP a décidé d'arrêter la prise en charge du serveur de base de données Advantage, nous sommes obligés de migrer le système vers un autre RDBM (réel).
[.
Pendant que j'utilise le terme multiténancy ici, ce n'est pas vraiment comme ça:
Donc les choses ci-dessus indiquées devraient préciser que nous
ATM Nous discutons de deux approches majeures comment faire cela:
SCHEMA
.SCHEMA
sont mappés en utilisant un identifiant unique.Les deux approches sont déjà techniquement presque résolues et nous sommes en mesure de migrer les systèmes existants de toute façon.
Bien qu'il y ait toujours des points pour considérer quel chemin nous devrions prendre.
Nous faisons déjà des mesures, mais j'aimerais entendre des conseils, peut-être des expériences, voire d'autres choix d'idées de conception de la DB, pour lesquelles des approches pourrait améliorer mieux.
EXPLAIN ANALYZE
du côté serveur).SCHEMA
le pg_catalog
a tendance à grandir grand, surtout le pg_catalog.pg_attributes
tableau. Toute opérations effectuées avec celles-ci (y compris l'optimiseur de requêtes PostgreSQL) pourraient être touchées par le contenu BIER Big Data.pg_class
objet , qui comprend des tables, des index, des champs de blob, etc.Peut-être que ce que j'ai offert avec mes observations ici est un peu biaisé, mais j'aimerais poser des questions sur les alternatives, ou absolue novice pour l'un de ces modèles dont nous discutons.
Étant donné que mon patron est un gars sage, et il sait que je suis l'un des architectes qui soutiennent le modèle de vue, il m'a donné des devoirs, pour leur donner des informations sur les inconvénients.
Ok heres mon vague conseil architectif.
Je pense que vous avez raison d'assimiler les dossiers à des index sur une seule table plutôt que des schémas.
Mais l'accès à une seule table à travers des vues peut parfois être problématique. Je vous conseillerais toujours de simplement modifier l'instruction SQL plutôt que d'exécuter votre SQL sur une vue.
Deuxièmement, le volume de cisaillement de données pourrait également poser problème. Vous trouverez peut-être que vous devez vous diviser en quelque sorte pour rester performant.
Je suggérerais de le diviser en créant plus d'une base de données avec le même schéma et en divisant les données par locataire et/ou de date.
Cela présente l'avantage de pouvoir déplacer les données sur du matériel physiquement différent si nécessaire. Le désavantage est bien sûr que vous ne serez pas en mesure d'interroger les diviseurs aussi efficacement.