2017-03-02 1 views
0

J'utilise ArangoDB depuis un moment maintenant pour des besoins plus petits et je l'adore. Un client nous a récemment demandé d'analyser une grande quantité de données financières actuellement hébergées dans SQL, mais j'espérais pouvoir interroger plus efficacement les données dans ArangoDB.Les données en masse doivent-elles être incluses dans le graphique?

L'une des exigences les plus simples consiste à regrouper les montants d'entrée pour déterminer les totaux des comptes dans leur grand livre général. Il y a environ 2200 comptes dans leur comptabilité générale avec une profondeur maximale d'environ 10. Le nombre d'entrées gl est d'environ 150 millions et je me demandais quelle serait la méthode la plus efficace pour agréger les totaux des comptes? Je prévois d'utiliser un graphique pour gérer la hiérarchie/structure du compte, mais des arêtes doivent être créées pour 150 millions d'entrées gl ou il est plus efficace de traverser les relations entrantes et d'exécuter des sous-requêtes sur les collections d'entrées gl pour calculer le total. les montants?

Normalement, j'exécuterais les tests moi-même, mais j'ai du mal à charger simplement les données dans mon instance locale d'arango et je pensais avoir un aperçu pendant que je travaillais au chargement des données.

Merci d'avance!

Répondre

0

Quel est l'avantage que vous souhaitez obtenir en déplaçant les données dans un modèle graphique. Si c'est pour établir des liens entre les comptes, les clients, les GL et autres, il serait peut-être préférable de choisir un modèle hybride.

Il est possible de créer une relation de style de graphique hiérarchique entre vos comptes et GL, mais de stocker ensuite vos entrées GL dans une collection de documents à plat. De cette façon, vous pouvez utiliser les requêtes de graphes de style AQL pour déterminer rapidement les relations entre les comptes et les GL. Si vous avez besoin d'entrées SUM dans un GL, vous pouvez avoir des requêtes qui identifient les GL._id puis additionner les collections plates qui ont des clés étrangères qui référencent le GL._id auquel elles sont associées. En ajoutant des index sur vos clés étrangères, vous accélérez les requêtes, et en utilisant Foxx Micro Services vous pouvez fournir une couche d'abstraction entre une requête de style REST et le modèle de données que vous utilisez. De cette façon, si vous trouvez que vous avez besoin de changer votre modèle de base de données sous les couvertures, en mettant à jour vos MicroServices Foxx, le consommateur n'a pas besoin d'être conscient de ces changements.

Je ne peux pas répondre à votre question sur les performances, vous aurez juste besoin de vous assurer que votre matériel est correctement spécifié.