«Combat pratique pour le développement de Big Data hors ligne et en temps réel» (1) Construire une carte du système de connaissances sur le développement du Big Data

Préface

En lisant ce livre, vous pouvez établir votre propre système et graphique de connaissances sur le développement de Big Data, maîtriser diverses technologies de développement de données (y compris les concepts, principes, architecture et compétences réelles de développement et d'optimisation, etc.), et analyser les données dans des projets réels Développer et fournir des conseils et des références Personnellement, je pense que ce livre de M. Bangzhong est toujours très passionnant et mérite d'être lu (• ̀ ω • ́) ✧

Insérez la description de l'image ici

Ensuite, je résumerai et apprendrai du point de vue de la technologie de traitement des données hors ligne, de la technologie de traitement des données en temps réel, de l'optimisation du développement des données, de la modélisation du Big Data et de la construction de systèmes de couches de données.

Grande image

Principalement du point de vue des données dans leur ensemble, combiné avec les quatre processus principaux allant de la collecte des données à la consommation, la technologie des données pertinente est introduite et représentée.

  • Les données sont du pétrole brut, les données sont les moyens de production, tirés par les données et la technologie. L'humanité passe de l'ère de l'informatique à l'ère de la DT. La nature stratégique des données est de plus en plus reconnue. De plus en plus d'entreprises, d'institutions et d'organisations, en particulier les entreprises Internet, ont construit Propre plateforme de données.

  • Qu'il s'agisse d'auto-recherche basée sur une technologie open source, d'autoconstruction ou d'achat de solutions d'entreprise matures, que ce soit dans un centre de données privé ou dans un cloud public, qu'il s'agisse d'équipes auto-construites ou d'externalisation de services, les plates-formes de données ont été créées les unes après les autres. Ces plates-formes de données Il transporte non seulement physiquement tous les actifs de données, mais devient également la plate-forme et l'environnement de travail quotidien pour les ingénieurs en développement de données, les analystes de données, les ingénieurs en algorithmes, les analystes commerciaux et tout autre personnel de données associé.

  • La plateforme de données est donc une infrastructure clé pour «voir les données» et «utiliser les données» au sein d'une entreprise ou d'une organisation. Elle est aussi indispensable que l'eau, l'électricité et le charbon. C'est leur existence qui rend possible la réalisation des données.

1. Flux de données

Qu'il s'agisse du big data à la mode ou de l'entrepôt de données traditionnel avant, qu'il s'agisse des données hors ligne les plus utilisées ou des données en temps réel qui retiennent de plus en plus l'attention, son processus de bout en bout comprend: la génération de données, la collecte et la transmission de données, le stockage de données Les quatre principaux processus de traitement et d'application des données, l'organigramme de données spécifique et ses liens clés sont indiqués dans la figure.

Vue d'ensemble du flux de données

1.1 Génération de données

La génération de données est la source de la plate-forme de données. Selon différents types de systèmes source, nous pouvons diviser les sources de génération de données dans les types suivants.

(1) Système d'entreprise

Le système commercial fait référence au système informatique utilisé par l'activité principale de l'entreprise ou utilisé par le personnel interne pour assurer le fonctionnement normal de l'entreprise, tel que le système de vente au point de vente du supermarché, le système ERP de gestion des commandes / stocks / chaîne d'approvisionnement, le système CRM de gestion de la relation client et le système financier. Quels que soient les différents systèmes administratifs, les données back-end sont généralement stockées dans la base de données back-end.

(2) Système Web

Le système Web disposera également d'une base de données principale pour stocker diverses données formatées, mais en outre, il existe également divers journaux de comportement de l'utilisateur, tels que la façon dont l'utilisateur a visité ce site Web (moteur de recherche, saisie directe de l'URL Web, etc. Saut système, etc.), quels types de comportements y a-t-il sur le site Web (quelles pages Web sont visitées, quels boutons sont cliqués et combien de temps ils restent). Grâce aux cookies et à diverses technologies d'intégration frontale, ces comportements des utilisateurs peuvent être enregistrés et enregistrés dans les fichiers journaux correspondants.

