Skip to main content
In this section, we provide guides and references to use the Glue connector. Configure and schedule Glue metadata and profiler workflows from the OpenMetadata UI:

How to Run the Connector Externally

To run the Ingestion via the UI you’ll need to use the OpenMetadata Ingestion Container, which comes shipped with custom Airflow plugins to handle the workflow deployment. If, instead, you want to manage your workflows externally on your preferred orchestrator, you can check the following docs to run the Ingestion Framework anywhere.

External Schedulers

Get more information about running the Ingestion Framework Externally

Requirements

The Glue connector ingests metadata through AWS Boto3 Client. We will ingest Workflows, its jobs and their run status. The user must have the following permissions for the ingestion to run successfully:
  • glue:ListWorkflows
  • glue:GetWorkflow
  • glue:GetJobRuns
Lineage needs the following additional permissions. Without them, ingestion still succeeds, but lineage is empty and OpenMetadata logs a warning:
  • glue:GetJob
  • s3:GetObject on the bucket that holds the job scripts
  • glue:GetConnection, for jobs that use a Java Database Connectivity (JDBC) connection

Python Requirements

Use Python 3.10 or later. Python 3.12 is recommended, because it is what the OpenMetadata 2.0 ingestion images use. To confirm the supported range for your release, check the Requires-Python metadata of that release’s openmetadata-ingestion package. To run the Glue ingestion, you will need to install:

Lineage

The Glue connector creates lineage from the tables that a Glue job reads to the tables that it writes, including Snowflake tables, and records the Glue workflow as the pipeline of each edge. It reads only jobs that belong to a Glue workflow. OpenMetadata creates an edge only when both ends are already ingested, so ingest the Snowflake service first. OpenMetadata reads the Snowflake sources and targets from the job’s Glue Studio nodes. If the job has no Studio nodes, it reads the job script instead:
  • Glue Studio nodes: SnowflakeSource and SnowflakeTarget nodes. OpenMetadata skips a node that has no table, such as a source that uses a query.
  • Job scripts: Python scripts that use connection_type="snowflake" with the Glue from_options calls, or the Snowflake Spark connector with format("snowflake"). OpenMetadata doesn’t read Scala scripts, so a Scala job produces no Snowflake lineage.
To create the Snowflake lineage, add the Snowflake service to Database Service Names List under Lineage Information in the metadata agent. In a YAML workflow, set dbServiceNames under lineageInformation in sourceConfig.config. When the list is empty, OpenMetadata searches all database services. OpenMetadata takes the database, schema, and table from the node or from the script. In a script, the dbtable option accepts TABLE, SCHEMA.TABLE, or DB.SCHEMA.TABLE. A database or schema that the script sets at run time, for example from a job parameter, stays unset. OpenMetadata matches the database.schema.table name first, then schema.table. It uses the table name alone only when the script doesn’t set a schema. OpenMetadata links the job only when exactly one table matches. If several tables match, or no table matches, OpenMetadata skips the table and logs a warning.

Metadata Ingestion

All connectors are defined as JSON Schemas. Here you can find the structure to create a connection to Glue. In order to create and run a Metadata Ingestion workflow, we will follow the steps to create a YAML configuration able to connect to the source, process the Entities if needed, and reach the OpenMetadata server. The workflow is modeled around the following JSON Schema

1. Define the YAML Config

This is a sample config for Glue:

2. Run with the CLI

First, we will need to save the YAML file. Afterward, and with all requirements installed, we can run:
Note that from connector to connector, this recipe will always be the same. By updating the YAML configuration, you will be able to extract metadata from different sources.