当前位置:网站首页>Pratique et réflexion sur l'entrepôt de données hors ligne et le développement Bi
Pratique et réflexion sur l'entrepôt de données hors ligne et le développement Bi
2022-07-02 07:15:00 【Développement de logiciels】
Entrepôt de données hors ligne etbiPratiques et réflexions en matière de développement
Contexte
Avant de venir au vipshop, l'auteur s'appuie principalement sur l'auto - étude de l'entreprisebiPlate - forme à faible Code pour les rapports、Travaux d'élaboration de graphiques,Sur cette base, l'exploration de la production.Il y a donc eu quelques pratiques de modélisation et de développement d'entrepôts de données hors ligne,Il y a aussi quelques réflexions,Essayez un peu de toilettage ici.
Qu'est - ce qu'un entrepôt de données
Tout d'abord, Expliquez brièvement,Qu'est - ce qu'un entrepôt de données.Data Warehouse est une collection de Data stores,Il a été créé pour l'analyse des données d'exploitation de l'entreprise et l'aide à la décision.L'entrée de l'entrepôt de données est les données générées par les différents systèmes d'application de l'entreprise,Filtrer les données de l'entreprise à l'aide d'un modèle de paradigme spécifique,Consolidation et stockage,Pour les applications de données.Peut fournir aux entreprisesbiCapacité,L'objectif est de mieux contrôler et orienter le processus d'exploitation de l'entreprise.
La structure de l'entrepôt de données estBill InmonModèle etRalph KimballParadigmes,InbiLe rapport de données est l'application finale sur les petits et moyens éléments de données,Généralement utiliséKimballLe paradigme comme modèle d'orientation pour le développement,Mais d'habitude, c'est plusodsDonnées introduites par le système d'affaires de stockage de niveau,Comme une architecture hybride.
KimballParadigmes
InmonParadigmes
Conception stratifiée
Couche d'introduction des données(ODS): Traitement structuré des données non structurées , Les données structurelles utilisent généralement la méthode de synchronisation des données hors ligne pour synchroniser complètement ou progressivement les données du système d'affaires. , Préparation du chargement de conversion des données .
Couche commune de données(CDM):1,Tableau des dimensions(DIM), Grâce à l'Organisation des affaires , Établir une dimension cohérente de l'analyse des données . La définition et la gestion uniformes des tableaux de dimensions sont souvent des facteurs importants pour déterminer si le projet final est contrôlable. .2,Liste détaillée des faits(DWD), Modélisation dimensionnelle ,Calcul de l'Association multiplex,Réduire la numérisation des données.3, Tableaux récapitulatifs publics (DWS), Généralement résumé sur une base de calendrier , Construction d'indicateurs statistiques de calibre uniforme , Créer une large table .
Couche d'application de données(ADS):Complexe,Personnalisation, Indice de calcul personnalisé . Assemblage de données à grande échelle basé sur l'application .
Modélisation dimensionnelle
Comme indiqué ci - dessus,Parbi La méthode de modélisation basée sur l'application est généralement utilisée KimballParadigmes, Et son modèle logique est un modèle d'étoile ou un modèle de flocon de neige . Compte tenu des considérations relatives au contrôle de la complexité , Dans le développement réel, nous utilisons souvent des modèles stellaires . La structure logique d'un modèle stellaire typique est la suivante: , Associer plusieurs tables de dimensions par une table de sujets ,Insql Les couches sont reliées de différentes façons et s'additionnent , L'utilisation de la fonction semi - cumulative produit des données sur cette base , Faire une analyse multidimensionnelle .
Ce que font les plates - formes à faible Code?
Basé sur un modèle dimensionnel , Dans les scénarios de développement de rapports et de graphiques ,Peut être conçuide Générer le Protocole modèle et le Protocole de rapport par glisser - déposer . Génération dynamique de métadonnées du Protocole de rapport par résolution du moteur sql,Obtenir des données. Un modèle est listé ci - dessous ,Accord, Rapports et produits dynamiquement sqlUn exemple simple de.
Supposons qu'il y ait un modèle:
Et il y en a unide Prendre en charge l'ensemble du processus de développement ,ide Les métadonnées du sujet peuvent être générées , Métadonnées de dimension , Métadonnées du modèle multidimensionnel .
Les exigences actuelles en matière de rapports sont les suivantes: .
Les responsables de la mise en œuvre peuvent alors ide Méthode de traction pour extraire les indices et les dimensions ,
Supposons qu'un tel protocole de déclaration soit généré ( Juste l'exemple le plus simple ).
{ “id”:xxx,
“modelid”: Lié à un modèle multidimensionnel id, Vous pouvez obtenir des tables et des connexions ,
“reporttype”: “linebar”,
“rows”: [
{
“code”: “xxx”,
“dimid”:“ Métadonnées pour les tables de dimensions liées ”
“elementname”: “yearmonth”,
“alias”: “Année”
}
],
“indexs”: [
{
“code”: “xxx”,
“factid”:“ Métadonnées de la table des sujets liés ”
“elementname”: “index”,
“aggregator”: “sum”,
“alias”: “Indicateurs”
}
]
}
],
“options”: { Protocoles de paramètres liés à l'interaction frontale , Comme la définition du contrôle du temps },
“echartsoption”: {echarts Paramètres liés au diagramme }
}
Ensuite, lorsque le rapport est demandé à l'avant , Le moteur analyse le Protocole de rapport , Combiner les métadonnées du modèle et de la dimension du sujet ainsi que les paramètres de transfert à l'avant de la demande , Générer dynamiquement la demande sql(Basé surpostgres),Similaire
select
dim_date.yearmonth as Année,
sum(fact.index) as Indicateurs
from fact fact
left join dim_date dim_date on fact.date=dim_date.date
where to_char(dim_date.date,'yyyy')='2021'
group by dim_date.yearmonth
Prends ça.sqlAccès aux données, Puis assembler les protocoles qui renvoient les données , Rendu frontal à echarts Dans l'assemblage du diagramme linéaire
Un tel processus,C'est fait.bi Développement de codes bas pour les rapports .
IdéalvsLa réalité,Marcher et penser dans la pratique de l'entrepôt de comptage
1, La douleur en aval
L'entrepôt de données hors ligne ne peut pas enregistrer toutes les opérations et tous les résultats d'exploitation du système d'affaires. , La synchronisation des données ne peut être qu'un instantané des données de synchronisation périodiques . Si le système d'affaires est similaire ABACe genre de problème, La diffusion de l'effet d'influence dans le système d'affaires peut entraîner une logique incohérente des données dans les applications de données. . Et le processus de dépannage a été difficile. , En fin de compte, j'ai tendance à aider à découvrir ce que les systèmes d'affaires cachent profondément. bug. Par conséquent, la perfection et la robustesse du système d'affaires sont souvent le facteur clé du succès de l'entrepôt de données. .
2,olapSélection de la base de données
Utilisé précédemment pour la sélection des modèles de base de données de l'entreprise postgres, La base de données open source la plus avancée . Depuis mon entrée au vipshop. mysqlComparaison, Je peux encore sentir postgres Robustesse dans certains domaines de performance . Sur de petits projets ,pg Peut être aplati etlTravail etolapAnalyse. Mais une grande quantité de données ,Réutiliserpg C'est juste que le petit Mara est un peu coincé. . Et vous rencontrez souvent un scénario dans votre entreprise , C'est le cas du calcul du rapport annuel de l'indice . Il est difficile de traiter directement avec le modèle multidimensionnel et le moteur de rapport ci - dessus. ,Par exemple,, Les données synchronisées du système d'affaires ont des données de l'année en cours dans certaines dimensions, mais pas de données de l'année précédente. , Ce type d'affichage de rapport de données manquantes est souvent incapable de s'auto - Coordonner . Dans ce cas, si la procédure stockée n'est pas rapportée manuellement, vous ne pouvez le faire qu'en etl Étendre d'abord toutes les valeurs de dimension avec le produit cartésien ,Et puis ça correspondupdate Indicateurs correspondants , Cela provoque un gonflement effrayant des données de la table , Un rapport ne sort pas en quelques minutes. . Mais si vous divisez le modèle en plusieurs , Et perdre le sens de la modélisation unifiée . Ça a toujours été une question délicate. .
3, Limites de capacité du moteur de rapport et considérations sans Code
Le moteur de rapport de plate - forme est devenu de plus en plus complexe. , La complexité et le fardeau mental de l'utilisation d'un moteur de rapport pour produire un rapport utilisable ne sont pas inférieurs à ceux de l'utilisation directe. sql"Un seul, Big Boss dit que le moteur de rapport n'est pas seulement conçu pour simplifier le processus de développement , Peut également aider à précipiter le modèle d'entreprise . J'ai discuté avec des amis il y a longtemps. , Si une plate - forme sans Code est conçue pour être complète, le résultat final est un autre langage Turing complet. . Donc j'ai une pensée , Si vous ne précipitez l'entreprise que dans un modèle multidimensionnel statique , Le processus interactif est confié à un moteur de rapport commun , Je ne pense pas qu'il soit possible de faire face à des besoins changeants et à un fardeau mental nettement inférieur à celui de l'écriture. sql Les deux . En tant que développeur de plate - forme , Identifiez vos frontières et explorez soigneusement ce que vous pouvez faire dans un domaine particulier. ,C'est un énorme défi.
边栏推荐
猜你喜欢