(3) Application mobile, système externe, organisation manuelle, etc.

1.2 Collecte et transmission des données

Les fichiers de données, les fichiers journaux et les journaux intégrés générés par le système Web du système d'entreprise, les applications mobiles, etc. sont dispersés sur divers systèmes et serveurs, et ce n'est qu'à l'aide d'outils et de systèmes de collecte et de transmission de données qu'ils peuvent être regroupés dans une zone centralisée pour la corrélation et l'analyse.

Nous devons prêter attention à l’opportunité de ce processus. Il n’est pas exagéré de dire que les outils et les systèmes de collecte et de transmission de données sont l’infrastructure clé à l’ère des mégadonnées.

1.3 Stockage et traitement des données

Après la collecte et la synchronisation des données, les données sont primitives et désordonnées. Elles doivent être nettoyées, corrélées, normalisées, soigneusement organisées et modélisées. Elles doivent passer des tests de qualité des données avant que l'analyse des données ou le service de données ne puisse être utilisé ultérieurement. C'est la troisième articulation clé de la construction de la plate-forme de données - stockage et traitement des données.

Il s'agit également du domaine le plus passionnant et le plus florissant dans le domaine des données. Une variété de cadres et d'innovations technologiques open source émergent à l'infini, mais ils changent constamment. En fonction de l'actualité des utilisateurs de données en aval, nous pouvons diviser les outils et technologies de traitement de stockage de données en traitement hors ligne. , Traitement en ligne et traitement en temps réel, les données traitées sont stockées en conséquence dans l'entrepôt de données hors ligne, dans la zone de stockage de données en ligne et dans la zone de stockage de données en temps réel.

Le traitement hors ligne effectue généralement le traitement des données quotidiennement. Une fois les données collectées et synchronisées tôt le matin de chaque jour, les tâches de traitement des données associées seront pré-conçues ETL (extraction, conversion, chargement, généralement utilisé pour désigner le nettoyage des données, la corrélation, Les processus de traitement des données tels que la normalisation) et la relation topologique entre les tâches ETL sont appelés tour à tour, et les données finales sont écrites dans l'entrepôt de données hors ligne. Les données de l'entrepôt de données hors ligne sont généralement soigneusement organisées en fonction d'une certaine idée de modélisation (la plus couramment utilisée est l'idée de modélisation dimensionnelle), ce qui peut rendre les utilisateurs en aval très intuitifs et pratiques à utiliser, mais aussi rendre le processus de traitement des données très pratique Extensions et modifications.

Avec la publication des trois articles de Google sur l'informatique distribuée et l'essor de l'écosystème open source Hadoop (correspondant aux trois articles de Google - HDFS, MapReduce, HBase), l'ère du big data est vraiment arrivée.

Insérez la description de l'image ici

Désormais, l'utilisation des données à l'ère du big data ne se limite plus à l'analyse de données hors ligne. Les données en temps réel deviennent de plus en plus importantes, et cela ne peut être réalisé qu'avec l'aide d'outils et de frameworks professionnels de stream computing. Actuellement, les plus populaires et les plus utilisés sont Spark Streaming et Flink.

Tout en utilisant ces cadres open source, les grands fabricants nationaux et étrangers combinent également leurs propres pratiques pour améliorer et innover ces cadres de calcul de flux à différents niveaux, tels que la stabilité, l'évolutivité et les performances. Mais l'auteur estime que le plus révolutionnaire d'entre eux est l'émergence de la couche d'abstraction SQL. La couche d'abstraction SQL élimine le besoin pour les utilisateurs de développement en temps réel d'écrire Java ou d'autres langages de programmation pour développer une logique de traitement en temps réel, ce qui non seulement accélère considérablement l'efficacité du développement en temps réel, mais réduit également considérablement Seuil de développement en temps réel.

