diff --git a/metadata-ingestion/src/datahub/ingestion/source/snowflake/snowflake_usage_v2.py b/metadata-ingestion/src/datahub/ingestion/source/snowflake/snowflake_usage_v2.py index 4b9b214e0c..77c2ae86ce 100644 --- a/metadata-ingestion/src/datahub/ingestion/source/snowflake/snowflake_usage_v2.py +++ b/metadata-ingestion/src/datahub/ingestion/source/snowflake/snowflake_usage_v2.py @@ -66,8 +66,9 @@ class SnowflakeColumnReference(PermissiveModel): class SnowflakeObjectAccessEntry(PermissiveModel): columns: Optional[List[SnowflakeColumnReference]] objectDomain: str - objectId: int objectName: str + # Seems like it should never be null, but in practice have seen null objectIds + objectId: Optional[int] stageKind: Optional[str] diff --git a/metadata-ingestion/tests/unit/test_snowflake_source.py b/metadata-ingestion/tests/unit/test_snowflake_source.py index 93b6acaac5..6f16f7f575 100644 --- a/metadata-ingestion/tests/unit/test_snowflake_source.py +++ b/metadata-ingestion/tests/unit/test_snowflake_source.py @@ -11,6 +11,9 @@ from datahub.ingestion.source.snowflake.constants import ( SnowflakeCloudProvider, ) from datahub.ingestion.source.snowflake.snowflake_config import SnowflakeV2Config +from datahub.ingestion.source.snowflake.snowflake_usage_v2 import ( + SnowflakeObjectAccessEntry, +) from datahub.ingestion.source.snowflake.snowflake_v2 import SnowflakeV2Source @@ -546,3 +549,16 @@ def test_unknown_cloud_region_from_snowflake_region_id(): "somecloud_someregion" ) assert "Unknown snowflake region" in str(e) + + +def test_snowflake_object_access_entry_missing_object_id(): + SnowflakeObjectAccessEntry( + **{ + "columns": [ + {"columnName": "A"}, + {"columnName": "B"}, + ], + "objectDomain": "View", + "objectName": "SOME.OBJECT.NAME", + } + )