-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
### Related Features
diff --git a/docs/act-on-metadata/impact-analysis.md b/docs/act-on-metadata/impact-analysis.md
index e1143dd436d9c..ae593d09c255f 100644
--- a/docs/act-on-metadata/impact-analysis.md
+++ b/docs/act-on-metadata/impact-analysis.md
@@ -71,7 +71,7 @@ Follow these simple steps to understand the full dependency chain of your data e
* [searchAcrossLineage](../../graphql/queries.md#searchacrosslineage)
* [searchAcrossLineageInput](../../graphql/inputObjects.md#searchacrosslineageinput)
-Looking for an example of how to use `searchAcrossLineage` to read lineage? Look [here](../api/tutorials/lineage.md#read-lineage)
+Looking for an example of how to use `searchAcrossLineage` to read data lineage? Look [here](../api/tutorials/lineage.md#read-lineage)
### DataHub Blog
@@ -88,7 +88,7 @@ This means you have not yet ingested Lineage metadata for that entity. Please se
We currently limit the list of dependencies to 10,000 records; we suggest applying filters to narrow the result set if you hit that limit.
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
### Related Features
diff --git a/docs/actions/sources/kafka-event-source.md b/docs/actions/sources/kafka-event-source.md
index 80bc54beca785..3bbb90af631a1 100644
--- a/docs/actions/sources/kafka-event-source.md
+++ b/docs/actions/sources/kafka-event-source.md
@@ -90,4 +90,4 @@ messages that are received while the Action is running.
2. Is there a way to asynchronously commit offsets back to Kafka?
-Currently, all consumer offset commits are made synchronously for each message received. For now we've optimized for correctness over performance. If this commit policy does not accommodate your organization's needs, certainly reach out on [Slack](https://slack.datahubproject.io/).
\ No newline at end of file
+Currently, all consumer offset commits are made synchronously for each message received. For now we've optimized for correctness over performance.
\ No newline at end of file
diff --git a/docs/api/datahub-apis.md b/docs/api/datahub-apis.md
index 252c96cab56c3..ed48eb0f52fa2 100644
--- a/docs/api/datahub-apis.md
+++ b/docs/api/datahub-apis.md
@@ -66,7 +66,7 @@ Here's an overview of what each API can do.
| Create a Dataset | 🚫 | ✅ [[Guide]](/docs/api/tutorials/datasets.md) | ✅ |
| Delete a Dataset (Soft Delete) | ✅ [[Guide]](/docs/api/tutorials/datasets.md#delete-dataset) | ✅ [[Guide]](/docs/api/tutorials/datasets.md#delete-dataset) | ✅ |
| Delete a Dataset (Hard Delete) | 🚫 | ✅ [[Guide]](/docs/api/tutorials/datasets.md#delete-dataset) | ✅ |
-| Search a Dataset | ✅ | ✅ | ✅ |
+| Search a Dataset | ✅ [[Guide]](/docs/how/search.md#graphql) | ✅ | ✅ |
| Read a Dataset Deprecation | ✅ | ✅ | ✅ |
| Read Dataset Entities (V2) | ✅ | ✅ | ✅ |
| Create a Tag | ✅ [[Guide]](/docs/api/tutorials/tags.md#create-tags) | ✅ [[Guide]](/docs/api/tutorials/tags.md#create-tags) | ✅ |
@@ -116,4 +116,4 @@ Here's an overview of what each API can do.
| Create Dataset Lineage with MCPW & Rest Emitter | 🚫 | ✅ [[Code]](https://github.com/datahub-project/datahub/blob/master/metadata-ingestion/examples/library/lineage_emitter_mcpw_rest.py) | ✅ |
| Create Dataset Lineage with Rest Emitter | 🚫 | ✅ [[Code]](https://github.com/datahub-project/datahub/blob/master/metadata-ingestion/examples/library/lineage_emitter_rest.py) | ✅ |
| Create DataJob with Dataflow | 🚫 | ✅ [[Code]](https://github.com/datahub-project/datahub/blob/master/metadata-ingestion/examples/library/lineage_job_dataflow.py) [[Simple]](https://github.com/datahub-project/datahub/blob/master/metadata-ingestion/examples/library/lineage_job_dataflow_new_api_simple.py) [[Verbose]](https://github.com/datahub-project/datahub/blob/master/metadata-ingestion/examples/library/lineage_job_dataflow_new_api_verbose.py) | ✅ |
-| Create Programmatic Pipeline | 🚫 | ✅ [[Code]](https://github.com/datahub-project/datahub/blob/master/metadata-ingestion/examples/library/programatic_pipeline.py) | ✅ |
\ No newline at end of file
+| Create Programmatic Pipeline | 🚫 | ✅ [[Code]](https://github.com/datahub-project/datahub/blob/master/metadata-ingestion/examples/library/programatic_pipeline.py) | ✅ |
diff --git a/docs/api/graphql/getting-started.md b/docs/api/graphql/getting-started.md
index bb701b86c2534..98aeca196600d 100644
--- a/docs/api/graphql/getting-started.md
+++ b/docs/api/graphql/getting-started.md
@@ -153,5 +153,3 @@ With the following error codes officially supported:
| 404 | NOT_FOUND | The resource is not found. |
| 500 | SERVER_ERROR | An internal error has occurred. Check your server logs or contact your DataHub administrator. |
-> Visit our [Slack channel](https://slack.datahubproject.io) to ask questions, tell us what we can do better, & make requests for what you'd like to see in the future. Or just
-> stop by to say 'Hi'.
diff --git a/docs/api/graphql/overview.md b/docs/api/graphql/overview.md
index aa4f1237c2c9a..3077d83416dff 100644
--- a/docs/api/graphql/overview.md
+++ b/docs/api/graphql/overview.md
@@ -38,6 +38,3 @@ that may be performed using the API.
- Available Operations: [Queries](/graphql/queries.md) (Reads) & [Mutations](/graphql/mutations.md) (Writes)
- Schema Types: [Objects](/graphql/objects.md), [Input Objects](/graphql/inputObjects.md), [Interfaces](/graphql/interfaces.md), [Unions](/graphql/unions.md), [Enums](/graphql/enums.md), [Scalars](/graphql/scalars.md)
-
-> Visit our [Slack channel](https://slack.datahubproject.io) to ask questions, tell us what we can do better, & make requests for what you'd like to see in the future. Or just
-> stop by to say 'Hi'.
diff --git a/docs/api/graphql/token-management.md b/docs/api/graphql/token-management.md
index f24ebd078f9ea..4a4dd90bb55be 100644
--- a/docs/api/graphql/token-management.md
+++ b/docs/api/graphql/token-management.md
@@ -131,6 +131,3 @@ curl --location --request POST 'http://localhost:8080/api/graphql' \
```
This endpoint will return a boolean detailing whether the operation was successful. In case of failure, an error message will appear explaining what went wrong.
-
-> Visit our [Slack channel](https://slack.datahubproject.io) to ask questions, tell us what we can do better, & make requests for what you'd like to see in the future. Or just
-> stop by to say 'Hi'.
diff --git a/docs/api/tutorials/lineage.md b/docs/api/tutorials/lineage.md
index 13ec716b7870b..cf83538c41ac3 100644
--- a/docs/api/tutorials/lineage.md
+++ b/docs/api/tutorials/lineage.md
@@ -1,13 +1,13 @@
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
-# Lineage
+# Data Lineage
## Why Would You Use Lineage?
-Lineage is used to capture data dependencies within an organization. It allows you to track the inputs from which a data asset is derived, along with the data assets that depend on it downstream.
+Data lineage is used to capture data dependencies within an organization. It allows you to track the inputs from which a data asset is derived, along with the data assets that depend on it downstream.
-For more information about lineage, refer to [About DataHub Lineage](/docs/generated/lineage/lineage-feature-guide.md).
+For more information about data lineage, refer to [About DataHub Lineage](/docs/generated/lineage/lineage-feature-guide.md).
### Goal Of This Guide
diff --git a/docs/architecture/architecture.md b/docs/architecture/architecture.md
index 20f18f09d949b..70c591aecca33 100644
--- a/docs/architecture/architecture.md
+++ b/docs/architecture/architecture.md
@@ -4,7 +4,7 @@ title: "Overview"
# DataHub Architecture Overview
-DataHub is a [3rd generation](https://engineering.linkedin.com/blog/2020/datahub-popular-metadata-architectures-explained) Metadata Platform that enables Data Discovery, Collaboration, Governance, and end-to-end Observability
+DataHub is a [3rd generation](https://engineering.linkedin.com/blog/2020/datahub-popular-metadata-architectures-explained) data catalog that enables Data Discovery, Collaboration, Governance, and end-to-end Observability
that is built for the Modern Data Stack. DataHub employs a model-first philosophy, with a focus on unlocking interoperability between
disparate tools & systems.
@@ -31,7 +31,7 @@ There are three main highlights of DataHub's architecture.
DataHub's metadata model is described using a [serialization agnostic language](https://linkedin.github.io/rest.li/pdl_schema). Both [REST](../../metadata-service) as well as [GraphQL API-s](../../datahub-web-react/src/graphql) are supported. In addition, DataHub supports an [AVRO-based API](../../metadata-events) over Kafka to communicate metadata changes and subscribe to them. Our [roadmap](../roadmap.md) includes a milestone to support no-code metadata model edits very soon, which will allow for even more ease of use, while retaining all the benefits of a typed API. Read about metadata modeling at [metadata modeling].
-### Stream-based Real-time Metadata Platform
+### Stream-based Real-time Metadata Management Platform
DataHub's metadata infrastructure is stream-oriented, which allows for changes in metadata to be communicated and reflected within the platform within seconds. You can also subscribe to changes happening in DataHub's metadata, allowing you to build real-time metadata-driven systems. For example, you can build an access-control system that can observe a previously world-readable dataset adding a new schema field which contains PII, and locks down that dataset for access control reviews.
diff --git a/docs/authentication/personal-access-tokens.md b/docs/authentication/personal-access-tokens.md
index dc57a989a4e0c..ad81caef66f8f 100644
--- a/docs/authentication/personal-access-tokens.md
+++ b/docs/authentication/personal-access-tokens.md
@@ -108,5 +108,5 @@ A PAT represents a user in DataHub, if that user does not have permissions for a
Yes, although not through the UI correctly, you will have to use the [token management graphQL API](../api/graphql/token-management.md) and the user making the request must have `Manage All Access Tokens` permissions.
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
diff --git a/docs/authorization/access-policies-guide.md b/docs/authorization/access-policies-guide.md
index 95a01b4317c82..b8c23b0cd79b0 100644
--- a/docs/authorization/access-policies-guide.md
+++ b/docs/authorization/access-policies-guide.md
@@ -250,8 +250,6 @@ The common Metadata Privileges, which span across entity types, include:
| Term Group | Manage All Glossary Children | Allow actor to change any direct or indirect child Term Groups or Terms of the group. |
-> **Still have questions about Privileges?** Let us know in [Slack](https://slack.datahubproject.io)!
-
#### Step 3: Choose Policy Actors
@@ -355,7 +353,7 @@ Policies are the lowest level primitive for granting Privileges to users on Data
Roles are built for convenience on top of Policies. Roles grant Privileges to actors indirectly, driven by Policies
behind the scenes. Both can be used in conjunction to grant Privileges to end users.
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
### Related Features
diff --git a/docs/dataproducts.md b/docs/dataproducts.md
index 42808fb58e9e9..af30ff2a0aa09 100644
--- a/docs/dataproducts.md
+++ b/docs/dataproducts.md
@@ -132,7 +132,7 @@ There are many more advanced cli commands for managing Data Products as code. Ta
The following features are next on the roadmap for Data Products
- Support for marking data assets in a Data Product as private versus shareable for other teams to consume
-- Support for declaring lineage manually to upstream and downstream data products
+- Support for declaring data lineage manually to upstream and downstream data products
- Support for declaring logical schema for Data Products
- Support for associating data contracts with Data Products
- Support for semantic versioning of the Data Product entity
@@ -145,4 +145,4 @@ The following features are next on the roadmap for Data Products
* [Tags](./tags.md)
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
diff --git a/docs/domains.md b/docs/domains.md
index 94ba5f9f96197..afaec796d55df 100644
--- a/docs/domains.md
+++ b/docs/domains.md
@@ -252,7 +252,7 @@ DataHub supports Tags, Glossary Terms, & Domains as distinct types of Metadata t
- **Tags**: Informal, loosely controlled labels that serve as a tool for search & discovery. Assets may have multiple tags. No formal, central management.
- **Glossary Terms**: A controlled vocabulary, with optional hierarchy. Terms are typically used to standardize types of leaf-level attributes (i.e. schema fields) for governance. E.g. (EMAIL_PLAINTEXT)
- **Domains**: A set of top-level categories. Usually aligned to business units / disciplines to which the assets are most relevant. Central or distributed management. Single Domain assignment per data asset.
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
### Related Features
diff --git a/docs/features.md b/docs/features.md
index 2eacc8c5a3016..7951eea1f909c 100644
--- a/docs/features.md
+++ b/docs/features.md
@@ -9,8 +9,8 @@ import FeatureCardSection from '@site/src/pages/docs/_components/FeatureCardSect
# What is DataHub?
-DataHub is a modern data catalog built to enable end-to-end data discovery, data observability, and data governance.
-This extensible metadata platform is built for developers to tame the complexity of their rapidly evolving data ecosystems and for data practitioners to leverage the total value of data within their organization.
+DataHub is a modern data catalog designed to streamline metadata management, data discovery, and data governance. It enables users to efficiently explore and understand their data, track data lineage, profile datasets, and establish data contracts.
+This extensible metadata management platform is built for developers to tame the complexity of their rapidly evolving data ecosystems and for data practitioners to leverage the total value of data within their organization.
## Quickstart
diff --git a/docs/features/dataset-usage-and-query-history.md b/docs/features/dataset-usage-and-query-history.md
index 06bb827edc69b..2d06b932572b7 100644
--- a/docs/features/dataset-usage-and-query-history.md
+++ b/docs/features/dataset-usage-and-query-history.md
@@ -74,4 +74,4 @@ With the collected usage data, you can even see column-level usage statistics (R
Queries/Stats tab is greyed out if there is no usage statistics for that dataset or there were no ingestion with usage extraction run before.
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
diff --git a/docs/features/feature-guides/ui-lineage.md b/docs/features/feature-guides/ui-lineage.md
index 18e4f77e793b2..a91046e7ec5e7 100644
--- a/docs/features/feature-guides/ui-lineage.md
+++ b/docs/features/feature-guides/ui-lineage.md
@@ -1,11 +1,11 @@
-# Managing Lineage via UI
+# Managing Data Lineage via UI
-## Viewing lineage
-The UI shows the latest version of the lineage. The time picker can be used to filter out edges within the latest version to exclude those that were last updated outside of the time window. Selecting time windows in the patch will not show you historical lineages. It will only filter the view of the latest version of the lineage.
+## Viewing Data Lineage
+The UI shows the latest version of the data lineage. The time picker can be used to filter out edges within the latest version to exclude those that were last updated outside of the time window. Selecting time windows in the patch will not show you historical data lineages. It will only filter the view of the latest version of the lineage.
## Editing from Lineage Graph View
-The first place that you can edit lineage for entities is from the Lineage Visualization screen. Click on the "Lineage" button on the top right of an entity's profile to get to this view.
+The first place that you can edit data lineage for entities is from the Lineage Visualization screen. Click on the "Lineage" button on the top right of an entity's profile to get to this view.
@@ -25,7 +25,7 @@ If you want to edit upstream lineage for entities downstream of the center node
### Adding Lineage Edges
-Once you click "Edit Upstream" or "Edit Downstream," a modal will open that allows you to manage lineage for the selected entity in the chosen direction. In order to add a lineage edge to a new entity, search for it by name in the provided search bar and select it. Once you're satisfied with everything you've added, click "Save Changes." If you change your mind, you can always cancel or exit without saving the changes you've made.
+Once you click "Edit Upstream" or "Edit Downstream," a modal will open that allows you to manage data lineage for the selected entity in the chosen direction. In order to add a lineage edge to a new entity, search for it by name in the provided search bar and select it. Once you're satisfied with everything you've added, click "Save Changes." If you change your mind, you can always cancel or exit without saving the changes you've made.
diff --git a/docs/how/search.md b/docs/how/search.md
index 6a5e85e547fc5..0b718fc9dc77f 100644
--- a/docs/how/search.md
+++ b/docs/how/search.md
@@ -20,9 +20,12 @@ Search is available for all users. Although Search works out of the box, the mor
Searching is as easy as typing in relevant business terms and pressing 'enter' to view matching data assets.
-By default, search terms will match against different aspects of a data assets. This includes asset names, descriptions, tags, terms, owners, and even specific attributes like the names of columns in a table.
+By default, search terms will match against different aspects of a data assets. This includes asset names, descriptions, tags, terms, owners, and even specific attributes like the names of columns in a table.
+
+### Search Operators
+
+The default boolean logic used to interpret text in a query string is `AND`. For example, a query of `information about orders` is interpreted as `information AND about AND orders`.
-
### Filters
The filters sidebar sits on the left hand side of search results, and lets users find assets by drilling down. You can quickly filter by Data Platform (e.g. Snowflake), Tags, Glossary Terms, Domain, Owners, and more with a single click.
@@ -479,7 +482,7 @@ Response in plain text
-->
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
### Related Features
diff --git a/docs/how/updating-datahub.md b/docs/how/updating-datahub.md
index eeb184ffadd48..f5b3600d98306 100644
--- a/docs/how/updating-datahub.md
+++ b/docs/how/updating-datahub.md
@@ -20,6 +20,8 @@ This file documents any backwards-incompatible changes in DataHub and assists pe
### Breaking Changes
+- #10419 - `aws_session_token` and `aws_region` are now required configurations in the DynamoDB connector. The connector will no longer loop through all AWS regions; instead, it will only use the region passed into the recipe configuration.
+
### Potential Downtime
### Deprecations
diff --git a/docs/managed-datahub/managed-datahub-overview.md b/docs/managed-datahub/managed-datahub-overview.md
index c463da7e01678..edca6df9b90f9 100644
--- a/docs/managed-datahub/managed-datahub-overview.md
+++ b/docs/managed-datahub/managed-datahub-overview.md
@@ -1,6 +1,6 @@
# How Acryl DataHub compares to DataHub
-DataHub is the #1 open source metadata platform for developers.
+DataHub is the #1 open source data catalog for developers.
Acryl DataHub takes DataHub to the next level by offering features that allow
you to roll out the product to the entire organization beyond your central data
diff --git a/docs/managed-datahub/observe/assertions.md b/docs/managed-datahub/observe/assertions.md
index f6d47ebfb30e2..b74d524dff1bd 100644
--- a/docs/managed-datahub/observe/assertions.md
+++ b/docs/managed-datahub/observe/assertions.md
@@ -1,7 +1,7 @@
# Assertions
:::note Contract Monitoring Support
-Currently we support Snowflake, Databricks, Redshift, and BigQuery for out-of-the-box contract monitoring as part of Acryl Observe.
+Currently we support Snowflake, Redshift, BigQuery, and Databricks for out-of-the-box contract monitoring as part of Acryl Observe.
:::
An assertion is **a data quality test that finds data that violates a specified rule.**
diff --git a/docs/managed-datahub/observe/column-assertions.md b/docs/managed-datahub/observe/column-assertions.md
index a5dcb02c87bad..a0ca8abe26d51 100644
--- a/docs/managed-datahub/observe/column-assertions.md
+++ b/docs/managed-datahub/observe/column-assertions.md
@@ -18,7 +18,7 @@ import FeatureAvailability from '@site/src/components/FeatureAvailability';
Can you remember a time when an important warehouse table column changed dramatically, with little or no notice? Perhaps the number of null values suddenly spiked, or a new value was added to a fixed set of possible values. If the answer is yes, how did you initially find out? We'll take a guess - someone looking at an internal reporting dashboard or worse, a user using your your product, sounded an alarm when a number looked a bit out of the ordinary.
-There are many reasons why important columns in your Snowflake, Redshift, or BigQuery tables may change - application code bugs, new feature rollouts, etc. Oftentimes, these changes break important assumptions made about the data used in building key downstream data products like reporting dashboards or data-driven product features.
+There are many reasons why important columns in your Snowflake, Redshift, BigQuery, or Databricks tables may change - application code bugs, new feature rollouts, etc. Oftentimes, these changes break important assumptions made about the data used in building key downstream data products like reporting dashboards or data-driven product features.
What if you could reduce the time to detect these incidents, so that the people responsible for the data were made aware of data issues before anyone else? With Acryl DataHub Column Assertions, you can.
@@ -41,7 +41,7 @@ Note that an Ingestion Source _must_ be configured with the data platform of you
Acryl DataHub's **Ingestion** tab.
> Note that Column Assertions are not yet supported if you are connecting to your warehouse
-> using the DataHub CLI or a Remote Ingestion Executor.
+> using the DataHub CLI.
## What is a Column Assertion?
@@ -121,7 +121,7 @@ another always-increasing number - that can be used to find the "new rows" that
`Edit Assertions` and `Edit Monitors` privileges for the entity. This is granted to Entity owners by default.
2. **Data Platform Connection**: In order to create a Column Assertion, you'll need to have an **Ingestion Source**
- configured to your Data Platform: Snowflake, BigQuery, or Redshift under the **Ingestion** tab.
+ configured to your Data Platform: Snowflake, BigQuery, Redshift, or Databricks under the **Ingestion** tab.
Once these are in place, you're ready to create your Column Assertions!
diff --git a/docs/managed-datahub/observe/custom-sql-assertions.md b/docs/managed-datahub/observe/custom-sql-assertions.md
index 434788ff45a6f..adf1c8bd44c8b 100644
--- a/docs/managed-datahub/observe/custom-sql-assertions.md
+++ b/docs/managed-datahub/observe/custom-sql-assertions.md
@@ -22,7 +22,7 @@ If the answer is yes, how did you find out? We'll take a guess - someone looking
a number looked a bit out of the ordinary. Perhaps your table initially tracked purchases made on your company's e-commerce web store, but suddenly began to include purchases made
through your company's new mobile app.
-There are many reasons why an important Table on Snowflake, Redshift, or BigQuery may change in its meaning - application code bugs, new feature rollouts,
+There are many reasons why an important Table on Snowflake, Redshift, BigQuery, or Databricks may change in its meaning - application code bugs, new feature rollouts,
changes to key metric definitions, etc. Often times, these changes break important assumptions made about the data used in building key downstream data products
like reporting dashboards or data-driven product features.
@@ -49,7 +49,7 @@ Note that an Ingestion Source _must_ be configured with the data platform of you
tab.
> Note that SQL Assertions are not yet supported if you are connecting to your warehouse
-> using the DataHub CLI or a Remote Ingestion Executor.
+> using the DataHub CLI.
## What is a Custom SQL Assertion?
@@ -120,7 +120,7 @@ The **Assertion Description**: This is a human-readable description of the Asser
`Edit Assertions`, `Edit Monitors`, **and the additional `Edit SQL Assertion Monitors`** privileges for the entity. This is granted to Entity owners by default.
2. **Data Platform Connection**: In order to create a Custom SQL Assertion, you'll need to have an **Ingestion Source** configured to your
- Data Platform: Snowflake, BigQuery, or Redshift under the **Integrations** tab.
+ Data Platform: Snowflake, BigQuery, Redshift, or Databricks under the **Integrations** tab.
Once these are in place, you're ready to create your Custom SQL Assertions!
diff --git a/docs/managed-datahub/observe/freshness-assertions.md b/docs/managed-datahub/observe/freshness-assertions.md
index 50cae1567f93a..14ff828dc7376 100644
--- a/docs/managed-datahub/observe/freshness-assertions.md
+++ b/docs/managed-datahub/observe/freshness-assertions.md
@@ -22,7 +22,7 @@ months without being updated with fresh data?
Perhaps a bug had been introduced into an upstream Airflow DAG
or worse, the person in charge of maintaining the Table has departed from your organization entirely.
-There are many reasons why an important Table on Snowflake, Redshift, or BigQuery may fail to be updated as often as expected.
+There are many reasons why an important Table on Snowflake, Redshift, BigQuery, or Databricks may fail to be updated as often as expected.
What if you could reduce the time to detect these incidents, so that the people responsible for the data were made aware of data
issues _before_ anyone else? What if you could communicate commitments about the freshness or change frequency
@@ -49,7 +49,7 @@ Note that an Ingestion Source _must_ be configured with the data platform of you
tab.
> Note that Freshness Assertions are not yet supported if you are connecting to your warehouse
-> using the DataHub CLI or a Remote Ingestion Executor.
+> using the DataHub CLI.
## What is a Freshness Assertion?
@@ -147,7 +147,7 @@ Freshness Assertions also have an off switch: they can be started or stopped at
`Edit Assertions` and `Edit Monitors` privileges for the entity. This is granted to Entity owners by default.
2. **Data Platform Connection**: In order to create a Freshness Assertion, you'll need to have an **Ingestion Source** configured to your
-Data Platform: Snowflake, BigQuery, or Redshift under the **Integrations** tab.
+Data Platform: Snowflake, BigQuery, Redshift, or Databricks under the **Integrations** tab.
Once these are in place, you're ready to create your Freshness Assertions!
@@ -260,7 +260,7 @@ As part of the **Acryl Observe** module, Acryl DataHub also provides **Smart Ass
dynamic, AI-powered Freshness Assertions that you can use to monitor the freshness of important warehouse Tables, without
requiring any manual setup.
-If Acryl DataHub is able to detect a pattern in the change frequency of a Snowflake, Redshift, or BigQuery Table, you'll find
+If Acryl DataHub is able to detect a pattern in the change frequency of a Snowflake, Redshift, BigQuery, or Databricks Table, you'll find
a recommended Smart Assertion under the `Validations` tab on the Table profile page:
diff --git a/docs/managed-datahub/observe/volume-assertions.md b/docs/managed-datahub/observe/volume-assertions.md
index f925920a0c248..2a98b37576c41 100644
--- a/docs/managed-datahub/observe/volume-assertions.md
+++ b/docs/managed-datahub/observe/volume-assertions.md
@@ -22,7 +22,7 @@ If the answer is yes, how did you find out? We'll take a guess - someone looking
a number looked a bit out of the ordinary. Perhaps your table initially tracked purchases made on your company's e-commerce web store, but suddenly began to include purchases made
through your company's new mobile app.
-There are many reasons why an important Table on Snowflake, Redshift, or BigQuery may change in its meaning - application code bugs, new feature rollouts,
+There are many reasons why an important Table on Snowflake, Redshift, BigQuery, or Databricks may change in its meaning - application code bugs, new feature rollouts,
changes to key metric definitions, etc. Often times, these changes break important assumptions made about the data used in building key downstream data products
like reporting dashboards or data-driven product features.
@@ -50,7 +50,7 @@ Note that an Ingestion Source _must_ be configured with the data platform of you
tab.
> Note that Volume Assertions are not yet supported if you are connecting to your warehouse
-> using the DataHub CLI or a Remote Ingestion Executor.
+> using the DataHub CLI.
## What is a Volume Assertion?
@@ -140,7 +140,7 @@ Volume Assertions also have an off switch: they can be started or stopped at any
`Edit Assertions` and `Edit Monitors` privileges for the entity. This is granted to Entity owners by default.
2. **Data Platform Connection**: In order to create a Volume Assertion, you'll need to have an **Ingestion Source** configured to your
- Data Platform: Snowflake, BigQuery, or Redshift under the **Integrations** tab.
+ Data Platform: Snowflake, BigQuery, Redshift, or Databricks under the **Integrations** tab.
Once these are in place, you're ready to create your Volume Assertions!
@@ -238,7 +238,7 @@ As part of the **Acryl Observe** module, Acryl DataHub also provides **Smart Ass
dynamic, AI-powered Volume Assertions that you can use to monitor the volume of important warehouse Tables, without
requiring any manual setup.
-If Acryl DataHub is able to detect a pattern in the volume of a Snowflake, Redshift, or BigQuery Table, you'll find
+If Acryl DataHub is able to detect a pattern in the volume of a Snowflake, Redshift, BigQuery, or Databricks Table, you'll find
a recommended Smart Assertion under the `Validations` tab on the Table profile page:
diff --git a/docs/ownership/ownership-types.md b/docs/ownership/ownership-types.md
index dbb08dd71ce6b..f14cee6f4fa16 100644
--- a/docs/ownership/ownership-types.md
+++ b/docs/ownership/ownership-types.md
@@ -178,4 +178,4 @@ To remove ownership from an asset, click the 'x' icon on the Owner label.
> by a [Policy](./../authorization/policies.md).
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
diff --git a/docs/posts.md b/docs/posts.md
index 6e7f42d3eb1b4..cdaf9d4325d0f 100644
--- a/docs/posts.md
+++ b/docs/posts.md
@@ -117,7 +117,3 @@ mutation deletePosting {
)
}
```
-
-## FAQ and Troubleshooting
-
-*Need more help with Posts? Join the conversation in [Slack](http://slack.datahubproject.io)! Please post in the **#ui** channel!*
diff --git a/docs/quick-ingestion-guides/bigquery/configuration.md b/docs/quick-ingestion-guides/bigquery/configuration.md
index 9806395f7809c..5aec5b5112a9d 100644
--- a/docs/quick-ingestion-guides/bigquery/configuration.md
+++ b/docs/quick-ingestion-guides/bigquery/configuration.md
@@ -147,4 +147,4 @@ You will now find your new ingestion source running
**Congratulations!** You've successfully set up BigQuery as an ingestion source for DataHub!
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
diff --git a/docs/quick-ingestion-guides/bigquery/overview.md b/docs/quick-ingestion-guides/bigquery/overview.md
index 8cd6879847898..05244b3f8a8e2 100644
--- a/docs/quick-ingestion-guides/bigquery/overview.md
+++ b/docs/quick-ingestion-guides/bigquery/overview.md
@@ -34,4 +34,4 @@ If you're looking to do something more in-depth, want to use CLI instead of the
* Learn about CLI Ingestion in the [Introduction to Metadata Ingestion](../../../metadata-ingestion/README.md)
* [BigQuery Ingestion Reference Guide](https://datahubproject.io/docs/generated/ingestion/sources/bigquery/#module-bigquery)
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
diff --git a/docs/quick-ingestion-guides/bigquery/setup.md b/docs/quick-ingestion-guides/bigquery/setup.md
index 9d4f0378f5028..10351d6572c53 100644
--- a/docs/quick-ingestion-guides/bigquery/setup.md
+++ b/docs/quick-ingestion-guides/bigquery/setup.md
@@ -61,4 +61,4 @@ The key file looks like this:
Once you've confirmed all of the above in BigQuery, it's time to [move on](configuration.md) to configure the actual ingestion source within the DataHub UI.
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
diff --git a/docs/quick-ingestion-guides/looker/configuration.md b/docs/quick-ingestion-guides/looker/configuration.md
index d9ba1907b006e..20e185c357985 100644
--- a/docs/quick-ingestion-guides/looker/configuration.md
+++ b/docs/quick-ingestion-guides/looker/configuration.md
@@ -209,4 +209,4 @@ Pick an entity from the list to manually validate if it contains the detail you
**Congratulations!** You've successfully set up Looker & LookML as an ingestion source for DataHub!
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
diff --git a/docs/quick-ingestion-guides/looker/overview.md b/docs/quick-ingestion-guides/looker/overview.md
index 843d704526bcc..9c72c7b13ec92 100644
--- a/docs/quick-ingestion-guides/looker/overview.md
+++ b/docs/quick-ingestion-guides/looker/overview.md
@@ -49,4 +49,4 @@ If you want to ingest metadata from Looker using the DataHub CLI, check out the
* Learn about CLI Ingestion in the [Introduction to Metadata Ingestion](../../../metadata-ingestion/README.md)
* [Looker Ingestion Source](https://datahubproject.io/docs/generated/ingestion/sources/Looker)
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
diff --git a/docs/quick-ingestion-guides/looker/setup.md b/docs/quick-ingestion-guides/looker/setup.md
index 81c2c9e4ba08c..dbf9d0992ac3c 100644
--- a/docs/quick-ingestion-guides/looker/setup.md
+++ b/docs/quick-ingestion-guides/looker/setup.md
@@ -154,4 +154,3 @@ Make a note of the private key file. You must paste the file's contents into the
Once you've done all the above steps, it's time to move on to [configuring the actual ingestion source](configuration.md) within DataHub.
-_Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!_
\ No newline at end of file
diff --git a/docs/quick-ingestion-guides/powerbi/configuration.md b/docs/quick-ingestion-guides/powerbi/configuration.md
index 400f695ad2611..cf5a4641d9c95 100644
--- a/docs/quick-ingestion-guides/powerbi/configuration.md
+++ b/docs/quick-ingestion-guides/powerbi/configuration.md
@@ -159,4 +159,3 @@ You will now find your new ingestion source running
**Congratulations!** You've successfully set up PowerBI as an ingestion source for DataHub!
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
\ No newline at end of file
diff --git a/docs/quick-ingestion-guides/powerbi/overview.md b/docs/quick-ingestion-guides/powerbi/overview.md
index 4377ab97f1a52..4a6fe96a30015 100644
--- a/docs/quick-ingestion-guides/powerbi/overview.md
+++ b/docs/quick-ingestion-guides/powerbi/overview.md
@@ -30,4 +30,3 @@ If you want to ingest metadata from PowerBI using the DataHub CLI, check out the
* Learn about CLI Ingestion in the [Introduction to Metadata Ingestion](../../../metadata-ingestion/README.md)
* [PowerBI Ingestion Source](https://datahubproject.io/docs/generated/ingestion/sources/powerbi)
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
\ No newline at end of file
diff --git a/docs/quick-ingestion-guides/powerbi/setup.md b/docs/quick-ingestion-guides/powerbi/setup.md
index 2eba1903ebf4c..0aed3559fd3e5 100644
--- a/docs/quick-ingestion-guides/powerbi/setup.md
+++ b/docs/quick-ingestion-guides/powerbi/setup.md
@@ -80,4 +80,4 @@ In order to configure ingestion from PowerBI, you'll first have to ensure you ha
Once you've done all of the above steps, it's time to [move on](configuration.md) to configuring the actual ingestion source within DataHub.
-_Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!_
+
diff --git a/docs/quick-ingestion-guides/redshift/configuration.md b/docs/quick-ingestion-guides/redshift/configuration.md
index dcfecc61dcede..811361d4f6584 100644
--- a/docs/quick-ingestion-guides/redshift/configuration.md
+++ b/docs/quick-ingestion-guides/redshift/configuration.md
@@ -133,4 +133,4 @@ You will now find your new ingestion source running
**Congratulations!** You've successfully set up Redshift as an ingestion source for DataHub!
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
diff --git a/docs/quick-ingestion-guides/redshift/overview.md b/docs/quick-ingestion-guides/redshift/overview.md
index 42d3b91ada192..ef8c5aa963d2e 100644
--- a/docs/quick-ingestion-guides/redshift/overview.md
+++ b/docs/quick-ingestion-guides/redshift/overview.md
@@ -35,4 +35,4 @@ If you're looking to do something more in-depth, want to use CLI instead of the
* Learn about CLI Ingestion in the [Introduction to Metadata Ingestion](../../../metadata-ingestion/README.md)
* [Redshift Ingestion Reference Guide](https://datahubproject.io/docs/generated/ingestion/sources/redshift/#module-redshift)
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
diff --git a/docs/quick-ingestion-guides/redshift/setup.md b/docs/quick-ingestion-guides/redshift/setup.md
index 8308b09b1f782..8b6701a9080b8 100644
--- a/docs/quick-ingestion-guides/redshift/setup.md
+++ b/docs/quick-ingestion-guides/redshift/setup.md
@@ -32,4 +32,4 @@ GRANT SELECT ON pg_catalog.svl_user_info to datahub;
Once you've confirmed all of the above in Redshift, it's time to [move on](configuration.md) to configure the actual ingestion source within the DataHub UI.
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
diff --git a/docs/quick-ingestion-guides/snowflake/configuration.md b/docs/quick-ingestion-guides/snowflake/configuration.md
index 30e568d54a1b1..8f46cf1c77e03 100644
--- a/docs/quick-ingestion-guides/snowflake/configuration.md
+++ b/docs/quick-ingestion-guides/snowflake/configuration.md
@@ -142,4 +142,3 @@ You will now find your new ingestion source running
**Congratulations!** You've successfully set up Snowflake as an ingestion source for DataHub!
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
\ No newline at end of file
diff --git a/docs/quick-ingestion-guides/snowflake/overview.md b/docs/quick-ingestion-guides/snowflake/overview.md
index 57de66c45bcf4..15be60254f035 100644
--- a/docs/quick-ingestion-guides/snowflake/overview.md
+++ b/docs/quick-ingestion-guides/snowflake/overview.md
@@ -45,4 +45,3 @@ If you want to ingest metadata from Snowflake using the DataHub CLI, check out t
* Learn about CLI Ingestion in the [Introduction to Metadata Ingestion](../../../metadata-ingestion/README.md)
* [Snowflake Ingestion Source](https://datahubproject.io/docs/generated/ingestion/sources/snowflake/#module-snowflake)
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
\ No newline at end of file
diff --git a/docs/quick-ingestion-guides/snowflake/setup.md b/docs/quick-ingestion-guides/snowflake/setup.md
index c3882b611db9c..af5f15492376b 100644
--- a/docs/quick-ingestion-guides/snowflake/setup.md
+++ b/docs/quick-ingestion-guides/snowflake/setup.md
@@ -67,4 +67,4 @@ In order to configure ingestion from Snowflake, you'll first have to ensure you
Once you've done all of the above in Snowflake, it's time to [move on](configuration.md) to configuring the actual ingestion source within DataHub.
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
diff --git a/docs/quick-ingestion-guides/tableau/configuration.md b/docs/quick-ingestion-guides/tableau/configuration.md
index 55fc8dbfe042d..ae4a058a30d1f 100644
--- a/docs/quick-ingestion-guides/tableau/configuration.md
+++ b/docs/quick-ingestion-guides/tableau/configuration.md
@@ -149,4 +149,3 @@ You will now find your new ingestion source running
**Congratulations!** You've successfully set up Tableau as an ingestion source for DataHub!
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
\ No newline at end of file
diff --git a/docs/quick-ingestion-guides/tableau/overview.md b/docs/quick-ingestion-guides/tableau/overview.md
index bbb3ed049ff38..aa6c901923435 100644
--- a/docs/quick-ingestion-guides/tableau/overview.md
+++ b/docs/quick-ingestion-guides/tableau/overview.md
@@ -35,4 +35,3 @@ If you want to ingest metadata from Tableau using the DataHub CLI, check out the
* Learn about CLI Ingestion in the [Introduction to Metadata Ingestion](../../../metadata-ingestion/README.md)
* [Tableau Ingestion Source](https://datahubproject.io/docs/generated/ingestion/sources/tableau)
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
\ No newline at end of file
diff --git a/docs/quick-ingestion-guides/tableau/setup.md b/docs/quick-ingestion-guides/tableau/setup.md
index 1db40d2820c59..b6ccaf2a9cc9e 100644
--- a/docs/quick-ingestion-guides/tableau/setup.md
+++ b/docs/quick-ingestion-guides/tableau/setup.md
@@ -56,4 +56,3 @@ In order to configure ingestion from Tableau, you'll first have to enable Tablea
Once you've done all of the above in Tableau, it's time to [move on](configuration.md) to configuring the actual ingestion source within DataHub.
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
\ No newline at end of file
diff --git a/docs/roadmap.md b/docs/roadmap.md
index f844b29db974c..7271c1593318b 100644
--- a/docs/roadmap.md
+++ b/docs/roadmap.md
@@ -128,7 +128,7 @@ Use-Case: Support for free-form global tags for social collaboration and aiding
- [x] UI support for attaching business terms to entities and fields
#### Jobs, Flows / Pipelines
-Use case: Search and Discover your Pipelines (e.g. Airflow DAGs) and understand lineage with datasets
+Use case: Search and Discover your Pipelines (e.g. Airflow DAGs) and understand data lineage with datasets
- [x] Support for Metadata Models + Backend Implementation
- [x] Metadata Integrations with systems like Airflow.
diff --git a/docs/slack.md b/docs/slack.md
index 0fadccf239699..e1ef4593791e0 100644
--- a/docs/slack.md
+++ b/docs/slack.md
@@ -2,7 +2,7 @@
The DataHub Slack is a thriving and rapidly growing community - we can't wait for you to join us!
-_[Sign up here](https://slack.datahubproject.io) to join us on Slack and to subscribe to the DataHub Community newsletter. Already a member? [Log in here](https://slack.datahubproject.io)._
+_[Sign up here](https://datahubproject.io/slack?utm_source=docs&utm_medium=docs&utm_campaign=docs_page_link) to join us on Slack and to subscribe to the DataHub Community newsletter. Already a member? [Log in here](https://datahubproject.io/slack?utm_source=docs&utm_medium=docs&utm_campaign=docs_page_link)._
## Slack Guidelines
diff --git a/docs/sync-status.md b/docs/sync-status.md
index 7ece80c95a38f..a249a324e561c 100644
--- a/docs/sync-status.md
+++ b/docs/sync-status.md
@@ -43,4 +43,4 @@ You can hover over the sync status message in the UI to view the exact timestamp
-_Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!_
+
diff --git a/docs/tags.md b/docs/tags.md
index cb08c9fafea49..f626ae79b1a0f 100644
--- a/docs/tags.md
+++ b/docs/tags.md
@@ -103,7 +103,7 @@ Usage and applications:
Domains are a set of top-level categories usually aligned to business units/disciplines to which the assets are most relevant. They rely on central or distributed management. A single domain is assigned per data asset.
-*Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!*
+
### Related Features
diff --git a/docs/tests/metadata-tests.md b/docs/tests/metadata-tests.md
index c1b8c4ba36fe9..7164b34a16ade 100644
--- a/docs/tests/metadata-tests.md
+++ b/docs/tests/metadata-tests.md
@@ -265,4 +265,4 @@ a Metadata Test may verify that ALL tables in Snowflake have at least 1 assigned
Metadata Tests allow you to manage broad policies across your entire data ecosystem driven by metadata, for example to
augment a larger scale Data Governance initiative.
-_Need more help? Join the conversation in [Slack](http://slack.datahubproject.io)!_
+
diff --git a/docs/townhall-history.md b/docs/townhall-history.md
index 0242e4ec2cee1..1b38a94725ee7 100644
--- a/docs/townhall-history.md
+++ b/docs/townhall-history.md
@@ -9,7 +9,7 @@ For the Town Hall meetings after June 2023, please refer to our [LinkedIn Live e
- Community & Project Updates - Maggie Hays & Shirshanka Das (Acryl Data)
- Community Case Study: Dataset Joins - Raj Tekal & Bobbie-Jean Nowak (Optum)
-- DataHub 201: Column-Level Lineage - Hyejin Yoon (Acryl Data)
+- DataHub 201: Column-Level Data Lineage - Hyejin Yoon (Acryl Data)
- Sneak Peek: BigQuery Column-Level Lineage with SQL Parsing - Harshal Sheth (Acryl Data)
- DataHub Performance Tuning – Indy Prentice (Acryl Data)
@@ -196,7 +196,7 @@ November Town Hall (in December!)
- Lineage Impact Analysis - using DataHub to understand the impact of changes on downstream dependencies
- Displaying Data Quality Checks in the UI
- Roadmap update: Schema Version History & Column-Level Lineage
-- Community Case Study: Managing Lineage via YAML
+- Community Case Study: Managing Data Lineage via YAML
### Jan 2022
[Full YouTube video](https://youtu.be/ShlSR3dMUnE)
@@ -340,7 +340,7 @@ November Town Hall (in December!)
- 0.7.1 Release and callouts (dbt by Gary Lucas)
- Product Analytics design sprint announcement (Maggie Hayes)
- Use-Case: DataHub at DefinedCrowd ([video](https://www.youtube.com/watch?v=qz5Rpmw8I5E)) by Pedro Silva - 15 mins
-- Deep Dive + Demo: Lineage! Airflow, Superset integration ([video](https://www.youtube.com/watch?v=3wiaqhb8UR0)) by Harshal Sheth and Gabe Lyons - 10 mins
+- Deep Dive + Demo: Data Lineage! Airflow, Superset integration ([video](https://www.youtube.com/watch?v=3wiaqhb8UR0)) by Harshal Sheth and Gabe Lyons - 10 mins
- Use-Case: DataHub Hackathon at Depop ([video](https://www.youtube.com/watch?v=SmOMyFc-9J0)) by John Cragg - 10 mins
- Observability Feedback share out - 5 mins
- General Q&A and closing remarks - 5 mins
diff --git a/docs/troubleshooting/quickstart.md b/docs/troubleshooting/quickstart.md
index 0dfe11179083c..9da5aa443069e 100644
--- a/docs/troubleshooting/quickstart.md
+++ b/docs/troubleshooting/quickstart.md
@@ -67,15 +67,6 @@ docker system prune
-
-
-Still stuck?
-
-
-Hop over to our [Slack community](https://slack.datahubproject.io) and ask for help in the [#troubleshoot](https://datahubspace.slack.com/archives/C029A3M079U) channel!
-
-
-
## How can I confirm if all Docker containers are running as expected after a quickstart?
If you set up the `datahub` CLI tool (see [here](../../metadata-ingestion/README.md)), you can use the built-in check utility:
diff --git a/metadata-ingestion/docs/dev_guides/profiling_ingestions.md b/metadata-ingestion/docs/dev_guides/profiling_ingestions.md
index 77cc2f456aa2d..0825a8d61a66b 100644
--- a/metadata-ingestion/docs/dev_guides/profiling_ingestions.md
+++ b/metadata-ingestion/docs/dev_guides/profiling_ingestions.md
@@ -91,4 +91,4 @@ This will generate an interactive HTML file for analysis:
## Questions
-If you've got any questions on configuring profiling, feel free to ping us on [our Slack](https://slack.datahubproject.io/)!
+If you've got any questions on configuring profiling, feel free to ping us on [our Slack](https://datahubproject.io/slack?utm_source=docs&utm_medium=docs&utm_campaign=docs_page_link)!
diff --git a/metadata-ingestion/docs/dev_guides/sql_profiles.md b/metadata-ingestion/docs/dev_guides/sql_profiles.md
index c0fde8f6fce53..d211ef1f3f473 100644
--- a/metadata-ingestion/docs/dev_guides/sql_profiles.md
+++ b/metadata-ingestion/docs/dev_guides/sql_profiles.md
@@ -30,4 +30,4 @@ SQL profiling is supported for all SQL sources. Check the individual source page
## Questions
-If you've got any questions on configuring profiling, feel free to ping us on [our Slack](https://slack.datahubproject.io/)!
+If you've got any questions on configuring profiling, feel free to ping us on [our Slack](https://datahubproject.io/slack?utm_source=docs&utm_medium=docs&utm_campaign=docs_page_link)!
diff --git a/metadata-ingestion/docs/sources/dynamodb/dynamodb_pre.md b/metadata-ingestion/docs/sources/dynamodb/dynamodb_pre.md
index 598d0ecdb3786..d6815774b7df0 100644
--- a/metadata-ingestion/docs/sources/dynamodb/dynamodb_pre.md
+++ b/metadata-ingestion/docs/sources/dynamodb/dynamodb_pre.md
@@ -1,5 +1,7 @@
### Prerequisities
+Notice of breaking change: in the latest version of the DynamoDB connector, both `aws_session_token` and `aws_region` are required configurations. The connector will no longer loop through all AWS regions; instead, it will only use the region passed into the recipe configuration.
+
In order to execute this source, you need to attach the `AmazonDynamoDBReadOnlyAccess` policy to a user in your AWS account. Then create an API access key and secret for the user.
For a user to be able to create API access key, it needs the following access key permissions. Your AWS account admin can create a policy with these permissions and attach to the user, you can find more details in [Managing access keys for IAM users](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_access-keys.html)
diff --git a/metadata-ingestion/docs/sources/dynamodb/dynamodb_recipe.yml b/metadata-ingestion/docs/sources/dynamodb/dynamodb_recipe.yml
index 4f4edc9a7d496..2b4149fa92aac 100644
--- a/metadata-ingestion/docs/sources/dynamodb/dynamodb_recipe.yml
+++ b/metadata-ingestion/docs/sources/dynamodb/dynamodb_recipe.yml
@@ -4,6 +4,8 @@ source:
platform_instance: "AWS_ACCOUNT_ID"
aws_access_key_id: "${AWS_ACCESS_KEY_ID}"
aws_secret_access_key: "${AWS_SECRET_ACCESS_KEY}"
+ aws_session_token: "${AWS_SESSION_TOKEN}"
+ aws_region: "${AWS_REGION}"
#
# If there are items that have most representative fields of the table, users could use the
# `include_table_item` option to provide a list of primary keys of the table in dynamodb format.
diff --git a/metadata-ingestion/docs/sources/hana/hana.md b/metadata-ingestion/docs/sources/hana/hana.md
index 8dfaa4f0cd221..34f7df2e17441 100644
--- a/metadata-ingestion/docs/sources/hana/hana.md
+++ b/metadata-ingestion/docs/sources/hana/hana.md
@@ -7,4 +7,4 @@ Under the hood, [SQLAlchemy Dialect for SAP HANA](https://github.com/SAP/sqlalch
## Questions
-If you've got any questions on configuring this source, feel free to ping us on [our Slack](https://slack.datahubproject.io/)!
+If you've got any questions on configuring this source, feel free to ping us on [our Slack](https://datahubproject.io/slack?utm_source=docs&utm_medium=docs&utm_campaign=docs_page_link)!
diff --git a/metadata-ingestion/docs/transformer/dataset_transformer.md b/metadata-ingestion/docs/transformer/dataset_transformer.md
index c0a8d31bca4c0..217d65ed05d6a 100644
--- a/metadata-ingestion/docs/transformer/dataset_transformer.md
+++ b/metadata-ingestion/docs/transformer/dataset_transformer.md
@@ -925,6 +925,24 @@ transformers:
replacement: "sub"
```
+## Clean User URN in DatasetUsageStatistics Aspect
+### Config Details
+| Field | Required | Type | Default | Description |
+|-----------------------------|----------|---------|---------------|---------------------------------------------|
+| `pattern_for_cleanup` | ✅ | list[string] | | List of suffix/prefix to remove from the Owner URN(s) |
+
+
+Matches against a User URN in DatasetUsageStatistics aspect and remove the matching part from it
+```yaml
+transformers:
+ - type: "pattern_cleanup_dataset_usage_user"
+ config:
+ pattern_for_cleanup:
+ - "ABCDEF"
+ - (?<=_)(\w+)
+```
+
+
## Simple Add Dataset domains
### Config Details
| Field | Required | Type | Default | Description |
diff --git a/metadata-ingestion/scripts/docgen.py b/metadata-ingestion/scripts/docgen.py
index c9818b936f929..8d65ce15011be 100644
--- a/metadata-ingestion/scripts/docgen.py
+++ b/metadata-ingestion/scripts/docgen.py
@@ -890,7 +890,7 @@ def generate(
f.write("\n")
f.write("""
-Lineage is used to capture data dependencies within an organization. It allows you to track the inputs from which a data asset is derived, along with the data assets that depend on it downstream.
+Data Lineage is used to capture data dependencies within an organization. It allows you to track the inputs from which a data asset is derived, along with the data assets that depend on it downstream.
## Viewing Lineage
diff --git a/metadata-ingestion/setup.py b/metadata-ingestion/setup.py
index 307e519cc9cc6..c9cbe66cdbca7 100644
--- a/metadata-ingestion/setup.py
+++ b/metadata-ingestion/setup.py
@@ -706,6 +706,7 @@
"simple_add_dataset_dataproduct = datahub.ingestion.transformer.add_dataset_dataproduct:SimpleAddDatasetDataProduct",
"pattern_add_dataset_dataproduct = datahub.ingestion.transformer.add_dataset_dataproduct:PatternAddDatasetDataProduct",
"replace_external_url = datahub.ingestion.transformer.replace_external_url:ReplaceExternalUrl",
+ "pattern_cleanup_dataset_usage_user = datahub.ingestion.transformer.pattern_cleanup_dataset_usage_user:PatternCleanupDatasetUsageUser",
],
"datahub.ingestion.sink.plugins": [
"file = datahub.ingestion.sink.file:FileSink",
diff --git a/metadata-ingestion/sink_docs/console.md b/metadata-ingestion/sink_docs/console.md
index d1ad50b64c870..f24a3086c6153 100644
--- a/metadata-ingestion/sink_docs/console.md
+++ b/metadata-ingestion/sink_docs/console.md
@@ -30,4 +30,4 @@ None!
## Questions
-If you've got any questions on configuring this sink, feel free to ping us on [our Slack](https://slack.datahubproject.io/)!
+If you've got any questions on configuring this sink, feel free to ping us on [our Slack](https://datahubproject.io/slack?utm_source=docs&utm_medium=docs&utm_campaign=docs_page_link)!
diff --git a/metadata-ingestion/sink_docs/datahub.md b/metadata-ingestion/sink_docs/datahub.md
index 8454587119863..53b76ddd7288a 100644
--- a/metadata-ingestion/sink_docs/datahub.md
+++ b/metadata-ingestion/sink_docs/datahub.md
@@ -179,7 +179,3 @@ Note that a `.` is used to denote nested fields in the YAML recipe.
| `file` | | `"~/.datahub/lite/datahub.duckdb"` | File to use for DuckDB storage |
| `options` | | `{}` | Options dictionary to pass through to DuckDB library. See [the official spec](https://duckdb.org/docs/sql/configuration.html) for the options supported by DuckDB. |
-
-## Questions
-
-If you've got any questions on configuring this sink, feel free to ping us on [our Slack](https://slack.datahubproject.io/)!
diff --git a/metadata-ingestion/sink_docs/file.md b/metadata-ingestion/sink_docs/file.md
index f4685730039b7..7064a4dcfc8a5 100644
--- a/metadata-ingestion/sink_docs/file.md
+++ b/metadata-ingestion/sink_docs/file.md
@@ -38,4 +38,4 @@ Note that a `.` is used to denote nested fields in the YAML recipe.
## Questions
-If you've got any questions on configuring this sink, feel free to ping us on [our Slack](https://slack.datahubproject.io/)!
+If you've got any questions on configuring this sink, feel free to ping us on [our Slack](https://datahubproject.io/slack?utm_source=docs&utm_medium=docs&utm_campaign=docs_page_link)!
diff --git a/metadata-ingestion/src/datahub/ingestion/source/aws/aws_common.py b/metadata-ingestion/src/datahub/ingestion/source/aws/aws_common.py
index 95ca10045f1bb..ba358d2465bbc 100644
--- a/metadata-ingestion/src/datahub/ingestion/source/aws/aws_common.py
+++ b/metadata-ingestion/src/datahub/ingestion/source/aws/aws_common.py
@@ -14,6 +14,7 @@
from datahub.configuration.source_common import EnvConfigMixin
if TYPE_CHECKING:
+ from mypy_boto3_dynamodb import DynamoDBClient
from mypy_boto3_glue import GlueClient
from mypy_boto3_s3 import S3Client, S3ServiceResource
from mypy_boto3_sagemaker import SageMakerClient
@@ -214,6 +215,9 @@ def get_s3_resource(
def get_glue_client(self) -> "GlueClient":
return self.get_session().client("glue", config=self._aws_config())
+ def get_dynamodb_client(self) -> "DynamoDBClient":
+ return self.get_session().client("dynamodb", config=self._aws_config())
+
def get_sagemaker_client(self) -> "SageMakerClient":
return self.get_session().client("sagemaker", config=self._aws_config())
@@ -224,6 +228,7 @@ class AwsSourceConfig(EnvConfigMixin, AwsConnectionConfig):
Currently used by:
- Glue source
+ - DynamoDB source
- SageMaker source
"""
diff --git a/metadata-ingestion/src/datahub/ingestion/source/bigquery_v2/bigquery.py b/metadata-ingestion/src/datahub/ingestion/source/bigquery_v2/bigquery.py
index eb59d720f1372..27ad2008dae00 100644
--- a/metadata-ingestion/src/datahub/ingestion/source/bigquery_v2/bigquery.py
+++ b/metadata-ingestion/src/datahub/ingestion/source/bigquery_v2/bigquery.py
@@ -178,6 +178,8 @@ def cleanup(config: BigQueryV2Config) -> None:
)
class BigqueryV2Source(StatefulIngestionSourceBase, TestableSource):
# https://cloud.google.com/bigquery/docs/reference/standard-sql/data-types
+ # Note: We use the hive schema parser to parse nested BigQuery types. We also have
+ # some extra type mappings in that file.
BIGQUERY_FIELD_TYPE_MAPPINGS: Dict[
str,
Type[
@@ -259,7 +261,7 @@ def __init__(self, ctx: PipelineContext, config: BigQueryV2Config):
self.lineage_extractor = BigqueryLineageExtractor(
config,
self.report,
- dataset_urn_builder=self.gen_dataset_urn_from_ref,
+ dataset_urn_builder=self.gen_dataset_urn_from_raw_ref,
redundant_run_skip_handler=redundant_lineage_run_skip_handler,
)
@@ -276,7 +278,7 @@ def __init__(self, ctx: PipelineContext, config: BigQueryV2Config):
config,
self.report,
schema_resolver=self.sql_parser_schema_resolver,
- dataset_urn_builder=self.gen_dataset_urn_from_ref,
+ dataset_urn_builder=self.gen_dataset_urn_from_raw_ref,
redundant_run_skip_handler=redundant_usage_run_skip_handler,
)
@@ -1187,14 +1189,28 @@ def gen_tags_aspect_workunit(
entityUrn=dataset_urn, aspect=tags
).as_workunit()
- def gen_dataset_urn(self, project_id: str, dataset_name: str, table: str) -> str:
+ def gen_dataset_urn(
+ self, project_id: str, dataset_name: str, table: str, use_raw_name: bool = False
+ ) -> str:
datahub_dataset_name = BigqueryTableIdentifier(project_id, dataset_name, table)
return make_dataset_urn(
self.platform,
- str(datahub_dataset_name),
+ (
+ str(datahub_dataset_name)
+ if not use_raw_name
+ else datahub_dataset_name.raw_table_name()
+ ),
self.config.env,
)
+ def gen_dataset_urn_from_raw_ref(self, ref: BigQueryTableRef) -> str:
+ return self.gen_dataset_urn(
+ ref.table_identifier.project_id,
+ ref.table_identifier.dataset,
+ ref.table_identifier.table,
+ use_raw_name=True,
+ )
+
def gen_dataset_urn_from_ref(self, ref: BigQueryTableRef) -> str:
return self.gen_dataset_urn(
ref.table_identifier.project_id,
@@ -1264,7 +1280,6 @@ def gen_schema_fields(self, columns: List[BigqueryColumn]) -> List[SchemaField]:
type=SchemaFieldDataType(
self.BIGQUERY_FIELD_TYPE_MAPPINGS.get(col.data_type, NullType)()
),
- # NOTE: nativeDataType will not be in sync with older connector
nativeDataType=col.data_type,
description=col.comment,
nullable=col.is_nullable,
diff --git a/metadata-ingestion/src/datahub/ingestion/source/dynamodb/dynamodb.py b/metadata-ingestion/src/datahub/ingestion/source/dynamodb/dynamodb.py
index 3d85238d9422f..e3933b985c28a 100644
--- a/metadata-ingestion/src/datahub/ingestion/source/dynamodb/dynamodb.py
+++ b/metadata-ingestion/src/datahub/ingestion/source/dynamodb/dynamodb.py
@@ -12,8 +12,6 @@
Union,
)
-import boto3
-import pydantic
from pydantic.fields import Field
from datahub.configuration.common import AllowDenyPattern
@@ -42,6 +40,7 @@
ClassificationSourceConfigMixin,
classification_workunit_processor,
)
+from datahub.ingestion.source.aws.aws_common import AwsSourceConfig
from datahub.ingestion.source.dynamodb.data_reader import DynamoDBTableItemsReader
from datahub.ingestion.source.schema_inference.object import SchemaDescription
from datahub.ingestion.source.state.stale_entity_removal_handler import (
@@ -93,12 +92,8 @@ class DynamoDBConfig(
DatasetSourceConfigMixin,
StatefulIngestionConfigBase,
ClassificationSourceConfigMixin,
+ AwsSourceConfig,
):
- # TODO: refactor the config to use AwsConnectionConfig and create a method get_dynamodb_client
- # in the class to provide optional region name input
- aws_access_key_id: str = Field(description="AWS Access Key ID.")
- aws_secret_access_key: pydantic.SecretStr = Field(description="AWS Secret Key.")
-
domain: Dict[str, AllowDenyPattern] = Field(
default=dict(),
description="regex patterns for tables to filter to assign domain_key. ",
@@ -120,6 +115,10 @@ class DynamoDBConfig(
# Custom Stateful Ingestion settings
stateful_ingestion: Optional[StatefulStaleMetadataRemovalConfig] = None
+ @property
+ def dynamodb_client(self):
+ return self.get_dynamodb_client()
+
@dataclass
class DynamoDBSourceReport(StaleEntityRemovalSourceReport, ClassificationReportMixin):
@@ -212,41 +211,27 @@ def get_workunit_processors(self) -> List[Optional[MetadataWorkUnitProcessor]]:
]
def get_workunits_internal(self) -> Iterable[MetadataWorkUnit]:
- # This is a offline call to get available region names from botocore library
- session = boto3.Session()
- dynamodb_regions = session.get_available_regions("dynamodb")
- logger.info(f"region names {dynamodb_regions}")
-
- # traverse databases in sorted order so output is consistent
- for region in dynamodb_regions:
- logger.info(f"Processing region {region}")
- # create a new dynamodb client for each region,
- # it seems for one client we could only list the table of one specific region,
- # the list_tables() method don't take any config that related to region
- dynamodb_client = boto3.client(
- "dynamodb",
- region_name=region,
- aws_access_key_id=self.config.aws_access_key_id,
- aws_secret_access_key=self.config.aws_secret_access_key.get_secret_value(),
- )
- data_reader = DynamoDBTableItemsReader.create(dynamodb_client)
+ dynamodb_client = self.config.dynamodb_client
+ region = dynamodb_client.meta.region_name
- for table_name in self._list_tables(dynamodb_client):
- dataset_name = f"{region}.{table_name}"
- if not self.config.table_pattern.allowed(dataset_name):
- logger.debug(f"skipping table: {dataset_name}")
- self.report.report_dropped(dataset_name)
- continue
+ data_reader = DynamoDBTableItemsReader.create(dynamodb_client)
- table_wu_generator = self._process_table(
- region, dynamodb_client, table_name, dataset_name
- )
- yield from classification_workunit_processor(
- table_wu_generator,
- self.classification_handler,
- data_reader,
- [region, table_name],
- )
+ for table_name in self._list_tables(dynamodb_client):
+ dataset_name = f"{region}.{table_name}"
+ if not self.config.table_pattern.allowed(dataset_name):
+ logger.debug(f"skipping table: {dataset_name}")
+ self.report.report_dropped(dataset_name)
+ continue
+
+ table_wu_generator = self._process_table(
+ region, dynamodb_client, table_name, dataset_name
+ )
+ yield from classification_workunit_processor(
+ table_wu_generator,
+ self.classification_handler,
+ data_reader,
+ [region, table_name],
+ )
def _process_table(
self,
diff --git a/metadata-ingestion/src/datahub/ingestion/source/fivetran/fivetran_log_api.py b/metadata-ingestion/src/datahub/ingestion/source/fivetran/fivetran_log_api.py
index 96a4ec44ae67b..d210941bccba1 100644
--- a/metadata-ingestion/src/datahub/ingestion/source/fivetran/fivetran_log_api.py
+++ b/metadata-ingestion/src/datahub/ingestion/source/fivetran/fivetran_log_api.py
@@ -80,25 +80,67 @@ def _query(self, query: str) -> List[Dict]:
resp = self.engine.execute(query)
return [row for row in resp]
- def _get_table_lineage(self, connector_id: str) -> List[TableLineage]:
+ def _get_column_lineage_metadata(self) -> Dict[str, List]:
+ """
+ Return's dict of column lineage metadata with key as '-'
+ """
+ all_column_lineage: Dict[str, List] = {}
+ column_lineage_result = self._query(
+ self.fivetran_log_query.get_column_lineage_query()
+ )
+ for column_lineage in column_lineage_result:
+ key = f"{column_lineage[Constant.SOURCE_TABLE_ID]}-{column_lineage[Constant.DESTINATION_TABLE_ID]}"
+ if key not in all_column_lineage:
+ all_column_lineage[key] = [column_lineage]
+ else:
+ all_column_lineage[key].append(column_lineage)
+ return all_column_lineage
+
+ def _get_connectors_table_lineage_metadata(self) -> Dict[str, List]:
+ """
+ Return's dict of table lineage metadata with key as 'CONNECTOR_ID'
+ """
+ connectors_table_lineage_metadata: Dict[str, List] = {}
table_lineage_result = self._query(
- self.fivetran_log_query.get_table_lineage_query(connector_id=connector_id)
+ self.fivetran_log_query.get_table_lineage_query()
)
+ for table_lineage in table_lineage_result:
+ if (
+ table_lineage[Constant.CONNECTOR_ID]
+ not in connectors_table_lineage_metadata
+ ):
+ connectors_table_lineage_metadata[
+ table_lineage[Constant.CONNECTOR_ID]
+ ] = [table_lineage]
+ else:
+ connectors_table_lineage_metadata[
+ table_lineage[Constant.CONNECTOR_ID]
+ ].append(table_lineage)
+ return connectors_table_lineage_metadata
+
+ def _get_table_lineage(
+ self,
+ column_lineage_metadata: Dict[str, List],
+ table_lineage_result: Optional[List],
+ ) -> List[TableLineage]:
table_lineage_list: List[TableLineage] = []
+ if table_lineage_result is None:
+ return table_lineage_list
for table_lineage in table_lineage_result:
- column_lineage_result = self._query(
- self.fivetran_log_query.get_column_lineage_query(
- source_table_id=table_lineage[Constant.SOURCE_TABLE_ID],
- destination_table_id=table_lineage[Constant.DESTINATION_TABLE_ID],
- )
+ column_lineage_result = column_lineage_metadata.get(
+ f"{table_lineage[Constant.SOURCE_TABLE_ID]}-{table_lineage[Constant.DESTINATION_TABLE_ID]}"
)
- column_lineage_list: List[ColumnLineage] = [
- ColumnLineage(
- source_column=column_lineage[Constant.SOURCE_COLUMN_NAME],
- destination_column=column_lineage[Constant.DESTINATION_COLUMN_NAME],
- )
- for column_lineage in column_lineage_result
- ]
+ column_lineage_list: List[ColumnLineage] = []
+ if column_lineage_result:
+ column_lineage_list = [
+ ColumnLineage(
+ source_column=column_lineage[Constant.SOURCE_COLUMN_NAME],
+ destination_column=column_lineage[
+ Constant.DESTINATION_COLUMN_NAME
+ ],
+ )
+ for column_lineage in column_lineage_result
+ ]
table_lineage_list.append(
TableLineage(
source_table=f"{table_lineage[Constant.SOURCE_SCHEMA_NAME]}.{table_lineage[Constant.SOURCE_TABLE_NAME]}",
@@ -109,30 +151,44 @@ def _get_table_lineage(self, connector_id: str) -> List[TableLineage]:
return table_lineage_list
- def _get_jobs_list(self, connector_id: str) -> List[Job]:
+ def _get_all_connector_sync_logs(self) -> Dict[str, Dict]:
+ sync_logs = {}
+ for row in self._query(self.fivetran_log_query.get_sync_logs_query()):
+ if row[Constant.CONNECTOR_ID] not in sync_logs:
+ sync_logs[row[Constant.CONNECTOR_ID]] = {
+ row[Constant.SYNC_ID]: {
+ row["message_event"]: (
+ row[Constant.TIME_STAMP].timestamp(),
+ row[Constant.MESSAGE_DATA],
+ )
+ }
+ }
+ elif row[Constant.SYNC_ID] not in sync_logs[row[Constant.CONNECTOR_ID]]:
+ sync_logs[row[Constant.CONNECTOR_ID]][row[Constant.SYNC_ID]] = {
+ row["message_event"]: (
+ row[Constant.TIME_STAMP].timestamp(),
+ row[Constant.MESSAGE_DATA],
+ )
+ }
+ else:
+ sync_logs[row[Constant.CONNECTOR_ID]][row[Constant.SYNC_ID]][
+ row["message_event"]
+ ] = (row[Constant.TIME_STAMP].timestamp(), row[Constant.MESSAGE_DATA])
+
+ return sync_logs
+
+ def _get_jobs_list(
+ self, connector_sync_log: Optional[Dict[str, Dict]]
+ ) -> List[Job]:
jobs: List[Job] = []
- sync_start_logs = {
- row[Constant.SYNC_ID]: row
- for row in self._query(
- self.fivetran_log_query.get_sync_start_logs_query(
- connector_id=connector_id
- )
- )
- }
- sync_end_logs = {
- row[Constant.SYNC_ID]: row
- for row in self._query(
- self.fivetran_log_query.get_sync_end_logs_query(
- connector_id=connector_id
- )
- )
- }
- for sync_id in sync_start_logs.keys():
- if sync_end_logs.get(sync_id) is None:
- # If no sync-end event log for this sync id that means sync is still in progress
+ if connector_sync_log is None:
+ return jobs
+ for sync_id in connector_sync_log.keys():
+ if len(connector_sync_log[sync_id]) != 2:
+ # If both sync-start and sync-end event log not present for this sync that means sync is still in progress
continue
- message_data = sync_end_logs[sync_id][Constant.MESSAGE_DATA]
+ message_data = connector_sync_log[sync_id]["sync_end"][1]
if message_data is None:
continue
message_data = json.loads(message_data)
@@ -145,12 +201,8 @@ def _get_jobs_list(self, connector_id: str) -> List[Job]:
jobs.append(
Job(
job_id=sync_id,
- start_time=round(
- sync_start_logs[sync_id][Constant.TIME_STAMP].timestamp()
- ),
- end_time=round(
- sync_end_logs[sync_id][Constant.TIME_STAMP].timestamp()
- ),
+ start_time=round(connector_sync_log[sync_id]["sync_start"][0]),
+ end_time=round(connector_sync_log[sync_id]["sync_end"][0]),
status=message_data[Constant.STATUS],
)
)
@@ -172,6 +224,9 @@ def get_allowed_connectors_list(
self, connector_patterns: AllowDenyPattern, report: FivetranSourceReport
) -> List[Connector]:
connectors: List[Connector] = []
+ sync_logs = self._get_all_connector_sync_logs()
+ table_lineage_metadata = self._get_connectors_table_lineage_metadata()
+ column_lineage_metadata = self._get_column_lineage_metadata()
connector_list = self._query(self.fivetran_log_query.get_connectors_query())
for connector in connector_list:
if not connector_patterns.allowed(connector[Constant.CONNECTOR_NAME]):
@@ -189,9 +244,14 @@ def get_allowed_connectors_list(
connector[Constant.CONNECTING_USER_ID]
),
table_lineage=self._get_table_lineage(
- connector[Constant.CONNECTOR_ID]
+ column_lineage_metadata=column_lineage_metadata,
+ table_lineage_result=table_lineage_metadata.get(
+ connector[Constant.CONNECTOR_ID]
+ ),
+ ),
+ jobs=self._get_jobs_list(
+ sync_logs.get(connector[Constant.CONNECTOR_ID])
),
- jobs=self._get_jobs_list(connector[Constant.CONNECTOR_ID]),
)
)
return connectors
diff --git a/metadata-ingestion/src/datahub/ingestion/source/fivetran/fivetran_query.py b/metadata-ingestion/src/datahub/ingestion/source/fivetran/fivetran_query.py
index f1c818150c18f..8f621bc3ffd06 100644
--- a/metadata-ingestion/src/datahub/ingestion/source/fivetran/fivetran_query.py
+++ b/metadata-ingestion/src/datahub/ingestion/source/fivetran/fivetran_query.py
@@ -30,26 +30,20 @@ def get_user_query(self, user_id: str) -> str:
FROM {self.db_clause}user
WHERE id = '{user_id}'"""
- def get_sync_start_logs_query(self, connector_id: str) -> str:
+ def get_sync_logs_query(self) -> str:
return f"""
- SELECT time_stamp,
- sync_id
- FROM {self.db_clause}log
- WHERE message_event = 'sync_start'
- and connector_id = '{connector_id}' order by time_stamp"""
-
- def get_sync_end_logs_query(self, connector_id: str) -> str:
- return f"""
- SELECT time_stamp,
+ SELECT connector_id,
sync_id,
- message_data
+ message_event,
+ message_data,
+ time_stamp
FROM {self.db_clause}log
- WHERE message_event = 'sync_end'
- and connector_id = '{connector_id}' order by time_stamp"""
+ WHERE message_event in ('sync_start', 'sync_end')"""
- def get_table_lineage_query(self, connector_id: str) -> str:
+ def get_table_lineage_query(self) -> str:
return f"""
- SELECT stm.id as source_table_id,
+ SELECT stm.connector_id as connector_id,
+ stm.id as source_table_id,
stm.name as source_table_name,
ssm.name as source_schema_name,
dtm.id as destination_table_id,
@@ -59,17 +53,16 @@ def get_table_lineage_query(self, connector_id: str) -> str:
JOIN {self.db_clause}source_table_metadata as stm on tl.source_table_id = stm.id
JOIN {self.db_clause}destination_table_metadata as dtm on tl.destination_table_id = dtm.id
JOIN {self.db_clause}source_schema_metadata as ssm on stm.schema_id = ssm.id
- JOIN {self.db_clause}destination_schema_metadata as dsm on dtm.schema_id = dsm.id
- WHERE stm.connector_id = '{connector_id}'"""
+ JOIN {self.db_clause}destination_schema_metadata as dsm on dtm.schema_id = dsm.id"""
- def get_column_lineage_query(
- self, source_table_id: str, destination_table_id: str
- ) -> str:
+ def get_column_lineage_query(self) -> str:
return f"""
- SELECT scm.name as source_column_name,
+ SELECT scm.table_id as source_table_id,
+ dcm.table_id as destination_table_id,
+ scm.name as source_column_name,
dcm.name as destination_column_name
FROM {self.db_clause}column_lineage as cl
- JOIN {self.db_clause}source_column_metadata as scm on
- (cl.source_column_id = scm.id and scm.table_id = {source_table_id})
- JOIN {self.db_clause}destination_column_metadata as dcm on
- (cl.destination_column_id = dcm.id and dcm.table_id = {destination_table_id})"""
+ JOIN {self.db_clause}source_column_metadata as scm
+ on cl.source_column_id = scm.id
+ JOIN {self.db_clause}destination_column_metadata as dcm
+ on cl.destination_column_id = dcm.id"""
diff --git a/metadata-ingestion/src/datahub/ingestion/source/looker/looker_common.py b/metadata-ingestion/src/datahub/ingestion/source/looker/looker_common.py
index 90ba7aeb8f87a..b6cc97b2e5fda 100644
--- a/metadata-ingestion/src/datahub/ingestion/source/looker/looker_common.py
+++ b/metadata-ingestion/src/datahub/ingestion/source/looker/looker_common.py
@@ -245,6 +245,56 @@ class ViewField:
upstream_fields: List[str] = dataclasses_field(default_factory=list)
+@dataclass
+class ExploreUpstreamViewField:
+ explore: LookmlModelExplore
+ field: LookmlModelExploreField
+
+ def _form_field_name(self):
+ assert self.field.name is not None
+
+ if len(self.field.name.split(".")) != 2:
+ return self.field.name # Inconsistent info received
+
+ view_name: Optional[str] = self.explore.name
+
+ if (
+ self.field.original_view is not None
+ ): # if `from` is used in explore then original_view is pointing to
+ # lookml view
+ view_name = self.field.original_view
+
+ field_name = self.field.name.split(".")[1]
+
+ return f"{view_name}.{field_name}"
+
+ def upstream(self) -> str:
+ assert self.field.name is not None
+
+ if self.field.dimension_group is None: # It is not part of Dimensional Group
+ return self._form_field_name()
+
+ if self.field.field_group_variant is None:
+ return (
+ self._form_field_name()
+ ) # Variant i.e. Month, Day, Year ... is not available
+
+ if self.field.type is None or not self.field.type.startswith("date_"):
+ return (
+ self._form_field_name()
+ ) # for Dimensional Group the type is always start with date_[time|date]
+
+ if not self.field.name.endswith(f"_{self.field.field_group_variant.lower()}"):
+ return (
+ self._form_field_name()
+ ) # if the explore field is generated because of Dimensional Group in View
+ # then the field_name should ends with field_group_variant
+
+ return self._form_field_name()[
+ : -(len(self.field.field_group_variant.lower()) + 1)
+ ] # remove variant at the end. +1 for "_"
+
+
def create_view_project_map(view_fields: List[ViewField]) -> Dict[str, str]:
"""
Each view in a model has unique name.
@@ -793,6 +843,13 @@ def from_api( # noqa: C901
if dim_field.name is None:
continue
else:
+ dimension_upstream_field: ExploreUpstreamViewField = (
+ ExploreUpstreamViewField(
+ explore=explore,
+ field=dim_field,
+ )
+ )
+
view_fields.append(
ViewField(
name=dim_field.name,
@@ -823,7 +880,9 @@ def from_api( # noqa: C901
if dim_field.primary_key
else False
),
- upstream_fields=[dim_field.name],
+ upstream_fields=[
+ dimension_upstream_field.upstream()
+ ],
)
)
if explore.fields.measures is not None:
@@ -831,6 +890,13 @@ def from_api( # noqa: C901
if measure_field.name is None:
continue
else:
+ measure_upstream_field: ExploreUpstreamViewField = (
+ ExploreUpstreamViewField(
+ explore=explore,
+ field=measure_field,
+ )
+ )
+
view_fields.append(
ViewField(
name=measure_field.name,
@@ -857,7 +923,7 @@ def from_api( # noqa: C901
if measure_field.primary_key
else False
),
- upstream_fields=[measure_field.name],
+ upstream_fields=[measure_upstream_field.upstream()],
)
)
diff --git a/metadata-ingestion/src/datahub/ingestion/source/looker/lookml_source.py b/metadata-ingestion/src/datahub/ingestion/source/looker/lookml_source.py
index 0a646f8f7d824..d1fddfdd8bc4a 100644
--- a/metadata-ingestion/src/datahub/ingestion/source/looker/lookml_source.py
+++ b/metadata-ingestion/src/datahub/ingestion/source/looker/lookml_source.py
@@ -1032,10 +1032,11 @@ def _get_fields(
if "sql" in field_dict and populate_sql_logic_in_descriptions
else ""
)
+
description = field_dict.get("description", default_description)
label = field_dict.get("label", "")
upstream_fields = []
- if type_cls == ViewFieldType.DIMENSION and extract_column_level_lineage:
+ if extract_column_level_lineage:
if field_dict.get("sql") is not None:
for upstream_field_match in re.finditer(
r"\${TABLE}\.[\"]*([\.\w]+)", field_dict["sql"]
diff --git a/metadata-ingestion/src/datahub/ingestion/source/metabase.py b/metadata-ingestion/src/datahub/ingestion/source/metabase.py
index fc60dc6406730..6f8f5097b6149 100644
--- a/metadata-ingestion/src/datahub/ingestion/source/metabase.py
+++ b/metadata-ingestion/src/datahub/ingestion/source/metabase.py
@@ -1,5 +1,6 @@
import json
import logging
+from dataclasses import dataclass
from datetime import datetime, timezone
from functools import lru_cache
from typing import Dict, Iterable, List, Optional, Tuple, Union
@@ -21,8 +22,17 @@
platform_name,
support_status,
)
-from datahub.ingestion.api.source import Source, SourceReport
+from datahub.ingestion.api.source import MetadataWorkUnitProcessor, Source, SourceReport
from datahub.ingestion.api.workunit import MetadataWorkUnit
+from datahub.ingestion.source.state.stale_entity_removal_handler import (
+ StaleEntityRemovalHandler,
+ StaleEntityRemovalSourceReport,
+ StatefulStaleMetadataRemovalConfig,
+)
+from datahub.ingestion.source.state.stateful_ingestion_base import (
+ StatefulIngestionConfigBase,
+ StatefulIngestionSourceBase,
+)
from datahub.metadata.com.linkedin.pegasus2avro.common import (
AuditStamp,
ChangeAuditStamps,
@@ -50,7 +60,7 @@
DATASOURCE_URN_RECURSION_LIMIT = 5
-class MetabaseConfig(DatasetLineageProviderConfigBase):
+class MetabaseConfig(DatasetLineageProviderConfigBase, StatefulIngestionConfigBase):
# See the Metabase /api/session endpoint for details
# https://www.metabase.com/docs/latest/api-documentation.html#post-apisession
connect_uri: str = Field(default="localhost:3000", description="Metabase host URL.")
@@ -84,6 +94,7 @@ class MetabaseConfig(DatasetLineageProviderConfigBase):
default=False,
description="Flag that if true, exclude other user collections",
)
+ stateful_ingestion: Optional[StatefulStaleMetadataRemovalConfig] = None
@validator("connect_uri", "display_uri")
def remove_trailing_slash(cls, v):
@@ -97,12 +108,17 @@ def default_display_uri_to_connect_uri(cls, values):
return values
+@dataclass
+class MetabaseReport(StaleEntityRemovalSourceReport):
+ pass
+
+
@platform_name("Metabase")
@config_class(MetabaseConfig)
@support_status(SupportStatus.CERTIFIED)
@capability(SourceCapability.PLATFORM_INSTANCE, "Enabled by default")
@capability(SourceCapability.LINEAGE_COARSE, "Supported by default")
-class MetabaseSource(Source):
+class MetabaseSource(StatefulIngestionSourceBase):
"""
This plugin extracts Charts, dashboards, and associated metadata. This plugin is in beta and has only been tested
on PostgreSQL and H2 database.
@@ -147,17 +163,18 @@ class MetabaseSource(Source):
"""
config: MetabaseConfig
- report: SourceReport
+ report: MetabaseReport
platform = "metabase"
def __hash__(self):
return id(self)
def __init__(self, ctx: PipelineContext, config: MetabaseConfig):
- super().__init__(ctx)
+ super().__init__(config, ctx)
self.config = config
- self.report = SourceReport()
+ self.report = MetabaseReport()
self.setup_session()
+ self.source_config: MetabaseConfig = config
def setup_session(self) -> None:
login_response = requests.post(
@@ -739,6 +756,14 @@ def create(cls, config_dict: dict, ctx: PipelineContext) -> Source:
config = MetabaseConfig.parse_obj(config_dict)
return cls(ctx, config)
+ def get_workunit_processors(self) -> List[Optional[MetadataWorkUnitProcessor]]:
+ return [
+ *super().get_workunit_processors(),
+ StaleEntityRemovalHandler.create(
+ self, self.source_config, self.ctx
+ ).workunit_processor,
+ ]
+
def get_workunits_internal(self) -> Iterable[MetadataWorkUnit]:
yield from self.emit_card_mces()
yield from self.emit_dashboard_mces()
diff --git a/metadata-ingestion/src/datahub/ingestion/transformer/dataset_transformer.py b/metadata-ingestion/src/datahub/ingestion/transformer/dataset_transformer.py
index 79151f7b11bf0..a78a79141e8e4 100644
--- a/metadata-ingestion/src/datahub/ingestion/transformer/dataset_transformer.py
+++ b/metadata-ingestion/src/datahub/ingestion/transformer/dataset_transformer.py
@@ -123,3 +123,8 @@ def aspect_name(self) -> str:
class DatasetDataproductTransformer(DatasetTransformer, metaclass=ABCMeta):
def aspect_name(self) -> str:
return "dataProductProperties"
+
+
+class DatasetUsageStatisticsTransformer(DatasetTransformer, metaclass=ABCMeta):
+ def aspect_name(self) -> str:
+ return "datasetUsageStatistics"
diff --git a/metadata-ingestion/src/datahub/ingestion/transformer/pattern_cleanup_dataset_usage_user.py b/metadata-ingestion/src/datahub/ingestion/transformer/pattern_cleanup_dataset_usage_user.py
new file mode 100644
index 0000000000000..a3d41c8e91ec5
--- /dev/null
+++ b/metadata-ingestion/src/datahub/ingestion/transformer/pattern_cleanup_dataset_usage_user.py
@@ -0,0 +1,67 @@
+import copy
+import re
+from typing import Any, Dict, List, Optional, cast
+
+from datahub.configuration.common import ConfigModel
+from datahub.emitter.mce_builder import Aspect
+from datahub.ingestion.api.common import PipelineContext
+from datahub.ingestion.transformer.dataset_transformer import (
+ DatasetUsageStatisticsTransformer,
+)
+from datahub.metadata.schema_classes import DatasetUsageStatisticsClass
+
+_USER_URN_PREFIX: str = "urn:li:corpuser:"
+
+
+class PatternCleanupDatasetUsageUserConfig(ConfigModel):
+ pattern_for_cleanup: List[str]
+
+
+class PatternCleanupDatasetUsageUser(DatasetUsageStatisticsTransformer):
+ """Transformer that clean the user URN for DatasetUsageStatistics aspect."""
+
+ ctx: PipelineContext
+ config: PatternCleanupDatasetUsageUserConfig
+
+ def __init__(
+ self,
+ config: PatternCleanupDatasetUsageUserConfig,
+ ctx: PipelineContext,
+ **resolver_args: Dict[str, Any],
+ ):
+ super().__init__()
+ self.config = config
+ self.ctx = ctx
+ self.resolver_args = resolver_args
+
+ @classmethod
+ def create(
+ cls, config_dict: dict, ctx: PipelineContext
+ ) -> "PatternCleanupDatasetUsageUser":
+ config = PatternCleanupDatasetUsageUserConfig.parse_obj(config_dict)
+ return cls(config, ctx)
+
+ def transform_aspect(
+ self, entity_urn: str, aspect_name: str, aspect: Optional[Aspect]
+ ) -> Optional[Aspect]:
+ in_dataset_properties_aspect: DatasetUsageStatisticsClass = cast(
+ DatasetUsageStatisticsClass, aspect
+ )
+
+ if in_dataset_properties_aspect.userCounts is not None:
+ out_dataset_properties_aspect: DatasetUsageStatisticsClass = copy.deepcopy(
+ in_dataset_properties_aspect
+ )
+
+ if out_dataset_properties_aspect.userCounts is not None:
+ for user in out_dataset_properties_aspect.userCounts:
+ user_id: str = user.user.split(_USER_URN_PREFIX)[1]
+ for value in self.config.pattern_for_cleanup:
+ cleaned_user_id = re.sub(value, "", user_id)
+ user.user = _USER_URN_PREFIX + cleaned_user_id
+
+ return cast(Aspect, out_dataset_properties_aspect)
+ else:
+ return cast(Aspect, out_dataset_properties_aspect)
+ else:
+ return cast(Aspect, in_dataset_properties_aspect)
diff --git a/metadata-ingestion/src/datahub/utilities/hive_schema_to_avro.py b/metadata-ingestion/src/datahub/utilities/hive_schema_to_avro.py
index 4fcef990ae4f4..7c0f26706ebfa 100644
--- a/metadata-ingestion/src/datahub/utilities/hive_schema_to_avro.py
+++ b/metadata-ingestion/src/datahub/utilities/hive_schema_to_avro.py
@@ -28,6 +28,20 @@ class HiveColumnToAvroConverter:
"bigint": "long",
"varchar": "string",
"char": "string",
+ "bytes": "bytes",
+ }
+ _EXTRA_BIGQUERY_TYPE_TO_AVRO_TYPE = {
+ # A few extra types, purely to map BigQuery things correctly.
+ "bool": "boolean",
+ "decimal": "double",
+ "numeric": "int",
+ "bignumeric": "long",
+ "bigdecimal": "double",
+ "float64": "double",
+ "int64": "long",
+ "smallint": "int",
+ "tinyint": "int",
+ "byteint": "int",
}
_COMPLEX_TYPE = re.compile("^(struct|map|array|uniontype)")
@@ -180,13 +194,19 @@ def _parse_basic_datatype_string(s: str) -> Dict[str, object]:
"native_data_type": s,
"_nullable": True,
}
- elif s == "timestamp":
+ elif s in {"timestamp", "datetime"}:
return {
"type": "int",
"logicalType": "timestamp-millis",
"native_data_type": s,
"_nullable": True,
}
+ elif s in HiveColumnToAvroConverter._EXTRA_BIGQUERY_TYPE_TO_AVRO_TYPE:
+ return {
+ "type": HiveColumnToAvroConverter._EXTRA_BIGQUERY_TYPE_TO_AVRO_TYPE[s],
+ "native_data_type": s,
+ "_nullable": True,
+ }
else:
return {"type": "null", "native_data_type": s, "_nullable": True}
diff --git a/metadata-ingestion/tests/integration/dynamodb/test_dynamodb.py b/metadata-ingestion/tests/integration/dynamodb/test_dynamodb.py
index 33ecd0dcd7e07..4edbbbb3ffc64 100644
--- a/metadata-ingestion/tests/integration/dynamodb/test_dynamodb.py
+++ b/metadata-ingestion/tests/integration/dynamodb/test_dynamodb.py
@@ -68,6 +68,8 @@ def test_dynamodb(pytestconfig, tmp_path):
"config": {
"aws_access_key_id": "test",
"aws_secret_access_key": "test",
+ "aws_session_token": "test",
+ "aws_region": "us-west-2",
},
},
"sink": {
@@ -97,6 +99,8 @@ def test_dynamodb(pytestconfig, tmp_path):
"platform_instance": "dynamodb_test",
"aws_access_key_id": "test",
"aws_secret_access_key": "test",
+ "aws_session_token": "test",
+ "aws_region": "us-west-2",
"classification": ClassificationConfig(
enabled=True,
classifiers=[
diff --git a/metadata-ingestion/tests/integration/fivetran/test_fivetran.py b/metadata-ingestion/tests/integration/fivetran/test_fivetran.py
index dbfe1011a41fa..de1e5543f4be6 100644
--- a/metadata-ingestion/tests/integration/fivetran/test_fivetran.py
+++ b/metadata-ingestion/tests/integration/fivetran/test_fivetran.py
@@ -41,9 +41,10 @@ def default_query_results(
return []
elif query == fivetran_log_query.get_connectors_query():
return connector_query_results
- elif query == fivetran_log_query.get_table_lineage_query("calendar_elected"):
+ elif query == fivetran_log_query.get_table_lineage_query():
return [
{
+ "connector_id": "calendar_elected",
"source_table_id": "10040",
"source_table_name": "employee",
"source_schema_name": "public",
@@ -52,6 +53,7 @@ def default_query_results(
"destination_schema_name": "postgres_public",
},
{
+ "connector_id": "calendar_elected",
"source_table_id": "10041",
"source_table_name": "company",
"source_schema_name": "public",
@@ -60,15 +62,29 @@ def default_query_results(
"destination_schema_name": "postgres_public",
},
]
- elif query == fivetran_log_query.get_column_lineage_query(
- "10040", "7779"
- ) or query == fivetran_log_query.get_column_lineage_query("10041", "7780"):
+ elif query == fivetran_log_query.get_column_lineage_query():
return [
{
+ "source_table_id": "10040",
+ "destination_table_id": "7779",
+ "source_column_name": "id",
+ "destination_column_name": "id",
+ },
+ {
+ "source_table_id": "10040",
+ "destination_table_id": "7779",
+ "source_column_name": "name",
+ "destination_column_name": "name",
+ },
+ {
+ "source_table_id": "10041",
+ "destination_table_id": "7780",
"source_column_name": "id",
"destination_column_name": "id",
},
{
+ "source_table_id": "10041",
+ "destination_table_id": "7780",
"source_column_name": "name",
"destination_column_name": "name",
},
@@ -82,46 +98,63 @@ def default_query_results(
"email": "abc.xyz@email.com",
}
]
- elif query == fivetran_log_query.get_sync_start_logs_query("calendar_elected"):
+ elif query == fivetran_log_query.get_sync_logs_query():
return [
{
- "time_stamp": datetime.datetime(2023, 9, 20, 6, 37, 32, 606000),
+ "connector_id": "calendar_elected",
"sync_id": "4c9a03d6-eded-4422-a46a-163266e58243",
+ "message_event": "sync_start",
+ "message_data": None,
+ "time_stamp": datetime.datetime(2023, 9, 20, 6, 37, 32, 606000),
},
{
- "time_stamp": datetime.datetime(2023, 10, 3, 14, 35, 30, 345000),
+ "connector_id": "calendar_elected",
"sync_id": "f773d1e9-c791-48f4-894f-8cf9b3dfc834",
+ "message_event": "sync_start",
+ "message_data": None,
+ "time_stamp": datetime.datetime(2023, 10, 3, 14, 35, 30, 345000),
},
{
- "time_stamp": datetime.datetime(2023, 10, 3, 14, 35, 55, 401000),
+ "connector_id": "calendar_elected",
"sync_id": "63c2fc85-600b-455f-9ba0-f576522465be",
+ "message_event": "sync_start",
+ "message_data": None,
+ "time_stamp": datetime.datetime(2023, 10, 3, 14, 35, 55, 401000),
},
{
- "time_stamp": datetime.datetime(2023, 10, 3, 14, 37, 5, 403000),
+ "connector_id": "calendar_elected",
"sync_id": "e773e1e9-c791-46f4-894f-8ch9b3dfc832",
+ "message_event": "sync_start",
+ "message_data": None,
+ "time_stamp": datetime.datetime(2023, 10, 3, 14, 37, 5, 403000),
},
- ]
- elif query == fivetran_log_query.get_sync_end_logs_query("calendar_elected"):
- return [
{
- "time_stamp": datetime.datetime(2023, 9, 20, 6, 38, 5, 56000),
+ "connector_id": "calendar_elected",
"sync_id": "4c9a03d6-eded-4422-a46a-163266e58243",
+ "message_event": "sync_end",
"message_data": '"{\\"status\\":\\"SUCCESSFUL\\"}"',
+ "time_stamp": datetime.datetime(2023, 9, 20, 6, 38, 5, 56000),
},
{
- "time_stamp": datetime.datetime(2023, 10, 3, 14, 35, 31, 512000),
+ "connector_id": "calendar_elected",
"sync_id": "f773d1e9-c791-48f4-894f-8cf9b3dfc834",
+ "message_event": "sync_end",
"message_data": '"{\\"reason\\":\\"Sync has been cancelled because of a user action in the dashboard.Standard Config updated.\\",\\"status\\":\\"CANCELED\\"}"',
+ "time_stamp": datetime.datetime(2023, 10, 3, 14, 35, 31, 512000),
},
{
- "time_stamp": datetime.datetime(2023, 10, 3, 14, 36, 29, 678000),
+ "connector_id": "calendar_elected",
"sync_id": "63c2fc85-600b-455f-9ba0-f576522465be",
+ "message_event": "sync_end",
"message_data": '"{\\"reason\\":\\"java.lang.RuntimeException: FATAL: too many connections for role \\\\\\"hxwraqld\\\\\\"\\",\\"taskType\\":\\"reconnect\\",\\"status\\":\\"FAILURE_WITH_TASK\\"}"',
+ "time_stamp": datetime.datetime(2023, 10, 3, 14, 36, 29, 678000),
},
{
- "time_stamp": datetime.datetime(2023, 10, 3, 14, 37, 35, 478000),
+ "connector_id": "calendar_elected",
"sync_id": "e773e1e9-c791-46f4-894f-8ch9b3dfc832",
+ "message_event": "sync_end",
"message_data": None,
+ "time_stamp": datetime.datetime(2023, 10, 3, 14, 37, 35, 478000),
},
]
# Unreachable code
diff --git a/metadata-ingestion/tests/integration/looker/test_looker.py b/metadata-ingestion/tests/integration/looker/test_looker.py
index 8e167328e0ba2..c2314e65bd367 100644
--- a/metadata-ingestion/tests/integration/looker/test_looker.py
+++ b/metadata-ingestion/tests/integration/looker/test_looker.py
@@ -9,6 +9,7 @@
from looker_sdk.rtl import transport
from looker_sdk.rtl.transport import TransportOptions
from looker_sdk.sdk.api40.models import (
+ Category,
Dashboard,
DashboardElement,
FolderBase,
@@ -24,7 +25,8 @@
)
from datahub.ingestion.run.pipeline import Pipeline, PipelineInitError
-from datahub.ingestion.source.looker import looker_usage
+from datahub.ingestion.source.looker import looker_common, looker_usage
+from datahub.ingestion.source.looker.looker_common import LookerExplore
from datahub.ingestion.source.looker.looker_lib_wrapper import (
LookerAPI,
LookerAPIConfig,
@@ -993,3 +995,66 @@ def test_independent_soft_deleted_looks(
assert len(looks) == 2
assert looks[0].title == "Outer Look"
assert looks[1].title == "Soft Deleted"
+
+
+@freeze_time(FROZEN_TIME)
+def test_upstream_cll(pytestconfig, tmp_path, mock_time, mock_datahub_graph):
+ mocked_client = mock.MagicMock()
+
+ with mock.patch(
+ "datahub.ingestion.source.state_provider.datahub_ingestion_checkpointing_provider.DataHubGraph",
+ mock_datahub_graph,
+ ) as mock_checkpoint, mock.patch("looker_sdk.init40") as mock_sdk:
+ mock_checkpoint.return_value = mock_datahub_graph
+
+ mock_sdk.return_value = mocked_client
+ setup_mock_explore(
+ mocked_client,
+ additional_lkml_fields=[
+ LookmlModelExploreField(
+ name="dim2",
+ type="string",
+ dimension_group=None,
+ description="dimension one description",
+ label_short="Dimensions One Label",
+ view="underlying_view",
+ source_file="views/underlying_view.view.lkml",
+ ),
+ LookmlModelExploreField(
+ category=Category.dimension,
+ dimension_group="my_explore_name.createdon",
+ field_group_label="Createdon Date",
+ field_group_variant="Date",
+ label="Dataset Lineages Explore Createdon Date",
+ label_short="Createdon Date",
+ lookml_link="/projects/datahub-demo/files/views%2Fdatahub-demo%2Fdatasets%2Fdataset_lineages.view.lkml?line=5",
+ name="my_explore_name.createdon_date",
+ project_name="datahub-demo",
+ source_file="views/datahub-demo/datasets/dataset_lineages.view.lkml",
+ source_file_path="datahub-demo/views/datahub-demo/datasets/dataset_lineages.view.lkml",
+ sql='${TABLE}."CREATEDON" ',
+ suggest_dimension="my_explore_name.createdon_date",
+ suggest_explore="my_explore_name",
+ type="date_date",
+ view="my_explore_name",
+ view_label="Dataset Lineages Explore",
+ original_view="dataset_lineages",
+ ),
+ ],
+ )
+
+ looker_explore: Optional[LookerExplore] = looker_common.LookerExplore.from_api(
+ model="fake",
+ explore_name="my_explore_name",
+ client=mocked_client,
+ reporter=mock.MagicMock(),
+ source_config=mock.MagicMock(),
+ )
+
+ assert looker_explore is not None
+ assert looker_explore.name == "my_explore_name"
+ assert looker_explore.fields is not None
+ assert len(looker_explore.fields) == 3
+ assert (
+ looker_explore.fields[2].upstream_fields[0] == "dataset_lineages.createdon"
+ )
diff --git a/metadata-ingestion/tests/integration/lookml/expected_output.json b/metadata-ingestion/tests/integration/lookml/expected_output.json
index 68a328c64dea9..931830eecf0c3 100644
--- a/metadata-ingestion/tests/integration/lookml/expected_output.json
+++ b/metadata-ingestion/tests/integration/lookml/expected_output.json
@@ -142,30 +142,6 @@
"lastRunId": "no-run-id-provided"
}
},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_view,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1586847600000,
- "runId": "lookml-test",
- "lastRunId": "no-run-id-provided"
- }
-},
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.DatasetSnapshot": {
@@ -350,13 +326,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -370,12 +352,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "SELECT\n country,\n city,\n timestamp,\n measurement\n FROM\n ${my_view.SQL_TABLE_NAME} AS my_view",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -388,10 +370,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "SELECT\n country,\n city,\n timestamp,\n measurement\n FROM\n ${my_view.SQL_TABLE_NAME} AS my_view",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -404,18 +388,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -587,13 +563,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -607,12 +589,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: include_able_view {\n sql_table_name: looker_schema.include_able ;;\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -625,10 +607,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: include_able_view {\n sql_table_name: looker_schema.include_able ;;\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -641,18 +625,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -713,13 +689,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -733,12 +715,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -751,10 +733,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -767,18 +751,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -839,13 +815,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -859,12 +841,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -877,10 +859,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -893,18 +877,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -941,6 +917,19 @@
"dataset": "urn:li:dataset:(urn:li:dataPlatform:conn,.looker_schema.events,PROD)",
"type": "VIEW"
}
+ ],
+ "fineGrainedLineages": [
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:conn,.looker_schema.events,PROD),additional_measure)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD),additional_measure)"
+ ],
+ "confidenceScore": 1.0
+ }
]
}
},
@@ -1010,13 +999,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1030,12 +1025,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1048,10 +1043,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1064,18 +1061,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1136,13 +1125,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1156,12 +1151,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1174,10 +1169,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1190,18 +1187,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1262,13 +1251,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1282,12 +1277,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "date DATE encode ZSTD, \n platform VARCHAR(20) encode ZSTD AS aliased_platform, \n country VARCHAR(20) encode ZSTD",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1300,10 +1295,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "date DATE encode ZSTD, \n platform VARCHAR(20) encode ZSTD AS aliased_platform, \n country VARCHAR(20) encode ZSTD",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -1316,21 +1313,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "nested"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1466,13 +1452,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "nested"
+ }
]
}
},
@@ -1486,12 +1481,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "SELECT\n customer_id,\n SUM(sale_price) AS lifetime_spend\n FROM\n order\n WHERE\n {% condition order_region %} order.region {% endcondition %}\n GROUP BY 1",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1504,10 +1499,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "SELECT\n customer_id,\n SUM(sale_price) AS lifetime_spend\n FROM\n order\n WHERE\n {% condition order_region %} order.region {% endcondition %}\n GROUP BY 1",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -1520,18 +1517,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1592,13 +1581,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1612,12 +1607,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: ability {\n sql_table_name: \"ECOMMERCE\".\"ABILITY\"\n ;;\n\n dimension: pk {\n type: number\n sql: ${TABLE}.\"PK\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: []\n }\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1630,10 +1625,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: ability {\n sql_table_name: \"ECOMMERCE\".\"ABILITY\"\n ;;\n\n dimension: pk {\n type: number\n sql: ${TABLE}.\"PK\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: []\n }\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1646,18 +1643,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1706,6 +1695,17 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD),pk)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:conn,.ecommerce.ability,PROD),count)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD),count)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -1797,13 +1797,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1817,12 +1823,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: owners {\n dimension: id {\n primary_key: yes\n sql: ${TABLE}.id ;;\n }\n dimension: owner_name {\n sql: ${TABLE}.owner_name ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1835,10 +1841,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: owners {\n dimension: id {\n primary_key: yes\n sql: ${TABLE}.id ;;\n }\n dimension: owner_name {\n sql: ${TABLE}.owner_name ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1851,18 +1859,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2015,13 +2015,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -2035,12 +2041,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "explore_source: my_view_explore {\n bind_all_filters: yes\n\n column: country {\n field: my_view_explore.country\n }\n\n column: city {\n field: my_view_explore.city\n }\n\n column: is_latest {\n field: my_view_explore.is_latest\n }\n\n derived_column: derived_col {\n sql: coalesce(country, 'US') ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -2053,10 +2059,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "explore_source: my_view_explore {\n bind_all_filters: yes\n\n column: country {\n field: my_view_explore.country\n }\n\n column: city {\n field: my_view_explore.city\n }\n\n column: is_latest {\n field: my_view_explore.is_latest\n }\n\n derived_column: derived_col {\n sql: coalesce(country, 'US') ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -2069,18 +2077,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2140,6 +2140,28 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),city)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,data.explore.my_view_explore,PROD),my_view_explore.country)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),unique_countries)"
+ ],
+ "confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,data.explore.my_view_explore,PROD),my_view_explore.is_latest)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),derived_col)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -2273,13 +2295,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -2293,12 +2321,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: flights {\n sql_table_name: flightstats.accidents ;;\n\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: number\n sql: ${TABLE}.id ;;\n }\n}\n\n# override type of id parameter\nview: +flights {\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: string\n sql: ${TABLE}.id ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -2311,10 +2339,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: flights {\n sql_table_name: flightstats.accidents ;;\n\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: number\n sql: ${TABLE}.id ;;\n }\n}\n\n# override type of id parameter\nview: +flights {\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: string\n sql: ${TABLE}.id ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -2327,18 +2357,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2457,6 +2479,30 @@
"lastRunId": "no-run-id-provided"
}
},
+{
+ "entityType": "dataset",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
+ "changeType": "UPSERT",
+ "aspectName": "browsePathsV2",
+ "aspect": {
+ "json": {
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
+ ]
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1586847600000,
+ "runId": "lookml-test",
+ "lastRunId": "no-run-id-provided"
+ }
+},
{
"entityType": "tag",
"entityUrn": "urn:li:tag:Dimension",
diff --git a/metadata-ingestion/tests/integration/lookml/lookml_mces_api_bigquery.json b/metadata-ingestion/tests/integration/lookml/lookml_mces_api_bigquery.json
index 2c0503154588a..a846e2ca84b09 100644
--- a/metadata-ingestion/tests/integration/lookml/lookml_mces_api_bigquery.json
+++ b/metadata-ingestion/tests/integration/lookml/lookml_mces_api_bigquery.json
@@ -142,30 +142,6 @@
"lastRunId": "no-run-id-provided"
}
},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_view,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1586847600000,
- "runId": "lookml-test",
- "lastRunId": "no-run-id-provided"
- }
-},
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.DatasetSnapshot": {
@@ -350,13 +326,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -370,12 +352,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "SELECT\n country,\n city,\n timestamp,\n measurement\n FROM\n ${my_view.SQL_TABLE_NAME} AS my_view",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -388,10 +370,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "SELECT\n country,\n city,\n timestamp,\n measurement\n FROM\n ${my_view.SQL_TABLE_NAME} AS my_view",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -404,18 +388,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -587,13 +563,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -607,12 +589,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: include_able_view {\n sql_table_name: looker_schema.include_able ;;\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -625,10 +607,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: include_able_view {\n sql_table_name: looker_schema.include_able ;;\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -641,18 +625,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -713,13 +689,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -733,12 +715,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -751,10 +733,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -767,18 +751,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -839,13 +815,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -859,12 +841,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -877,10 +859,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -893,18 +877,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -941,6 +917,19 @@
"dataset": "urn:li:dataset:(urn:li:dataPlatform:bigquery,project-foo.looker_schema.events,PROD)",
"type": "VIEW"
}
+ ],
+ "fineGrainedLineages": [
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:bigquery,project-foo.looker_schema.events,PROD),additional_measure)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD),additional_measure)"
+ ],
+ "confidenceScore": 1.0
+ }
]
}
},
@@ -1010,13 +999,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1030,12 +1025,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1048,10 +1043,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1064,18 +1061,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1136,13 +1125,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1156,12 +1151,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1174,10 +1169,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1190,18 +1187,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1262,13 +1251,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1282,12 +1277,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "date DATE encode ZSTD, \n platform VARCHAR(20) encode ZSTD AS aliased_platform, \n country VARCHAR(20) encode ZSTD",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1300,10 +1295,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "date DATE encode ZSTD, \n platform VARCHAR(20) encode ZSTD AS aliased_platform, \n country VARCHAR(20) encode ZSTD",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -1316,21 +1313,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "nested"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1466,13 +1452,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "nested"
+ }
]
}
},
@@ -1486,12 +1481,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "SELECT\n customer_id,\n SUM(sale_price) AS lifetime_spend\n FROM\n order\n WHERE\n {% condition order_region %} order.region {% endcondition %}\n GROUP BY 1",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1504,10 +1499,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "SELECT\n customer_id,\n SUM(sale_price) AS lifetime_spend\n FROM\n order\n WHERE\n {% condition order_region %} order.region {% endcondition %}\n GROUP BY 1",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -1520,18 +1517,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1592,13 +1581,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1612,12 +1607,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: ability {\n sql_table_name: \"ECOMMERCE\".\"ABILITY\"\n ;;\n\n dimension: pk {\n type: number\n sql: ${TABLE}.\"PK\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: []\n }\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1630,10 +1625,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: ability {\n sql_table_name: \"ECOMMERCE\".\"ABILITY\"\n ;;\n\n dimension: pk {\n type: number\n sql: ${TABLE}.\"PK\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: []\n }\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1646,18 +1643,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1706,6 +1695,17 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD),pk)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:bigquery,project-foo.ecommerce.ability,PROD),count)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD),count)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -1797,13 +1797,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1817,12 +1823,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: owners {\n dimension: id {\n primary_key: yes\n sql: ${TABLE}.id ;;\n }\n dimension: owner_name {\n sql: ${TABLE}.owner_name ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1835,10 +1841,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: owners {\n dimension: id {\n primary_key: yes\n sql: ${TABLE}.id ;;\n }\n dimension: owner_name {\n sql: ${TABLE}.owner_name ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1851,18 +1859,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2015,13 +2015,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -2035,12 +2041,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "explore_source: my_view_explore {\n bind_all_filters: yes\n\n column: country {\n field: my_view_explore.country\n }\n\n column: city {\n field: my_view_explore.city\n }\n\n column: is_latest {\n field: my_view_explore.is_latest\n }\n\n derived_column: derived_col {\n sql: coalesce(country, 'US') ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -2053,10 +2059,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "explore_source: my_view_explore {\n bind_all_filters: yes\n\n column: country {\n field: my_view_explore.country\n }\n\n column: city {\n field: my_view_explore.city\n }\n\n column: is_latest {\n field: my_view_explore.is_latest\n }\n\n derived_column: derived_col {\n sql: coalesce(country, 'US') ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -2069,18 +2077,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2140,6 +2140,28 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),city)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,data.explore.my_view_explore,PROD),my_view_explore.country)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),unique_countries)"
+ ],
+ "confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,data.explore.my_view_explore,PROD),my_view_explore.is_latest)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),derived_col)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -2273,13 +2295,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -2293,12 +2321,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: flights {\n sql_table_name: flightstats.accidents ;;\n\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: number\n sql: ${TABLE}.id ;;\n }\n}\n\n# override type of id parameter\nview: +flights {\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: string\n sql: ${TABLE}.id ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -2311,10 +2339,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: flights {\n sql_table_name: flightstats.accidents ;;\n\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: number\n sql: ${TABLE}.id ;;\n }\n}\n\n# override type of id parameter\nview: +flights {\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: string\n sql: ${TABLE}.id ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -2327,18 +2357,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2457,6 +2479,30 @@
"lastRunId": "no-run-id-provided"
}
},
+{
+ "entityType": "dataset",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
+ "changeType": "UPSERT",
+ "aspectName": "browsePathsV2",
+ "aspect": {
+ "json": {
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
+ ]
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1586847600000,
+ "runId": "lookml-test",
+ "lastRunId": "no-run-id-provided"
+ }
+},
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.TagSnapshot": {
diff --git a/metadata-ingestion/tests/integration/lookml/lookml_mces_api_hive2.json b/metadata-ingestion/tests/integration/lookml/lookml_mces_api_hive2.json
index f56718c6f5c85..47d536fb82409 100644
--- a/metadata-ingestion/tests/integration/lookml/lookml_mces_api_hive2.json
+++ b/metadata-ingestion/tests/integration/lookml/lookml_mces_api_hive2.json
@@ -142,30 +142,6 @@
"lastRunId": "no-run-id-provided"
}
},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_view,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1586847600000,
- "runId": "lookml-test",
- "lastRunId": "no-run-id-provided"
- }
-},
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.DatasetSnapshot": {
@@ -350,13 +326,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -370,12 +352,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "SELECT\n country,\n city,\n timestamp,\n measurement\n FROM\n ${my_view.SQL_TABLE_NAME} AS my_view",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -388,10 +370,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "SELECT\n country,\n city,\n timestamp,\n measurement\n FROM\n ${my_view.SQL_TABLE_NAME} AS my_view",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -404,18 +388,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -587,13 +563,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -607,12 +589,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: include_able_view {\n sql_table_name: looker_schema.include_able ;;\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -625,10 +607,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: include_able_view {\n sql_table_name: looker_schema.include_able ;;\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -641,18 +625,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -713,13 +689,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -733,12 +715,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -751,10 +733,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -767,18 +751,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -839,13 +815,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -859,12 +841,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -877,10 +859,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -893,18 +877,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -941,6 +917,19 @@
"dataset": "urn:li:dataset:(urn:li:dataPlatform:hive,looker_schema.events,PROD)",
"type": "VIEW"
}
+ ],
+ "fineGrainedLineages": [
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:hive,looker_schema.events,PROD),additional_measure)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD),additional_measure)"
+ ],
+ "confidenceScore": 1.0
+ }
]
}
},
@@ -1010,13 +999,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1030,12 +1025,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1048,10 +1043,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1064,18 +1061,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1136,13 +1125,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1156,12 +1151,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1174,10 +1169,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1190,18 +1187,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1262,13 +1251,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1282,12 +1277,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "date DATE encode ZSTD, \n platform VARCHAR(20) encode ZSTD AS aliased_platform, \n country VARCHAR(20) encode ZSTD",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1300,10 +1295,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "date DATE encode ZSTD, \n platform VARCHAR(20) encode ZSTD AS aliased_platform, \n country VARCHAR(20) encode ZSTD",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -1316,21 +1313,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "nested"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1466,13 +1452,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "nested"
+ }
]
}
},
@@ -1486,12 +1481,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "SELECT\n customer_id,\n SUM(sale_price) AS lifetime_spend\n FROM\n order\n WHERE\n {% condition order_region %} order.region {% endcondition %}\n GROUP BY 1",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1504,10 +1499,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "SELECT\n customer_id,\n SUM(sale_price) AS lifetime_spend\n FROM\n order\n WHERE\n {% condition order_region %} order.region {% endcondition %}\n GROUP BY 1",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -1520,18 +1517,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1592,13 +1581,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1612,12 +1607,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: ability {\n sql_table_name: \"ECOMMERCE\".\"ABILITY\"\n ;;\n\n dimension: pk {\n type: number\n sql: ${TABLE}.\"PK\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: []\n }\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1630,10 +1625,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: ability {\n sql_table_name: \"ECOMMERCE\".\"ABILITY\"\n ;;\n\n dimension: pk {\n type: number\n sql: ${TABLE}.\"PK\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: []\n }\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1646,18 +1643,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1706,6 +1695,17 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD),pk)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:hive,ecommerce.ability,PROD),count)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD),count)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -1797,13 +1797,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1817,12 +1823,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: owners {\n dimension: id {\n primary_key: yes\n sql: ${TABLE}.id ;;\n }\n dimension: owner_name {\n sql: ${TABLE}.owner_name ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1835,10 +1841,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: owners {\n dimension: id {\n primary_key: yes\n sql: ${TABLE}.id ;;\n }\n dimension: owner_name {\n sql: ${TABLE}.owner_name ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1851,18 +1859,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2015,13 +2015,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -2035,12 +2041,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "explore_source: my_view_explore {\n bind_all_filters: yes\n\n column: country {\n field: my_view_explore.country\n }\n\n column: city {\n field: my_view_explore.city\n }\n\n column: is_latest {\n field: my_view_explore.is_latest\n }\n\n derived_column: derived_col {\n sql: coalesce(country, 'US') ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -2053,10 +2059,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "explore_source: my_view_explore {\n bind_all_filters: yes\n\n column: country {\n field: my_view_explore.country\n }\n\n column: city {\n field: my_view_explore.city\n }\n\n column: is_latest {\n field: my_view_explore.is_latest\n }\n\n derived_column: derived_col {\n sql: coalesce(country, 'US') ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -2069,18 +2077,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2140,6 +2140,28 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),city)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,data.explore.my_view_explore,PROD),my_view_explore.country)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),unique_countries)"
+ ],
+ "confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,data.explore.my_view_explore,PROD),my_view_explore.is_latest)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),derived_col)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -2273,13 +2295,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -2293,12 +2321,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: flights {\n sql_table_name: flightstats.accidents ;;\n\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: number\n sql: ${TABLE}.id ;;\n }\n}\n\n# override type of id parameter\nview: +flights {\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: string\n sql: ${TABLE}.id ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -2311,10 +2339,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: flights {\n sql_table_name: flightstats.accidents ;;\n\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: number\n sql: ${TABLE}.id ;;\n }\n}\n\n# override type of id parameter\nview: +flights {\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: string\n sql: ${TABLE}.id ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -2327,18 +2357,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2457,6 +2479,30 @@
"lastRunId": "no-run-id-provided"
}
},
+{
+ "entityType": "dataset",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
+ "changeType": "UPSERT",
+ "aspectName": "browsePathsV2",
+ "aspect": {
+ "json": {
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
+ ]
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1586847600000,
+ "runId": "lookml-test",
+ "lastRunId": "no-run-id-provided"
+ }
+},
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.TagSnapshot": {
diff --git a/metadata-ingestion/tests/integration/lookml/lookml_mces_badsql_parser.json b/metadata-ingestion/tests/integration/lookml/lookml_mces_badsql_parser.json
index 2aa4a3a41ba35..7e323170e58da 100644
--- a/metadata-ingestion/tests/integration/lookml/lookml_mces_badsql_parser.json
+++ b/metadata-ingestion/tests/integration/lookml/lookml_mces_badsql_parser.json
@@ -142,30 +142,6 @@
"lastRunId": "no-run-id-provided"
}
},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_view,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1586847600000,
- "runId": "lookml-test",
- "lastRunId": "no-run-id-provided"
- }
-},
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.DatasetSnapshot": {
@@ -336,13 +312,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -356,12 +338,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "SELECT\n country,\n city,\n timestamp,\n measurement\n FROM\n ${my_view.SQL_TABLE_NAME} AS my_view",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -374,10 +356,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "SELECT\n country,\n city,\n timestamp,\n measurement\n FROM\n ${my_view.SQL_TABLE_NAME} AS my_view",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -390,18 +374,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -559,13 +535,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -579,12 +561,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: include_able_view {\n sql_table_name: looker_schema.include_able ;;\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -597,10 +579,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: include_able_view {\n sql_table_name: looker_schema.include_able ;;\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -613,18 +597,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -685,13 +661,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -705,12 +687,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -723,10 +705,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -739,18 +723,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -811,13 +787,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -831,12 +813,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -849,10 +831,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -865,18 +849,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -913,6 +889,19 @@
"dataset": "urn:li:dataset:(urn:li:dataPlatform:snowflake,default_db.looker_schema.events,PROD)",
"type": "VIEW"
}
+ ],
+ "fineGrainedLineages": [
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:snowflake,default_db.looker_schema.events,PROD),additional_measure)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD),additional_measure)"
+ ],
+ "confidenceScore": 1.0
+ }
]
}
},
@@ -982,13 +971,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1002,12 +997,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1020,10 +1015,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1036,18 +1033,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1108,13 +1097,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1128,12 +1123,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1146,10 +1141,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1162,18 +1159,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1234,13 +1223,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1254,12 +1249,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "date DATE encode ZSTD, \n platform VARCHAR(20) encode ZSTD AS aliased_platform, \n country VARCHAR(20) encode ZSTD",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1272,10 +1267,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "date DATE encode ZSTD, \n platform VARCHAR(20) encode ZSTD AS aliased_platform, \n country VARCHAR(20) encode ZSTD",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -1288,21 +1285,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "nested"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1349,13 +1335,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "nested"
+ }
]
}
},
@@ -1369,12 +1364,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "SELECT\n customer_id,\n SUM(sale_price) AS lifetime_spend\n FROM\n order\n WHERE\n {% condition order_region %} order.region {% endcondition %}\n GROUP BY 1",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1387,10 +1382,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "SELECT\n customer_id,\n SUM(sale_price) AS lifetime_spend\n FROM\n order\n WHERE\n {% condition order_region %} order.region {% endcondition %}\n GROUP BY 1",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -1403,18 +1400,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1475,13 +1464,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1495,12 +1490,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: ability {\n sql_table_name: \"ECOMMERCE\".\"ABILITY\"\n ;;\n\n dimension: pk {\n type: number\n sql: ${TABLE}.\"PK\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: []\n }\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1513,10 +1508,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: ability {\n sql_table_name: \"ECOMMERCE\".\"ABILITY\"\n ;;\n\n dimension: pk {\n type: number\n sql: ${TABLE}.\"PK\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: []\n }\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1529,18 +1526,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1589,6 +1578,17 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD),pk)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:snowflake,default_db.ecommerce.ability,PROD),count)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD),count)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -1680,13 +1680,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1700,12 +1706,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: owners {\n dimension: id {\n primary_key: yes\n sql: ${TABLE}.id ;;\n }\n dimension: owner_name {\n sql: ${TABLE}.owner_name ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1718,10 +1724,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: owners {\n dimension: id {\n primary_key: yes\n sql: ${TABLE}.id ;;\n }\n dimension: owner_name {\n sql: ${TABLE}.owner_name ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1734,18 +1742,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1898,13 +1898,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1918,12 +1924,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "explore_source: my_view_explore {\n bind_all_filters: yes\n\n column: country {\n field: my_view_explore.country\n }\n\n column: city {\n field: my_view_explore.city\n }\n\n column: is_latest {\n field: my_view_explore.is_latest\n }\n\n derived_column: derived_col {\n sql: coalesce(country, 'US') ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1936,10 +1942,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "explore_source: my_view_explore {\n bind_all_filters: yes\n\n column: country {\n field: my_view_explore.country\n }\n\n column: city {\n field: my_view_explore.city\n }\n\n column: is_latest {\n field: my_view_explore.is_latest\n }\n\n derived_column: derived_col {\n sql: coalesce(country, 'US') ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1952,18 +1960,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2023,6 +2023,28 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),city)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,data.explore.my_view_explore,PROD),my_view_explore.country)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),unique_countries)"
+ ],
+ "confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,data.explore.my_view_explore,PROD),my_view_explore.is_latest)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),derived_col)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -2156,13 +2178,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -2176,12 +2204,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: flights {\n sql_table_name: flightstats.accidents ;;\n\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: number\n sql: ${TABLE}.id ;;\n }\n}\n\n# override type of id parameter\nview: +flights {\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: string\n sql: ${TABLE}.id ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -2194,10 +2222,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: flights {\n sql_table_name: flightstats.accidents ;;\n\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: number\n sql: ${TABLE}.id ;;\n }\n}\n\n# override type of id parameter\nview: +flights {\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: string\n sql: ${TABLE}.id ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -2210,18 +2240,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2340,6 +2362,30 @@
"lastRunId": "no-run-id-provided"
}
},
+{
+ "entityType": "dataset",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
+ "changeType": "UPSERT",
+ "aspectName": "browsePathsV2",
+ "aspect": {
+ "json": {
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
+ ]
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1586847600000,
+ "runId": "lookml-test",
+ "lastRunId": "no-run-id-provided"
+ }
+},
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.TagSnapshot": {
diff --git a/metadata-ingestion/tests/integration/lookml/lookml_mces_offline.json b/metadata-ingestion/tests/integration/lookml/lookml_mces_offline.json
index 3798c9b71e3b8..caefb7b9bcce2 100644
--- a/metadata-ingestion/tests/integration/lookml/lookml_mces_offline.json
+++ b/metadata-ingestion/tests/integration/lookml/lookml_mces_offline.json
@@ -142,30 +142,6 @@
"lastRunId": "no-run-id-provided"
}
},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_view,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1586847600000,
- "runId": "lookml-test",
- "lastRunId": "no-run-id-provided"
- }
-},
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.DatasetSnapshot": {
@@ -350,13 +326,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -370,12 +352,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "SELECT\n country,\n city,\n timestamp,\n measurement\n FROM\n ${my_view.SQL_TABLE_NAME} AS my_view",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -388,10 +370,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "SELECT\n country,\n city,\n timestamp,\n measurement\n FROM\n ${my_view.SQL_TABLE_NAME} AS my_view",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -404,18 +388,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -587,13 +563,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -607,12 +589,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: include_able_view {\n sql_table_name: looker_schema.include_able ;;\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -625,10 +607,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: include_able_view {\n sql_table_name: looker_schema.include_able ;;\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -641,18 +625,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -713,13 +689,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -733,12 +715,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -751,10 +733,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -767,18 +751,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -839,13 +815,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -859,12 +841,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -877,10 +859,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -893,18 +877,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -941,6 +917,19 @@
"dataset": "urn:li:dataset:(urn:li:dataPlatform:snowflake,default_db.looker_schema.events,PROD)",
"type": "VIEW"
}
+ ],
+ "fineGrainedLineages": [
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:snowflake,default_db.looker_schema.events,PROD),additional_measure)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD),additional_measure)"
+ ],
+ "confidenceScore": 1.0
+ }
]
}
},
@@ -1010,13 +999,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1030,12 +1025,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1048,10 +1043,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1064,18 +1061,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1136,13 +1125,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1156,12 +1151,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1174,10 +1169,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1190,18 +1187,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1262,13 +1251,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1282,12 +1277,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "date DATE encode ZSTD, \n platform VARCHAR(20) encode ZSTD AS aliased_platform, \n country VARCHAR(20) encode ZSTD",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1300,10 +1295,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "date DATE encode ZSTD, \n platform VARCHAR(20) encode ZSTD AS aliased_platform, \n country VARCHAR(20) encode ZSTD",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -1316,21 +1313,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "nested"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1466,13 +1452,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "nested"
+ }
]
}
},
@@ -1486,12 +1481,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "SELECT\n customer_id,\n SUM(sale_price) AS lifetime_spend\n FROM\n order\n WHERE\n {% condition order_region %} order.region {% endcondition %}\n GROUP BY 1",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1504,10 +1499,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "SELECT\n customer_id,\n SUM(sale_price) AS lifetime_spend\n FROM\n order\n WHERE\n {% condition order_region %} order.region {% endcondition %}\n GROUP BY 1",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -1520,18 +1517,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1592,13 +1581,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1612,12 +1607,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: ability {\n sql_table_name: \"ECOMMERCE\".\"ABILITY\"\n ;;\n\n dimension: pk {\n type: number\n sql: ${TABLE}.\"PK\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: []\n }\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1630,10 +1625,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: ability {\n sql_table_name: \"ECOMMERCE\".\"ABILITY\"\n ;;\n\n dimension: pk {\n type: number\n sql: ${TABLE}.\"PK\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: []\n }\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1646,18 +1643,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1706,6 +1695,17 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD),pk)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:snowflake,default_db.ecommerce.ability,PROD),count)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD),count)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -1797,13 +1797,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1817,12 +1823,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: owners {\n dimension: id {\n primary_key: yes\n sql: ${TABLE}.id ;;\n }\n dimension: owner_name {\n sql: ${TABLE}.owner_name ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1835,10 +1841,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: owners {\n dimension: id {\n primary_key: yes\n sql: ${TABLE}.id ;;\n }\n dimension: owner_name {\n sql: ${TABLE}.owner_name ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1851,18 +1859,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2015,13 +2015,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -2035,12 +2041,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "explore_source: my_view_explore {\n bind_all_filters: yes\n\n column: country {\n field: my_view_explore.country\n }\n\n column: city {\n field: my_view_explore.city\n }\n\n column: is_latest {\n field: my_view_explore.is_latest\n }\n\n derived_column: derived_col {\n sql: coalesce(country, 'US') ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -2053,10 +2059,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "explore_source: my_view_explore {\n bind_all_filters: yes\n\n column: country {\n field: my_view_explore.country\n }\n\n column: city {\n field: my_view_explore.city\n }\n\n column: is_latest {\n field: my_view_explore.is_latest\n }\n\n derived_column: derived_col {\n sql: coalesce(country, 'US') ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -2069,18 +2077,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2140,6 +2140,28 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),city)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,data.explore.my_view_explore,PROD),my_view_explore.country)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),unique_countries)"
+ ],
+ "confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,data.explore.my_view_explore,PROD),my_view_explore.is_latest)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),derived_col)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -2273,13 +2295,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -2293,12 +2321,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: flights {\n sql_table_name: flightstats.accidents ;;\n\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: number\n sql: ${TABLE}.id ;;\n }\n}\n\n# override type of id parameter\nview: +flights {\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: string\n sql: ${TABLE}.id ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -2311,10 +2339,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: flights {\n sql_table_name: flightstats.accidents ;;\n\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: number\n sql: ${TABLE}.id ;;\n }\n}\n\n# override type of id parameter\nview: +flights {\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: string\n sql: ${TABLE}.id ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -2327,18 +2357,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2457,6 +2479,30 @@
"lastRunId": "no-run-id-provided"
}
},
+{
+ "entityType": "dataset",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
+ "changeType": "UPSERT",
+ "aspectName": "browsePathsV2",
+ "aspect": {
+ "json": {
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
+ ]
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1586847600000,
+ "runId": "lookml-test",
+ "lastRunId": "no-run-id-provided"
+ }
+},
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.TagSnapshot": {
diff --git a/metadata-ingestion/tests/integration/lookml/lookml_mces_offline_deny_pattern.json b/metadata-ingestion/tests/integration/lookml/lookml_mces_offline_deny_pattern.json
index 414a800e74a5a..32386098b7be8 100644
--- a/metadata-ingestion/tests/integration/lookml/lookml_mces_offline_deny_pattern.json
+++ b/metadata-ingestion/tests/integration/lookml/lookml_mces_offline_deny_pattern.json
@@ -142,30 +142,6 @@
"lastRunId": "no-run-id-provided"
}
},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1586847600000,
- "runId": "lookml-test",
- "lastRunId": "no-run-id-provided"
- }
-},
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.DatasetSnapshot": {
@@ -218,13 +194,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -238,12 +220,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -256,10 +238,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -272,18 +256,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -344,13 +320,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -364,12 +346,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -382,10 +364,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -398,18 +382,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -446,6 +422,19 @@
"dataset": "urn:li:dataset:(urn:li:dataPlatform:snowflake,default_db.looker_schema.events,PROD)",
"type": "VIEW"
}
+ ],
+ "fineGrainedLineages": [
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:snowflake,default_db.looker_schema.events,PROD),additional_measure)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD),additional_measure)"
+ ],
+ "confidenceScore": 1.0
+ }
]
}
},
@@ -515,13 +504,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -535,12 +530,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -553,10 +548,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -569,18 +566,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -641,13 +630,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -661,12 +656,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -679,10 +674,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -695,18 +692,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -765,6 +754,30 @@
"lastRunId": "no-run-id-provided"
}
},
+{
+ "entityType": "dataset",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
+ "changeType": "UPSERT",
+ "aspectName": "browsePathsV2",
+ "aspect": {
+ "json": {
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
+ ]
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1586847600000,
+ "runId": "lookml-test",
+ "lastRunId": "no-run-id-provided"
+ }
+},
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.TagSnapshot": {
diff --git a/metadata-ingestion/tests/integration/lookml/lookml_mces_offline_platform_instance.json b/metadata-ingestion/tests/integration/lookml/lookml_mces_offline_platform_instance.json
index 54861ed04868b..c0cec6c261010 100644
--- a/metadata-ingestion/tests/integration/lookml/lookml_mces_offline_platform_instance.json
+++ b/metadata-ingestion/tests/integration/lookml/lookml_mces_offline_platform_instance.json
@@ -142,30 +142,6 @@
"lastRunId": "no-run-id-provided"
}
},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_view,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1586847600000,
- "runId": "lookml-test",
- "lastRunId": "no-run-id-provided"
- }
-},
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.DatasetSnapshot": {
@@ -350,13 +326,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -370,12 +352,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "SELECT\n country,\n city,\n timestamp,\n measurement\n FROM\n ${my_view.SQL_TABLE_NAME} AS my_view",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -388,10 +370,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "SELECT\n country,\n city,\n timestamp,\n measurement\n FROM\n ${my_view.SQL_TABLE_NAME} AS my_view",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -404,18 +388,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -587,13 +563,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -607,12 +589,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: include_able_view {\n sql_table_name: looker_schema.include_able ;;\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -625,10 +607,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: include_able_view {\n sql_table_name: looker_schema.include_able ;;\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -641,18 +625,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -713,13 +689,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -733,12 +715,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -751,10 +733,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -767,18 +751,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -839,13 +815,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -859,12 +841,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -877,10 +859,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -893,18 +877,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -941,6 +917,19 @@
"dataset": "urn:li:dataset:(urn:li:dataPlatform:snowflake,warehouse.default_db.looker_schema.events,DEV)",
"type": "VIEW"
}
+ ],
+ "fineGrainedLineages": [
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:snowflake,warehouse.default_db.looker_schema.events,DEV),additional_measure)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD),additional_measure)"
+ ],
+ "confidenceScore": 1.0
+ }
]
}
},
@@ -1010,13 +999,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1030,12 +1025,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1048,10 +1043,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1064,18 +1061,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1136,13 +1125,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1156,12 +1151,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1174,10 +1169,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1190,18 +1187,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1262,13 +1251,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1282,12 +1277,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "date DATE encode ZSTD, \n platform VARCHAR(20) encode ZSTD AS aliased_platform, \n country VARCHAR(20) encode ZSTD",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1300,10 +1295,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "date DATE encode ZSTD, \n platform VARCHAR(20) encode ZSTD AS aliased_platform, \n country VARCHAR(20) encode ZSTD",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -1316,21 +1313,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "nested"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1466,13 +1452,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "nested"
+ }
]
}
},
@@ -1486,12 +1481,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "SELECT\n customer_id,\n SUM(sale_price) AS lifetime_spend\n FROM\n order\n WHERE\n {% condition order_region %} order.region {% endcondition %}\n GROUP BY 1",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1504,10 +1499,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "SELECT\n customer_id,\n SUM(sale_price) AS lifetime_spend\n FROM\n order\n WHERE\n {% condition order_region %} order.region {% endcondition %}\n GROUP BY 1",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -1520,18 +1517,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1592,13 +1581,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1612,12 +1607,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: ability {\n sql_table_name: \"ECOMMERCE\".\"ABILITY\"\n ;;\n\n dimension: pk {\n type: number\n sql: ${TABLE}.\"PK\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: []\n }\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1630,10 +1625,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: ability {\n sql_table_name: \"ECOMMERCE\".\"ABILITY\"\n ;;\n\n dimension: pk {\n type: number\n sql: ${TABLE}.\"PK\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: []\n }\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1646,18 +1643,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1706,6 +1695,17 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD),pk)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:snowflake,warehouse.default_db.ecommerce.ability,DEV),count)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD),count)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -1797,13 +1797,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1817,12 +1823,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: owners {\n dimension: id {\n primary_key: yes\n sql: ${TABLE}.id ;;\n }\n dimension: owner_name {\n sql: ${TABLE}.owner_name ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1835,10 +1841,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: owners {\n dimension: id {\n primary_key: yes\n sql: ${TABLE}.id ;;\n }\n dimension: owner_name {\n sql: ${TABLE}.owner_name ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1851,18 +1859,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2015,13 +2015,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -2035,12 +2041,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "explore_source: my_view_explore {\n bind_all_filters: yes\n\n column: country {\n field: my_view_explore.country\n }\n\n column: city {\n field: my_view_explore.city\n }\n\n column: is_latest {\n field: my_view_explore.is_latest\n }\n\n derived_column: derived_col {\n sql: coalesce(country, 'US') ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -2053,10 +2059,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "explore_source: my_view_explore {\n bind_all_filters: yes\n\n column: country {\n field: my_view_explore.country\n }\n\n column: city {\n field: my_view_explore.city\n }\n\n column: is_latest {\n field: my_view_explore.is_latest\n }\n\n derived_column: derived_col {\n sql: coalesce(country, 'US') ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -2069,18 +2077,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2140,6 +2140,28 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),city)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,data.explore.my_view_explore,PROD),my_view_explore.country)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),unique_countries)"
+ ],
+ "confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,data.explore.my_view_explore,PROD),my_view_explore.is_latest)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),derived_col)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -2273,13 +2295,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -2293,12 +2321,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: flights {\n sql_table_name: flightstats.accidents ;;\n\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: number\n sql: ${TABLE}.id ;;\n }\n}\n\n# override type of id parameter\nview: +flights {\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: string\n sql: ${TABLE}.id ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -2311,10 +2339,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: flights {\n sql_table_name: flightstats.accidents ;;\n\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: number\n sql: ${TABLE}.id ;;\n }\n}\n\n# override type of id parameter\nview: +flights {\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: string\n sql: ${TABLE}.id ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -2327,18 +2357,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2457,6 +2479,30 @@
"lastRunId": "no-run-id-provided"
}
},
+{
+ "entityType": "dataset",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
+ "changeType": "UPSERT",
+ "aspectName": "browsePathsV2",
+ "aspect": {
+ "json": {
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
+ ]
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1586847600000,
+ "runId": "lookml-test",
+ "lastRunId": "no-run-id-provided"
+ }
+},
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.TagSnapshot": {
diff --git a/metadata-ingestion/tests/integration/lookml/lookml_mces_with_external_urls.json b/metadata-ingestion/tests/integration/lookml/lookml_mces_with_external_urls.json
index 617aeceb5d68f..31aec97293e5a 100644
--- a/metadata-ingestion/tests/integration/lookml/lookml_mces_with_external_urls.json
+++ b/metadata-ingestion/tests/integration/lookml/lookml_mces_with_external_urls.json
@@ -142,30 +142,6 @@
"lastRunId": "no-run-id-provided"
}
},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_view,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1586847600000,
- "runId": "lookml-test",
- "lastRunId": "no-run-id-provided"
- }
-},
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.DatasetSnapshot": {
@@ -351,13 +327,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -371,12 +353,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "SELECT\n country,\n city,\n timestamp,\n measurement\n FROM\n ${my_view.SQL_TABLE_NAME} AS my_view",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -389,10 +371,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "SELECT\n country,\n city,\n timestamp,\n measurement\n FROM\n ${my_view.SQL_TABLE_NAME} AS my_view",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -405,18 +389,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -589,13 +565,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -609,12 +591,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: include_able_view {\n sql_table_name: looker_schema.include_able ;;\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -627,10 +609,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: include_able_view {\n sql_table_name: looker_schema.include_able ;;\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -643,18 +627,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -716,13 +692,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -736,12 +718,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -754,10 +736,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -770,18 +754,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -843,13 +819,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -863,12 +845,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -881,10 +863,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -897,18 +881,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -945,6 +921,19 @@
"dataset": "urn:li:dataset:(urn:li:dataPlatform:snowflake,default_db.looker_schema.events,PROD)",
"type": "VIEW"
}
+ ],
+ "fineGrainedLineages": [
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:snowflake,default_db.looker_schema.events,PROD),additional_measure)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD),additional_measure)"
+ ],
+ "confidenceScore": 1.0
+ }
]
}
},
@@ -1015,13 +1004,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1035,12 +1030,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1053,10 +1048,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1069,18 +1066,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1142,13 +1131,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1162,12 +1157,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1180,10 +1175,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1196,18 +1193,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1269,13 +1258,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1289,12 +1284,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "date DATE encode ZSTD, \n platform VARCHAR(20) encode ZSTD AS aliased_platform, \n country VARCHAR(20) encode ZSTD",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1307,10 +1302,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "date DATE encode ZSTD, \n platform VARCHAR(20) encode ZSTD AS aliased_platform, \n country VARCHAR(20) encode ZSTD",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -1323,21 +1320,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "nested"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1474,13 +1460,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "nested"
+ }
]
}
},
@@ -1494,12 +1489,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "SELECT\n customer_id,\n SUM(sale_price) AS lifetime_spend\n FROM\n order\n WHERE\n {% condition order_region %} order.region {% endcondition %}\n GROUP BY 1",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1512,10 +1507,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "SELECT\n customer_id,\n SUM(sale_price) AS lifetime_spend\n FROM\n order\n WHERE\n {% condition order_region %} order.region {% endcondition %}\n GROUP BY 1",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -1528,18 +1525,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1601,13 +1590,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1621,12 +1616,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: ability {\n sql_table_name: \"ECOMMERCE\".\"ABILITY\"\n ;;\n\n dimension: pk {\n type: number\n sql: ${TABLE}.\"PK\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: []\n }\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1639,10 +1634,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: ability {\n sql_table_name: \"ECOMMERCE\".\"ABILITY\"\n ;;\n\n dimension: pk {\n type: number\n sql: ${TABLE}.\"PK\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: []\n }\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1655,18 +1652,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1715,6 +1704,17 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD),pk)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:snowflake,default_db.ecommerce.ability,PROD),count)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD),count)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -1807,13 +1807,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -1827,12 +1833,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: owners {\n dimension: id {\n primary_key: yes\n sql: ${TABLE}.id ;;\n }\n dimension: owner_name {\n sql: ${TABLE}.owner_name ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1845,10 +1851,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: owners {\n dimension: id {\n primary_key: yes\n sql: ${TABLE}.id ;;\n }\n dimension: owner_name {\n sql: ${TABLE}.owner_name ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1861,18 +1869,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2026,13 +2026,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -2046,12 +2052,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "explore_source: my_view_explore {\n bind_all_filters: yes\n\n column: country {\n field: my_view_explore.country\n }\n\n column: city {\n field: my_view_explore.city\n }\n\n column: is_latest {\n field: my_view_explore.is_latest\n }\n\n derived_column: derived_col {\n sql: coalesce(country, 'US') ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -2064,10 +2070,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "explore_source: my_view_explore {\n bind_all_filters: yes\n\n column: country {\n field: my_view_explore.country\n }\n\n column: city {\n field: my_view_explore.city\n }\n\n column: is_latest {\n field: my_view_explore.is_latest\n }\n\n derived_column: derived_col {\n sql: coalesce(country, 'US') ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -2080,18 +2088,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2151,6 +2151,28 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),city)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,data.explore.my_view_explore,PROD),my_view_explore.country)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),unique_countries)"
+ ],
+ "confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,data.explore.my_view_explore,PROD),my_view_explore.is_latest)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD),derived_col)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -2285,13 +2307,19 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
]
}
},
@@ -2305,12 +2333,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: flights {\n sql_table_name: flightstats.accidents ;;\n\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: number\n sql: ${TABLE}.id ;;\n }\n}\n\n# override type of id parameter\nview: +flights {\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: string\n sql: ${TABLE}.id ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -2323,10 +2351,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: flights {\n sql_table_name: flightstats.accidents ;;\n\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: number\n sql: ${TABLE}.id ;;\n }\n}\n\n# override type of id parameter\nview: +flights {\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: string\n sql: ${TABLE}.id ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -2339,18 +2369,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2470,6 +2492,30 @@
"lastRunId": "no-run-id-provided"
}
},
+{
+ "entityType": "dataset",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view.flights,PROD)",
+ "changeType": "UPSERT",
+ "aspectName": "browsePathsV2",
+ "aspect": {
+ "json": {
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ }
+ ]
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1586847600000,
+ "runId": "lookml-test",
+ "lastRunId": "no-run-id-provided"
+ }
+},
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.TagSnapshot": {
diff --git a/metadata-ingestion/tests/integration/lookml/refinement_include_order_golden.json b/metadata-ingestion/tests/integration/lookml/refinement_include_order_golden.json
index 61b45bc961307..70f48953a06ad 100644
--- a/metadata-ingestion/tests/integration/lookml/refinement_include_order_golden.json
+++ b/metadata-ingestion/tests/integration/lookml/refinement_include_order_golden.json
@@ -142,33 +142,6 @@
"lastRunId": "no-run-id-provided"
}
},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_1.view.book,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d",
- "urn": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d"
- },
- {
- "id": "views"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1586847600000,
- "runId": "lookml-test",
- "lastRunId": "no-run-id-provided"
- }
-},
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.DatasetSnapshot": {
@@ -242,6 +215,17 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_1.view.book,PROD),issue_date_3)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:conn,.public.book,PROD),count)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_1.view.book,PROD),count)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -396,13 +380,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_1.view.extend_book,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_1.view.book,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d",
+ "urn": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d"
+ },
+ {
+ "id": "views"
+ }
]
}
},
@@ -416,12 +409,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_1.view.extend_book,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"book.view\"\n\nview: +book {\n dimension: issue_date_3 {\n type: number\n sql: ${TABLE}.\"date\" ;;\n }\n}\n\n\nview: extend_book {\n extends: [book]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -434,10 +427,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_1.view.extend_book,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d"
+ "materialized": false,
+ "viewLogic": "include: \"book.view\"\n\nview: +book {\n dimension: issue_date_3 {\n type: number\n sql: ${TABLE}.\"date\" ;;\n }\n}\n\n\nview: extend_book {\n extends: [book]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -450,21 +445,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_1.view.extend_book,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d",
- "urn": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d"
- },
- {
- "id": "views"
- }
- ]
+ "container": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d"
}
},
"systemMetadata": {
@@ -525,13 +509,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_1.view.order,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_1.view.extend_book,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d",
+ "urn": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d"
+ },
+ {
+ "id": "views"
+ }
]
}
},
@@ -545,12 +538,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_1.view.order,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: order {\n sql_table_name: public.order ;;\n\n dimension: order_id {\n type: number\n sql: ${TABLE}.\"order_id\" ;;\n }\n\n dimension: book_id {\n type: number\n sql: ${TABLE}.\"book_id\" ;;\n }\n\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -563,10 +556,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_1.view.order,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d"
+ "materialized": false,
+ "viewLogic": "view: order {\n sql_table_name: public.order ;;\n\n dimension: order_id {\n type: number\n sql: ${TABLE}.\"order_id\" ;;\n }\n\n dimension: book_id {\n type: number\n sql: ${TABLE}.\"book_id\" ;;\n }\n\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -579,21 +574,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_1.view.order,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d",
- "urn": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d"
- },
- {
- "id": "views"
- }
- ]
+ "container": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d"
}
},
"systemMetadata": {
@@ -744,13 +728,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_2.view.issue_history,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_1.view.order,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d",
+ "urn": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d"
+ },
+ {
+ "id": "views"
+ }
]
}
},
@@ -764,12 +757,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_2.view.issue_history,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"book.view\"\n\nview: issue_history {\n sql_table_name: public.issue_history ;;\n\n dimension: book_name {\n type: string\n sql: ${TABLE}.\"book_name\" ;;\n }\n\n dimension: user_name {\n type: string\n sql: ${TABLE}.\"user_name\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: [book_name, user_name]\n }\n}\n\n\nview: +book {\n dimension: issue_date_2 {\n type: string\n sql: ${TABLE}.\"date\" ;;\n }\n}\n\nview: +book {\n dimension: issue_date_4 {\n type: string\n sql: ${TABLE}.\"date\" ;;\n }\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -782,10 +775,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_2.view.issue_history,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d"
+ "materialized": false,
+ "viewLogic": "include: \"book.view\"\n\nview: issue_history {\n sql_table_name: public.issue_history ;;\n\n dimension: book_name {\n type: string\n sql: ${TABLE}.\"book_name\" ;;\n }\n\n dimension: user_name {\n type: string\n sql: ${TABLE}.\"user_name\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: [book_name, user_name]\n }\n}\n\n\nview: +book {\n dimension: issue_date_2 {\n type: string\n sql: ${TABLE}.\"date\" ;;\n }\n}\n\nview: +book {\n dimension: issue_date_4 {\n type: string\n sql: ${TABLE}.\"date\" ;;\n }\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -798,21 +793,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_2.view.issue_history,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d",
- "urn": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d"
- },
- {
- "id": "views"
- }
- ]
+ "container": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d"
}
},
"systemMetadata": {
@@ -872,6 +856,17 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_2.view.issue_history,PROD),user_name)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:conn,.public.issue_history,PROD),count)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_2.view.issue_history,PROD),count)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -982,6 +977,33 @@
"lastRunId": "no-run-id-provided"
}
},
+{
+ "entityType": "dataset",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_refinement_sample1.model_2.view.issue_history,PROD)",
+ "changeType": "UPSERT",
+ "aspectName": "browsePathsV2",
+ "aspect": {
+ "json": {
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d",
+ "urn": "urn:li:container:6f4a333fac5ec55b27b0e65bfb57ef0d"
+ },
+ {
+ "id": "views"
+ }
+ ]
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1586847600000,
+ "runId": "lookml-test",
+ "lastRunId": "no-run-id-provided"
+ }
+},
{
"entityType": "tag",
"entityUrn": "urn:li:tag:Dimension",
diff --git a/metadata-ingestion/tests/integration/lookml/refinements_ingestion_golden.json b/metadata-ingestion/tests/integration/lookml/refinements_ingestion_golden.json
index a98bcd6f89dbd..16e901125e451 100644
--- a/metadata-ingestion/tests/integration/lookml/refinements_ingestion_golden.json
+++ b/metadata-ingestion/tests/integration/lookml/refinements_ingestion_golden.json
@@ -142,33 +142,6 @@
"lastRunId": "no-run-id-provided"
}
},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.foo.view.my_view,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "foo"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1586847600000,
- "runId": "lookml-test",
- "lastRunId": "no-run-id-provided"
- }
-},
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.DatasetSnapshot": {
@@ -353,13 +326,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.bar.view.my_derived_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.foo.view.my_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "foo"
+ }
]
}
},
@@ -373,12 +355,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.bar.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "SELECT\n country,\n city,\n timestamp,\n measurement\n FROM\n ${my_view.SQL_TABLE_NAME} AS my_view",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -391,10 +373,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.bar.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "SELECT\n country,\n city,\n timestamp,\n measurement\n FROM\n ${my_view.SQL_TABLE_NAME} AS my_view",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -407,21 +391,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.bar.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "bar"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -593,13 +566,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.included_view_file.view.include_able_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.bar.view.my_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "bar"
+ }
]
}
},
@@ -613,12 +595,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.included_view_file.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: include_able_view {\n sql_table_name: looker_schema.include_able ;;\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -631,10 +613,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.included_view_file.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: include_able_view {\n sql_table_name: looker_schema.include_able ;;\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -647,21 +631,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.included_view_file.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "included_view_file"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -722,13 +695,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.included_view_file.view.include_able_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "included_view_file"
+ }
]
}
},
@@ -742,12 +724,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -760,10 +742,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -776,21 +760,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "view_declarations"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -851,13 +824,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.extending_looker_events,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "view_declarations"
+ }
]
}
},
@@ -871,12 +853,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -889,10 +871,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -905,21 +889,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "view_declarations"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -956,6 +929,19 @@
"dataset": "urn:li:dataset:(urn:li:dataPlatform:conn,.looker_schema.events,PROD)",
"type": "VIEW"
}
+ ],
+ "fineGrainedLineages": [
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:conn,.looker_schema.events,PROD),additional_measure)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.extending_looker_events,PROD),additional_measure)"
+ ],
+ "confidenceScore": 1.0
+ }
]
}
},
@@ -1025,13 +1011,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.autodetect_sql_name_based_on_view_name,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.extending_looker_events,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "view_declarations"
+ }
]
}
},
@@ -1045,12 +1040,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1063,10 +1058,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1079,21 +1076,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "view_declarations"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1154,13 +1140,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.test_include_external_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.autodetect_sql_name_based_on_view_name,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "view_declarations"
+ }
]
}
},
@@ -1174,12 +1169,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1192,10 +1187,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "include: \"/included_view_file.view\"\n\nview: looker_events {\n sql_table_name: looker_schema.events ;;\n}\n\nview: extending_looker_events {\n extends: [looker_events]\n\n measure: additional_measure {\n type: count\n }\n}\n\nview: autodetect_sql_name_based_on_view_name {}\n\nview: test_include_external_view {\n extends: [include_able_view]\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1208,21 +1205,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "view_declarations"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1283,13 +1269,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.nested.fragment_derived.view.fragment_derived_view,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.view_declarations.view.test_include_external_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "view_declarations"
+ }
]
}
},
@@ -1303,12 +1298,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.nested.fragment_derived.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "date DATE encode ZSTD, \n platform VARCHAR(20) encode ZSTD AS aliased_platform, \n country VARCHAR(20) encode ZSTD",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1321,10 +1316,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.nested.fragment_derived.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "date DATE encode ZSTD, \n platform VARCHAR(20) encode ZSTD AS aliased_platform, \n country VARCHAR(20) encode ZSTD",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -1337,24 +1334,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.nested.fragment_derived.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "nested"
- },
- {
- "id": "fragment_derived"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1490,13 +1473,25 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.liquid.view.customer_facts,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.nested.fragment_derived.view.fragment_derived_view,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "nested"
+ },
+ {
+ "id": "fragment_derived"
+ }
]
}
},
@@ -1510,12 +1505,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.liquid.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "SELECT\n customer_id,\n SUM(sale_price) AS lifetime_spend\n FROM\n order\n WHERE\n {% condition order_region %} order.region {% endcondition %}\n GROUP BY 1",
- "viewLanguage": "sql"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1528,10 +1523,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.liquid.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "SELECT\n customer_id,\n SUM(sale_price) AS lifetime_spend\n FROM\n order\n WHERE\n {% condition order_region %} order.region {% endcondition %}\n GROUP BY 1",
+ "viewLanguage": "sql"
}
},
"systemMetadata": {
@@ -1544,21 +1541,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.liquid.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "liquid"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1619,13 +1605,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.ability.view.ability,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.liquid.view.customer_facts,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "liquid"
+ }
]
}
},
@@ -1639,12 +1634,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.ability.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: ability {\n sql_table_name: \"ECOMMERCE\".\"ABILITY\"\n ;;\n\n dimension: pk {\n type: number\n sql: ${TABLE}.\"PK\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: []\n }\n}\n",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1657,10 +1652,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.ability.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: ability {\n sql_table_name: \"ECOMMERCE\".\"ABILITY\"\n ;;\n\n dimension: pk {\n type: number\n sql: ${TABLE}.\"PK\" ;;\n }\n\n measure: count {\n type: count\n drill_fields: []\n }\n}\n",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1673,21 +1670,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.ability.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "ability"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -1736,6 +1722,17 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.ability.view.ability,PROD),pk)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:conn,.ecommerce.ability,PROD),count)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.ability.view.ability,PROD),count)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -1827,13 +1824,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.owners.view.owners,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.ability.view.ability,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "ability"
+ }
]
}
},
@@ -1847,12 +1853,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.owners.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: owners {\n dimension: id {\n primary_key: yes\n sql: ${TABLE}.id ;;\n }\n dimension: owner_name {\n sql: ${TABLE}.owner_name ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -1865,10 +1871,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.owners.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: owners {\n dimension: id {\n primary_key: yes\n sql: ${TABLE}.id ;;\n }\n dimension: owner_name {\n sql: ${TABLE}.owner_name ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -1881,21 +1889,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.owners.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "owners"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2080,13 +2077,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.native_derived_table.view.view_derived_explore,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.owners.view.owners,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "owners"
+ }
]
}
},
@@ -2100,12 +2106,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.native_derived_table.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "explore_source: my_view_explore {\n bind_all_filters: yes\n\n column: country {\n field: my_view_explore.country\n }\n\n column: city {\n field: my_view_explore.city\n }\n\n column: is_latest {\n field: my_view_explore.is_latest\n }\n\n derived_column: derived_col {\n sql: coalesce(country, 'US') ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -2118,10 +2124,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.native_derived_table.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "explore_source: my_view_explore {\n bind_all_filters: yes\n\n column: country {\n field: my_view_explore.country\n }\n\n column: city {\n field: my_view_explore.city\n }\n\n column: is_latest {\n field: my_view_explore.is_latest\n }\n\n derived_column: derived_col {\n sql: coalesce(country, 'US') ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -2134,21 +2142,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.native_derived_table.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "native_derived_table"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2208,6 +2205,28 @@
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.native_derived_table.view.view_derived_explore,PROD),city)"
],
"confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,data.explore.my_view_explore,PROD),my_view_explore.country)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.native_derived_table.view.view_derived_explore,PROD),unique_countries)"
+ ],
+ "confidenceScore": 1.0
+ },
+ {
+ "upstreamType": "FIELD_SET",
+ "upstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,data.explore.my_view_explore,PROD),my_view_explore.is_latest)"
+ ],
+ "downstreamType": "FIELD",
+ "downstreams": [
+ "urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.native_derived_table.view.view_derived_explore,PROD),derived_col)"
+ ],
+ "confidenceScore": 1.0
}
]
}
@@ -2341,13 +2360,22 @@
},
{
"entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.flights.view.flights,PROD)",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.native_derived_table.view.view_derived_explore,PROD)",
"changeType": "UPSERT",
- "aspectName": "subTypes",
+ "aspectName": "browsePathsV2",
"aspect": {
"json": {
- "typeNames": [
- "View"
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "native_derived_table"
+ }
]
}
},
@@ -2361,12 +2389,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.flights.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "viewProperties",
+ "aspectName": "subTypes",
"aspect": {
"json": {
- "materialized": false,
- "viewLogic": "view: flights {\n sql_table_name: flightstats.accidents ;;\n\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: number\n sql: ${TABLE}.id ;;\n }\n}\n\n# override type of id parameter\nview: +flights {\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: string\n sql: ${TABLE}.id ;;\n }\n}",
- "viewLanguage": "lookml"
+ "typeNames": [
+ "View"
+ ]
}
},
"systemMetadata": {
@@ -2379,10 +2407,12 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.flights.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "container",
+ "aspectName": "viewProperties",
"aspect": {
"json": {
- "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ "materialized": false,
+ "viewLogic": "view: flights {\n sql_table_name: flightstats.accidents ;;\n\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: number\n sql: ${TABLE}.id ;;\n }\n}\n\n# override type of id parameter\nview: +flights {\n dimension: id {\n label: \"id\"\n primary_key: yes\n type: string\n sql: ${TABLE}.id ;;\n }\n}",
+ "viewLanguage": "lookml"
}
},
"systemMetadata": {
@@ -2395,21 +2425,10 @@
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.flights.view.flights,PROD)",
"changeType": "UPSERT",
- "aspectName": "browsePathsV2",
+ "aspectName": "container",
"aspect": {
"json": {
- "path": [
- {
- "id": "Develop"
- },
- {
- "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
- "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
- },
- {
- "id": "flights"
- }
- ]
+ "container": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
}
},
"systemMetadata": {
@@ -2528,6 +2547,33 @@
"lastRunId": "no-run-id-provided"
}
},
+{
+ "entityType": "dataset",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:looker,lkml_samples.flights.view.flights,PROD)",
+ "changeType": "UPSERT",
+ "aspectName": "browsePathsV2",
+ "aspect": {
+ "json": {
+ "path": [
+ {
+ "id": "Develop"
+ },
+ {
+ "id": "urn:li:container:78f22c19304954b15e8adb1d9809975e",
+ "urn": "urn:li:container:78f22c19304954b15e8adb1d9809975e"
+ },
+ {
+ "id": "flights"
+ }
+ ]
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1586847600000,
+ "runId": "lookml-test",
+ "lastRunId": "no-run-id-provided"
+ }
+},
{
"entityType": "tag",
"entityUrn": "urn:li:tag:Dimension",
diff --git a/metadata-ingestion/tests/integration/metabase/metabase_mces_golden.json b/metadata-ingestion/tests/integration/metabase/metabase_mces_golden.json
index 10c1c312a4d1c..9bab81eaa228b 100644
--- a/metadata-ingestion/tests/integration/metabase/metabase_mces_golden.json
+++ b/metadata-ingestion/tests/integration/metabase/metabase_mces_golden.json
@@ -182,7 +182,7 @@
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.DashboardSnapshot": {
- "urn": "urn:li:dashboard:(metabase,1)",
+ "urn": "urn:li:dashboard:(metabase,10)",
"aspects": [
{
"com.linkedin.pegasus2avro.dashboard.DashboardInfo": {
@@ -234,7 +234,59 @@
{
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.DashboardSnapshot": {
- "urn": "urn:li:dashboard:(metabase,1)",
+ "urn": "urn:li:dashboard:(metabase,20)",
+ "aspects": [
+ {
+ "com.linkedin.pegasus2avro.dashboard.DashboardInfo": {
+ "customProperties": {},
+ "title": "Dashboard 2",
+ "description": "",
+ "charts": [
+ "urn:li:chart:(metabase,1)",
+ "urn:li:chart:(metabase,2)",
+ "urn:li:chart:(metabase,3)"
+ ],
+ "datasets": [],
+ "lastModified": {
+ "created": {
+ "time": 1705398694904,
+ "actor": "urn:li:corpuser:admin@metabase.com"
+ },
+ "lastModified": {
+ "time": 1705398694904,
+ "actor": "urn:li:corpuser:admin@metabase.com"
+ }
+ },
+ "dashboardUrl": "http://localhost:3000/dashboard/20"
+ }
+ },
+ {
+ "com.linkedin.pegasus2avro.common.Ownership": {
+ "owners": [
+ {
+ "owner": "urn:li:corpuser:admin@metabase.com",
+ "type": "DATAOWNER"
+ }
+ ],
+ "lastModified": {
+ "time": 0,
+ "actor": "urn:li:corpuser:unknown"
+ }
+ }
+ }
+ ]
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1636614000000,
+ "runId": "metabase-test",
+ "lastRunId": "no-run-id-provided"
+ }
+},
+{
+ "proposedSnapshot": {
+ "com.linkedin.pegasus2avro.metadata.snapshot.DashboardSnapshot": {
+ "urn": "urn:li:dashboard:(metabase,10)",
"aspects": [
{
"com.linkedin.pegasus2avro.dashboard.DashboardInfo": {
@@ -333,7 +385,23 @@
},
{
"entityType": "dashboard",
- "entityUrn": "urn:li:dashboard:(metabase,1)",
+ "entityUrn": "urn:li:dashboard:(metabase,10)",
+ "changeType": "UPSERT",
+ "aspectName": "status",
+ "aspect": {
+ "json": {
+ "removed": false
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1636614000000,
+ "runId": "metabase-test",
+ "lastRunId": "no-run-id-provided"
+ }
+},
+{
+ "entityType": "dashboard",
+ "entityUrn": "urn:li:dashboard:(metabase,20)",
"changeType": "UPSERT",
"aspectName": "status",
"aspect": {
diff --git a/metadata-ingestion/tests/integration/metabase/setup/collection_dashboards.json b/metadata-ingestion/tests/integration/metabase/setup/collection_dashboards.json
index b602d2dfb7dcd..16ca1d4d6c48f 100644
--- a/metadata-ingestion/tests/integration/metabase/setup/collection_dashboards.json
+++ b/metadata-ingestion/tests/integration/metabase/setup/collection_dashboards.json
@@ -1 +1 @@
-{"total": 1, "data": [{"description": null, "collection_position": null, "database_id": null, "name": "This is a test", "id": 10, "entity_id": "Q4gEaOmoBkfQX3_gXiH9g", "last-edit-info": {"id": 14, "last_name": "Doe", "first_name": "John", "email": "john.doe@somewhere.com", "timestamp": "2024-01-12T14:55:38.43304Z"}, "model": "dashboard"}], "models": ["dashboard"], "limit": null, "offset": null}
+{"total":2,"data":[{"description":null,"collection_position":null,"database_id":null,"name":"This is a test","id":10,"entity_id":"Q4gEaOmoBkfQX3_gXiH9g","last-edit-info":{"id":14,"last_name":"Doe","first_name":"John","email":"john.doe@somewhere.com","timestamp":"2024-01-12T14:55:38.43304Z"},"model":"dashboard"},{"description":null,"collection_position":null,"database_id":null,"name":"This is a test","id":20,"entity_id":"R5jSaUsuDkqFK9_gTiH2x","last-edit-info":{"id":14,"last_name":"Doe","first_name":"John","email":"john.doe@somewhere.com","timestamp":"2024-01-12T14:55:38.43304Z"},"model":"dashboard"}],"models":["dashboard"],"limit":null,"offset":null}
diff --git a/metadata-ingestion/tests/integration/metabase/setup/collection_dashboards_deleted_item.json b/metadata-ingestion/tests/integration/metabase/setup/collection_dashboards_deleted_item.json
new file mode 100644
index 0000000000000..b602d2dfb7dcd
--- /dev/null
+++ b/metadata-ingestion/tests/integration/metabase/setup/collection_dashboards_deleted_item.json
@@ -0,0 +1 @@
+{"total": 1, "data": [{"description": null, "collection_position": null, "database_id": null, "name": "This is a test", "id": 10, "entity_id": "Q4gEaOmoBkfQX3_gXiH9g", "last-edit-info": {"id": 14, "last_name": "Doe", "first_name": "John", "email": "john.doe@somewhere.com", "timestamp": "2024-01-12T14:55:38.43304Z"}, "model": "dashboard"}], "models": ["dashboard"], "limit": null, "offset": null}
diff --git a/metadata-ingestion/tests/integration/metabase/setup/dashboard_1.json b/metadata-ingestion/tests/integration/metabase/setup/dashboard_1.json
index e968093c43850..f58a1079c3620 100644
--- a/metadata-ingestion/tests/integration/metabase/setup/dashboard_1.json
+++ b/metadata-ingestion/tests/integration/metabase/setup/dashboard_1.json
@@ -588,7 +588,7 @@
"entity_id": "lXypX5aa14HjkN_Im82C2",
"visualization_settings": {},
"size_y": 6,
- "dashboard_id": 1,
+ "dashboard_id": 10,
"created_at": "2024-01-16T09:50:34.394488Z",
"row": 0
},
@@ -802,7 +802,7 @@
"entity_id": "iVOtiEPgX-a90Qh3rJWui",
"visualization_settings": {},
"size_y": 6,
- "dashboard_id": 1,
+ "dashboard_id": 20,
"created_at": "2024-01-16T09:51:34.833525Z",
"row": 6
}
@@ -821,7 +821,7 @@
"made_public_by_id": null,
"embedding_params": null,
"cache_ttl": null,
- "id": 1,
+ "id": 10,
"position": null,
"entity_id": "Z6B2yiCTEMiwZFe4x5jPT",
"param_fields": null,
diff --git a/metadata-ingestion/tests/integration/metabase/setup/dashboard_2.json b/metadata-ingestion/tests/integration/metabase/setup/dashboard_2.json
new file mode 100644
index 0000000000000..2f9beaccc1e18
--- /dev/null
+++ b/metadata-ingestion/tests/integration/metabase/setup/dashboard_2.json
@@ -0,0 +1,855 @@
+{
+ "description": null,
+ "archived": false,
+ "collection_position": null,
+ "dashcards": [
+ {
+ "size_x": 12,
+ "dashboard_tab_id": null,
+ "series": [],
+ "action_id": null,
+ "collection_authority_level": null,
+ "card": {
+ "description": null,
+ "archived": false,
+ "collection_position": null,
+ "table_id": null,
+ "result_metadata": [
+ {
+ "display_name": "EVENT_DATE",
+ "field_ref": [
+ "field",
+ "EVENT_DATE",
+ {
+ "base-type": "type/Date"
+ }
+ ],
+ "name": "EVENT_DATE",
+ "base_type": "type/Date",
+ "effective_type": "type/Date",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 28,
+ "nil%": 0
+ },
+ "type": {
+ "type/DateTime": {
+ "earliest": "2023-12-04T00:00:00Z",
+ "latest": "2024-01-15T00:00:00Z"
+ }
+ }
+ }
+ },
+ {
+ "display_name": "AND_VIEWERS",
+ "field_ref": [
+ "field",
+ "AND_VIEWERS",
+ {
+ "base-type": "type/Number"
+ }
+ ],
+ "name": "AND_VIEWERS",
+ "base_type": "type/Number",
+ "effective_type": "type/Number",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 28,
+ "nil%": 0
+ },
+ "type": {
+ "type/Number": {
+ "min": 4720,
+ "q1": 5083.5,
+ "q3": 9003,
+ "max": 10560,
+ "sd": 2090.2420089751945,
+ "avg": 6688.214285714285
+ }
+ }
+ }
+ },
+ {
+ "display_name": "AND_REDACTED",
+ "field_ref": [
+ "field",
+ "AND_REDACTED",
+ {
+ "base-type": "type/Number"
+ }
+ ],
+ "name": "AND_REDACTED",
+ "base_type": "type/Number",
+ "effective_type": "type/Number",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 28,
+ "nil%": 0
+ },
+ "type": {
+ "type/Number": {
+ "min": 948,
+ "q1": 2019.5,
+ "q3": 2500.5,
+ "max": 3180,
+ "sd": 460.56365857271413,
+ "avg": 2251.0714285714284
+ }
+ }
+ }
+ },
+ {
+ "display_name": "AND_REDACTED",
+ "field_ref": [
+ "field",
+ "AND_REDACTED",
+ {
+ "base-type": "type/Number"
+ }
+ ],
+ "name": "AND_REDACTED",
+ "base_type": "type/Number",
+ "effective_type": "type/Number",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 28,
+ "nil%": 0
+ },
+ "type": {
+ "type/Number": {
+ "min": 3545,
+ "q1": 10909,
+ "q3": 13916,
+ "max": 18861,
+ "sd": 3132.780684756446,
+ "avg": 12122.32142857143
+ }
+ }
+ }
+ },
+ {
+ "display_name": "IOS_VIEWERS",
+ "field_ref": [
+ "field",
+ "IOS_VIEWERS",
+ {
+ "base-type": "type/Number"
+ }
+ ],
+ "name": "IOS_VIEWERS",
+ "base_type": "type/Number",
+ "effective_type": "type/Number",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 28,
+ "nil%": 0
+ },
+ "type": {
+ "type/Number": {
+ "min": 6477,
+ "q1": 7481.5,
+ "q3": 10428.5,
+ "max": 13182,
+ "sd": 1948.047456520796,
+ "avg": 9075.17857142857
+ }
+ }
+ }
+ },
+ {
+ "display_name": "IOS_REDACTED",
+ "field_ref": [
+ "field",
+ "IOS_REDACTED",
+ {
+ "base-type": "type/Number"
+ }
+ ],
+ "name": "IOS_REDACTED",
+ "base_type": "type/Number",
+ "effective_type": "type/Number",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 28,
+ "nil%": 0
+ },
+ "type": {
+ "type/Number": {
+ "min": 1470,
+ "q1": 3020,
+ "q3": 3806,
+ "max": 4670,
+ "sd": 665.7415088559197,
+ "avg": 3415.8571428571427
+ }
+ }
+ }
+ },
+ {
+ "display_name": "IOS_REDACTED",
+ "field_ref": [
+ "field",
+ "IOS_REDACTED",
+ {
+ "base-type": "type/Number"
+ }
+ ],
+ "name": "IOS_REDACTED",
+ "base_type": "type/Number",
+ "effective_type": "type/Number",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 28,
+ "nil%": 0
+ },
+ "type": {
+ "type/Number": {
+ "min": 4872,
+ "q1": 15019.5,
+ "q3": 20457,
+ "max": 27466,
+ "sd": 4688.492913816769,
+ "avg": 17683.89285714286
+ }
+ }
+ }
+ },
+ {
+ "display_name": "IOS_REDACTED/IOS_VIEWERS",
+ "field_ref": [
+ "field",
+ "IOS_REDACTED/IOS_VIEWERS",
+ {
+ "base-type": "type/Number"
+ }
+ ],
+ "name": "IOS_REDACTED/IOS_VIEWERS",
+ "base_type": "type/Number",
+ "effective_type": "type/Number",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 28,
+ "nil%": 0
+ },
+ "type": {
+ "type/Number": {
+ "min": 0.662587,
+ "q1": 1.8403745,
+ "q3": 2.241517,
+ "max": 2.576166,
+ "sd": 0.4488826998266724,
+ "avg": 1.974007857142857
+ }
+ }
+ }
+ },
+ {
+ "display_name": "AND_REDACTED/AND_VIEWERS",
+ "field_ref": [
+ "field",
+ "AND_REDACTED/AND_VIEWERS",
+ {
+ "base-type": "type/Number"
+ }
+ ],
+ "name": "AND_REDACTED/AND_VIEWERS",
+ "base_type": "type/Number",
+ "effective_type": "type/Number",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 28,
+ "nil%": 0
+ },
+ "type": {
+ "type/Number": {
+ "min": 0.671656,
+ "q1": 1.3536655,
+ "q3": 2.5325145,
+ "max": 3.097553,
+ "sd": 0.6816847359625038,
+ "avg": 1.93937275
+ }
+ }
+ }
+ },
+ {
+ "display_name": "IOS_REDACTED/IOS_VIEWERS",
+ "field_ref": [
+ "field",
+ "IOS_REDACTED/IOS_VIEWERS",
+ {
+ "base-type": "type/Number"
+ }
+ ],
+ "name": "IOS_REDACTED/IOS_VIEWERS",
+ "base_type": "type/Number",
+ "effective_type": "type/Number",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 28,
+ "nil%": 0
+ },
+ "type": {
+ "type/Number": {
+ "min": 0.199918,
+ "q1": 0.34496099999999996,
+ "q3": 0.4352085,
+ "max": 0.47286,
+ "sd": 0.06928869477079941,
+ "avg": 0.3833206785714286
+ }
+ }
+ }
+ },
+ {
+ "display_name": "AND_REDACTED/AND_VIEWERS",
+ "field_ref": [
+ "field",
+ "AND_REDACTED/AND_VIEWERS",
+ {
+ "base-type": "type/Number"
+ }
+ ],
+ "name": "AND_REDACTED/AND_VIEWERS",
+ "base_type": "type/Number",
+ "effective_type": "type/Number",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 28,
+ "nil%": 0
+ },
+ "type": {
+ "type/Number": {
+ "min": 0.179613,
+ "q1": 0.245343,
+ "q3": 0.475772,
+ "max": 0.522253,
+ "sd": 0.11732033433182058,
+ "avg": 0.3620892142857142
+ }
+ }
+ }
+ }
+ ],
+ "can_write": true,
+ "database_id": 3,
+ "enable_embedding": false,
+ "collection_id": 112,
+ "query_type": "native",
+ "name": "REDACTED iOS vs. Android",
+ "query_average_duration": 50982,
+ "creator_id": 42,
+ "moderation_reviews": [],
+ "updated_at": "2024-01-16T13:34:29.916717Z",
+ "made_public_by_id": null,
+ "embedding_params": null,
+ "cache_ttl": null,
+ "dataset_query": {
+ "type": "native",
+ "native": {
+ "query": "-- 1. Table with redacted search users Android\n-- 2. Table with redacted search users iOS \n-- 3. Redacted from Android redacted\n-- 4. redacted from iOS\n-- 5. Compare the numbers iOS vs. Android\n\n\n-- 1. Table with redacted search users Android (to include date, platform, auth_account_id)\n-- 2. Table with redacted search users iOS (to include date, platform, auth_account_id)\n-- 3. Redacted from Android redacted (to include date, platform, count of redacted)\n-- 4. Redacted from iOS redacted (to include date, plaform, count of redacted)\n-- 5. Compare the numbers iOS vs. Android\n\nwith AND_viewers as \n(\nselect event_date, platform, auth_account_id \nfrom TEAMS_PRD.REDACTED.MRT_CURR__MPARTICLE_SCREEN_VIEWS\nwhere screen_name='redacted_search'\nand event_date>'2023-12-01'\nand platform='Android'\nand dayofweekiso(event_date) NOT IN (6,7)\ngroup by event_date, platform, auth_account_id\norder by event_date desc\n), \niOS_viewers as \n(\nselect event_date, platform, auth_account_id \nfrom TEAMS_PRD.REDACTED.MRT_CURR__MPARTICLE_SCREEN_VIEWS\nwhere screen_name='redacted_search'\nand event_date>'2023-12-01'\nand platform='iOS'\nand dayofweekiso(event_date) NOT IN (6,7)\ngroup by event_date, platform, auth_account_id\norder by event_date desc\n), \nAND_redacted as\n(\nselect redacted_ts::date as redacted_date, platform, count(distinct at.auth_account_id) as AND_redacted, count(group_redacted_id) as AND_redacted\nfrom TEAMS_PRD.REDACTED.MRT_CURR__REDACTED_CUSTOMER at\njoin AND_viewers av on av.event_date=at.redacted_ts::date and av.auth_account_id=at.auth_account_id\nwhere instrument_type='REDACTED'\ngroup by 1,2\norder by 1 desc\n), \niOS_redacted as\n(\nselect redacted_ts::date as redacted_date, platform, count(distinct it.auth_account_id) as iOS_redacted, count(group_redacted_id) as iOS_redacted\nfrom TEAMS_PRD.REDACTED.MRT_CURR__REDACTED_CUSTOMER it\njoin iOS_viewers iv on iv.event_date=it.redacted_ts::date and iv.auth_account_id=it.auth_account_id\nwhere instrument_type='REDACTED'\ngroup by 1,2\norder by 1 desc\n)\nselect a.event_date, count(distinct a.auth_account_id) as AND_viewers, AND_redacted, AND_redacted, count(distinct i.auth_account_id) as iOS_viewers, iOS_redacted, iOS_redacted, iOS_redacted/iOS_viewers, AND_redacted/AND_viewers, iOS_redacted/iOS_viewers, AND_redacted/AND_viewers\nfrom AND_VIEWERS a\njoin AND_redacted at\non a.event_date=at.redacted_date\njoin ios_viewers i\non a.event_date=i.event_date\njoin ios_redacted it\non i.event_date=it.redacted_date\ngroup by 1, 3, 4, 6, 7\norder by 1 desc\n\n\n",
+ "template-tags": {}
+ },
+ "database": 3
+ },
+ "id": 1,
+ "parameter_mappings": [],
+ "display": "line",
+ "entity_id": "DhQgvvtTEarZH8yQBlqES",
+ "collection_preview": true,
+ "visualization_settings": {
+ "graph.dimensions": [
+ "EVENT_DATE"
+ ],
+ "series_settings": {
+ "IOS_REDACTED/IOS_VIEWERS": {
+ "axis": "right"
+ },
+ "AND_REDACTED/AND_VIEWERS": {
+ "axis": "right"
+ }
+ },
+ "graph.metrics": [
+ "IOS_REDACTED/IOS_VIEWERS",
+ "AND_REDACTED/AND_VIEWERS",
+ "AND_VIEWERS",
+ "IOS_VIEWERS"
+ ]
+ },
+ "metabase_version": "v0.48.3 (80d8323)",
+ "parameters": [],
+ "dataset": false,
+ "created_at": "2024-01-16T09:44:49.407327Z",
+ "public_uuid": null
+ },
+ "updated_at": "2024-01-16T09:45:45.410379Z",
+ "col": 0,
+ "id": 12,
+ "parameter_mappings": [],
+ "card_id": 1,
+ "entity_id": "tA9M9vJlTHG0KxQnvknKW",
+ "visualization_settings": {},
+ "size_y": 6,
+ "dashboard_id": 20,
+ "created_at": "2024-01-16T09:45:45.410379Z",
+ "row": 0
+ },
+ {
+ "size_x": 12,
+ "dashboard_tab_id": null,
+ "series": [],
+ "action_id": null,
+ "collection_authority_level": null,
+ "card": {
+ "description": null,
+ "archived": false,
+ "collection_position": null,
+ "table_id": null,
+ "result_metadata": [
+ {
+ "display_name": "CALENDAR_DATE",
+ "field_ref": [
+ "field",
+ "CALENDAR_DATE",
+ {
+ "base-type": "type/Date"
+ }
+ ],
+ "name": "CALENDAR_DATE",
+ "base_type": "type/Date",
+ "effective_type": "type/Date",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 30,
+ "nil%": 0
+ },
+ "type": {
+ "type/DateTime": {
+ "earliest": "2023-12-17T00:00:00Z",
+ "latest": "2024-01-15T00:00:00Z"
+ }
+ }
+ }
+ },
+ {
+ "display_name": "REDACTED",
+ "field_ref": [
+ "field",
+ "REDACTED",
+ {
+ "base-type": "type/Number"
+ }
+ ],
+ "name": "REDACTED",
+ "base_type": "type/Number",
+ "effective_type": "type/Number",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 27,
+ "nil%": 0
+ },
+ "type": {
+ "type/Number": {
+ "min": 682175,
+ "q1": 738644,
+ "q3": 805974,
+ "max": 847312,
+ "sd": 46783.99996291344,
+ "avg": 775505.5666666667
+ }
+ }
+ }
+ },
+ {
+ "display_name": "REDACTEDRS",
+ "field_ref": [
+ "field",
+ "REDACTEDRS",
+ {
+ "base-type": "type/Number"
+ }
+ ],
+ "name": "REDACTEDRS",
+ "base_type": "type/Number",
+ "effective_type": "type/Number",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 27,
+ "nil%": 0
+ },
+ "type": {
+ "type/Number": {
+ "min": 46173,
+ "q1": 47556.94427191,
+ "q3": 48890,
+ "max": 50769,
+ "sd": 1164.9989906758983,
+ "avg": 48354.8
+ }
+ }
+ }
+ },
+ {
+ "display_name": "REDACTED/REDACTEDRS",
+ "field_ref": [
+ "field",
+ "REDACTED/REDACTEDRS",
+ {
+ "base-type": "type/Number"
+ }
+ ],
+ "name": "REDACTED/REDACTEDRS",
+ "base_type": "type/Number",
+ "effective_type": "type/Number",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 27,
+ "nil%": 0
+ },
+ "type": {
+ "type/Number": {
+ "min": 14.706168,
+ "q1": 15.398378,
+ "q3": 16.920933,
+ "max": 17.289964,
+ "sd": 0.8020030995826715,
+ "avg": 16.033017833333336
+ }
+ }
+ }
+ }
+ ],
+ "can_write": true,
+ "database_id": 3,
+ "enable_embedding": false,
+ "collection_id": 112,
+ "query_type": "native",
+ "name": "Redacted redacted per redacted user",
+ "query_average_duration": 20433,
+ "creator_id": 1,
+ "moderation_reviews": [],
+ "updated_at": "2024-01-16T13:34:29.916788Z",
+ "made_public_by_id": null,
+ "embedding_params": null,
+ "cache_ttl": null,
+ "dataset_query": {
+ "type": "native",
+ "native": {
+ "query": "with dd as (\nselect distinct calendar_date as calendar_date from TEAMS_PRD.DATA_PLATFORM_MART.MRT__CALENDAR_DATES\nwhere calendar_date>'2022-01-01'\n), \nredacted as\n(\nselect dd.calendar_date, count(distinct auth_account_id) as redacted, max(redacted_ts), min(redacted_ts)\nfrom TEAMS_PRD.REDACTED.MRT_CURR__REDACTED_CUSTOMER t\njoin dd on redacted_ts::date BETWEEN dd.calendar_date-29 and dd.calendar_date\nwhere redacted_type='REGULAR'\nand instrument_type = 'REDACTED'\ngroup by dd.calendar_date\norder by dd.calendar_date desc\n),\nredacted as\n(\nselect dd.calendar_date, count(group_redacted_id) as redacted, max(redacted_ts), min(redacted_ts)\nfrom TEAMS_PRD.REDACTED.MRT_CURR__REDACTED_CUSTOMER t\njoin dd on redacted_ts::date BETWEEN dd.calendar_date-29 and dd.calendar_date\nwhere redacted_type='REGULAR'\nand instrument_type = 'REDACTED'\ngroup by dd.calendar_date\norder by dd.calendar_date desc\n)\nselect dd.calendar_date, redacted, redacted, redacted/redacted\nfrom dd\njoin redacted t on dd.calendar_date=t.calendar_date\njoin redacted tr on dd.calendar_date=tr.calendar_date\ngroup by dd.calendar_date, redacted, redacted, redacted/redacted\norder by dd.calendar_date desc \nlimit 30",
+ "template-tags": {}
+ },
+ "database": 3
+ },
+ "id": 2,
+ "parameter_mappings": [],
+ "display": "line",
+ "entity_id": "b1jUcPcQM0XFMuviv4g3K",
+ "collection_preview": true,
+ "visualization_settings": {
+ "graph.dimensions": [
+ "CALENDAR_DATE"
+ ],
+ "series_settings": {
+ "REDACTEDRS": {
+ "axis": "right"
+ }
+ },
+ "graph.metrics": [
+ "REDACTED/REDACTEDRS",
+ "REDACTEDRS"
+ ]
+ },
+ "metabase_version": "v0.48.3 (80d8323)",
+ "parameters": [],
+ "dataset": false,
+ "created_at": "2024-01-16T09:50:09.487369Z",
+ "public_uuid": null
+ },
+ "updated_at": "2024-01-16T09:50:34.394488Z",
+ "col": 12,
+ "id": 1,
+ "parameter_mappings": [],
+ "card_id": 2,
+ "entity_id": "lXypX5aa14HjkN_Im82C2",
+ "visualization_settings": {},
+ "size_y": 6,
+ "dashboard_id": 20,
+ "created_at": "2024-01-16T09:50:34.394488Z",
+ "row": 0
+ },
+ {
+ "size_x": 12,
+ "dashboard_tab_id": null,
+ "series": [],
+ "action_id": null,
+ "collection_authority_level": null,
+ "card": {
+ "description": null,
+ "archived": false,
+ "collection_position": null,
+ "table_id": null,
+ "result_metadata": [
+ {
+ "display_name": "EVENT_DATE",
+ "field_ref": [
+ "field",
+ "EVENT_DATE",
+ {
+ "base-type": "type/Date"
+ }
+ ],
+ "name": "EVENT_DATE",
+ "base_type": "type/Date",
+ "effective_type": "type/Date",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 11,
+ "nil%": 0
+ },
+ "type": {
+ "type/DateTime": {
+ "earliest": "2024-01-01T00:00:00Z",
+ "latest": "2024-01-15T00:00:00Z"
+ }
+ }
+ }
+ },
+ {
+ "display_name": "KNOCKOUT",
+ "field_ref": [
+ "field",
+ "KNOCKOUT",
+ {
+ "base-type": "type/Number"
+ }
+ ],
+ "name": "KNOCKOUT",
+ "base_type": "type/Number",
+ "effective_type": "type/Number",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 11,
+ "nil%": 0
+ },
+ "type": {
+ "type/Number": {
+ "min": 175,
+ "q1": 853.75,
+ "q3": 1116.75,
+ "max": 1174,
+ "sd": 296.0767713709648,
+ "avg": 916.3636363636364
+ }
+ }
+ }
+ },
+ {
+ "display_name": "EXPIRY",
+ "field_ref": [
+ "field",
+ "EXPIRY",
+ {
+ "base-type": "type/Number"
+ }
+ ],
+ "name": "EXPIRY",
+ "base_type": "type/Number",
+ "effective_type": "type/Number",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 10,
+ "nil%": 0
+ },
+ "type": {
+ "type/Number": {
+ "min": 78,
+ "q1": 295.5,
+ "q3": 408.3925271309261,
+ "max": 431,
+ "sd": 105.10704500218294,
+ "avg": 336.90909090909093
+ }
+ }
+ }
+ },
+ {
+ "display_name": "PRODUCT",
+ "field_ref": [
+ "field",
+ "PRODUCT",
+ {
+ "base-type": "type/Number"
+ }
+ ],
+ "name": "PRODUCT",
+ "base_type": "type/Number",
+ "effective_type": "type/Number",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 9,
+ "nil%": 0
+ },
+ "type": {
+ "type/Number": {
+ "min": 57,
+ "q1": 163.75,
+ "q3": 233,
+ "max": 255,
+ "sd": 59.31119777763877,
+ "avg": 195.27272727272728
+ }
+ }
+ }
+ },
+ {
+ "display_name": "ISSUER",
+ "field_ref": [
+ "field",
+ "ISSUER",
+ {
+ "base-type": "type/Number"
+ }
+ ],
+ "name": "ISSUER",
+ "base_type": "type/Number",
+ "effective_type": "type/Number",
+ "semantic_type": null,
+ "fingerprint": {
+ "global": {
+ "distinct-count": 10,
+ "nil%": 0
+ },
+ "type": {
+ "type/Number": {
+ "min": 43,
+ "q1": 214,
+ "q3": 292.25,
+ "max": 304,
+ "sd": 79.35879397910594,
+ "avg": 245.72727272727272
+ }
+ }
+ }
+ }
+ ],
+ "can_write": true,
+ "database_id": 3,
+ "enable_embedding": false,
+ "collection_id": 112,
+ "query_type": "native",
+ "name": "Filter popularity",
+ "query_average_duration": 2830,
+ "creator_id": 1,
+ "moderation_reviews": [],
+ "updated_at": "2024-01-16T13:34:30.128815Z",
+ "made_public_by_id": null,
+ "embedding_params": null,
+ "cache_ttl": null,
+ "dataset_query": {
+ "type": "native",
+ "native": {
+ "query": "with issuer as\n(\n select event_date, count(*) as issuer_clicks, count(distinct auth_account_id) as issuer\n from TEAMS_PRD.REDACTED.MRT_CURR__MPARTICLE_EVENTS\n where event_name='redacted_search_filter_button_tapped' \n and event_attributes:filter_option::varchar='issuer'\n and event_date>'2023-12-31'\n and platform='Android'\n and dayofweekiso(event_date) NOT IN (6,7)\n and event_attributes:redacted_type::varchar='knock_out_product'\n group by 1\n order by 1 desc\n), expiry as\n(\n select event_date, count(*) as expiry_clicks, count(distinct auth_account_id) as expiry\n from TEAMS_PRD.REDACTED.MRT_CURR__MPARTICLE_EVENTS\n where event_name='redacted_search_filter_button_tapped' \n and event_attributes:filter_option::varchar='expiry'\n and event_date>'2023-12-31'\n and platform='Android'\n and dayofweekiso(event_date) NOT IN (6,7)\n and event_attributes:redacted_type::varchar='knock_out_product'\n group by 1\n order by 1 desc\n), product as\n(\n select event_date, count(*) as product_clicks, count(distinct auth_account_id) as product\n from TEAMS_PRD.REDACTED.MRT_CURR__MPARTICLE_EVENTS\n where event_name='redacted_search_filter_button_tapped' \n and event_attributes:filter_option::varchar='product'\n and event_date>'2023-12-31'\n and platform='Android'\n and dayofweekiso(event_date) NOT IN (6,7)\n and event_attributes:redacted_type::varchar='knock_out_product'\n group by 1\n order by 1 desc\n), knockout as \n(\n select event_date, count(*) as knockout_clicks, count(distinct auth_account_id) as knockout\n from TEAMS_PRD.SCHEMA.MRT_CURR__MPARTICLE_EVENTS\n where event_name='redacted_search_filter_button_tapped' \n and event_attributes:filter_option::varchar='knockout'\n and event_date>'2023-12-31'\n and platform='Android'\n and dayofweekiso(event_date) NOT IN (6,7)\n and event_attributes:redacted_type::varchar='knock_out_product'\n group by 1\n order by 1 desc\n)\nselect k.event_date, knockout, expiry, product, issuer\nfrom knockout k\njoin expiry e on k.event_date=e.event_date\njoin issuer i on k.event_date=i.event_date\njoin product p on k.event_date=p.event_date\nwhere k.event_date 0) {
- browsePathEntries.addAll(
- getDefaultDatasetPathEntries(dsKey.getName().toLowerCase(), dataPlatformDelimiter));
+ browsePathEntries.addAll(defaultDatasetPathEntries);
} else {
browsePathEntries.add(createBrowsePathEntry(DEFAULT_FOLDER_NAME, null));
}
diff --git a/metadata-io/src/test/java/com/linkedin/metadata/search/utils/BrowsePathV2UtilsTest.java b/metadata-io/src/test/java/com/linkedin/metadata/search/utils/BrowsePathV2UtilsTest.java
index 3c5ecc8713e77..b95b4efb34a7e 100644
--- a/metadata-io/src/test/java/com/linkedin/metadata/search/utils/BrowsePathV2UtilsTest.java
+++ b/metadata-io/src/test/java/com/linkedin/metadata/search/utils/BrowsePathV2UtilsTest.java
@@ -146,8 +146,8 @@ public void testGetDefaultBrowsePathV2WithoutContainers() throws URISyntaxExcept
BrowsePathV2Utils.getDefaultBrowsePathV2(
mock(OperationContext.class), datasetUrn, this.registry, '.', mockService, true);
BrowsePathEntryArray expectedPath = new BrowsePathEntryArray();
- BrowsePathEntry entry1 = new BrowsePathEntry().setId("test");
- BrowsePathEntry entry2 = new BrowsePathEntry().setId("a");
+ BrowsePathEntry entry1 = new BrowsePathEntry().setId("Test");
+ BrowsePathEntry entry2 = new BrowsePathEntry().setId("A");
expectedPath.add(entry1);
expectedPath.add(entry2);
Assert.assertEquals(browsePathsV2.getPath(), expectedPath);
diff --git a/metadata-service/graphql-servlet-impl/src/main/java/com/datahub/graphql/GraphQLController.java b/metadata-service/graphql-servlet-impl/src/main/java/com/datahub/graphql/GraphQLController.java
index 31e4b58a56e74..e53e59b863c9c 100644
--- a/metadata-service/graphql-servlet-impl/src/main/java/com/datahub/graphql/GraphQLController.java
+++ b/metadata-service/graphql-servlet-impl/src/main/java/com/datahub/graphql/GraphQLController.java
@@ -28,6 +28,7 @@
import java.util.concurrent.TimeUnit;
import javax.annotation.Nonnull;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
@@ -54,6 +55,8 @@ public GraphQLController() {
@Named("systemOperationContext")
private OperationContext systemOperationContext;
+ private static final int MAX_LOG_WIDTH = 512;
+
@PostMapping(value = "/graphql", produces = "application/json;charset=utf-8")
CompletableFuture> postGraphQL(HttpEntity httpEntity) {
@@ -70,7 +73,7 @@ CompletableFuture> postGraphQL(HttpEntity httpEnt
try {
bodyJson = mapper.readTree(jsonStr);
} catch (JsonProcessingException e) {
- log.error(String.format("Failed to parse json %s", jsonStr));
+ log.error("Failed to parse json {}", jsonStr);
return CompletableFuture.completedFuture(new ResponseEntity<>(HttpStatus.BAD_REQUEST));
}
@@ -85,6 +88,7 @@ CompletableFuture> postGraphQL(HttpEntity httpEnt
if (queryJson == null) {
return CompletableFuture.completedFuture(new ResponseEntity<>(HttpStatus.BAD_REQUEST));
}
+ final String query = queryJson.asText();
/*
* Extract "operationName" field
@@ -105,8 +109,6 @@ CompletableFuture> postGraphQL(HttpEntity httpEnt
.convertValue(variablesJson, new TypeReference