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
ProcessOpenLineageRunEvent
metode, 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 ProcessOpenLineageRunEvent
REST API 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 | inputs (fqn adalah gabungan namespace dan nama) |
| LineageEvent.EventLinks.target | outputs (fqn adalah gabungan namespace dan nama) |
| LineageEvent.startTime | eventTime |
| LineageEvent.endTime | eventTime |
| requestId | Ditentukan oleh pengguna metode |
Silsilah tingkat kolom yang dihasilkan oleh Managed Service untuk Apache Spark juga didukung, asalkan menggunakan aspek columnLineage dalam objek outputs. Berikut adalah contohnya:
"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 membuat link silsilah tingkat kolom antara input_field dan output_field. Anda harus menyertakan kolom transformasi; tanpa kolom ini, silsilah tingkat kolom tidak akan diserap. Untuk mengetahui informasi selengkapnya tentang definisi Open Lineage untuk aspek ini, lihat Aspek set data tingkat kolom.
Pemetaan FQN
Tabel berikut memberikan contoh pasangan namespace dan nama OpenLineage untuk berbagai sistem, serta nama lengkap (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 ke 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 standar namespace/name 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 lengkap kustom.
| 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 lengkap.
- Pelajari Data Lineage API.
- Pelajari cara melihat informasi silsilah.