CVE-2015-1635(MS15-034 )遠程代碼執行漏洞複現

IDEA2020中PySpark的两表关联(字段名相同)

Oracle EBS数据库监控-Zabbix+zabbix-agent2+orabbix

MapReduce concepts and cases (Shang Silicon Valley Learning Notes)

在php的开发环境中如何调取WebService?

SQL injection closure judgment

Oracle apex Ajax process + dy verification

Cve - 2015 - 1635 (ms15 - 034) réplication de la vulnérabilité d'exécution de code à distance

Sqli-labs customs clearance (less2-less5)

2021-07-05C#/CAD二次开发创建圆弧(4)
随机推荐
读《敏捷整洁之道:回归本源》后感
In depth study of JVM bottom layer (II): hotspot virtual machine object
Build FRP for intranet penetration
CSRF攻击
Oracle general ledger balance table GL for foreign currency bookkeeping_ Balance change (Part 1)
ORACLE 11G利用 ORDS+pljson来实现json_table 效果
Only the background of famous universities and factories can programmers have a way out? Netizen: two, big factory background is OK
ORACLE EBS 和 APEX 集成登录及原理分析
ORACLE EBS中消息队列fnd_msg_pub、fnd_message在PL/SQL中的应用
Proteus -- RS-232 dual computer communication
Uniapp introduces local fonts
Thinkphp5中一个字段对应多个模糊查询
Solve the problem of bindchange event jitter of swiper component of wechat applet
Review of reflection topics
Brief analysis of PHP session principle
php中树形结构转数组(拉平树结构,保留上下级排序)
Sqli labs customs clearance summary-page2
Oracle EBS ADI development steps
Network security -- intrusion detection of emergency response
CRP implementation methodology