Stockage de données et Big Data

Federico Ponzi

Stockage de données et Big Data


Je conçois un système Data Warehouse. J’ai besoin d’un programme qui obtient: plusieurs types de données, les joint puis effectue des requêtes rapides sur eux.

Puisque les sources sont de l’ordre de 250 Go (par table) je suppose que nous sommes dans la zone Big Data.

Je ne peux pas savoir à l’avance les types de requêtes qui seront effectuées sur ce système, donc j’aurais besoin de quelque chose sans schéma. Ce système doit également prendre en compte le fait que nous avons des instantanés quotidiens et qu’il devrait donc être en mesure de les interroger de manière raisonnable (plus d’informations ici ).

Je connais Apache Drill, mais il ne peut pas interroger les instantanés quotidiens (voir l’exemple dans la question liée).

Réponses


 Commander92

En lisant cet article et votre autre article, je ne comprends pas très bien pourquoi vous pensez qu’il doit être sans schéma. Sans schéma est généralement un terme utilisé avec les mégadonnées (Hadoop en particulier) où vous avez des données provenant de plusieurs sources que vous souhaitez charger dans un entrepôt de données pour une utilisation ultérieure. Vous configurez ensuite le schéma lorsque vous êtes prêt à utiliser les données.

Pour vos grands ensembles de données, vous mentionnez la prise d’instantanés quotidiens et bien que cela fasse le travail – vous allez vous retrouver avec une surcharge énorme en volume de données. Une meilleure option consiste à activer la capture de données modifiées (CDC). CDC n’enregistrera que les modifications apportées aux données plutôt que de prendre un instantané complet de tout ce qui s’y trouve. Vous ne perdez donc pas d’espace pour tous les enregistrements inchangés. Une certaine forme de CDC est prise en charge par la plupart des moteurs de base de données modernes, mais il existe également des outils tiers qui peuvent le faire.

Je vous recommande fortement de demander l’avis d’un cabinet de conseil tiers spécialisé dans l’entreposage de données pour vous aider à gérer cela. Ce que vous recherchez, c’est de l’expertise ainsi que des recommandations de logiciels.


 LetMeSOThat4U

Vous n’obtiendrez pas de jointures (normales) dans une base de données comme MongoDB, c’est donc hors de question, mais pourquoi l’impossibilité de connaître les requêtes à l’avance ne devrait-elle impliquer aucun schéma? Vos données ont une structure après tout?

Du lien vers une autre question, il semble que vous ayez besoin de recherches de texte rapides (LIKE / ILIKE?).

Eh bien, pour que les nouvelles versions de Postgres conviennent parfaitement, à condition que vous pg_trgm extension pg_trgm ( http://www.postgresql.org/docs/9.1/static/pgtrgm.html ). Il implémente des recherches d’index (par opposition au scan séquentiel) avec l’opérateur LIKE / ILIKE avec des caractères génériques.

Grâce à cette extension, j’ai réussi à créer un moteur de recherche incroyablement rapide sur une base de données PG de taille TB.

J’ai également écrit un moteur de requête de type booléen utilisant pyparsing module pyparsing Python qui a des opérateurs et des mots clés AND , OR , NOT typiques correspondant aux pg_trgm ( pg_trgm -indexed). Il traduit la requête de haut niveau en SQL (en fait SQLAlchemy Core SQL Expressions). De cette façon, vous pouvez interroger la base de données de manière assez flexible tout en obtenant des résultats très rapidement. Je ne sais pas si vous avez besoin d’une fonctionnalité de type moteur de recherche, mais je suis sûr qu’une grammaire pourrait être développée assez facilement à l’aide du pyparsing .

Si vous avez besoin de quelque chose impliquant plus de calcul numérique, PyTables est extrêmement rapide pour fonctionner sur des ensembles de données hors mémoire (bien que les opérateurs de recherche de chaînes y soient quelque peu rudimentaires).

 

#de, #et, Big, Data, données), stockage

 

wiki

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *