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 penggabungan namespace dan nama) |
| LineageEvent.EventLinks.target | output (fqn adalah gabungan namespace dan nama) |
| LineageEvent.startTime | eventTime |
| LineageEvent.endTime | eventTime |
| requestId | Ditentukan oleh pengguna metode |
Linage tingkat kolom didukung jika dibuat secara otomatis oleh
Managed Service untuk Apache Spark (Managed Service for Apache Spark), asalkan menggunakan
aspek columnLineage dalam objek outputs. Peristiwa OpenLineage kustom
yang menyertakan aspek ini hanya mewujudkan silsilah tingkat tabel dan tidak merender
silsilah tingkat kolom di konsol Google Cloud . Berikut adalah contoh aspek 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 membuat link silsilah tingkat kolom antara input_field dan output_field. Anda harus menyertakan kolom transformasi; tanpa kolom ini, silsilah tingkat kolom tidak akan diproses. 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, 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 Linieritas 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} |
s3a dan s3n juga diterima dan dikonversi menjadi s3 |
| WASBS (Azure Blob Storage) | wasbs://{container name}@{service name}.dfs.core.windows.net |
{object key} |
|
| Pub/Sub Topic | 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 dirujuk dalam pesan OpenLineage dengan namespace custom ditafsirkan sebagai nama yang sepenuhnya memenuhi syarat 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 yang sepenuhnya memenuhi syarat.
- Jelajahi Data Lineage API.
- Pelajari cara melihat informasi silsilah.