Data Lineage API dapat menyerap informasi silsilah dari sistem yang terintegrasi dengan
OpenLineage, standar terbuka untuk pengumpulan silsilah.
Saat Anda mengirim peristiwa berformat OpenLineage ke Data Lineage API menggunakan metode ProcessOpenLineageRunEvent, Data Lineage API akan memetakan atribut dari pesan OpenLineage ke atribut yang sesuai di Data Lineage API.
Dokumen ini menyediakan tabel referensi untuk pemetaan ini.
Pemetaan atribut
Metode REST API ProcessOpenLineageRunEvent memetakan atribut OpenLineage ke atribut Data Lineage API sebagai berikut:
| Atribut Data Lineage API | Atribut OpenLineage |
|---|---|
| Process.name | projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME |
| Process.displayName | Job.namespace + ":" + Job.name |
| Process.attributes | Job.facets (lihat Data tersimpan) |
| Run.name | projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME/runs/HASH_OF_RUNID |
| Run.displayName | Run.runId |
| Run.attributes | Run.facets (lihat Data tersimpan) |
| Run.startTime | eventTime |
| Run.endTime | eventTime |
| Run.state | eventType |
| LineageEvent.name | projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME/runs/HASH_OF_RUNID/lineageEvents/HASH_OF_JOB_RUN_INPUT_OUTPUTS_OF_EVENT (misalnya, projects/11111111/locations/us/processes/1234/runs/4321/lineageEvents/111-222-333) |
| LineageEvent.EventLinks.source | input (fqn adalah namespace dan penyambungan nama) |
| LineageEvent.EventLinks.target | output (fqn adalah namespace dan penyambungan nama) |
| LineageEvent.startTime | eventTime |
| LineageEvent.endTime | eventTime |
| requestId | Ditentukan oleh pengguna metode |
Silsilah tingkat kolom didukung saat dibuat secara otomatis oleh Managed Service untuk Apache Spark, asalkan menggunakan faset columnLineage dalam objek outputs. Peristiwa OpenLineage kustom yang menyertakan faset ini hanya mewujudkan silsilah tingkat tabel dan tidak merender silsilah tingkat kolom di konsol Google Cloud . Berikut adalah
contoh faset yang dihasilkan oleh Managed Service untuk Apache Spark:
"outputs": [ {
"namespace": "bigquery",
"name": "project.dataset.outputtable",
"columnLineage": {
"_producer": "https://github.com/OpenLineage/OpenLineage/tree/1.39.0/integration/spark",
"_schemaURL": "https://openlineage.io/spec/facets/1-2-0/ColumnLineageDatasetFacet.json#/$defs/ColumnLineageDatasetFacet",
"fields": {
"output_field": { // This is the name of the output field
"inputFields": [
{
"namespace": "bigquery",
"name": "project.dataset.inputtable",
"field": "input_field", // This is the name of the input field
"transformations": [
{
"type": "DIRECT",
"subtype": "IDENTITY",
"description": "",
"masking": false
}
]
}
]
}
},
}
}]
Dalam contoh ini, Anda akan membuat link silsilah tingkat kolom antara input_field dan output_field. Anda harus menyertakan kolom transformasi; jika tidak, silsilah tingkat kolom tidak akan diserap. Untuk mengetahui informasi selengkapnya tentang definisi Open Lineage untuk faset ini, lihat Faset set data tingkat kolom.
Pemetaan FQN
Tabel berikut memberikan contoh pasangan namespace dan nama OpenLineage untuk berbagai sistem, dan nama yang sepenuhnya memenuhi syarat (FQN) Knowledge Catalog (sebelumnya Dataplex Universal Catalog) yang setara:
| Sistem | Namespace OpenLineage | Nama OpenLineage | FQN Knowledge Catalog |
|---|---|---|---|
| Athena | awsathena://athena.{region_name}.amazonaws.com |
|
|
| AWS Glue | arn:aws:glue:{region}:{account id} |
table/{database name}/{table name} |
aws_glue:table:{region}.{account id}.{database name}.{table name} |
| Azure Cosmos DB | azurecosmos://{host}/dbs/{database} |
colls/{table} |
|
| Azure Data Explorer | azurekusto://{host}.kusto.windows.net |
{database}/{table} |
|
| Azure Synapse | sqlserver://{host}:{port} |
|
Tidak didukung |
| BigQuery | bigquery |
|
|
| Cassandra | cassandra://{host}:{port} |
|
|
| MySQL | mysql://{host}:{port} |
|
|
| CrateDB | crate://{host}:{port} |
{database}.{schema}.{table} |
Tidak didukung |
| DB2 | db2://{host}:{port} |
|
|
| Hive | hive://{host}:{port} |
{database}.{table} |
Tidak didukung |
| MSSQL | mssql://{host}:{port} |
{database}.{schema}.{table} |
Tidak didukung |
| OceanBase | oceanbase://{host}:{port} |
{database}.{table} |
Tidak didukung |
| Oracle | oracle://{host}:{port} |
{serviceName}.{schema}.{table} or {sid}.{schema}.{table} |
|
| Postgres | postgres://{host}:{port} |
|
|
| Teradata | teradata://{host}:{port} |
{database}.{table} |
Tidak didukung |
| Redshift | redshift://{cluster_identifier}.{region_name}:{port} |
|
|
| Snowflake | snowflake://{organization name}-{account name} or snowflake://{account-locator}(.{compliance})(.{cloud_region_id})(.{cloud}) |
|
|
| Spanner | spanner://{projectId}:{instanceId} |
{database}.{schema}.{table} |
Didukung di Knowledge Catalog, tetapi tidak didukung di Silsilah data |
| Trino | trino://{host}:{port} |
|
|
| ABFSS (Azure Data Lake Gen2) | abfss://{container name}@{service name}.dfs.core.windows.net |
{path} |
|
| DBFS (Databricks File System) | dbfs://{workspace name} |
{path} |
|
| Cloud Storage | gs://{bucket name} |
{object key} |
|
| HDFS | hdfs://{namenode host}:{namenode port} |
{path} |
|
| Kafka | kafka://{bootstrap server host}:{port} |
{topic} |
kafka:{serverHostWithPort}.{topicId} |
| Sistem file lokal | file |
{path} |
filesystem:localhost.{path} |
| Sistem file jarak jauh | file://{host} |
{path} |
filesystem:{hostWithPort}.{path} |
| S3 | s3://{bucket name} |
{object key} |
Awalan namespace s3a dan s3n juga diterima dan dikonversi menjadi s3 |
| WASBS (Azure Blob Storage) | wasbs://{container name}@{service name}.dfs.core.windows.net |
{object key} |
|
| Topik Pub/Sub | pubsub |
topic:{projectId}:{topicId} |
pubsub:topic:{projectId}.{topicId} |
| Langganan Pub/Sub | pubsub |
subscription:{projectId}:{subscriptionId} |
pubsub:subscription:{projectId}.{subscriptionId} |
Format tambahan yang diterima
Meskipun OpenLineage tidak menentukan pasangan namespace/name standar untuk sistem berikut, Data Lineage API menerima peristiwa silsilah untuk sistem tersebut jika diformat seperti yang dijelaskan dalam tabel berikut. Resource yang direferensikan dalam pesan OpenLineage dengan namespace custom ditafsirkan sebagai nama kustom yang sepenuhnya memenuhi syarat.
| Sistem | Namespace OpenLineage | Nama OpenLineage | FQN Knowledge Catalog |
|---|---|---|---|
| FQN Kustom | custom |
{some reference} |
custom:{someReference} |
| Dataproc Metastore | dataproc_metastore |
|
|
Langkah berikutnya
- Pelajari cara berintegrasi dengan OpenLineage.
- Lihat referensi untuk nama yang sepenuhnya memenuhi syarat.
- Pelajari Data Lineage API.
- Pelajari cara melihat informasi silsilah.