Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(ingestion/prefect-plugin): fixed the unit tests #10643

Merged
Merged
Show file tree
Hide file tree
Changes from 32 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
99aae38
Prefect source integration code added
shubhamjagtap639 Jul 13, 2023
d64102d
prefect-dataub package integrated with datahub
shubhamjagtap639 Jul 13, 2023
9c71601
Prefect doc Spell mistake corrected
shubhamjagtap639 Jul 13, 2023
a876e87
Remove not necessary md file
shubhamjagtap639 Jul 13, 2023
9a72681
Version added for some pakages in prefect-datahub
shubhamjagtap639 Jul 14, 2023
95347e1
Prefect version 2.0.0 restriction removed
shubhamjagtap639 Jul 14, 2023
68c6644
Prefect version set to >=2.0.0
shubhamjagtap639 Jul 17, 2023
6dc9da9
prefect-datahub build error fixed for python 3.7
shubhamjagtap639 Jul 17, 2023
4e32e0e
mypy stubs packages added
shubhamjagtap639 Jul 17, 2023
9290837
acryl-datahub package added
shubhamjagtap639 Jul 18, 2023
aaad752
Added some missing required setup files
shubhamjagtap639 Jul 18, 2023
9884785
Extra packages added in requirements-dev
shubhamjagtap639 Jul 18, 2023
08bc3e0
Added some extra packages
shubhamjagtap639 Jul 18, 2023
41072df
temp changes
shubhamjagtap639 Jul 18, 2023
7662b58
Revert temp changes
shubhamjagtap639 Jul 18, 2023
33a42a2
Prefect plugin code modified as per latest airflow plugin code
shubhamjagtap639 Sep 13, 2023
adb8adb
Add epoch 1 for dev build versions
shubhamjagtap639 Sep 13, 2023
870d5ee
build error fixed
shubhamjagtap639 Sep 13, 2023
70b1bf2
syntax error resolved
shubhamjagtap639 Sep 13, 2023
9c80098
Address review comments
shubhamjagtap639 Feb 8, 2024
5556927
Modify prefect-plugin yml file
shubhamjagtap639 Feb 9, 2024
f89d6c0
fix(ingestion/prefect-plugin): fixed the unit tests
dushayntAW Jun 4, 2024
04881b1
fix(ingestion/prefect-plugin): changes
dushayntAW Jun 12, 2024
54c012d
fix(ingestion/prefect-plugin): fixes
dushayntAW Jun 12, 2024
3839f2e
fix(ingestion/prefect-plugin): gradle fix
dushayntAW Jun 12, 2024
eae4268
fix(ingestion/prefect-plugin): gradle fix
dushayntAW Jun 12, 2024
24ccf17
fix(ingestion/prefect-plugin): gradle fix
dushayntAW Jun 12, 2024
8bb5e8d
fix(ingestion/prefect-plugin): fix docGenerate
dushayntAW Jun 12, 2024
5d54ff9
fix(ingestion/prefect-plugin): fix docGenerate
dushayntAW Jun 12, 2024
2638848
fix(ingestion/prefect-plugin): fix docGenerate
dushayntAW Jun 12, 2024
654da76
fix(ingestion/prefect-plugin): auth token with datasets
dushayntAW Jul 1, 2024
9b2a558
fix(ingestion/prefect-plugin): removed print statement
dushayntAW Jul 1, 2024
5b6c2c8
Merge branch 'master' into fix/ING-133/connector-for-prefect
treff7es Aug 21, 2024
014a340
Update doc
treff7es Aug 21, 2024
edffb1d
Merge branch 'master' into fix/ING-133/connector-for-prefect
treff7es Aug 21, 2024
297fa62
Improve doc
treff7es Aug 21, 2024
889e4fb
Fix doc
treff7es Aug 21, 2024
2e1d64c
Fixing doc
treff7es Aug 21, 2024
9e8f2a1
Merge branch 'master' into fix/ING-133/connector-for-prefect
treff7es Aug 23, 2024
6a701c9
Merge branch 'master' into fix/ING-133/connector-for-prefect
treff7es Aug 28, 2024
8b9548f
Fix tests
treff7es Aug 28, 2024
0422477
Fix black formatting
treff7es Aug 28, 2024
c134e97
Merge branch 'master' into fix/ING-133/connector-for-prefect
treff7es Aug 28, 2024
0bef326
Fixing wheel creation
treff7es Aug 28, 2024
c096add
Fixing examples
treff7es Aug 28, 2024
f2a05a9
Flake8 fix
treff7es Aug 28, 2024
706193e
Updating doc
treff7es Aug 28, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,8 @@ jobs:
-x :metadata-ingestion-modules:airflow-plugin:check \
-x :metadata-ingestion-modules:dagster-plugin:build \
-x :metadata-ingestion-modules:dagster-plugin:check \
-x :metadata-ingestion-modules:prefect-plugin:build \
-x :metadata-ingestion-modules:prefect-plugin:check \
-x :datahub-frontend:build \
-x :datahub-web-react:build \
--parallel
Expand Down Expand Up @@ -131,4 +133,4 @@ jobs:
uses: actions/upload-artifact@v3
with:
name: Event File
path: ${{ github.event_path }}
path: ${{ github.event_path }}
86 changes: 86 additions & 0 deletions .github/workflows/prefect-plugin.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
name: Prefect Plugin
on:
push:
branches:
- master
paths:
- ".github/workflows/prefect-plugin.yml"
- "metadata-ingestion-modules/prefect-plugin/**"
- "metadata-ingestion/**"
- "metadata-models/**"
pull_request:
branches:
- "**"
paths:
- ".github/workflows/prefect-plugin.yml"
- "metadata-ingestion-modules/prefect-plugin/**"
- "metadata-ingestion/**"
- "metadata-models/**"
release:
types: [published]

concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

jobs:
prefect-plugin:
runs-on: ubuntu-latest
env:
SPARK_VERSION: 3.0.3
DATAHUB_TELEMETRY_ENABLED: false
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10"]
include:
- python-version: "3.8"
- python-version: "3.9"
- python-version: "3.10"
fail-fast: false
steps:
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
distribution: "zulu"
java-version: 17
- uses: gradle/gradle-build-action@v2
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
- name: Install dependencies
run: ./metadata-ingestion/scripts/install_deps.sh
- name: Install prefect package
run: ./gradlew :metadata-ingestion-modules:prefect-plugin:lint :metadata-ingestion-modules:prefect-plugin:testQuick
- name: pip freeze show list installed
if: always()
run: source metadata-ingestion-modules/prefect-plugin/venv/bin/activate && pip freeze
- uses: actions/upload-artifact@v3
if: ${{ always() && matrix.python-version == '3.10'}}
with:
name: Test Results (Prefect Plugin ${{ matrix.python-version}})
path: |
**/build/reports/tests/test/**
**/build/test-results/test/**
**/junit.*.xml
!**/binary/**
- name: Upload coverage to Codecov
if: always()
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
directory: .
fail_ci_if_error: false
flags: prefect,prefect-${{ matrix.extra_pip_extras }}
name: pytest-prefect-${{ matrix.python-version }}
verbose: true

event-file:
runs-on: ubuntu-latest
steps:
- name: Upload
uses: actions/upload-artifact@v3
with:
name: Event File
path: ${{ github.event_path }}
2 changes: 1 addition & 1 deletion .github/workflows/test-results.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

on:
workflow_run:
workflows: ["build & test", "metadata ingestion", "Airflow Plugin", "Dagster Plugin"]
workflows: ["build & test", "metadata ingestion", "Airflow Plugin", "Dagster Plugin", "Prefect Plugin"]
types:
- completed

Expand All @@ -16,7 +16,7 @@
- name: Download and Extract Test Results
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
run: |

Check failure on line 19 in .github/workflows/test-results.yml

View workflow job for this annotation

GitHub Actions / actionlint

[actionlint] reported by reviewdog 🐶 shellcheck reported issue in this script: SC2162:info:5:91: read without -r will mangle backslashes [shellcheck] Raw Output: .github/workflows/test-results.yml:19:9: shellcheck reported issue in this script: SC2162:info:5:91: read without -r will mangle backslashes [shellcheck]

Check failure on line 19 in .github/workflows/test-results.yml

View workflow job for this annotation

GitHub Actions / actionlint

[actionlint] reported by reviewdog 🐶 shellcheck reported issue in this script: SC2162:info:7:13: read without -r will mangle backslashes [shellcheck] Raw Output: .github/workflows/test-results.yml:19:9: shellcheck reported issue in this script: SC2162:info:7:13: read without -r will mangle backslashes [shellcheck]

Check failure on line 19 in .github/workflows/test-results.yml

View workflow job for this annotation

GitHub Actions / actionlint

[actionlint] reported by reviewdog 🐶 shellcheck reported issue in this script: SC2086:info:8:10: Double quote to prevent globbing and word splitting [shellcheck] Raw Output: .github/workflows/test-results.yml:19:9: shellcheck reported issue in this script: SC2086:info:8:10: Double quote to prevent globbing and word splitting [shellcheck]
mkdir -p artifacts && cd artifacts

artifacts_url=${{ github.event.workflow_run.artifacts_url }}
Expand Down
1 change: 1 addition & 0 deletions docs-website/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,7 @@ task yarnGenerate(type: YarnTask, dependsOn: [yarnInstall,
':metadata-ingestion:buildWheel',
':metadata-ingestion-modules:airflow-plugin:buildWheel',
':metadata-ingestion-modules:dagster-plugin:buildWheel',
':metadata-ingestion-modules:prefect-plugin:buildWheel',
]) {
inputs.files(projectMdFiles)
outputs.cacheIf { true }
Expand Down
1 change: 1 addition & 0 deletions docs-website/generateDocsDir.ts
Original file line number Diff line number Diff line change
Expand Up @@ -573,6 +573,7 @@ function copy_python_wheels(): void {
"../metadata-ingestion/dist",
"../metadata-ingestion-modules/airflow-plugin/dist",
"../metadata-ingestion-modules/dagster-plugin/dist",
"../metadata-ingestion-modules/prefect-plugin/dist",
];

const wheel_output_directory = path.join(STATIC_DIRECTORY, "wheels");
Expand Down
12 changes: 12 additions & 0 deletions docs-website/sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -226,6 +226,17 @@ module.exports = {
id: "docs/managed-datahub/datahub-api/entity-events-api",
className: "saasOnly",
},
{
type: "doc",
id: "docs/lineage/prefect",
label: "Prefect",
},

//"docker/airflow/local_airflow",
"metadata-integration/java/spark-lineage/README",
"metadata-ingestion/integration_docs/great-expectations",
"metadata-integration/java/datahub-protobuf/README",
//"metadata-ingestion/source-docs-template",
{
"GraphQL API": [
"docs/managed-datahub/datahub-api/graphql-api/getting-started",
Expand Down Expand Up @@ -881,6 +892,7 @@ module.exports = {
// "metadata-integration/java/openlineage-converter/README"
//"metadata-ingestion-modules/airflow-plugin/README"
//"metadata-ingestion-modules/dagster-plugin/README"
//"metadata-ingestion-modules/prefect-plugin/README"
// "metadata-ingestion/schedule_docs/datahub", // we can delete this
// TODO: change the titles of these, removing the "What is..." portion from the sidebar"
// "docs/what/entity",
Expand Down
135 changes: 135 additions & 0 deletions docs/lineage/prefect.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
# Prefect Integration

DataHub supports integration of

- Prefect flow and task metadata
- Flow run and Task run information as well as
- Lineage information when present

## What is Prefect Datahub Block?

Blocks are primitive within Prefect that enable the storage of configuration and provide an interface for interacting with external systems. We integrated `prefect-datahub` block which use [Datahub Rest](../../metadata-ingestion/sink_docs/datahub.md#datahub-rest) emitter to emit metadata events while running prefect flow.

## Prerequisites to use Prefect Datahub Block

1. You need to use either Prefect Cloud (recommended) or the self hosted Prefect server.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct spelling: "self-hosted"

The term "self hosted" should be hyphenated.

- self hosted Prefect server.
+ self-hosted Prefect server.
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
1. You need to use either Prefect Cloud (recommended) or the self hosted Prefect server.
1. You need to use either Prefect Cloud (recommended) or the self-hosted Prefect server.
Tools
LanguageTool

[misspelling] ~15-~15: This word is normally spelled with a hyphen.
Context: ...ther Prefect Cloud (recommended) or the self hosted Prefect server. 2. Refer [Cloud Quickst...

(EN_COMPOUNDS_SELF_HOSTED)

2. Refer [Cloud Quickstart](https://docs.prefect.io/latest/getting-started/quickstart/) to setup Prefect Cloud.
3. Refer [Host Prefect server](https://docs.prefect.io/latest/guides/host/) to setup self hosted Prefect server.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct spelling: "self-hosted"

The term "self hosted" should be hyphenated.

- setup self hosted Prefect server.
+ setup self-hosted Prefect server.
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
3. Refer [Host Prefect server](https://docs.prefect.io/latest/guides/host/) to setup self hosted Prefect server.
3. Refer [Host Prefect server](https://docs.prefect.io/latest/guides/host/) to setup self-hosted Prefect server.
Tools
LanguageTool

[misspelling] ~17-~17: This word is normally spelled with a hyphen.
Context: ...refect.io/latest/guides/host/) to setup self hosted Prefect server. 4. Make sure the Prefec...

(EN_COMPOUNDS_SELF_HOSTED)

4. Make sure the Prefect api url is set correctly. You can check it by running below command:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add missing article

Add "the" before "below command".

- running below command:
+ running the below command:
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
4. Make sure the Prefect api url is set correctly. You can check it by running below command:
4. Make sure the Prefect api url is set correctly. You can check it by running the below command:
Tools
LanguageTool

[uncategorized] ~18-~18: Possible missing article found.
Context: ... correctly. You can check it by running below command: ```shell prefect profile inspe...

(AI_HYDRA_LEO_MISSING_THE)

Markdownlint

18-18: null
Lists should be surrounded by blank lines

(MD032, blanks-around-lists)

```shell
prefect profile inspect
```
5. If you are using Prefect Cloud, the API URL should be set as `https://api.prefect.cloud/api/accounts/<account_id>/workspaces/<workspace_id>`.
6. If you are using a self-hosted Prefect server, the API URL should be set as `http://<host>:<port>/api`.

## Setup

### Installation

Install `prefect-datahub` with `pip`:

```shell
pip install 'prefect-datahub'
```

Requires an installation of Python 3.7+.

### Saving configurations to a block

This is a one-time activity, where you can save the configuration on the [Prefect block document store](https://docs.prefect.io/latest/concepts/blocks/#saving-blocks).
While saving you can provide below configurations. Default value will get set if not provided while saving the configuration to block.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a comma after the introductory phrase.

A comma is needed after "While saving".

- While saving you can provide below configurations.
+ While saving, you can provide below configurations.
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
While saving you can provide below configurations. Default value will get set if not provided while saving the configuration to block.
While saving, you can provide below configurations. Default value will get set if not provided while saving the configuration to block.
Tools
LanguageTool

[uncategorized] ~40-~40: A comma is probably missing here.
Context: .../concepts/blocks/#saving-blocks). While saving you can provide below configurations. D...

(MISSING_COMMA_AFTER_INTRODUCTORY_PHRASE)


Config | Type | Default | Description
--- | --- | --- | ---
datahub_rest_url | `str` | *http://localhost:8080* | DataHub GMS REST URL
env | `str` | *PROD* | The environment that all assets produced by this orchestrator belong to. For more detail and possible values refer [here](https://datahubproject.io/docs/graphql/enums/#fabrictype).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add comma after introductory phrase

A comma is needed after "For more detail".

- For more detail and possible values refer [here]
+ For more detail and possible values, refer [here]
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
env | `str` | *PROD* | The environment that all assets produced by this orchestrator belong to. For more detail and possible values refer [here](https://datahubproject.io/docs/graphql/enums/#fabrictype).
env | `str` | *PROD* | The environment that all assets produced by this orchestrator belong to. For more detail and possible values, refer [here](https://datahubproject.io/docs/graphql/enums/#fabrictype).
Tools
LanguageTool

[uncategorized] ~45-~45: Possible missing comma found.
Context: ...belong to. For more detail and possible values refer [here](https://datahubproject.io/...

(AI_HYDRA_LEO_MISSING_COMMA)

platform_instance | `str` | *None* | The instance of the platform that all assets produced by this recipe belong to. For more detail please refer [here](https://datahubproject.io/docs/platform-instances/).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add comma after introductory phrase

A comma is needed after "For more detail".

- For more detail please refer [here]
+ For more detail, please refer [here]
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
platform_instance | `str` | *None* | The instance of the platform that all assets produced by this recipe belong to. For more detail please refer [here](https://datahubproject.io/docs/platform-instances/).
platform_instance | `str` | *None* | The instance of the platform that all assets produced by this recipe belong to. For more detail, please refer [here](https://datahubproject.io/docs/platform-instances/).
Tools
LanguageTool

[typographical] ~46-~46: Consider adding a comma here.
Context: ...y this recipe belong to. For more detail please refer [here](https://datahubproject.io/...

(PLEASE_COMMA)


```python
from prefect_datahub.datahub_emitter import DatahubEmitter
DatahubEmitter(
datahub_rest_url="http://localhost:8080",
env="PROD",
platform_instance="local_prefect"
).save("BLOCK-NAME-PLACEHOLDER")
```

Congrats! You can now load the saved block to use your configurations in your Flow code:

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove trailing space

There is a trailing space at the end of this line.

- Congrats! You can now load the saved block to use your configurations in your Flow code:
+ Congrats! You can now load the saved block to use your configurations in your Flow code:

Committable suggestion was skipped due to low confidence.

Tools
Markdownlint

58-58: Expected: 0 or 2; Actual: 1
Trailing spaces

(MD009, no-trailing-spaces)

```python
from prefect_datahub.datahub_emitter import DatahubEmitter
DatahubEmitter.load("BLOCK-NAME-PLACEHOLDER")
```

!!! info "Registering blocks"

Register blocks in this module to
[view and edit them](https://docs.prefect.io/ui/blocks/)
on Prefect Cloud:

```bash
prefect block register -m prefect_datahub
```

### Load the saved block in prefect workflows

After installing `prefect-datahub` and [saving the configution](#saving-configurations-to-a-block), you can easily use it within your prefect workflows to help you emit metadata event as show below!

```python
from prefect import flow, task
from prefect_datahub.dataset import Dataset
from prefect_datahub.datahub_emitter import DatahubEmitter

datahub_emitter = DatahubEmitter.load("MY_BLOCK_NAME")

@task(name="Transform", description="Transform the data")
def transform(data):
data = data.split(" ")
datahub_emitter.add_task(
inputs=[Dataset("snowflake", "mydb.schema.tableA")],
outputs=[Dataset("snowflake", "mydb.schema.tableC")],
)
return data

@flow(name="ETL flow", description="Extract transform load flow")
def etl():
data = transform("This is data")
datahub_emitter.emit_flow()
```

**Note**: To emit the tasks, user compulsory need to emit flow. Otherwise nothing will get emit.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add a comma after "Otherwise"

A comma is needed after "Otherwise".

- Otherwise nothing will get emit.
+ Otherwise, nothing will get emit.
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
**Note**: To emit the tasks, user compulsory need to emit flow. Otherwise nothing will get emit.
**Note**: To emit the tasks, user compulsory need to emit flow. Otherwise, nothing will get emit.
Tools
LanguageTool

[uncategorized] ~100-~100: A comma may be missing after the conjunctive/linking adverb ‘Otherwise’.
Context: ...sks, user compulsory need to emit flow. Otherwise nothing will get emit. ## Concept mapp...

(SENT_START_CONJUNCTIVE_LINKING_ADVERB_COMMA)


## Concept mapping

Prefect concepts are documented [here](https://docs.prefect.io/latest/concepts/), and datahub concepts are documented [here](https://datahubproject.io/docs/what-is-datahub/datahub-concepts).

Prefect Concept | DataHub Concept
--- | ---
[Flow](https://docs.prefect.io/latest/concepts/flows/) | [DataFlow](https://datahubproject.io/docs/generated/metamodel/entities/dataflow/)
[Flow Run](https://docs.prefect.io/latest/concepts/flows/#flow-runs) | [DataProcessInstance](https://datahubproject.io/docs/generated/metamodel/entities/dataprocessinstance)
[Task](https://docs.prefect.io/latest/concepts/tasks/) | [DataJob](https://datahubproject.io/docs/generated/metamodel/entities/datajob/)
[Task Run](https://docs.prefect.io/latest/concepts/tasks/#tasks) | [DataProcessInstance](https://datahubproject.io/docs/generated/metamodel/entities/dataprocessinstance)
[Task Tag](https://docs.prefect.io/latest/concepts/tasks/#tags) | [Tag](https://datahubproject.io/docs/generated/metamodel/entities/tag/)


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove extra blank line

There are two consecutive blank lines here.

- 
+ 

Committable suggestion was skipped due to low confidence.

Tools
Markdownlint

114-114: Expected: 1; Actual: 2
Multiple consecutive blank lines

(MD012, no-multiple-blanks)

## How to validate saved block and emit of metadata

1. Go and check in Prefect UI at the Blocks menu if you can see the datahub emitter.
2. Run a Prefect workflow. In the flow logs, you should see Datahub related log messages like:

```
Emitting flow to datahub...
Emitting tasks to datahub...
```
## Debugging
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add blank lines around heading

Headings should be surrounded by blank lines.

- ## Debugging
+ 
+ ## Debugging
+ 
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## Debugging
+
## Debugging
+
Tools
Markdownlint

124-124: Expected: 1; Actual: 0; Above
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)


### Incorrect Prefect API URL

If your Prefect API URL aren't being generated correctly or set incorrectly, then in that case you can set the Prefect API URL manually as show below:

```shell
prefect config set PREFECT_API_URL='http://127.0.0.1:4200/api'
```

### Connection error for Datahub Rest URL
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add blank lines around heading.

Headings should be surrounded by blank lines.

- ### Connection error for Datahub Rest URL
+ 
+ ### Connection error for Datahub Rest URL
+ 
Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
### Connection error for Datahub Rest URL
### Connection error for Datahub Rest URL
Tools
Markdownlint

134-134: Expected: 1; Actual: 0; Below
Headings should be surrounded by blank lines

(MD022, blanks-around-headings)

If you get ConnectionError: HTTPConnectionPool(host='localhost', port=8080), then in that case your GMS service is not up.
Loading
Loading