Published
Edited
Feb 13, 2020
Insert cell
md`# Marquez Lineage - Dummy Data`
Insert cell
Insert cell
Insert cell
svg = d3.create("svg")
.style("overflow", "visible")
.style("width", 1000 + 'px')
.style("height", 700 + 'px');
Insert cell
Insert cell
Insert cell
Insert cell
getLineages = () => {
let searchedDatasets = _.filter(datasets, d => d.name.toLowerCase().includes(search.toLowerCase()))
let searchedJobs = _.filter(jobs, j => j.name.toLowerCase().includes(search.toLowerCase()))
let allNodes = [...searchedDatasets, ...searchedJobs]
const lineages = _.map(allNodes, rootNode => {
rootNode.children = findChildren(rootNode)
let children = rootNode.children
while (children.length > 0) {
_.forEach(children, child => {
child.children = findChildren(child)
})
children = _.flatten(_.map(children, chi => chi.children))
}
return rootNode
})
return lineages
}
Insert cell
getReverseLineage = (node) => {
node.children = findParents(node)
let children = node.children
while (children.length > 0) {
_.forEach(children, child => {
child.children = findParents(child)
})
children = _.flatten(_.map(children, chi => chi.children))
}
return node
}
Insert cell
findChildren = (node) => {
let children
if (isDataset(node)) {
children = _.filter(jobs, j => j.inputs.includes(node.name))
} else {
const job = _.find(jobs, j => j.name == node.name)
children = _.filter(datasets, d => job.outputs.includes(d.name) && !job.inputs.includes(d.name))
}
return children
}
Insert cell
findParents = (node) => {
let parents
if (isDataset(node)) {
parents = _.filter(jobs, j => j.outputs.includes(node.name))
} else {
const job = _.find(jobs, j => j.name == node.name)
parents = _.filter(datasets, d => job.inputs.includes(d.name))
}
return parents
}
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more