Skip to content

Commit

Permalink
Merge branch 'main' into fix/lineage-run-attachment
Browse files Browse the repository at this point in the history
  • Loading branch information
wslulciuc authored Oct 25, 2024
2 parents 8ff08d6 + 46bbfa7 commit d54c180
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 30 deletions.
12 changes: 6 additions & 6 deletions api/src/main/java/marquez/db/DatasetVersionDao.java
Original file line number Diff line number Diff line change
Expand Up @@ -168,14 +168,14 @@ default void updateDatasetVersionMetric(
WITH selected_dataset_versions AS (
SELECT dv.*
FROM dataset_versions dv
WHERE dv.version = :version
WHERE dv.uuid = :version
), selected_dataset_version_facets AS (
SELECT dv.uuid, dv.dataset_name, dv.namespace_name, df.run_uuid, df.lineage_event_time, df.facet
FROM selected_dataset_versions dv
LEFT JOIN dataset_facets_view df ON df.dataset_version_uuid = dv.uuid
)
SELECT d.type, d.name, d.physical_name, d.namespace_name, d.source_name, d.description, dv.lifecycle_state,\s
dv.created_at, dv.version, dv.dataset_schema_version_uuid, dv.fields, dv.run_uuid AS createdByRunUuid,
dv.created_at, dv.uuid AS current_version_uuid, dv.version, dv.dataset_schema_version_uuid, dv.fields, dv.run_uuid AS createdByRunUuid,
sv.schema_location, t.tags, f.facets
FROM selected_dataset_versions dv
LEFT JOIN datasets_view d ON d.uuid = dv.dataset_uuid
Expand Down Expand Up @@ -206,7 +206,7 @@ WITH selected_dataset_versions AS (
LEFT JOIN dataset_facets_view df ON df.dataset_version_uuid = dv.uuid AND (df.type ILIKE 'dataset' OR df.type ILIKE 'unknown' OR df.type ILIKE 'input')
)
SELECT d.type, d.name, d.physical_name, d.namespace_name, d.source_name, d.description, dv.lifecycle_state,\s
dv.created_at, dv.version, dv.dataset_schema_version_uuid, dv.fields, dv.run_uuid AS createdByRunUuid,
dv.created_at, dv.uuid AS current_version_uuid, dv.version, dv.dataset_schema_version_uuid, dv.fields, dv.run_uuid AS createdByRunUuid,
sv.schema_location, t.tags, f.facets
FROM selected_dataset_versions dv
LEFT JOIN datasets_view d ON d.uuid = dv.dataset_uuid
Expand Down Expand Up @@ -255,7 +255,7 @@ default Optional<DatasetVersion> findByWithRun(UUID version) {
"""
WITH dataset_info AS (
SELECT d.type, d.name, d.physical_name, d.namespace_name, d.source_name, d.description, dv.lifecycle_state,
dv.created_at, dv.version, dv.dataset_schema_version_uuid, dv.fields, dv.run_uuid AS createdByRunUuid,
dv.created_at, dv.uuid AS current_version_uuid, dv.version, dv.dataset_schema_version_uuid, dv.fields, dv.run_uuid AS createdByRunUuid,
sv.schema_location, t.tags, f.facets, f.lineage_event_time, f.dataset_version_uuid, facet_name
FROM dataset_versions dv
LEFT JOIN datasets_view d ON d.uuid = dv.dataset_uuid
Expand Down Expand Up @@ -285,13 +285,13 @@ dataset_symlinks_names as (
)
SELECT
type, name, physical_name, namespace_name, source_name, description, lifecycle_state,
created_at, version, dataset_schema_version_uuid, fields, createdByRunUuid, schema_location,
created_at, current_version_uuid, version, dataset_schema_version_uuid, fields, createdByRunUuid, schema_location,
tags, dataset_version_uuid,
JSONB_AGG(facets ORDER BY lineage_event_time ASC) AS facets
FROM dataset_info
WHERE name NOT IN (SELECT name FROM dataset_symlinks_names)
GROUP BY type, name, physical_name, namespace_name, source_name, description, lifecycle_state,
created_at, version, dataset_schema_version_uuid, fields, createdByRunUuid, schema_location,
created_at, current_version_uuid, version, dataset_schema_version_uuid, fields, createdByRunUuid, schema_location,
tags, dataset_version_uuid
ORDER BY created_at DESC
LIMIT :limit OFFSET :offset
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ public DatasetVersion map(@NonNull ResultSet results, @NonNull StatementContext
DatasetName.of(stringOrThrow(results, Columns.NAME)),
DatasetName.of(stringOrThrow(results, Columns.PHYSICAL_NAME)),
timestampOrThrow(results, Columns.CREATED_AT),
Version.of(uuidOrThrow(results, Columns.VERSION)),
Version.of(uuidOrThrow(results, Columns.CURRENT_VERSION_UUID)),
SourceName.of(stringOrThrow(results, Columns.SOURCE_NAME)),
toFields(results, "fields"),
columnNames.contains("tags") ? toTags(results, "tags") : null,
Expand All @@ -70,7 +70,7 @@ public DatasetVersion map(@NonNull ResultSet results, @NonNull StatementContext
DatasetName.of(stringOrThrow(results, Columns.NAME)),
DatasetName.of(stringOrThrow(results, Columns.PHYSICAL_NAME)),
timestampOrThrow(results, Columns.CREATED_AT),
Version.of(uuidOrThrow(results, Columns.VERSION)),
Version.of(uuidOrThrow(results, Columns.CURRENT_VERSION_UUID)),
SourceName.of(stringOrThrow(results, Columns.SOURCE_NAME)),
toURL(stringOrThrow(results, Columns.SCHEMA_LOCATION)),
toFields(results, "fields"),
Expand Down
2 changes: 1 addition & 1 deletion web/src/components/core/copy/MqCopy.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ const MqEmpty: React.FC<MqCopyProps> = ({ string }) => {
}}
aria-label='copy'
size={'small'}
color={'primary'}
color={'secondary'}
>
{hasCopied ? <Check fontSize={'small'} /> : <ContentCopyIcon fontSize={'small'} />}
</IconButton>
Expand Down
10 changes: 9 additions & 1 deletion web/src/components/dashboard/SplitButton.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import * as React from 'react'
import { Refresh } from '@mui/icons-material'
import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown'
import Button from '@mui/material/Button'
import ButtonGroup from '@mui/material/ButtonGroup'
import ClickAwayListener from '@mui/material/ClickAwayListener'
import Grow from '@mui/material/Grow'
import MQTooltip from '../core/tooltip/MQTooltip'
import MenuItem from '@mui/material/MenuItem'
import MenuList from '@mui/material/MenuList'
import Paper from '@mui/material/Paper'
Expand All @@ -12,9 +14,10 @@ import Popper from '@mui/material/Popper'
interface Props {
options: string[]
onClick: (option: string) => void
onRefresh?: () => void
}

export default function SplitButton({ options, onClick }: Props) {
export default function SplitButton({ options, onClick, onRefresh }: Props) {
const [open, setOpen] = React.useState(false)
const anchorRef = React.useRef<HTMLDivElement>(null)
const [selectedIndex, setSelectedIndex] = React.useState(0)
Expand Down Expand Up @@ -66,6 +69,11 @@ export default function SplitButton({ options, onClick }: Props) {
>
<ArrowDropDownIcon />
</Button>
<MQTooltip title={'Refresh'}>
<Button size={'small'} color={'secondary'} onClick={onRefresh}>
<Refresh fontSize={'small'} />
</Button>
</MQTooltip>
</ButtonGroup>
<Popper
sx={{
Expand Down
2 changes: 1 addition & 1 deletion web/src/i18n/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -151,7 +151,7 @@ i18next
empty_body: 'Try changing dates or consulting our documentation to add events.',
},
events_columns: {
id: 'ID',
id: 'RUN_ID',
state: 'STATE',
name: 'NAME',
namespace: 'NAMESPACE',
Expand Down
19 changes: 10 additions & 9 deletions web/src/routes/dashboard/Dashboard.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,15 @@ const Dashboard: React.FC = ({
{ failed: 0, started: 0, completed: 0, aborted: 0 }
)

const refresh = () => {
const currentSearchParams = searchParams.get('timeframe')
fetchJobs(null, JOB_RUN_LIMIT, 0)
fetchLineageMetrics(currentSearchParams === 'week' ? 'week' : 'day')
fetchJobMetrics(currentSearchParams === 'week' ? 'week' : 'day')
fetchDatasetMetrics(currentSearchParams === 'week' ? 'week' : 'day')
fetchSourceMetrics(currentSearchParams === 'week' ? 'week' : 'day')
}

const { failed, started, completed, aborted } = metrics

return (
Expand Down Expand Up @@ -195,6 +204,7 @@ const Dashboard: React.FC = ({
<MqText subdued>REFRESH</MqText>
<SplitButton
options={REFRESH_INTERVALS}
onRefresh={() => refresh()}
onClick={(option) => {
setIntervalKey(option as RefreshInterval)
}}
Expand Down Expand Up @@ -351,15 +361,6 @@ const Dashboard: React.FC = ({
'Try changing namespaces, run state, or consulting our documentation to add jobs.'
}
</MqText>
<Button
color={'primary'}
size={'small'}
onClick={() => {
fetchJobs(null, JOB_RUN_LIMIT, 0)
}}
>
Refresh
</Button>
</>
</MqEmpty>
)}
Expand Down
20 changes: 10 additions & 10 deletions web/src/routes/events/Events.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ type EventsProps = StateProps & DispatchProps

const EVENTS_COLUMNS = ['ID', 'STATE', 'NAME', 'NAMESPACE', 'TIME']

const PAGE_SIZE = 20
const PAGE_SIZE = 50
const EVENTS_HEADER_HEIGHT = 64

const Events: React.FC<EventsProps> = ({
Expand Down Expand Up @@ -296,13 +296,7 @@ const Events: React.FC<EventsProps> = ({
>
<TableCell align='left'>
<Box display={'flex'} alignItems={'center'}>
<MQTooltip title={event.run.runId}>
<Box>
<MqText font={'mono'}>
{event.run.runId.substring(0, 8)}...
</MqText>
</Box>
</MQTooltip>
<MqText font={'mono'}>{event.run.runId}</MqText>
<MqCopy string={event.run.runId} />
</Box>
</TableCell>
Expand All @@ -312,9 +306,15 @@ const Events: React.FC<EventsProps> = ({
label={event.eventType}
/>
</TableCell>
<TableCell align='left'>{truncateText(event.job.name, 40)}</TableCell>
<TableCell align='left'>
<MqText> {truncateText(event.job.namespace, 40)}</MqText>
<MQTooltip title={event.job.name}>
<Box display={'inline'}>{truncateText(event.job.name, 40)}</Box>
</MQTooltip>
</TableCell>
<TableCell align='left'>
<MQTooltip title={event.job.namespace}>
<Box display={'inline'}>{truncateText(event.job.namespace, 40)}</Box>
</MQTooltip>
</TableCell>
<TableCell align='left'>
<MqText>{formatUpdatedAt(event.eventTime)}</MqText>
Expand Down

0 comments on commit d54c180

Please sign in to comment.