1.4 Application des données

L'enfouissement soigneux des données, la synchronisation massive des données hors ligne, la collecte de données en temps réel au niveau de la milliseconde, le traitement fastidieux des données et la modélisation méticuleuse des données ont jeté une base solide pour l'utilisation des données, mais la valeur ultime des données dépend du lien d'application de données. .

Le moyen le plus utilisé pour l'application des données est de «surveiller», comme les rapports quotidiens d'activité de l'entreprise / département, les rapports hebdomadaires commerciaux et les rapports mensuels commerciaux régulièrement consultés par les décideurs et les gestionnaires, les indicateurs opérationnels et les rapports consultés par les opérateurs de première ligne, et les analystes donnent des décisions commerciales et d'affaires. Rapports d'analyse des données de référence opérationnelles, ainsi que des analyses ad hoc par des analystes et du personnel commercial de temps à autre.

Ces rapports de données aident les directeurs d'entreprise, les chefs de produit et de projet, et les opérateurs de première ligne à localiser les problèmes, les dangers cachés et les directions dans les produits et projets d'entreprise, et à prendre des mesures précoces pour corriger la direction ou augmenter les investissements après avoir vu la bonne tendance. Pour l'exagérer, la capacité d'une entreprise à «voir» les données représente le niveau de capacités d'application de données de l'entreprise et constitue également l'une de ses principales compétitivité.

Avec l'avènement de l'ère du big data et la montée en puissance de l'intelligence artificielle, les données ne se limitent plus à "voir" le super champ de recherche de Google, le système de recommandation personnalisé "Des milliers de personnes et de mille visages" de Taobao et l'application de recommandation d'agrégation d'actualités. Les titres d'aujourd'hui représentent tous des données et Le succès de la combinaison d'algorithmes. Il met également en évidence la puissance des données et des algorithmes.Avec l'aide d'algorithmes d'apprentissage automatique d'exploration de données, d'algorithmes d'apprentissage en profondeur et de services de données en ligne, les données sont devenues une partie des systèmes de production en ligne.

Deux, la technologie des données

Présentez principalement l'architecture de plate-forme de données hors ligne et en temps réel et les technologies associées du point de vue de la plate-forme de données.

Les principales technologies et frameworks open source de l'écosystème Big Data actuel
À l'heure actuelle, on peut dire que les technologies liées aux mégadonnées sont florissantes, mais elles sont inséparables. Peu importe la façon dont ces technologies évoluent et la nouveauté des noms, elles appartiennent toutes à un processus et à un lien spécifiques mentionnés ci-dessus, et il existe de nombreuses autres sources ouvertes. Le cadre technique ne sera pas répété un par un.

Mais ce sont toutes ces technologies de données qui, ensemble, constituent l'écosystème actuel du Big Data. Différentes technologies m'ont en vous et vous en moi, apprennent les unes des autres et s'inspirent les unes des autres. En fait, de nombreuses technologies et même leurs principes de base sont similaires. Ce n'est que pour des raisons commerciales, communautaires ou même privées qu'elles deviennent indépendantes. C'est peut-être précisément cette voie qui a contribué à la prospérité et à la prospérité de tout l'écosystème des mégadonnées. Xinxin se déplace vers le haut, comme le dit un poème: "Une fleur seule ne signifie pas le printemps, un jardin est plein de violet et de rouge."

2.1 La principale technologie de collecte et de transmission des données

Les outils et technologies de collecte et de transmission de données sont principalement divisés en deux catégories: le traitement par lots hors ligne et la collecte et la transmission de données en temps réel. Comme son nom l'indique, le traitement par lots hors ligne consiste principalement à collecter et à exporter des données par lots à la fois. Le traitement par lots hors ligne est actuellement l'outil le plus célèbre et le plus couramment utilisé est Sqoop, les utilisateurs en aval sont principalement des plates-formes de traitement de données hors ligne (telles que Hive, etc.). La collecte et la transmission de données en temps réel les plus couramment utilisées sont Flume et Kafka, et leurs utilisateurs en aval sont généralement des plates-formes de traitement de flux en temps réel, telles que Storm, Spark et Flink.

