From aaec002a6e69ef884b2e1577189d794e796128dd Mon Sep 17 00:00:00 2001 From: Kartikey Khandelwal Date: Tue, 18 Feb 2025 15:14:18 +0530 Subject: [PATCH] Hive Lineage RFC --- active/000-hive-lineage/000-hive-lineage.md | 460 ++++++++++++++++++ .../hive-lineage-architecture.png | Bin 0 -> 53285 bytes 2 files changed, 460 insertions(+) create mode 100644 active/000-hive-lineage/000-hive-lineage.md create mode 100644 active/000-hive-lineage/hive-lineage-architecture.png diff --git a/active/000-hive-lineage/000-hive-lineage.md b/active/000-hive-lineage/000-hive-lineage.md new file mode 100644 index 0000000..b0c19b0 --- /dev/null +++ b/active/000-hive-lineage/000-hive-lineage.md @@ -0,0 +1,460 @@ +- **Start Date:** 2025-02-18 +- **RFC PR:** 000-hive-lineage.md +- **Discussion Issue:** +- **Implementation PR(s):** + +# Hive Lineage + +## Summary + +Hive Lineage refers to the ability to track and understand the flow of data within the Hive ecosystem by listening to Hive engine events, intercepting queries and capturing and documenting the lineage information, including the source tables, transformations performed, and destination table created/inserted as it moves through different tables and columns in Hive. + +The use of Hive Lineage provides several benefits. It enables organisations to establish robust data governance practices by providing comprehensive lineage information. This lineage information aids in compliance with regulatory requirements and facilitates auditing and troubleshooting processes. Hive Lineage also enables impact analysis, allowing users to understand the effects of changes in schema, tables, or transformations on downstream processes and applications. It further helps identify data quality issues and anomalies by tracking data movement and transformations. By leveraging Hive Lineage, organisations can achieve better control over their data assets, improve data accuracy, and make informed decisions based on a clear understanding of data flow and dependencies within the Hive ecosystem. + +## Motivation + +The primary motivation for implementing Hive Lineage is to enhance our ability to track and understand the flow of data within the Hive ecosystem. By listening to Hive engine events, intercepting queries, and capturing lineage information, we aim to achieve several key benefits and support a variety of use cases. + +### Use Cases Supported: + +1. **Data Governance:** Hive Lineage enables robust data governance practices by providing comprehensive lineage information. This is crucial for maintaining control over data assets, ensuring data accuracy, and making informed decisions based on a clear understanding of data flow and dependencies. + +2. **Regulatory Compliance:** With detailed lineage information, organizations can comply with regulatory requirements more effectively. Hive Lineage facilitates auditing processes by providing a transparent view of data movement and transformations, which is essential for demonstrating compliance. + +3. **Impact Analysis:** Hive Lineage supports impact analysis by allowing users to understand the effects of changes in schema, tables, or transformations on downstream processes and applications. This helps in mitigating risks associated with changes and ensures the stability of data workflows. + +4. **Troubleshooting:** By tracking data movement and transformations, Hive Lineage aids in troubleshooting data quality issues and anomalies. It provides insights into where and how data issues may have occurred, enabling quicker resolution and maintaining data integrity. + +5. **Data Quality Monitoring:** Hive Lineage helps identify data quality issues by providing visibility into data transformations and movements. This enables proactive monitoring and management of data quality, ensuring that data remains accurate and reliable. + +### Expected Outcome: + +By implementing Hive Lineage, we expect to achieve the following outcomes: + +- Improved data governance and control over data assets. +- Enhanced compliance with regulatory requirements. +- Better understanding of data flow and dependencies within the Hive ecosystem. +- Effective impact analysis for schema, table, and transformation changes. +- Quicker resolution of data quality issues and anomalies. +- Overall improvement in data accuracy and reliability. + +## Detailed Design + +The design for Hive Lineage involves leveraging Hive's LineageLogger Hook to capture lineage information, processing this information, and sending it to a Kafka topic. A Kafka consumer then processes these messages and sends metadata change proposals (MCPs) to the GMS (Graph Metadata Service). This design ensures efficient tracking and documentation of data flow within the Hive ecosystem. + +### Implementation Details: + +1. **LineageLogger Hook:** + - We configure Hive to use the LineageLogger Hook by updating the Hive configuration to include this hook via client JAR. The JAR is registered in HiveServer to ensure it is invoked after query execution is finished and before the query result is published to the user. This ensures that the hook is invoked to capture lineage information after the query execution is completed ensuring the correct lineage is captured and doesn't get affected if the query execution fails. + +2. **Hive Lineage Hook (Thin Client):** + - **Extract Lineage:** The thin client, developed as a JAR, uses Hive hooks to capture lineage information from executed queries. Implement the thin client by extending the Hive hook interface. Capture events related to query execution, table creation, and data insertion. + - **JSON:** The captured lineage information is converted to JSON format for consistency and ease of processing. + - **Publish:** The JSON-formatted lineage information is sent to a predefined Kafka topic. This ensures that lineage data is reliably transmitted to downstream consumers. + +3. **Kafka Consumer:** + - The Kafka consumer listens to the predefined Kafka topic for incoming messages containing lineage information. + - The consumer parses the JSON messages to extract lineage details and generate Metadata Change Proposals (MCPs) for dataFlow and dataJob entities. + - The generated MCPs are sent to the GMS, specifically to the MCP topic `vdc-MetadataChangeProposal_v1`. This ensures that lineage information is integrated into the metadata service for further use. + +### Usage Example: + +1. **Capturing Lineage Information:** + - When a user executes queries like `INSERT INTO tableB SELECT * FROM tableA` and `CREATE TABLE AS tableB SELECT * FROM tableA`, the LineageLogger Hook captures the lineage information. + - The Hive Lineage Hook (Thin Client) converts this information into JSON format and sends it to the predefined Kafka topic. + +```json +{ + "version": "1.0", + "user": "testuser", + "timestamp": 1739385858, + "duration": 4338, + "jobIds": [ + "application_1739344293933_0009" + ], + "engine": "tez", + "database": "testdb", + "hash": "a1e36e2a0feff89d08d9c3e2c9f1fb0d", + "queryText": "CREATE TABLE new_user_details AS\nSELECT\nPerson,\nCurrent_Age,\nRetirement_Age,\nBirth_Year,\nBirth_Month,\nGender,\nAddress,\nApartment,\nCity,\nState,\nZipcode,\nLatitude,\nLongitude,\nPer_Capita_Income_Zipcode,\nYearly_Income_Person,\nTotal_Debt,\nFICO_Score,\nNum_Credit_Cards\nFROM test_user_details_input", + "edges": [ + { + "sources": [ + 18 + ], + "targets": [ + 0 + ], + "edgeType": "PROJECTION" + }, + { + "sources": [ + 19 + ], + "targets": [ + 1 + ], + "edgeType": "PROJECTION" + }, + { + "sources": [ + 20 + ], + "targets": [ + 2 + ], + "edgeType": "PROJECTION" + }, + { + "sources": [ + 21 + ], + "targets": [ + 3 + ], + "edgeType": "PROJECTION" + }, + { + "sources": [ + 22 + ], + "targets": [ + 4 + ], + "edgeType": "PROJECTION" + }, + { + "sources": [ + 23 + ], + "targets": [ + 5 + ], + "edgeType": "PROJECTION" + }, + { + "sources": [ + 24 + ], + "targets": [ + 6 + ], + "edgeType": "PROJECTION" + }, + { + "sources": [ + 25 + ], + "targets": [ + 7 + ], + "edgeType": "PROJECTION" + }, + { + "sources": [ + 26 + ], + "targets": [ + 8 + ], + "edgeType": "PROJECTION" + }, + { + "sources": [ + 27 + ], + "targets": [ + 9 + ], + "edgeType": "PROJECTION" + }, + { + "sources": [ + 28 + ], + "targets": [ + 10 + ], + "edgeType": "PROJECTION" + }, + { + "sources": [ + 29 + ], + "targets": [ + 11 + ], + "edgeType": "PROJECTION" + }, + { + "sources": [ + 30 + ], + "targets": [ + 12 + ], + "edgeType": "PROJECTION" + }, + { + "sources": [ + 31 + ], + "targets": [ + 13 + ], + "edgeType": "PROJECTION" + }, + { + "sources": [ + 32 + ], + "targets": [ + 14 + ], + "edgeType": "PROJECTION" + }, + { + "sources": [ + 33 + ], + "targets": [ + 15 + ], + "edgeType": "PROJECTION" + }, + { + "sources": [ + 34 + ], + "targets": [ + 16 + ], + "edgeType": "PROJECTION" + }, + { + "sources": [ + 35 + ], + "targets": [ + 17 + ], + "edgeType": "PROJECTION" + } + ], + "vertices": [ + { + "id": 0, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.person" + }, + { + "id": 1, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.current_age" + }, + { + "id": 2, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.retirement_age" + }, + { + "id": 3, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.birth_year" + }, + { + "id": 4, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.birth_month" + }, + { + "id": 5, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.gender" + }, + { + "id": 6, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.address" + }, + { + "id": 7, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.apartment" + }, + { + "id": 8, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.city" + }, + { + "id": 9, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.state" + }, + { + "id": 10, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.zipcode" + }, + { + "id": 11, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.latitude" + }, + { + "id": 12, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.longitude" + }, + { + "id": 13, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.per_capita_income_zipcode" + }, + { + "id": 14, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.yearly_income_person" + }, + { + "id": 15, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.total_debt" + }, + { + "id": 16, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.fico_score" + }, + { + "id": 17, + "vertexType": "COLUMN", + "vertexId": "testdb.new_user_details.num_credit_cards" + }, + { + "id": 18, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.person" + }, + { + "id": 19, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.current_age" + }, + { + "id": 20, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.retirement_age" + }, + { + "id": 21, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.birth_year" + }, + { + "id": 22, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.birth_month" + }, + { + "id": 23, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.gender" + }, + { + "id": 24, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.address" + }, + { + "id": 25, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.apartment" + }, + { + "id": 26, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.city" + }, + { + "id": 27, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.state" + }, + { + "id": 28, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.zipcode" + }, + { + "id": 29, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.latitude" + }, + { + "id": 30, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.longitude" + }, + { + "id": 31, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.per_capita_income_zipcode" + }, + { + "id": 32, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.yearly_income_person" + }, + { + "id": 33, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.total_debt" + }, + { + "id": 34, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.fico_score" + }, + { + "id": 35, + "vertexType": "COLUMN", + "vertexId": "testdb.test_user_details_input.num_credit_cards" + } + ] +} +``` + +2. **Processing Lineage Information:** + - The Kafka consumer listens to the Kafka topic, consumes the JSON message, parses it, and generates an MCP. + - The MCP is then sent to the GMS, ensuring that the lineage information is integrated into the metadata service. + +### Architecture: + +![Hive Lineage Architecture](hive-lineage-architecture.png) + +## How We Teach This + +Teaching the concept of Hive Lineage effectively requires clear and consistent terminology, structured presentation, and alignment with existing patterns where applicable. Here's how we approach this: + +### Terminology: + +1. **Hive Lineage:** This term refers to the overall process of tracking and documenting the flow of data within the Hive ecosystem. It encompasses source tables, transformations, and destination tables. + +2. **Data Governance:** This is the practice of managing data assets to ensure accuracy, consistency, and compliance. Hive Lineage is a key component of effective data governance. + +3. **Impact Analysis:** This involves assessing the effects of changes in data schema, tables, or transformations on downstream processes. Hive Lineage supports this analysis. + +4. **Data Quality Monitoring:** This is the process of ensuring data remains accurate, consistent, and reliable. Hive Lineage helps identify and resolve data quality issues. + +## Drawbacks + +No effect on existing functionality/customers. Apart from the need for a separate topic and consumer, it does not need any more changes to existing systems. The current design will be leveraging existing lineage API and MCP structure to process lineage information. + +## Rollout / Adoption Strategy + +The design of this feature is completely decoupled and should have minimal to no impact on the existing users, The changes planned should be compatible with existing DataHub ecosystem and rollout should not break any behaviour and adoption of this feature is totally optional. + +## Future Work + +With Hive lineage captured, enable various auditing capabilities including capturing QUERIES run against datasets, usage etc. And also enhance to capture the actual transformation of data behind the lineage. \ No newline at end of file diff --git a/active/000-hive-lineage/hive-lineage-architecture.png b/active/000-hive-lineage/hive-lineage-architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..4e37337b3e493d8a090cfd04d2e8c1fe6d9335bc GIT binary patch literal 53285 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�)g(`2=~Ls41*82dVa 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