Pourquoi SQL sur les données brutes ?


Plus d’une décennie après le lancement du projet Hadoop, la quantité de données non structurées disponibles pour les applications modernes continue d’augmenter. De plus, malgré les prévisions contraires, SQL reste la lingua franca de l’informatique ; l’utilisation actuelle de la plate-forme d’infrastructure NoSQL et Big Data implique souvent une certaine forme d’interrogation basée sur SQL. Cette longévité témoigne de la communauté d’analystes et de praticiens des données qui connaissent bien SQL ainsi que de l’écosystème mature d’outils autour du langage.

Un point douloureux majeur

Cependant, ce processus d’interrogation de données non structurées à l’aide de SQL dans les plates-formes modernes reste pénible. L’interrogation d’une source de données non structurée à l’aide de SQL pour une utilisation dans l’analyse, la science des données et le développement d’applications nécessite une séquence d’étapes fastidieuses : déterminer comment les données sont actuellement formatées, déterminer un schéma souhaité, saisir ce schéma dans un moteur SQL et enfin charger les données et émettre des requêtes. Cette configuration est une surcharge majeure, et ce n’est pas une taxe unique : les utilisateurs doivent répéter ces étapes à mesure que les sources et les formats de données évoluent.

Pourquoi maintenant?

Heureusement, les substrats de stockage et de calcul évoluent rapidement, ce qui ouvre de nouvelles opportunités sous la forme de systèmes de traitement SQL sans schéma optimisés. Spécifiquement:

Stockage. Avec une abondance de stockage peu coûteux, nous pouvons nous permettre de créer de nouveaux types d’index qui nous permettent d’ingérer des données brutes dans plusieurs formats. Au lieu d’avoir à sélectionner une seule représentation de stockage optimisée pour un seul type de requête, nous pouvons stocker plusieurs représentations de données et utiliser la meilleure représentation pour chaque requête à mesure qu’elle arrive. Pour trouver un seul enregistrement, nous pouvons utiliser un index basé sur les enregistrements ; pour rechercher par un terme donné, utilisez un index inversé ; et, pour effectuer une agrégation rapide, utilisez des encodages en colonnes. Avec une gamme de représentations, il est possible de broyer et de découper automatiquement les données brutes dans chaque type d’index, ce qui nous permet d’éviter la surcharge de la déclaration de schéma sans sacrifier les performances.

Calculer. Le cloud a rendu le calcul distribué et élastique moins cher que jamais. En conséquence, nous pouvons adapter notre traitement des requêtes rapidement et efficacement en réponse aux exigences de la charge de travail. Avec l’exécution sans serveur, il est possible de mettre à l’échelle des rafales de capacité de traitement des requêtes en quelques secondes ou moins. Pour les requêtes d’analyse évolutives horizontalement, nous pouvons mettre à l’échelle avec précision un ensemble de nœuds de travail pour correspondre à un SLA de latence spécifique à la requête. De plus, nous pouvons tirer parti de l’élasticité dans l’allocation de ressources hétérogènes, par exemple, le vieillissement des données résidant sur SSD vers des nœuds de stockage froid au fil du temps. Par rapport aux conceptions sur site, la conception native du cloud rend cette élasticité de plusieurs ordres de grandeur plus puissante et signifie que les requêtes sur des données non structurées peuvent s’exécuter rapidement, même pour des opérations complexes.

Le retirer

En théorie, on pourrait simplement « verrouiller » ces types d’optimisations sur les systèmes de données traditionnels. Cependant, les vingt dernières années de développement de bases de données suggèrent qu’il est peu probable que cela fonctionne bien. Au lieu de cela, tirer pleinement parti de ces opportunités nécessite une nouvelle plate-forme conçue à partir de zéro avec ces changements dans les données, le calcul et le stockage à l’esprit.

Avec la sortie d’aujourd’hui, Dhruba, Venkat et les Fusée dévoilent une étape sérieuse vers la réalisation de ce potentiel. Travailler avec l’équipe Rockset au cours des deux dernières années a été une expérience merveilleuse pour moi : en combinant une expérience approfondie dans l’analyse des données de production et les plates-formes de bases de données, comme RocksDB, Facebook Search et Google, avec une vision ambitieuse pour l’avenir de l’informatique orientée données. développement, Rockset a réussi à créer une plate-forme de données SQL véritablement sans schéma. Rockset permet aux utilisateurs de passer de données brutes non structurées à des requêtes SQL, sans avoir à définir au préalable un schéma, à charger manuellement des données ou à compromettre les performances.

Avoir hâte de

L’opportunité qui en résulte pour les développeurs d’applications et les scientifiques des données est passionnante. Rockset permet de réduire les frais généraux d’ingénierie et de configuration des données pour les tableaux de bord et les rapports basés sur les données, les pipelines de science des données et les produits de données complexes. En tant que chercheur en systèmes, je suis particulièrement enthousiasmé par la possibilité d’incorporer encore plus de types d’index tels que des structures d’index apprises, la replanification dynamique des requêtes en réponse à la charge et à la multilocation, et l’inférence de schéma automatisée pour les données hautement imbriquées.