Le meilleur magasin de données pour des milliards de lignes

J'ai besoin d'être en mesure de stocker de petits morceaux de données (environ 50 à 75 octets) pour des milliards d'enregistrements (~3 milliards d'euros/mois pendant un an).

La seule exigence est rapide inserts et rapide des recherches pour tous les enregistrements avec le même GUID et la possibilité d'accéder à la banque de données à partir .net.

Je suis un SQL server gars et je pense que SQL Server peut ce faire, mais avec tous les discours sur BigTable, CouchDB, et d'autres les solutions nosql, il sonne de plus en plus comme une alternative à la traditionnelle RDB peut-être mieux, en raison des optimisations pour les requêtes distribuées et mise à l'échelle. J'ai essayé de cassandra et de la .net les bibliothèques ne sont pas actuellement compiler ou sont tous les sujets à changement (avec cassandra elle-même).

J'ai regardé dans de nombreux magasins de données nosql disponibles, mais ne peut pas trouver celle qui répond à mes besoins en tant que robuste de production de la plate-forme.

Si vous avez eu pour stocker 36 milliards de petits, à plat des dossiers afin qu'ils soient accessibles depuis .net, ce qui choisiriez-vous et pourquoi?

  • Ouais, mes chiffres sont corrects. Actuellement, nous avons autant de données à entrer dans le système, mais nous collectons et conservons uniquement les totaux si nous perdons le nombre d'enregistrements de données et de maintenir des horaires des sommes de données. En raison des exigences de l'entreprise, nous voulons maintenir chaque enregistrement qu'il avait d'abord eu lieu et c'est 3Bil lignes/mois.
  • Vous avez soulevé quelques bonnes questions. Les réponses sont: 95% du temps est assez - les données est déjà en retard d'un montant variable, donc je vais avoir besoin de synchroniser jusqu'après le fait, de toute façon, donc vers le bas pour un court laps de temps n'est pas un briseur d'affaire. Perdre des inserts ou même des milliers de plaquettes ne sont pas la fin du monde. La perte d'un jour de données serait assez mauvais cependant. La cohérence n'est pas important non plus. Fondamentalement, après l'insertion 30Mil lignes en une journée, j'ai besoin de récupérer toutes les lignes avec le même GUID (peut-être 20 lignes) et d'être raisonnablement sûr que j'avais tous les ramener.
  • Avez-vous dump 30M lignes un jour quotidiennes/horaire prévu les travaux en lots, ou ils viennent dans un flux constant, un à un?
  • Les données arrivent à partir d'un site FTP... fichiers viennent en permanence et j'ai un processus qui analyse les fichiers et actuellement, il génère les données agrégées et insère les valeurs agrégées (peut-être 1000 lignes) comme une transaction. Le nouveau processus sera nécessaire d'insérer des centaines de milliers de lignes de chaque fichier qui arrive, probablement à l'aide de l'instruction bulk insert serait le moyen le plus efficace de le faire.
  • Qui sonne comme un travail ETL pour SSIS et SQL Server. Ils ne détiennent un record du monde pour ETL, à plus de 2 TO/heure de vitesse de téléchargement: blogs.msdn.com/sqlperf/archive/2008/02/27/etl-world-record.aspx
  • J'ai un tableau avec 16 colonnes en MSSQL base de données contenant de 1,5 crore dossiers et je l'insère 3.25 Lac moyenne pas. de lignes sur une base quotidienne. Avant d'insérer chaque nouveau single lignes, je suis en vérifiant avec 5 valeurs de colonnes dans le tableau. Si aucune ligne trouvée, basée sur 5 colonnes de valeurs peut alors insérer une nouvelle ligne uniquement. Merci de me suggérer comment puis-je le faire de manière efficace? Merci d'avance