Quelle est la relation sanguine
Qu'est-ce qui a mentionné le mot "relation de sang", la première fois que je pensais à un spectre familial. La figure ci-dessous est un simple spectre familial.
Concept de relations sanguines: https://www.cnblogs.com/zhangleSanshi/p/7730196.html
Une pince avec spectre familial alors, il est plus facile de trouver Vos ancêtres, comprennent la grandeur de vos ancêtres et mettez des voiles le long de l'empreinte ancestrale.
Ceux qui comprennent que l'entrepôt numérique devrait savoir que les entrepôts de données sont des données obtenues à partir de systèmes d'entreprise (par exemple, des utilisateurs, des reptiles, des reptiles, etc lors de la conception de systèmes d'entreprise, suivent souvent trois principes de la manière, Les principes à trois types se concentrent sur la table et dans le baril, nous avons une opération inverse, nous sommes combinés à un ou à un quelques-uns dans une table, cela apparaît certaines étoiles.
Si nous voulons faire un tonneau, nous devons nous brosser de calculer chaque indicateur et chaque taille, être utiliséPour les tables, l'école de Shas et DW Barrielles, classes DM, cette carte de table constitue vraiment la relation sanguine entre la table et la table.
Application des relations sanguines
Avec une relation sanguine, nous pouvons obtenir les avantages suivants.
En fonction de la dépendance entre la table et la table, les données en aval peuvent être exécutées automatiquement lorsque les données en amont sont exécutées dans des données en amont.
Avec la relation sanguine du niveau scolaire, la formule de calcul de l'école est comprise et le coût de l'apprentissage numérique est réduit.Créer automatiquement des cartes de données, des dictionnaires de données
Vérification des spécifications de codeDu point de vue du développement, résumé comme suit:
]
Après le nombre de personnes, tout le monde écrit SQL ou d'autres programmes, le nom du nom du fichier, l'habitude des données de catalogue de projet et de superposition. Cela conduira aux questions suivantes:
Les dépendances entre les tables et les tableaux ne peuvent être trouvées que pour développer des modèles de modèle et de logique.Les mathématiques du code source
ne peuvent être visionnées que
manuellement pour calculer manuellement le calcul de l'école, la dépendance entre les tableaux, la comptabilité du temps des ingénieurs en développement, la réduction de
de la performance de développement
Idées pour mettre en œuvre le sang Relations
insert into DB.targetTableselect columns ... from DB.sourceTable1 inner join DB.sourceTable2where ...
Les camarades de classe connaissent les principes de synthèse que nous pouvons développer des compilateurs pour lire le code, puis transférer à la machine pour exécuter le fichier. Basé sur cette idée, nous pouvons également écrire un compilateur. Laissez-le lire la déclaration de la requête. Trouvez ensuite des dépendances entre les tables et les tables. Par exemple: Situé ci-dessus est une commande d'insertion normale et nous utilisons généralement cette grammaire lors de la mise en œuvre du développement de rapports, je pense que vous pouvez utiliser le jugement de son utilisation. Tortugetable est créé par SourceTable1 et Sourcetable2. De plus, nous pouvons analyser des écoles à ToSmettables comme des écoles de SouRCETABLE1 et SOURCETABLE2 et ont passé les processus informatiques.
Pourquoi avez-vous une relation sanguine et une solution pour résoudre le problème, ajouter une solution de solution spécifique.
La première question est résolue comme un problème de gestion de script SQL, nous devons mettre le code de tous les peuples de manière uniforme local pour nous, il est facile d'obtenir tous les scripts de tous les gens, puis analyser les relations sanguines. Cela utilise un git célèbre et sans tenir compte de la sécurité des données, nous pouvons définir le script SQL sur Github, mais ce n'est généralement pas comme ça. Nous pouvons créer un gitlab et gérer votre code.
Deuxièmement, le problème de la spécification de code. Par exemple, nous utilisons Shell pour enregistrer la logique de planification, puis je devrais fournir un échantillon. Cela peut faire des spécifications de code. Voici un exemple:
#!/bin/bash currDir=$(cd `dirname $0` ; pwd)# initial parameter[hive | presto-client] $currDir/xxx.sql# catch some exception and handle it
Si vous écrivez dans le format ci-dessus, nous pouvons facilement identifier la plate-forme.Exécuter la requête. Il y a un exemple opposé.
#!/bin/bash currDir=$(cd `dirname $0` ; pwd)# initial parameterhive $currDir/xxx.sql# catch some exception and handle it
Rédigé par B comme suit:
#!/bin/bash currDir=$(cd `dirname $0` ; pwd)# initial parametersqlFileName="xxx.sql"hive $currDir/sqlFileName# catch some exception and handle it
Si cela est comme celui-ci, nous allons donner nous un problème avec la plate-forme de course de la requête. Nous devons d'abord trouver le fichier final. SQL, puis utilisez le nom de fichier à rechercher dans le fichier .sh si nous lisons le fichier .sh, vous ne trouvez pas le fichier shell de requêtes planifiées.
J'ai mentionné ci-dessus n'est qu'un exemple. En fait, il reste encore beaucoup de spécifications et une grande équipe, il existe donc une spécification de code plus stricte.
L'analyseur mentionné ci-dessus avec SQL pour analyser les dépendances entre les tables et les tables. En fait, comme de l'abeille, Presto avait un tel parseur. La plate-forme de calcul de PRESTO a été développée par SQL analysant comme module séparé. Dans leur projet maven, il s'agit également d'un seul module et nous n'avons besoin que de sexeSQL Parser Mavendépend de. Faire mal à l'aise (mais fournit une commodité, donnez-nous également une barrière pour la connaissance, par exemple, nous n'avons pas la connaissance des principes généraux, j'ai donc appris un cadre AnlTR, après tout, Hive Presto est utilisé.
Si nous Résumez le tableau récapitulatif dans un point dans le dessin, la dépendance entre les tables et les tables est la ligne de la photo.
Points »des relations sanguines Demandez une école:
Performance: ruches, clickhouse, Presto Script de position: /Data/sql_code/dm/dm_xxx.sh
Données de la source de table: Source_Table11, Source_Table2Nom de la table
Champ d'écoulement ":
Sourcénode: Nom de la source ou Tableau de données de champ
TargeNode: Nom de la table de destination ou champ
CI-DESSOUS:La déclaration de requête dans la relation sanguine: