From db18d610748b0976e90d51de9a684616f1e0812f Mon Sep 17 00:00:00 2001 From: Harsh Shah Date: Fri, 16 Oct 2020 04:32:28 -0700 Subject: [PATCH] feat(Azkaban entities): RFC for Azkaban Flows and Jobs (#1820) * feat(Azkaban entities): RFC for Azkaban Flows and Jobs * Update to pivot to data job and flow as an entity and address comments * Update urn definitions and address comments * address minor comments --- docs/rfc/active/azkaban-flow-job/README.md | 105 +++++++++++++++++++++ docs/rfc/active/azkaban-flow-job/graph.png | Bin 0 -> 51400 bytes 2 files changed, 105 insertions(+) create mode 100644 docs/rfc/active/azkaban-flow-job/README.md create mode 100644 docs/rfc/active/azkaban-flow-job/graph.png diff --git a/docs/rfc/active/azkaban-flow-job/README.md b/docs/rfc/active/azkaban-flow-job/README.md new file mode 100644 index 0000000000..fcd0f6e89e --- /dev/null +++ b/docs/rfc/active/azkaban-flow-job/README.md @@ -0,0 +1,105 @@ +- Start Date: 2020-08-25 +- RFC PR: https://github.com/linkedin/datahub/pull/1820 +- Implementation PR(s): https://github.com/linkedin/datahub/pull/1732 + +# Azkaban Flows and Jobs + +## Summary + +Adding support for [Azkaban](https://azkaban.github.io/) job and flow metadata and enabling search and discovery for them. + +The design includes the metadata needed to represent Azkaban jobs and flows as data job entities and their relationships to other +entities like Datasets. + +## Motivation + +Azkaban is a popular open source workflow manager created and extensively used at LinkedIn. Azkaban metadata is a critical piece +in the metadata graph since data processing jobs are the primary driver of data movement and creation. + +Without job metadata, it is not possible to understand the data flow across an organization. Additionally, jobs are needed in the +lineage graph to surface operational metadata and have a complete view of data movement and processing. Capturing jobs and flows +metadata in the lineage graph also allows in understanding dependency between multiple flows and jobs and structure of data +pipelines in end to end data flow. + +## Requirements + +The following requirements exists as part of this rfc: + +- Define Data flow and job as entities and model metadata for azkaban data job and flows +- Enable Search & Discovery for Data jobs and flows +- Link DataJob entities to existing entities like Datasets to build a more complete metadata graph +- Automatically derive dataset upstream lineage from data job metadata (inputs and outputs) + +## Non Requirements + +Azkaban has its own application to surface jobs, flows, operational metadata and job logs. DataHub doesn't intend to be +a replacement for it. Users will still need to go to Azkaban UI to look at logs and debug issues. DataHub will only show +important and high level metadata in the context of search, discovery and exploration including lineage and will link to +Azkaban UI for further debugging or finer grained information. + +## Detailed design + +![high level design](graph.png) + +The graph diagram above shows the relationships and high level metadata associated with Data Job and Flow entities. + +An Azkaban flow is a DAG of one or more Azkaban jobs. Usually, most data processing jobs consume one or more inputs and +produce one of more outputs (represented by datasets in the diagram). There can be other kinds of housekeeping jobs as well +like cleanup jobs which don't have any data processing involved. + +In the diagram above, the Azkaban job node consumes datasets `ds1` and `ds2` and produces `ds3`. It is also linked to the +flow it is part of. As shown in the diagram, dataset upstream lineage is derived from the azkaban job metadata which results +in `ds1` and `ds2` being upstreams of `ds3`. + +### Entities +There will be 2 top level GMA [entities](../../../what/entity.md) in the design: DataJob and DataFlow. + +### URN Representation +We'll define two [URNs](../../../what/urn.md): `DataJobUrn` and `DataFlowUrn`. +These URNs should allow for unique identification for a Data job and flow respectively. + +DataFlow URN will consist of the following parts: +1. Workflow manager type (e.g. azkaban, airflow etc) +2. Flow id - Id of a flow unique within a cluster +3. Cluster - Cluster where the flow is deployed/executed + +DataJob URN will consist of the following parts: +1. Flow Urn - Urn of the data flow this job is part of +2. Job id - Unique id of the job within the flow + +An example DataFlow URN will look like below: +``` +urn:li:dataFlow:(azkaban,flow_id,cluster) +``` + +An example DataJob URN will look like below: +``` +urn:li:dataJob:(urn:li:dataFlow:(azkaban,flow_id,cluster),job_id) +``` + +### Azkaban Flow metadata + +Below is a list of metadata which can be associated with an azkaban flow: + +- Project for the flow (the concept of project may not exist for other workflow managers so it may not apply in all cases) +- Flow name +- Ownership + +### Azkaban Job metadata + +Below is a list of metadata which can be associated with an azkaban job: + +- Job name +- Job type (could be spark, mapreduce, hive, presto. command etc) +- Inputs consumed by the job +- Outputs produced by the job + +## Rollout / Adoption Strategy + +The design references open source Azkaban so it is adoptable by anyone using Azkaban as their +workflow manager. + +## Future Work + +1. Adding operational metadata associated with Azkaban entities +2. Adding azkaban references in Upstream lineage so that the jobs show up in the lineage graph \ No newline at end of file diff --git a/docs/rfc/active/azkaban-flow-job/graph.png b/docs/rfc/active/azkaban-flow-job/graph.png new file mode 100644 index 0000000000000000000000000000000000000000..8f87f124860623053060e683b455f831b5386f6b GIT binary patch literal 51400 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 literal 0 HcmV?d00001