Public
Edited
Apr 27, 2023
Insert cell
Insert cell
<style>
svg div.mark {
position: absolute;
border-top: 1px solid red;
width: ${Math.round(width/2)+Math.round(gutter/2)}px;
}
svg div.mark p {position: absolute; margin: 0; display: block; width: ${Math.round((width-gutter)/2)}px;}
svg div.mark.right,
svg div.mark.right p {right: 0;}
svg div.mark.left,
svg div.mark.left p {left: 0;}
</style>
<svg viewBox='0 0 ${width} ${height}'>
<foreignObject style="position:relative;" x=0 y=0 width=${width} height=${height}>
${data.map(mark)}
</foreignObject>
</svg>
Insert cell
height = 3600
Insert cell
gutter = 60
Insert cell
datetime2diagram = d3.scaleTime()
.domain([0, data.length-1].map(d => data[d][0]))
.range([0, height-100])
Insert cell
function mark([datetime, actor, action]) {
const align = /^taos/i.test(actor) ? 'right: 0' : 'left: 0'
const y = datetime2diagram(datetime)
const style='display:block; position: absolute;'
const datestring = datetime.toLocaleString(undefined, {
weekday: "short",
hour: "numeric",
minute: "numeric",
timeZone: "US/Central"
})
if (/^taos/i.test(actor)) {
return html`<div class="mark right" style="top: ${y}px;"><p><time>${datestring}</time> <strong>${actor}</strong> ${action}</p></div>`
} else {
return html`<div class="mark left" style="top: ${y}px;"><p><time>${datestring}</time> <strong>${actor}</strong> ${action}</p></div>`
}
}
Insert cell
data = [
[new Date('2023-02-24T10:39-0600'), 'BOSS analyst', `files SQL-18163`],
[new Date('2023-02-24T15:27-0600'), 'Cloud Data', `triages SQL-18163 to EPSPT Helpdesk`],
[new Date('2023-02-24T20:58-0600'), 'Taos1', `"Has this been verified in QA/Stage? Please conifrm"`],

[new Date('2023-02-26T07:41-0600'), 'Taos2', `"Has this been verified in QA/Stage? Please conifrm Thanks"`],

[new Date('2023-02-27T06:36-0600'), 'Taos2', `"Has this been verified in QA/Stage? Please conifrm Thanks"`],
[new Date('2023-02-27T08:53-0600'), 'BOSS analyst', `"...No, this has not been verified in QA/Stage, as BOSS does not have this capability."`],
[new Date('2023-02-27T10:03-0600'), 'Taos2', `"Can you please provide .sql file we will execute the query in QA and you can validate and confirm Thanks"`],

[new Date('2023-02-28T05:39-0600'), 'Avantica', `"...verified successfully in adsystemdbstage , its good to run in PROD...8153 row(s) affected"`],
[new Date('2023-02-28T06:46-0600'), 'Taos2', `"Can you please provide .sql file to execute in prod Thanks"`],

[new Date('2023-03-01T10:14-0600'), 'Taos2', `"Can you please provide .sql file to execute in prod Thanks"`],
[new Date('2023-03-01T10:24-0600'), 'BOSS lead', `"please see the .docx...BOSS historically has not been asked to provide the query in a particular file format, and I have confirmed with [Perplat] that this shouldn't be asked of us."`],

[new Date('2023-03-02T03:25-0600'), 'Taos2', `"when we executing the query in prod we are getting below error, can you please look into it Thanks\n*** Error in \`mysql': corrupted size vs. prev_size: 0x0000000000cac6b0 ***"`],
[new Date('2023-03-04T21:22-0600'), 'Taos2', `"Can we have any update ?"`],

[new Date('2023-03-06T02:46-0600'), 'Taos3', `"can you please update"`],
[new Date('2023-03-06T13:06-0600'), 'BOSS analyst', `"I'm unaware of what this error is or how to resolve it."`],

[new Date('2023-03-07T10:42-0600'), 'BOSS lead 2', `"Could breaking the single query into multiple queries help?..."`],
[new Date('2023-03-08T07:29-0600'), 'Taos4', `"[Indeed DBA] Could you help us with the question from [BOSS lead 2] to proceed further."`],
[new Date('2023-03-08T08:32-0600'), 'Indeed DBA', `"So this works in QA/Stage but errors out in Production? I've actually never seen that error before, so am really not clear on how to proceed.\nHow many rows are being updated in Production? If it's significantly more than QA/Stage, it would make since to break this up into smaller pieces."`],
[new Date('2023-03-08T09:01-0600'), 'BOSS lead 2', `"do you need us to break the query into smaller pieces and attach them here or it can be done directly by the person who runs the query in prod?"`],
[new Date('2023-03-08T09:25-0600'), 'Taos4', `"Please break the query into smaller pieces and attach them here , that would really help us, Thank you ."`],
[new Date('2023-03-08T17:07-0600'), 'BOSS analyst', `"I received the following error message: 'The entered text is too long. It exceeds the allowed limit of 32767 characters.' As a result, I made a separate query for each MAID and downloaded them into 3 separate documents..."`],

[new Date('2023-03-09T01:12-0600'), 'Taos1', `"We are getting below error while we run the query. Could you please check and revert?\nERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Fl”\n, city = "Stamford"\n, state = "CT"\n, country = "US"\n, zip = "06901"\nWHERE ' at line 3"`],
[new Date('2023-03-10T11:09-0600'), 'BOSS analyst', `"Thank you for letting me know! I apologize for the delay this is causing. Perhaps the following will work?\nUPDATE tbladbilling\nSET address1 = '600 Summer St.'\n, address2 = '5th Fl'\n, city = 'Stamford'\n, state = 'CT'\n, country = 'US'\n, zip = '06901'"`],
[new Date('2023-03-14T01:15-0600'), 'Taos5', `executes the SQL fragment in production`]
]

Insert cell
dot`digraph g {
rankdir = LR;
a -> b -> c;
}`
Insert cell
mermaid`graph LR
a-->b
b-->c`
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