(1) Sqoop

Sqoop, en tant qu'outil de transfert de données hors ligne open source, est principalement utilisé pour le transfert de données entre Hadoop (Hive) et les bases de données traditionnelles (MySQL, PostgreSQL, etc.).

(2) Flume

Flume Cloudera fournit un système distribué hautement disponible et hautement fiable pour la collecte, l'agrégation et la transmission massives de journaux. Il s'agit actuellement d'un sous-projet de haut niveau d'Apache. L'utilisation de Flume permet de collecter des données telles que les journaux et l'heure, et de stocker ces ressources de données de manière centralisée. Up pour une utilisation en aval (en particulier les frameworks de traitement de flux, tels que Storm).

(3) Kafka

De manière générale, la vitesse à laquelle Flume collecte les données et la vitesse de traitement en aval ne sont généralement pas synchronisées, de sorte que l'architecture de la plate-forme en temps réel utilisera un middleware de messages pour mettre en mémoire tampon, et le plus populaire et le plus utilisé dans ce domaine est sans aucun doute Kafka.

Kafka est un système de messagerie distribué développé par LinkedIn. Il est largement utilisé en raison de son évolutivité horizontale et de son débit élevé. Les principaux systèmes de traitement distribués open source actuels (tels que Storm Spark, etc.) prennent en charge l'intégration avec Kafka.

2.2 Technologie principale de traitement des données

Le traitement des données est le domaine dans lequel la technologie open source de données fleurit. Les outils hors ligne et quasi-temps réel incluent principalement MapReduce, Hive et Spark. Les outils de traitement de flux incluent principalement Storm, et les plus populaires Flink et Beam récemment.

(1) MapReduce

MapReduce est le modèle informatique de base de Google. Il résume fortement le processus complexe de calcul parallèle exécuté sur des clusters à grande échelle en deux fonctions: mapper et réduire. Le plus grand avantage de MapReduce est qu'il donne aux développeurs ordinaires la possibilité de traiter des données volumineuses, de sorte que même si les développeurs n'ont aucune connaissance de la programmation distribuée, ils peuvent exécuter leurs programmes sur des systèmes distribués pour traiter d'énormes quantités de données.

(2) Ruche

Hive a été développé par Facebook et a contribué à la communauté open source Hadoop.Il s'agit d'une abstraction SQL construite sur l'architecture Hadoop.

Hive est toujours le
principal outil de traitement de données hors ligne utilisé par les entreprises Internet, y compris les grandes entreprises internationales (telles que BAT domestique de Facebook) .

(3) étincelle

Bien que MapReduce Hive complète la majeure partie du traitement par lots de données massives et soit devenu la technologie préférée pour le traitement des données volumineuses en entreprise à l'ère du big data, son retard de requête de données a été critiqué et il est également très inapproprié pour le calcul itératif et le DAG (dirigé Calcul du graphe acyclique). Parce que Spark a les caractéristiques de l'évolutivité, de l'informatique basée sur la mémoire et peut directement lire et écrire des données dans n'importe quel format sur Hadoop, il répond mieux aux besoins de requête de données en temps réel et d'analyse itérative, il est donc devenu de plus en plus populaire.

(4) Entreprise

Dans le domaine du traitement des données, les tâches de traitement par lots et les tâches de calcul de flux en temps réel sont généralement considérées comme deux tâches différentes. Un projet de données est généralement conçu pour ne traiter qu'une de ces tâches. Par exemple, Storm ne prend en charge que les tâches de traitement de flux, tandis que MapReduce, Hive ne prend en charge que les tâches de traitement par lots. Alors, les deux peuvent-ils être réalisés avec un seul cadre technique? Le traitement par lots est-il un cas particulier du traitement de flux?

