Data Lineage API יכול להטמיע מידע על שושלת נתונים ממערכות שמשתלבות עם OpenLineage, תקן פתוח לאיסוף שושלת נתונים.
כששולחים אירועים בפורמט OpenLineage ל-Data Lineage API באמצעות השיטה ProcessOpenLineageRunEvent, Data Lineage API ממפה מאפיינים מההודעה של OpenLineage למאפיינים תואמים ב-Data Lineage API.
במסמך הזה יש טבלאות עזר למיפויים האלה.
מיפוי מאפיינים
ה-method של ProcessOpenLineageRunEvent ב-API בארכיטקטורת REST ממפה את המאפיינים של OpenLineage למאפיינים של Data Lineage API באופן הבא:
| מאפייני Data Lineage API | מאפייני OpenLineage |
|---|---|
| Process.name | projects/PROJECT_NUMBER/locations/LOCATION/processes/HASH_OF_NAMESPACE_AND_NAME |
| Process.displayName | Job.namespace + ":" + Job.name |
| Process.attributes | Job.facets (ראו נתונים מאוחסנים) |
| 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 (ראו נתונים מאוחסנים) |
| 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 (לדוגמה, projects/11111111/locations/us/processes/1234/runs/4321/lineageEvents/111-222-333) |
| LineageEvent.EventLinks.source | קלט (fqn הוא שרשור של מרחב השמות והשם) |
| LineageEvent.EventLinks.target | פלט (fqn הוא שרשור של מרחב השמות והשם) |
| LineageEvent.startTime | eventTime |
| LineageEvent.endTime | eventTime |
| requestId | מוגדרת על ידי המשתמש בשיטה |
יש תמיכה בשושלת יוחסין ברמת העמודה כשהיא נוצרת באופן אוטומטי על ידי Managed Service for Apache Spark, בתנאי שהיא משתמשת בהיבט columnLineage בתוך האובייקטים של outputs. אירועי OpenLineage בהתאמה אישית שכוללים את המאפיין הזה יוצרים רק שושלת יוחסין ברמת הטבלה, ולא מציגים שושלת יוחסין ברמת העמודה במסוף Google Cloud . הדוגמה הבאה היא של פאסט שנוצר על ידי Managed Service for 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
}
]
}
]
}
},
}
}]
בדוגמה הזו, אתם יוצרים קישור שושלת ברמת העמודה בין input_field ל-output_field. חובה לכלול את השדה transformations, אחרת לא תתבצע הטמעה של שושלת היוחסין ברמת העמודה. מידע נוסף על ההגדרה של Open Lineage להיבט הזה זמין במאמר היבט של קבוצת נתונים ברמת העמודה.
מיפוי FQN
בטבלה הבאה מפורטות דוגמאות לצמדים של מרחב שמות ושם ב-OpenLineage במערכות שונות, והשמות המלאים (FQN) המקבילים שלהם ב-Knowledge Catalog (לשעבר Dataplex Universal Catalog):
| מערכת | מרחב השמות של OpenLineage | שם OpenLineage | Knowledge Catalog FQN |
|---|---|---|---|
| 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} |
|
לא נתמך |
| BigQuery | bigquery |
|
|
| Cassandra | cassandra://{host}:{port} |
|
|
| MySQL | mysql://{host}:{port} |
|
|
| CrateDB | crate://{host}:{port} |
{database}.{schema}.{table} |
לא נתמך |
| DB2 | db2://{host}:{port} |
|
|
| Hive | hive://{host}:{port} |
{database}.{table} |
לא נתמך |
| MSSQL | mssql://{host}:{port} |
{database}.{schema}.{table} |
לא נתמך |
| OceanBase | oceanbase://{host}:{port} |
{database}.{table} |
לא נתמך |
| Oracle | oracle://{host}:{port} |
{serviceName}.{schema}.{table} or {sid}.{schema}.{table} |
|
| Postgres | postgres://{host}:{port} |
|
|
| Teradata | teradata://{host}:{port} |
{database}.{table} |
לא נתמך |
| 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} |
נתמך ב-Knowledge Catalog, אבל לא נתמך ב-Data lineage |
| Trino | trino://{host}:{port} |
|
|
| ABFSS (Azure Data Lake Gen2) | abfss://{container name}@{service name}.dfs.core.windows.net |
{path} |
|
| DBFS (מערכת הקבצים של Databricks) | 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} |
| מערכת הקבצים המקומית | file |
{path} |
filesystem:localhost.{path} |
| מערכת קבצים מרחוק | file://{host} |
{path} |
filesystem:{hostWithPort}.{path} |
| S3 | s3://{bucket name} |
{object key} |
אפשר גם להשתמש בקידומות של מרחבי השמות s3a ו-s3n, והן יומרו ל-s3 |
| WASBS (Azure Blob Storage) | wasbs://{container name}@{service name}.dfs.core.windows.net |
{object key} |
|
| נושא Pub/Sub | pubsub |
topic:{projectId}:{topicId} |
pubsub:topic:{projectId}.{topicId} |
| מינוי ל-Pub/Sub | pubsub |
subscription:{projectId}:{subscriptionId} |
pubsub:subscription:{projectId}.{subscriptionId} |
פורמטים קבילים נוספים
למרות ש-OpenLineage לא מגדיר זוגות סטנדרטיים של namespace/name למערכות הבאות, ה-Data Lineage API מקבל אירועי שושלת נתונים בשבילן כשהם בפורמט שמתואר בטבלה הבאה. משאבים שמוזכרים בהודעות OpenLineage עם מרחב השמות custom מפורשים כשמות מותאמים אישית שמוגדרים במלואם.
| מערכת | מרחב השמות של OpenLineage | שם OpenLineage | Knowledge Catalog FQN |
|---|---|---|---|
| FQN בהתאמה אישית | custom |
{some reference} |
custom:{someReference} |
| Dataproc Metastore | dataproc_metastore |
|
|
המאמרים הבאים
- איך משלבים עם OpenLineage
- ראו את קובץ העזר עבור שמות שמוגדרים במלואם.
- מידע נוסף על Data Lineage API
- איך מציגים את פרטי שושלת היוחסין