Apache Flink est une plate-forme informatique open source pour le traitement de flux distribué en temps réel et le traitement de données par lots en même temps. Elle peut être basée sur le même environnement d'exécution Flink (Flink Runtime) et fournir des fonctions qui prennent en charge le traitement de flux et le traitement par lots. Flink prend entièrement en charge Traitement de flux, le traitement par lots est considéré comme un traitement de flux spécial, mais son flux de données d'entrée est défini comme limité.

2.3 La principale technologie de stockage de données

(1) HDFS

Le système de fichiers distribués Hadoop, ou HDFS en abrégé, est un système de fichiers distribué. Il s'agit d'
un système de fichiers de type GFS développé par Doug Cutting inspiré de Google après Google File System (GFS). Il a un degré élevé de tolérance aux pannes et fournit un accès aux données à haut débit, ce qui est très approprié pour les applications sur des ensembles de données à grande échelle. HDFS fournit une solution de stockage de données massive avec une tolérance de panne élevée et un débit élevé.

(2) HBase

HBase est un système de stockage distribué orienté colonnes, basé sur HDFS. Dans des scénarios tels que la lecture et l'écriture en temps réel et l'accès aléatoire à des ensembles de données à très grande échelle, HBase est actuellement le choix technologique principal sur le marché.

En fait, les solutions de base de données traditionnelles, en particulier les bases de données relationnelles, peuvent également augmenter la limite de performances en un seul point grâce à la réplication et au partitionnement, mais ce sont toutes du recul, et l'installation et la maintenance sont très compliquées. HBase traite les problèmes d'évolutivité d'un autre point de vue, c'est-à-dire de la mise à l'échelle en ajoutant des nœuds de bas en haut de manière linéaire.

HBase n'est pas une base de données relationnelle et ne prend pas en charge SQL. Les tables qu'elle contient présentent généralement les caractéristiques suivantes:

  • Large: une table peut contenir des centaines de millions de lignes et des millions de colonnes
  • Orienté colonne: stockage de liste (cluster) et contrôle d'accès, extraction indépendante de la colonne (cluster)
  • Sparse: les colonnes vides (NULL) n'occupent pas d'espace de stockage, donc la table peut être conçue pour être très clairsemée
  • Sans modalité: chaque ligne a une clé primaire qui peut être triée et n'importe quel nombre de colonnes. Les colonnes peuvent être ajoutées dynamiquement au besoin, et différentes lignes du tableau peuvent avoir des colonnes complètement différentes
  • Plusieurs versions de données: il peut y avoir plusieurs versions de données dans chaque cellule. Par défaut, le numéro de version est automatiquement attribué, c'est-à-dire l'horodatage lorsque la cellule est insérée.
  • Type de données unique: toutes les données dans HBase sont une chaîne sans type

2.4 Principale technologie d'application des données

Les données peuvent être utilisées de nombreuses manières, telles que des rapports fixes, une analyse en temps réel, des services de données, une analyse de données, une exploration de données et un apprentissage automatique.

Trois, résumé

Ce chapitre donne principalement une vue d'ensemble des données dans leur ensemble, y compris les quatre processus principaux, de la génération des données à la consommation: la génération de données, la collecte et la transmission de données, le stockage et le traitement des données et l'application des données. Chaque processus implique de nombreuses technologies, cadres open source et outils. Et plateforme.

Par exemple, la principale technologie de traitement de données hors ligne est Hive basée sur Hadoop MapReduce, et Hive est une technologie SQL sur Hadoop, mais il existe de nombreuses technologies et frameworks SQL similaires sur Hadoop, tels que Impala de Cloudera, Apache Druid, Presto, Shark, etc. , Les débutants doivent se concentrer sur une technique et aider à comprendre d'autres techniques connexes, sinon ils perdront facilement leur concentration et seront perdus.

Je suppose que tu aimes

Origine blog.csdn.net/BeiisBei/article/details/108639025
conseillé
Classement