From 63faeecc521db5789a873832998e30f4fbf2c312 Mon Sep 17 00:00:00 2001
From: david-leifker <114954101+david-leifker@users.noreply.github.com>
Date: Tue, 6 Aug 2024 09:46:53 -0500
Subject: [PATCH 01/40] fix(release): fix full/slim suffix on tag (#11087)
---
.github/scripts/docker_helpers.sh | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/scripts/docker_helpers.sh b/.github/scripts/docker_helpers.sh
index 0487c69eee0ef..e031a6d2a4d84 100755
--- a/.github/scripts/docker_helpers.sh
+++ b/.github/scripts/docker_helpers.sh
@@ -16,11 +16,11 @@ function get_tag {
}
function get_tag_slim {
- echo $(echo ${GITHUB_REF} | sed -e "s,refs/heads/${MAIN_BRANCH},${MAIN_BRANCH_TAG}-slim,g" -e 's,refs/tags/,,g' -e 's,refs/pull/\([0-9]*\).*,pr\1-slim,g'),${SHORT_SHA}-slim
+ echo $(echo ${GITHUB_REF} | sed -e "s,refs/heads/${MAIN_BRANCH},${MAIN_BRANCH_TAG}-slim,g" -e 's,refs/tags/\(.*\),\1-slim,g' -e 's,refs/pull/\([0-9]*\).*,pr\1-slim,g'),${SHORT_SHA}-slim
}
function get_tag_full {
- echo $(echo ${GITHUB_REF} | sed -e "s,refs/heads/${MAIN_BRANCH},${MAIN_BRANCH_TAG}-full,g" -e 's,refs/tags/,,g' -e 's,refs/pull/\([0-9]*\).*,pr\1-full,g'),${SHORT_SHA}-full
+ echo $(echo ${GITHUB_REF} | sed -e "s,refs/heads/${MAIN_BRANCH},${MAIN_BRANCH_TAG}-full,g" -e 's,refs/tags/\(.*\),\1-full,g' -e 's,refs/pull/\([0-9]*\).*,pr\1-full,g'),${SHORT_SHA}-full
}
function get_python_docker_release_v {
@@ -32,9 +32,9 @@ function get_unique_tag {
}
function get_unique_tag_slim {
- echo $(echo ${GITHUB_REF} | sed -e "s,refs/heads/${MAIN_BRANCH},${SHORT_SHA}-slim,g" -e 's,refs/tags/,,g' -e 's,refs/pull/\([0-9]*\).*,pr\1-slim,g')
+ echo $(echo ${GITHUB_REF} | sed -e "s,refs/heads/${MAIN_BRANCH},${SHORT_SHA}-slim,g" -e 's,refs/tags/\(.*\),\1-slim,g' -e 's,refs/pull/\([0-9]*\).*,pr\1-slim,g')
}
function get_unique_tag_full {
- echo $(echo ${GITHUB_REF} | sed -e "s,refs/heads/${MAIN_BRANCH},${SHORT_SHA}-full,g" -e 's,refs/tags/,,g' -e 's,refs/pull/\([0-9]*\).*,pr\1-full,g')
+ echo $(echo ${GITHUB_REF} | sed -e "s,refs/heads/${MAIN_BRANCH},${SHORT_SHA}-full,g" -e 's,refs/tags/\(.*\),\1-full,g' -e 's,refs/pull/\([0-9]*\).*,pr\1-full,g')
}
From a5a33f074b93132eb9692925ddc3deeac0f16781 Mon Sep 17 00:00:00 2001
From: Pinaki Bhattacharjee
Date: Wed, 7 Aug 2024 00:20:38 +0530
Subject: [PATCH 02/40] feat(config): support alternate hashing algorithm for
doc id (#10423)
Co-authored-by: david-leifker <114954101+david-leifker@users.noreply.github.com>
Co-authored-by: John Joyce
---
docker/datahub-gms/env/docker-without-neo4j.env | 2 ++
docker/datahub-gms/env/docker.env | 2 ++
.../datahub-mae-consumer/env/docker-without-neo4j.env | 2 ++
docker/datahub-mae-consumer/env/docker.env | 2 ++
.../datahub-mce-consumer/env/docker-without-neo4j.env | 2 ++
docker/datahub-mce-consumer/env/docker.env | 2 ++
docker/quickstart/docker-compose-m1.quickstart.yml | 1 +
.../docker-compose-without-neo4j-m1.quickstart.yml | 1 +
.../docker-compose-without-neo4j.quickstart.yml | 1 +
...ker-compose.consumers-without-neo4j.quickstart.yml | 2 ++
.../docker-compose.consumers.quickstart.yml | 2 ++
docker/quickstart/docker-compose.quickstart.yml | 1 +
.../linkedin/metadata/aspect/models/graph/Edge.java | 3 ++-
metadata-io/build.gradle | 1 +
.../ElasticSearchSystemMetadataService.java | 4 ++--
.../transformer/TimeseriesAspectTransformer.java | 11 +++++++++--
.../configuration/src/main/resources/application.yaml | 1 +
smoke-test/build.gradle | 6 ++++++
smoke-test/cypress-dev.sh | 1 +
smoke-test/run-quickstart.sh | 1 +
smoke-test/smoke.sh | 1 +
21 files changed, 44 insertions(+), 5 deletions(-)
diff --git a/docker/datahub-gms/env/docker-without-neo4j.env b/docker/datahub-gms/env/docker-without-neo4j.env
index cc0dd6b4278b5..37b7ba1797af5 100644
--- a/docker/datahub-gms/env/docker-without-neo4j.env
+++ b/docker/datahub-gms/env/docker-without-neo4j.env
@@ -23,6 +23,8 @@ PE_CONSUMER_ENABLED=true
UI_INGESTION_ENABLED=true
ENTITY_SERVICE_ENABLE_RETENTION=true
+ELASTIC_ID_HASH_ALGO=MD5
+
# Uncomment to disable persistence of client-side analytics events
# DATAHUB_ANALYTICS_ENABLED=false
diff --git a/docker/datahub-gms/env/docker.env b/docker/datahub-gms/env/docker.env
index 59fc4bdde02ff..0ecaa32c4cb12 100644
--- a/docker/datahub-gms/env/docker.env
+++ b/docker/datahub-gms/env/docker.env
@@ -27,6 +27,8 @@ MCE_CONSUMER_ENABLED=true
PE_CONSUMER_ENABLED=true
UI_INGESTION_ENABLED=true
+ELASTIC_ID_HASH_ALGO=MD5
+
# Uncomment to enable Metadata Service Authentication
METADATA_SERVICE_AUTH_ENABLED=false
diff --git a/docker/datahub-mae-consumer/env/docker-without-neo4j.env b/docker/datahub-mae-consumer/env/docker-without-neo4j.env
index b6899f7e6d63b..6a82f235b2971 100644
--- a/docker/datahub-mae-consumer/env/docker-without-neo4j.env
+++ b/docker/datahub-mae-consumer/env/docker-without-neo4j.env
@@ -13,6 +13,8 @@ ES_BULK_REFRESH_POLICY=WAIT_UNTIL
GRAPH_SERVICE_IMPL=elasticsearch
ENTITY_REGISTRY_CONFIG_PATH=/datahub/datahub-mae-consumer/resources/entity-registry.yml
+ELASTIC_ID_HASH_ALGO=MD5
+
# Uncomment to disable persistence of client-side analytics events
# DATAHUB_ANALYTICS_ENABLED=false
diff --git a/docker/datahub-mae-consumer/env/docker.env b/docker/datahub-mae-consumer/env/docker.env
index 5a6daa6eaeaed..1f0ee4b05b382 100644
--- a/docker/datahub-mae-consumer/env/docker.env
+++ b/docker/datahub-mae-consumer/env/docker.env
@@ -17,6 +17,8 @@ NEO4J_PASSWORD=datahub
GRAPH_SERVICE_IMPL=neo4j
ENTITY_REGISTRY_CONFIG_PATH=/datahub/datahub-mae-consumer/resources/entity-registry.yml
+ELASTIC_ID_HASH_ALGO=MD5
+
# Uncomment to disable persistence of client-side analytics events
# DATAHUB_ANALYTICS_ENABLED=false
diff --git a/docker/datahub-mce-consumer/env/docker-without-neo4j.env b/docker/datahub-mce-consumer/env/docker-without-neo4j.env
index e7be7d8ed4ddc..b0edfc0a75b66 100644
--- a/docker/datahub-mce-consumer/env/docker-without-neo4j.env
+++ b/docker/datahub-mce-consumer/env/docker-without-neo4j.env
@@ -24,6 +24,8 @@ MAE_CONSUMER_ENABLED=false
PE_CONSUMER_ENABLED=false
UI_INGESTION_ENABLED=false
+ELASTIC_ID_HASH_ALGO=MD5
+
# Uncomment to configure kafka topic names
# Make sure these names are consistent across the whole deployment
# METADATA_CHANGE_PROPOSAL_TOPIC_NAME=MetadataChangeProposal_v1
diff --git a/docker/datahub-mce-consumer/env/docker.env b/docker/datahub-mce-consumer/env/docker.env
index 8618f3f5f7af7..c0f85ef667546 100644
--- a/docker/datahub-mce-consumer/env/docker.env
+++ b/docker/datahub-mce-consumer/env/docker.env
@@ -24,6 +24,8 @@ MAE_CONSUMER_ENABLED=false
PE_CONSUMER_ENABLED=false
UI_INGESTION_ENABLED=false
+ELASTIC_ID_HASH_ALGO=MD5
+
# Uncomment to configure kafka topic names
# Make sure these names are consistent across the whole deployment
# METADATA_CHANGE_PROPOSAL_TOPIC_NAME=MetadataChangeProposal_v1
diff --git a/docker/quickstart/docker-compose-m1.quickstart.yml b/docker/quickstart/docker-compose-m1.quickstart.yml
index 834d55096468f..a0f60d23710a0 100644
--- a/docker/quickstart/docker-compose-m1.quickstart.yml
+++ b/docker/quickstart/docker-compose-m1.quickstart.yml
@@ -86,6 +86,7 @@ services:
- ELASTICSEARCH_INDEX_BUILDER_MAPPINGS_REINDEX=true
- ELASTICSEARCH_INDEX_BUILDER_SETTINGS_REINDEX=true
- ELASTICSEARCH_PORT=9200
+ - ELASTIC_ID_HASH_ALGO=MD5
- ENTITY_REGISTRY_CONFIG_PATH=/datahub/datahub-gms/resources/entity-registry.yml
- ENTITY_SERVICE_ENABLE_RETENTION=true
- ES_BULK_REFRESH_POLICY=WAIT_UNTIL
diff --git a/docker/quickstart/docker-compose-without-neo4j-m1.quickstart.yml b/docker/quickstart/docker-compose-without-neo4j-m1.quickstart.yml
index 47fb50f78e4f0..11e33a9950ba9 100644
--- a/docker/quickstart/docker-compose-without-neo4j-m1.quickstart.yml
+++ b/docker/quickstart/docker-compose-without-neo4j-m1.quickstart.yml
@@ -86,6 +86,7 @@ services:
- ELASTICSEARCH_INDEX_BUILDER_MAPPINGS_REINDEX=true
- ELASTICSEARCH_INDEX_BUILDER_SETTINGS_REINDEX=true
- ELASTICSEARCH_PORT=9200
+ - ELASTIC_ID_HASH_ALGO=MD5
- ENTITY_REGISTRY_CONFIG_PATH=/datahub/datahub-gms/resources/entity-registry.yml
- ENTITY_SERVICE_ENABLE_RETENTION=true
- ES_BULK_REFRESH_POLICY=WAIT_UNTIL
diff --git a/docker/quickstart/docker-compose-without-neo4j.quickstart.yml b/docker/quickstart/docker-compose-without-neo4j.quickstart.yml
index 3fa13a9e56b42..2efa895983418 100644
--- a/docker/quickstart/docker-compose-without-neo4j.quickstart.yml
+++ b/docker/quickstart/docker-compose-without-neo4j.quickstart.yml
@@ -86,6 +86,7 @@ services:
- ELASTICSEARCH_INDEX_BUILDER_MAPPINGS_REINDEX=true
- ELASTICSEARCH_INDEX_BUILDER_SETTINGS_REINDEX=true
- ELASTICSEARCH_PORT=9200
+ - ELASTIC_ID_HASH_ALGO=MD5
- ENTITY_REGISTRY_CONFIG_PATH=/datahub/datahub-gms/resources/entity-registry.yml
- ENTITY_SERVICE_ENABLE_RETENTION=true
- ES_BULK_REFRESH_POLICY=WAIT_UNTIL
diff --git a/docker/quickstart/docker-compose.consumers-without-neo4j.quickstart.yml b/docker/quickstart/docker-compose.consumers-without-neo4j.quickstart.yml
index a4211acedcf10..4f47a3da24eb1 100644
--- a/docker/quickstart/docker-compose.consumers-without-neo4j.quickstart.yml
+++ b/docker/quickstart/docker-compose.consumers-without-neo4j.quickstart.yml
@@ -19,6 +19,7 @@ services:
- ES_BULK_REFRESH_POLICY=WAIT_UNTIL
- GRAPH_SERVICE_IMPL=elasticsearch
- ENTITY_REGISTRY_CONFIG_PATH=/datahub/datahub-mae-consumer/resources/entity-registry.yml
+ - ELASTIC_ID_HASH_ALGO=MD5
hostname: datahub-mae-consumer
image: ${DATAHUB_MAE_CONSUMER_IMAGE:-acryldata/datahub-mae-consumer}:${DATAHUB_VERSION:-head}
ports:
@@ -37,6 +38,7 @@ services:
- EBEAN_DATASOURCE_USERNAME=datahub
- ELASTICSEARCH_HOST=elasticsearch
- ELASTICSEARCH_PORT=9200
+ - ELASTIC_ID_HASH_ALGO=MD5
- ENTITY_REGISTRY_CONFIG_PATH=/datahub/datahub-mce-consumer/resources/entity-registry.yml
- ENTITY_SERVICE_ENABLE_RETENTION=true
- ES_BULK_REFRESH_POLICY=WAIT_UNTIL
diff --git a/docker/quickstart/docker-compose.consumers.quickstart.yml b/docker/quickstart/docker-compose.consumers.quickstart.yml
index e7571e4baf8b4..7dd7388b93988 100644
--- a/docker/quickstart/docker-compose.consumers.quickstart.yml
+++ b/docker/quickstart/docker-compose.consumers.quickstart.yml
@@ -26,6 +26,7 @@ services:
- NEO4J_PASSWORD=datahub
- GRAPH_SERVICE_IMPL=neo4j
- ENTITY_REGISTRY_CONFIG_PATH=/datahub/datahub-mae-consumer/resources/entity-registry.yml
+ - ELASTIC_ID_HASH_ALGO=MD5
hostname: datahub-mae-consumer
image: ${DATAHUB_MAE_CONSUMER_IMAGE:-acryldata/datahub-mae-consumer}:${DATAHUB_VERSION:-head}
ports:
@@ -47,6 +48,7 @@ services:
- EBEAN_DATASOURCE_USERNAME=datahub
- ELASTICSEARCH_HOST=elasticsearch
- ELASTICSEARCH_PORT=9200
+ - ELASTIC_ID_HASH_ALGO=MD5
- ENTITY_REGISTRY_CONFIG_PATH=/datahub/datahub-mce-consumer/resources/entity-registry.yml
- ENTITY_SERVICE_ENABLE_RETENTION=true
- ES_BULK_REFRESH_POLICY=WAIT_UNTIL
diff --git a/docker/quickstart/docker-compose.quickstart.yml b/docker/quickstart/docker-compose.quickstart.yml
index c63b6d1d61b03..f42ed1f40c246 100644
--- a/docker/quickstart/docker-compose.quickstart.yml
+++ b/docker/quickstart/docker-compose.quickstart.yml
@@ -86,6 +86,7 @@ services:
- ELASTICSEARCH_INDEX_BUILDER_MAPPINGS_REINDEX=true
- ELASTICSEARCH_INDEX_BUILDER_SETTINGS_REINDEX=true
- ELASTICSEARCH_PORT=9200
+ - ELASTIC_ID_HASH_ALGO=MD5
- ENTITY_REGISTRY_CONFIG_PATH=/datahub/datahub-gms/resources/entity-registry.yml
- ENTITY_SERVICE_ENABLE_RETENTION=true
- ES_BULK_REFRESH_POLICY=WAIT_UNTIL
diff --git a/entity-registry/src/main/java/com/linkedin/metadata/aspect/models/graph/Edge.java b/entity-registry/src/main/java/com/linkedin/metadata/aspect/models/graph/Edge.java
index ca5e6d0110384..3de09e599d99e 100644
--- a/entity-registry/src/main/java/com/linkedin/metadata/aspect/models/graph/Edge.java
+++ b/entity-registry/src/main/java/com/linkedin/metadata/aspect/models/graph/Edge.java
@@ -72,8 +72,9 @@ public String toDocId() {
}
try {
+ String hashAlgo = System.getenv("ELASTIC_ID_HASH_ALGO");
byte[] bytesOfRawDocID = rawDocId.toString().getBytes(StandardCharsets.UTF_8);
- MessageDigest md = MessageDigest.getInstance("MD5");
+ MessageDigest md = MessageDigest.getInstance(hashAlgo);
byte[] thedigest = md.digest(bytesOfRawDocID);
return Base64.getEncoder().encodeToString(thedigest);
} catch (NoSuchAlgorithmException e) {
diff --git a/metadata-io/build.gradle b/metadata-io/build.gradle
index ff29cb5fff47d..17d9cb8cd14fe 100644
--- a/metadata-io/build.gradle
+++ b/metadata-io/build.gradle
@@ -130,6 +130,7 @@ test {
// override, testng controlling parallelization
// increasing >1 will merely run all tests extra times
maxParallelForks = 1
+ environment "ELASTIC_ID_HASH_ALGO", "MD5"
}
useTestNG() {
suites 'src/test/resources/testng.xml'
diff --git a/metadata-io/src/main/java/com/linkedin/metadata/systemmetadata/ElasticSearchSystemMetadataService.java b/metadata-io/src/main/java/com/linkedin/metadata/systemmetadata/ElasticSearchSystemMetadataService.java
index 57002a3bfc59d..cdfc4e985293f 100644
--- a/metadata-io/src/main/java/com/linkedin/metadata/systemmetadata/ElasticSearchSystemMetadataService.java
+++ b/metadata-io/src/main/java/com/linkedin/metadata/systemmetadata/ElasticSearchSystemMetadataService.java
@@ -86,10 +86,10 @@ private String toDocument(SystemMetadata systemMetadata, String urn, String aspe
private String toDocId(@Nonnull final String urn, @Nonnull final String aspect) {
String rawDocId = urn + DOC_DELIMETER + aspect;
-
+ String hashAlgo = System.getenv("ELASTIC_ID_HASH_ALGO");
try {
byte[] bytesOfRawDocID = rawDocId.getBytes(StandardCharsets.UTF_8);
- MessageDigest md = MessageDigest.getInstance("MD5");
+ MessageDigest md = MessageDigest.getInstance(hashAlgo);
byte[] thedigest = md.digest(bytesOfRawDocID);
return Base64.getEncoder().encodeToString(thedigest);
} catch (NoSuchAlgorithmException e) {
diff --git a/metadata-io/src/main/java/com/linkedin/metadata/timeseries/transformer/TimeseriesAspectTransformer.java b/metadata-io/src/main/java/com/linkedin/metadata/timeseries/transformer/TimeseriesAspectTransformer.java
index c0f66acaaca5a..cf0a3f1466d25 100644
--- a/metadata-io/src/main/java/com/linkedin/metadata/timeseries/transformer/TimeseriesAspectTransformer.java
+++ b/metadata-io/src/main/java/com/linkedin/metadata/timeseries/transformer/TimeseriesAspectTransformer.java
@@ -257,7 +257,9 @@ private static Pair getTimeseriesFieldCollectionDocument(
finalDocument);
}
- private static String getDocId(@Nonnull JsonNode document, String collectionId) {
+ private static String getDocId(@Nonnull JsonNode document, String collectionId)
+ throws IllegalArgumentException {
+ String hashAlgo = System.getenv("ELASTIC_ID_HASH_ALGO");
String docId = document.get(MappingsBuilder.TIMESTAMP_MILLIS_FIELD).toString();
JsonNode eventGranularity = document.get(MappingsBuilder.EVENT_GRANULARITY);
if (eventGranularity != null) {
@@ -276,6 +278,11 @@ private static String getDocId(@Nonnull JsonNode document, String collectionId)
docId += partitionSpec.toString();
}
- return DigestUtils.md5Hex(docId);
+ if (hashAlgo.equalsIgnoreCase("SHA-256")) {
+ return DigestUtils.sha256Hex(docId);
+ } else if (hashAlgo.equalsIgnoreCase("MD5")) {
+ return DigestUtils.md5Hex(docId);
+ }
+ throw new IllegalArgumentException("Hash function not handled !");
}
}
diff --git a/metadata-service/configuration/src/main/resources/application.yaml b/metadata-service/configuration/src/main/resources/application.yaml
index 921c2b43dc36c..2514060ff2d61 100644
--- a/metadata-service/configuration/src/main/resources/application.yaml
+++ b/metadata-service/configuration/src/main/resources/application.yaml
@@ -174,6 +174,7 @@ elasticsearch:
opensearchUseAwsIamAuth: ${OPENSEARCH_USE_AWS_IAM_AUTH:false}
region: ${AWS_REGION:#{null}}
implementation: ${ELASTICSEARCH_IMPLEMENTATION:elasticsearch} # elasticsearch or opensearch, for handling divergent cases
+ idHashAlgo: ${ELASTIC_ID_HASH_ALGO:MD5}
sslContext: # Required if useSSL is true
protocol: ${ELASTICSEARCH_SSL_PROTOCOL:#{null}}
secureRandomImplementation: ${ELASTICSEARCH_SSL_SECURE_RANDOM_IMPL:#{null}}
diff --git a/smoke-test/build.gradle b/smoke-test/build.gradle
index 9800cf65fc452..95f3ba8ed56d6 100644
--- a/smoke-test/build.gradle
+++ b/smoke-test/build.gradle
@@ -89,6 +89,7 @@ task noCypressSuite0(type: Exec, dependsOn: [installDev, ':metadata-ingestion:in
environment 'DATAHUB_KAFKA_SCHEMA_REGISTRY_URL', 'http://localhost:8080/schema-registry/api/'
environment 'KAFKA_BROKER_CONTAINER', 'datahub-kafka-broker-1'
environment 'TEST_STRATEGY', 'no_cypress_suite0'
+ environment "ELASTIC_ID_HASH_ALGO", "MD5"
workingDir = project.projectDir
commandLine 'bash', '-c',
@@ -101,6 +102,7 @@ task noCypressSuite1(type: Exec, dependsOn: [installDev, ':metadata-ingestion:in
environment 'DATAHUB_KAFKA_SCHEMA_REGISTRY_URL', 'http://localhost:8080/schema-registry/api/'
environment 'KAFKA_BROKER_CONTAINER', 'datahub-kafka-broker-1'
environment 'TEST_STRATEGY', 'no_cypress_suite1'
+ environment "ELASTIC_ID_HASH_ALGO", "MD5"
workingDir = project.projectDir
commandLine 'bash', '-c',
@@ -113,6 +115,7 @@ task cypressSuite1(type: Exec, dependsOn: [installDev, ':metadata-ingestion:inst
environment 'DATAHUB_KAFKA_SCHEMA_REGISTRY_URL', 'http://localhost:8080/schema-registry/api/'
environment 'KAFKA_BROKER_CONTAINER', 'datahub-kafka-broker-1'
environment 'TEST_STRATEGY', 'cypress_suite1'
+ environment "ELASTIC_ID_HASH_ALGO", "MD5"
workingDir = project.projectDir
commandLine 'bash', '-c',
@@ -125,6 +128,7 @@ task cypressRest(type: Exec, dependsOn: [installDev, ':metadata-ingestion:instal
environment 'DATAHUB_KAFKA_SCHEMA_REGISTRY_URL', 'http://localhost:8080/schema-registry/api/'
environment 'KAFKA_BROKER_CONTAINER', 'datahub-kafka-broker-1'
environment 'TEST_STRATEGY', 'cypress_rest'
+ environment "ELASTIC_ID_HASH_ALGO", "MD5"
workingDir = project.projectDir
commandLine 'bash', '-c',
@@ -139,6 +143,7 @@ task cypressDev(type: Exec, dependsOn: [installDev, ':metadata-ingestion:install
environment 'RUN_QUICKSTART', 'false'
environment 'DATAHUB_KAFKA_SCHEMA_REGISTRY_URL', 'http://localhost:8080/schema-registry/api/'
environment 'KAFKA_BROKER_CONTAINER', 'datahub-kafka-broker-1'
+ environment "ELASTIC_ID_HASH_ALGO", "MD5"
workingDir = project.projectDir
commandLine 'bash', '-c',
@@ -154,6 +159,7 @@ task cypressData(type: Exec, dependsOn: [installDev, ':metadata-ingestion:instal
environment 'DATAHUB_KAFKA_SCHEMA_REGISTRY_URL', 'http://localhost:8080/schema-registry/api/'
environment 'KAFKA_BROKER_CONTAINER', 'datahub-kafka-broker-1'
environment 'RUN_UI', 'false'
+ environment "ELASTIC_ID_HASH_ALGO", "MD5"
workingDir = project.projectDir
commandLine 'bash', '-c',
diff --git a/smoke-test/cypress-dev.sh b/smoke-test/cypress-dev.sh
index 2b31c574d0578..59346b2606905 100755
--- a/smoke-test/cypress-dev.sh
+++ b/smoke-test/cypress-dev.sh
@@ -12,6 +12,7 @@ source venv/bin/activate
export KAFKA_BROKER_CONTAINER="datahub-kafka-broker-1"
export KAFKA_BOOTSTRAP_SERVER="broker:9092"
+export ELASTIC_ID_HASH_ALGO="MD5"
python -c 'from tests.cypress.integration_test import ingest_data; ingest_data()'
cd tests/cypress
diff --git a/smoke-test/run-quickstart.sh b/smoke-test/run-quickstart.sh
index 05c321566d54a..1923d42eb5e93 100755
--- a/smoke-test/run-quickstart.sh
+++ b/smoke-test/run-quickstart.sh
@@ -15,6 +15,7 @@ DATAHUB_SEARCH_TAG="${DATAHUB_SEARCH_TAG:=2.9.0}"
XPACK_SECURITY_ENABLED="${XPACK_SECURITY_ENABLED:=plugins.security.disabled=true}"
ELASTICSEARCH_USE_SSL="${ELASTICSEARCH_USE_SSL:=false}"
USE_AWS_ELASTICSEARCH="${USE_AWS_ELASTICSEARCH:=true}"
+ELASTIC_ID_HASH_ALGO="${ELASTIC_ID_HASH_ALGO:=MD5}"
echo "DATAHUB_VERSION = $DATAHUB_VERSION"
DATAHUB_TELEMETRY_ENABLED=false \
diff --git a/smoke-test/smoke.sh b/smoke-test/smoke.sh
index fafb2076fe699..c16865fe1e71e 100755
--- a/smoke-test/smoke.sh
+++ b/smoke-test/smoke.sh
@@ -25,6 +25,7 @@ source venv/bin/activate
source ./set-cypress-creds.sh
export DATAHUB_GMS_URL=http://localhost:8080
+export ELASTIC_ID_HASH_ALGO="MD5"
# no_cypress_suite0, no_cypress_suite1, cypress_suite1, cypress_rest
if [[ -z "${TEST_STRATEGY}" ]]; then
From 090e760d2db46b6aeac0fc8f73204af04af3bace Mon Sep 17 00:00:00 2001
From: Raj Tekal
Date: Tue, 6 Aug 2024 15:50:00 -0400
Subject: [PATCH 03/40] fix(emitter): fix typo in get method of java kafka
emitter (#11007)
---
.../src/main/java/datahub/client/kafka/KafkaEmitter.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/metadata-integration/java/datahub-client/src/main/java/datahub/client/kafka/KafkaEmitter.java b/metadata-integration/java/datahub-client/src/main/java/datahub/client/kafka/KafkaEmitter.java
index a9340d18749ad..d00dc09669045 100644
--- a/metadata-integration/java/datahub-client/src/main/java/datahub/client/kafka/KafkaEmitter.java
+++ b/metadata-integration/java/datahub-client/src/main/java/datahub/client/kafka/KafkaEmitter.java
@@ -160,7 +160,7 @@ private static MetadataWriteResponse mapResponse(RecordMetadata metadata, Except
return builder.build();
}
- public Properties getKafkaConfgiProperties() {
+ public Properties getKafkaConfigProperties() {
return kafkaConfigProperties;
}
}
From 9619553e2d0583d010a92fab70bfa60f550f8509 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Felix=20L=C3=BCdin?=
<13187726+Masterchen09@users.noreply.github.com>
Date: Tue, 6 Aug 2024 21:52:20 +0200
Subject: [PATCH 04/40] fix(ingest): use correct native data type in all
SQLAlchemy sources by compiling data type using dialect (#10898)
Co-authored-by: Harshal Sheth
---
.../datahub/ingestion/source/sql/athena.py | 2 +
.../src/datahub/ingestion/source/sql/hive.py | 6 +-
.../ingestion/source/sql/hive_metastore.py | 7 +-
.../ingestion/source/sql/sql_common.py | 17 +-
.../src/datahub/ingestion/source/sql/trino.py | 6 +-
.../datahub/ingestion/source/sql/vertica.py | 9 +-
.../utilities/sqlalchemy_type_converter.py | 30 +-
.../tests/integration/hana/docker-compose.yml | 8 +-
.../integration/hana/hana_mces_golden.json | 1250 ++++++++++++-----
.../mysql/mysql_mces_no_db_golden.json | 102 +-
.../mysql/mysql_mces_with_db_golden.json | 18 +-
.../mysql/mysql_table_level_only.json | 76 +-
.../mysql_table_row_count_estimate_only.json | 18 +-
.../golden_test_ingest_with_database.json | 220 +--
.../golden_test_ingest_with_out_database.json | 220 +--
.../tests/integration/oracle/test_oracle.py | 1 +
.../postgres_all_db_mces_with_db_golden.json | 22 +-
.../postgres_mces_with_db_golden.json | 22 +-
.../golden_mces_mssql_no_db_to_file.json | 847 +----------
.../golden_mces_mssql_no_db_with_filter.json | 442 +-----
.../golden_mces_mssql_to_file.json | 442 +-----
...golden_mces_mssql_with_lower_case_urn.json | 442 +-----
.../trino_hive_instance_mces_golden.json | 52 +-
.../trino/trino_hive_mces_golden.json | 52 +-
.../integration/trino/trino_mces_golden.json | 171 +--
.../vertica/vertica_mces_with_db_golden.json | 910 ++++++------
.../test_sqlalchemy_type_converter.py | 39 +-
27 files changed, 1735 insertions(+), 3696 deletions(-)
diff --git a/metadata-ingestion/src/datahub/ingestion/source/sql/athena.py b/metadata-ingestion/src/datahub/ingestion/source/sql/athena.py
index 398adc3708ef2..5cc51882965a0 100644
--- a/metadata-ingestion/src/datahub/ingestion/source/sql/athena.py
+++ b/metadata-ingestion/src/datahub/ingestion/source/sql/athena.py
@@ -499,6 +499,7 @@ def get_schema_fields_for_column(
self,
dataset_name: str,
column: Dict,
+ inspector: Inspector,
pk_constraints: Optional[dict] = None,
partition_keys: Optional[List[str]] = None,
tags: Optional[List[str]] = None,
@@ -506,6 +507,7 @@ def get_schema_fields_for_column(
fields = get_schema_fields_for_sqlalchemy_column(
column_name=column["name"],
column_type=column["type"],
+ inspector=inspector,
description=column.get("comment", None),
nullable=column.get("nullable", True),
is_part_of_key=(
diff --git a/metadata-ingestion/src/datahub/ingestion/source/sql/hive.py b/metadata-ingestion/src/datahub/ingestion/source/sql/hive.py
index 65f8516fd340a..59f301baf4016 100644
--- a/metadata-ingestion/src/datahub/ingestion/source/sql/hive.py
+++ b/metadata-ingestion/src/datahub/ingestion/source/sql/hive.py
@@ -169,12 +169,16 @@ def get_schema_fields_for_column(
self,
dataset_name: str,
column: Dict[Any, Any],
+ inspector: Inspector,
pk_constraints: Optional[Dict[Any, Any]] = None,
partition_keys: Optional[List[str]] = None,
tags: Optional[List[str]] = None,
) -> List[SchemaField]:
fields = super().get_schema_fields_for_column(
- dataset_name, column, pk_constraints
+ dataset_name,
+ column,
+ inspector,
+ pk_constraints,
)
if self._COMPLEX_TYPE.match(fields[0].nativeDataType) and isinstance(
diff --git a/metadata-ingestion/src/datahub/ingestion/source/sql/hive_metastore.py b/metadata-ingestion/src/datahub/ingestion/source/sql/hive_metastore.py
index 655d1ba68ed79..9da6c29488124 100644
--- a/metadata-ingestion/src/datahub/ingestion/source/sql/hive_metastore.py
+++ b/metadata-ingestion/src/datahub/ingestion/source/sql/hive_metastore.py
@@ -521,7 +521,7 @@ def loop_tables(
)
# add table schema fields
- schema_fields = self.get_schema_fields(dataset_name, columns)
+ schema_fields = self.get_schema_fields(dataset_name, columns, inspector)
self._set_partition_key(columns, schema_fields)
@@ -754,7 +754,9 @@ def loop_views(
# add view schema fields
schema_fields = self.get_schema_fields(
- dataset.dataset_name, dataset.columns
+ dataset.dataset_name,
+ dataset.columns,
+ inspector,
)
schema_metadata = get_schema_metadata(
@@ -877,6 +879,7 @@ def get_schema_fields_for_column(
self,
dataset_name: str,
column: Dict[Any, Any],
+ inspector: Inspector,
pk_constraints: Optional[Dict[Any, Any]] = None,
partition_keys: Optional[List[str]] = None,
tags: Optional[List[str]] = None,
diff --git a/metadata-ingestion/src/datahub/ingestion/source/sql/sql_common.py b/metadata-ingestion/src/datahub/ingestion/source/sql/sql_common.py
index de3012cc33568..1fa308eae6b76 100644
--- a/metadata-ingestion/src/datahub/ingestion/source/sql/sql_common.py
+++ b/metadata-ingestion/src/datahub/ingestion/source/sql/sql_common.py
@@ -120,6 +120,9 @@
from datahub.utilities.lossy_collections import LossyList
from datahub.utilities.registries.domain_registry import DomainRegistry
from datahub.utilities.sqlalchemy_query_combiner import SQLAlchemyQueryCombinerReport
+from datahub.utilities.sqlalchemy_type_converter import (
+ get_native_data_type_for_sqlalchemy_type,
+)
if TYPE_CHECKING:
from datahub.ingestion.source.ge_data_profiler import (
@@ -807,6 +810,7 @@ def _process_table(
schema_fields = self.get_schema_fields(
dataset_name,
columns,
+ inspector,
pk_constraints,
tags=extra_tags,
partition_keys=partitions,
@@ -987,6 +991,7 @@ def get_schema_fields(
self,
dataset_name: str,
columns: List[dict],
+ inspector: Inspector,
pk_constraints: Optional[dict] = None,
partition_keys: Optional[List[str]] = None,
tags: Optional[Dict[str, List[str]]] = None,
@@ -999,6 +1004,7 @@ def get_schema_fields(
fields = self.get_schema_fields_for_column(
dataset_name,
column,
+ inspector,
pk_constraints,
tags=column_tags,
partition_keys=partition_keys,
@@ -1010,6 +1016,7 @@ def get_schema_fields_for_column(
self,
dataset_name: str,
column: dict,
+ inspector: Inspector,
pk_constraints: Optional[dict] = None,
partition_keys: Optional[List[str]] = None,
tags: Optional[List[str]] = None,
@@ -1019,10 +1026,16 @@ def get_schema_fields_for_column(
tags_str = [make_tag_urn(t) for t in tags]
tags_tac = [TagAssociationClass(t) for t in tags_str]
gtc = GlobalTagsClass(tags_tac)
+ full_type = column.get("full_type")
field = SchemaField(
fieldPath=column["name"],
type=get_column_type(self.report, dataset_name, column["type"]),
- nativeDataType=column.get("full_type", repr(column["type"])),
+ nativeDataType=full_type
+ if full_type is not None
+ else get_native_data_type_for_sqlalchemy_type(
+ column["type"],
+ inspector=inspector,
+ ),
description=column.get("comment", None),
nullable=column["nullable"],
recursive=False,
@@ -1099,7 +1112,7 @@ def _process_view(
self.warn(logger, dataset_name, "unable to get schema for this view")
schema_metadata = None
else:
- schema_fields = self.get_schema_fields(dataset_name, columns)
+ schema_fields = self.get_schema_fields(dataset_name, columns, inspector)
schema_metadata = get_schema_metadata(
self.report,
dataset_name,
diff --git a/metadata-ingestion/src/datahub/ingestion/source/sql/trino.py b/metadata-ingestion/src/datahub/ingestion/source/sql/trino.py
index cc0a43bc5e874..b6fa51dd70e18 100644
--- a/metadata-ingestion/src/datahub/ingestion/source/sql/trino.py
+++ b/metadata-ingestion/src/datahub/ingestion/source/sql/trino.py
@@ -387,12 +387,16 @@ def get_schema_fields_for_column(
self,
dataset_name: str,
column: dict,
+ inspector: Inspector,
pk_constraints: Optional[dict] = None,
partition_keys: Optional[List[str]] = None,
tags: Optional[List[str]] = None,
) -> List[SchemaField]:
fields = super().get_schema_fields_for_column(
- dataset_name, column, pk_constraints
+ dataset_name,
+ column,
+ inspector,
+ pk_constraints,
)
if isinstance(column["type"], (datatype.ROW, sqltypes.ARRAY, datatype.MAP)):
diff --git a/metadata-ingestion/src/datahub/ingestion/source/sql/vertica.py b/metadata-ingestion/src/datahub/ingestion/source/sql/vertica.py
index ae56fb87ee528..a340f049731c4 100644
--- a/metadata-ingestion/src/datahub/ingestion/source/sql/vertica.py
+++ b/metadata-ingestion/src/datahub/ingestion/source/sql/vertica.py
@@ -469,7 +469,12 @@ def _process_projections(
foreign_keys = self._get_foreign_keys(
dataset_urn, inspector, schema, projection
)
- schema_fields = self.get_schema_fields(dataset_name, columns, pk_constraints)
+ schema_fields = self.get_schema_fields(
+ dataset_name,
+ columns,
+ inspector,
+ pk_constraints,
+ )
schema_metadata = get_schema_metadata(
self.report,
dataset_name,
@@ -673,7 +678,7 @@ def _process_models(
)
dataset_snapshot.aspects.append(dataset_properties)
- schema_fields = self.get_schema_fields(dataset_name, columns)
+ schema_fields = self.get_schema_fields(dataset_name, columns, inspector)
schema_metadata = get_schema_metadata(
self.report,
diff --git a/metadata-ingestion/src/datahub/utilities/sqlalchemy_type_converter.py b/metadata-ingestion/src/datahub/utilities/sqlalchemy_type_converter.py
index 41d02646fdb8a..ad94c6904e280 100644
--- a/metadata-ingestion/src/datahub/utilities/sqlalchemy_type_converter.py
+++ b/metadata-ingestion/src/datahub/utilities/sqlalchemy_type_converter.py
@@ -5,6 +5,8 @@
from typing import Any, Dict, List, Optional, Type, Union
from sqlalchemy import types
+from sqlalchemy.engine.reflection import Inspector
+from sqlalchemy.sql.visitors import Visitable
from datahub.ingestion.extractor.schema_util import avro_schema_to_mce_fields
from datahub.metadata.com.linkedin.pegasus2avro.schema import SchemaField
@@ -176,6 +178,7 @@ def get_avro_for_sqlalchemy_column(
def get_schema_fields_for_sqlalchemy_column(
column_name: str,
column_type: types.TypeEngine,
+ inspector: Inspector,
description: Optional[str] = None,
nullable: Optional[bool] = True,
is_part_of_key: Optional[bool] = False,
@@ -216,7 +219,10 @@ def get_schema_fields_for_sqlalchemy_column(
SchemaField(
fieldPath=column_name,
type=SchemaFieldDataTypeClass(type=NullTypeClass()),
- nativeDataType=str(column_type),
+ nativeDataType=get_native_data_type_for_sqlalchemy_type(
+ column_type,
+ inspector,
+ ),
)
]
@@ -240,3 +246,25 @@ def get_schema_fields_for_sqlalchemy_column(
)
return schema_fields
+
+
+def get_native_data_type_for_sqlalchemy_type(
+ column_type: types.TypeEngine, inspector: Inspector
+) -> str:
+ if isinstance(column_type, types.NullType):
+ return column_type.__visit_name__
+
+ try:
+ return column_type.compile(dialect=inspector.dialect)
+ except Exception as e:
+ logger.debug(
+ f"Unable to compile sqlalchemy type {column_type} the error was: {e}"
+ )
+
+ if (
+ isinstance(column_type, Visitable)
+ and column_type.__visit_name__ is not None
+ ):
+ return column_type.__visit_name__
+
+ return repr(column_type)
diff --git a/metadata-ingestion/tests/integration/hana/docker-compose.yml b/metadata-ingestion/tests/integration/hana/docker-compose.yml
index 38bd1f544a095..3f74236228483 100644
--- a/metadata-ingestion/tests/integration/hana/docker-compose.yml
+++ b/metadata-ingestion/tests/integration/hana/docker-compose.yml
@@ -2,15 +2,11 @@
version: '3.4'
services:
testhana:
- image: "store/saplabs/hanaexpress:2.00.054.00.20210603.1"
+ image: "saplabs/hanaexpress:latest"
container_name: "testhana"
restart: "unless-stopped"
ports:
- - 39013:39013
- - 39017:39017
- - 39041-39045:39041-39045
- - 1128-1129:1128-1129
- - 59013-59014:59013-59014
+ - 39041:39041
volumes:
- ./post_start:/hana/hooks/post_start/
- ./setup:/hana/mounts/setup/
diff --git a/metadata-ingestion/tests/integration/hana/hana_mces_golden.json b/metadata-ingestion/tests/integration/hana/hana_mces_golden.json
index 84ad1f3d3e592..26789abc355c7 100644
--- a/metadata-ingestion/tests/integration/hana/hana_mces_golden.json
+++ b/metadata-ingestion/tests/integration/hana/hana_mces_golden.json
@@ -1,158 +1,217 @@
[
{
- "auditHeader": null,
"entityType": "container",
"entityUrn": "urn:li:container:c8107a53ee221a15de176e4d34a06940",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "containerProperties",
"aspect": {
- "value": "{\"customProperties\": {\"platform\": \"hana\", \"instance\": \"PROD\", \"database\": \"hxe\"}, \"name\": \"hxe\"}",
- "contentType": "application/json"
+ "json": {
+ "customProperties": {
+ "platform": "hana",
+ "env": "PROD",
+ "database": "hxe"
+ },
+ "name": "hxe"
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1586847600000,
+ "runId": "hana-test",
+ "lastRunId": "no-run-id-provided"
+ }
+},
+{
+ "entityType": "container",
+ "entityUrn": "urn:li:container:c8107a53ee221a15de176e4d34a06940",
+ "changeType": "UPSERT",
+ "aspectName": "status",
+ "aspect": {
+ "json": {
+ "removed": false
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "container",
"entityUrn": "urn:li:container:c8107a53ee221a15de176e4d34a06940",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "dataPlatformInstance",
"aspect": {
- "value": "{\"platform\": \"urn:li:dataPlatform:hana\"}",
- "contentType": "application/json"
+ "json": {
+ "platform": "urn:li:dataPlatform:hana"
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "container",
"entityUrn": "urn:li:container:c8107a53ee221a15de176e4d34a06940",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "subTypes",
"aspect": {
- "value": "{\"typeNames\": [\"Database\"]}",
- "contentType": "application/json"
+ "json": {
+ "typeNames": [
+ "Database"
+ ]
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1586847600000,
+ "runId": "hana-test",
+ "lastRunId": "no-run-id-provided"
+ }
+},
+{
+ "entityType": "container",
+ "entityUrn": "urn:li:container:c8107a53ee221a15de176e4d34a06940",
+ "changeType": "UPSERT",
+ "aspectName": "browsePathsV2",
+ "aspect": {
+ "json": {
+ "path": []
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "container",
"entityUrn": "urn:li:container:f870c782e0a44727bd10da2ab742363b",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "containerProperties",
"aspect": {
- "value": "{\"customProperties\": {\"platform\": \"hana\", \"instance\": \"PROD\", \"database\": \"hxe\", \"schema\": \"hotel\"}, \"name\": \"hotel\"}",
- "contentType": "application/json"
+ "json": {
+ "customProperties": {
+ "platform": "hana",
+ "env": "PROD",
+ "database": "hxe",
+ "schema": "hotel"
+ },
+ "name": "hotel"
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1586847600000,
+ "runId": "hana-test",
+ "lastRunId": "no-run-id-provided"
+ }
+},
+{
+ "entityType": "container",
+ "entityUrn": "urn:li:container:f870c782e0a44727bd10da2ab742363b",
+ "changeType": "UPSERT",
+ "aspectName": "status",
+ "aspect": {
+ "json": {
+ "removed": false
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "container",
"entityUrn": "urn:li:container:f870c782e0a44727bd10da2ab742363b",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "dataPlatformInstance",
"aspect": {
- "value": "{\"platform\": \"urn:li:dataPlatform:hana\"}",
- "contentType": "application/json"
+ "json": {
+ "platform": "urn:li:dataPlatform:hana"
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "container",
"entityUrn": "urn:li:container:f870c782e0a44727bd10da2ab742363b",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "subTypes",
"aspect": {
- "value": "{\"typeNames\": [\"Schema\"]}",
- "contentType": "application/json"
+ "json": {
+ "typeNames": [
+ "Schema"
+ ]
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "container",
"entityUrn": "urn:li:container:f870c782e0a44727bd10da2ab742363b",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "container",
"aspect": {
- "value": "{\"container\": \"urn:li:container:c8107a53ee221a15de176e4d34a06940\"}",
- "contentType": "application/json"
+ "json": {
+ "container": "urn:li:container:c8107a53ee221a15de176e4d34a06940"
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1586847600000,
+ "runId": "hana-test",
+ "lastRunId": "no-run-id-provided"
+ }
+},
+{
+ "entityType": "container",
+ "entityUrn": "urn:li:container:f870c782e0a44727bd10da2ab742363b",
+ "changeType": "UPSERT",
+ "aspectName": "browsePathsV2",
+ "aspect": {
+ "json": {
+ "path": [
+ {
+ "id": "urn:li:container:c8107a53ee221a15de176e4d34a06940",
+ "urn": "urn:li:container:c8107a53ee221a15de176e4d34a06940"
+ }
+ ]
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.customer,PROD)",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "container",
"aspect": {
- "value": "{\"container\": \"urn:li:container:f870c782e0a44727bd10da2ab742363b\"}",
- "contentType": "application/json"
+ "json": {
+ "container": "urn:li:container:f870c782e0a44727bd10da2ab742363b"
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.DatasetSnapshot": {
"urn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.customer,PROD)",
@@ -165,11 +224,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {},
- "externalUrl": null,
"name": "customer",
- "qualifiedName": null,
- "description": null,
- "uri": null,
"tags": []
}
},
@@ -180,17 +235,12 @@
"version": 0,
"created": {
"time": 0,
- "actor": "urn:li:corpuser:unknown",
- "impersonator": null
+ "actor": "urn:li:corpuser:unknown"
},
"lastModified": {
"time": 0,
- "actor": "urn:li:corpuser:unknown",
- "impersonator": null
+ "actor": "urn:li:corpuser:unknown"
},
- "deleted": null,
- "dataset": null,
- "cluster": null,
"hash": "",
"platformSchema": {
"com.linkedin.pegasus2avro.schema.MySqlDDL": {
@@ -200,189 +250,166 @@
"fields": [
{
"fieldPath": "cno",
- "jsonPath": null,
"nullable": false,
- "description": null,
"type": {
"type": {
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
- "globalTags": null,
- "glossaryTerms": null,
- "isPartOfKey": true,
- "isPartitioningKey": null,
- "jsonProps": null
+ "isPartOfKey": true
},
{
"fieldPath": "title",
- "jsonPath": null,
"nullable": true,
- "description": null,
"type": {
"type": {
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=7)",
+ "nativeDataType": "VARCHAR(7)",
"recursive": false,
- "globalTags": null,
- "glossaryTerms": null,
- "isPartOfKey": false,
- "isPartitioningKey": null,
- "jsonProps": null
+ "isPartOfKey": false
},
{
"fieldPath": "firstname",
- "jsonPath": null,
"nullable": true,
- "description": null,
"type": {
"type": {
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=20)",
+ "nativeDataType": "VARCHAR(20)",
"recursive": false,
- "globalTags": null,
- "glossaryTerms": null,
- "isPartOfKey": false,
- "isPartitioningKey": null,
- "jsonProps": null
+ "isPartOfKey": false
},
{
"fieldPath": "name",
- "jsonPath": null,
"nullable": false,
- "description": null,
"type": {
"type": {
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=40)",
+ "nativeDataType": "VARCHAR(40)",
"recursive": false,
- "globalTags": null,
- "glossaryTerms": null,
- "isPartOfKey": false,
- "isPartitioningKey": null,
- "jsonProps": null
+ "isPartOfKey": false
},
{
"fieldPath": "address",
- "jsonPath": null,
"nullable": false,
- "description": null,
"type": {
"type": {
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=40)",
+ "nativeDataType": "VARCHAR(40)",
"recursive": false,
- "globalTags": null,
- "glossaryTerms": null,
- "isPartOfKey": false,
- "isPartitioningKey": null,
- "jsonProps": null
+ "isPartOfKey": false
},
{
"fieldPath": "zip",
- "jsonPath": null,
"nullable": true,
- "description": null,
"type": {
"type": {
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=6)",
+ "nativeDataType": "VARCHAR(6)",
"recursive": false,
- "globalTags": null,
- "glossaryTerms": null,
- "isPartOfKey": false,
- "isPartitioningKey": null,
- "jsonProps": null
+ "isPartOfKey": false
}
- ],
- "primaryKeys": null,
- "foreignKeysSpecs": null,
- "foreignKeys": null
+ ]
}
}
]
}
},
- "proposedDelta": null,
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.customer,PROD)",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "subTypes",
"aspect": {
- "value": "{\"typeNames\": [\"Table\"]}",
- "contentType": "application/json"
+ "json": {
+ "typeNames": [
+ "Table"
+ ]
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.customer,PROD)",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "domains",
"aspect": {
- "value": "{\"domains\": [\"urn:li:domain:sales\"]}",
- "contentType": "application/json"
+ "json": {
+ "domains": [
+ "urn:li:domain:sales"
+ ]
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1586847600000,
+ "runId": "hana-test",
+ "lastRunId": "no-run-id-provided"
+ }
+},
+{
+ "entityType": "dataset",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.customer,PROD)",
+ "changeType": "UPSERT",
+ "aspectName": "browsePathsV2",
+ "aspect": {
+ "json": {
+ "path": [
+ {
+ "id": "urn:li:container:c8107a53ee221a15de176e4d34a06940",
+ "urn": "urn:li:container:c8107a53ee221a15de176e4d34a06940"
+ },
+ {
+ "id": "urn:li:container:f870c782e0a44727bd10da2ab742363b",
+ "urn": "urn:li:container:f870c782e0a44727bd10da2ab742363b"
+ }
+ ]
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.hotel,PROD)",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "container",
"aspect": {
- "value": "{\"container\": \"urn:li:container:f870c782e0a44727bd10da2ab742363b\"}",
- "contentType": "application/json"
+ "json": {
+ "container": "urn:li:container:f870c782e0a44727bd10da2ab742363b"
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.DatasetSnapshot": {
"urn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.hotel,PROD)",
@@ -395,11 +422,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {},
- "externalUrl": null,
"name": "hotel",
- "qualifiedName": null,
- "description": null,
- "uri": null,
"tags": []
}
},
@@ -410,17 +433,12 @@
"version": 0,
"created": {
"time": 0,
- "actor": "urn:li:corpuser:unknown",
- "impersonator": null
+ "actor": "urn:li:corpuser:unknown"
},
"lastModified": {
"time": 0,
- "actor": "urn:li:corpuser:unknown",
- "impersonator": null
+ "actor": "urn:li:corpuser:unknown"
},
- "deleted": null,
- "dataset": null,
- "cluster": null,
"hash": "",
"platformSchema": {
"com.linkedin.pegasus2avro.schema.MySqlDDL": {
@@ -430,189 +448,166 @@
"fields": [
{
"fieldPath": "hno",
- "jsonPath": null,
"nullable": false,
- "description": null,
"type": {
"type": {
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
- "globalTags": null,
- "glossaryTerms": null,
- "isPartOfKey": true,
- "isPartitioningKey": null,
- "jsonProps": null
+ "isPartOfKey": true
},
{
"fieldPath": "name",
- "jsonPath": null,
"nullable": false,
- "description": null,
"type": {
"type": {
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
- "globalTags": null,
- "glossaryTerms": null,
- "isPartOfKey": false,
- "isPartitioningKey": null,
- "jsonProps": null
+ "isPartOfKey": false
},
{
"fieldPath": "address",
- "jsonPath": null,
"nullable": false,
- "description": null,
"type": {
"type": {
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=40)",
+ "nativeDataType": "VARCHAR(40)",
"recursive": false,
- "globalTags": null,
- "glossaryTerms": null,
- "isPartOfKey": false,
- "isPartitioningKey": null,
- "jsonProps": null
+ "isPartOfKey": false
},
{
"fieldPath": "city",
- "jsonPath": null,
"nullable": false,
- "description": null,
"type": {
"type": {
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=30)",
+ "nativeDataType": "VARCHAR(30)",
"recursive": false,
- "globalTags": null,
- "glossaryTerms": null,
- "isPartOfKey": false,
- "isPartitioningKey": null,
- "jsonProps": null
+ "isPartOfKey": false
},
{
"fieldPath": "state",
- "jsonPath": null,
"nullable": false,
- "description": null,
"type": {
"type": {
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=2)",
+ "nativeDataType": "VARCHAR(2)",
"recursive": false,
- "globalTags": null,
- "glossaryTerms": null,
- "isPartOfKey": false,
- "isPartitioningKey": null,
- "jsonProps": null
+ "isPartOfKey": false
},
{
"fieldPath": "zip",
- "jsonPath": null,
"nullable": true,
- "description": null,
"type": {
"type": {
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=6)",
+ "nativeDataType": "VARCHAR(6)",
"recursive": false,
- "globalTags": null,
- "glossaryTerms": null,
- "isPartOfKey": false,
- "isPartitioningKey": null,
- "jsonProps": null
+ "isPartOfKey": false
}
- ],
- "primaryKeys": null,
- "foreignKeysSpecs": null,
- "foreignKeys": null
+ ]
}
}
]
}
},
- "proposedDelta": null,
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.hotel,PROD)",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "subTypes",
"aspect": {
- "value": "{\"typeNames\": [\"Table\"]}",
- "contentType": "application/json"
+ "json": {
+ "typeNames": [
+ "Table"
+ ]
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.hotel,PROD)",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "domains",
"aspect": {
- "value": "{\"domains\": [\"urn:li:domain:sales\"]}",
- "contentType": "application/json"
+ "json": {
+ "domains": [
+ "urn:li:domain:sales"
+ ]
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
+ }
+},
+{
+ "entityType": "dataset",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.hotel,PROD)",
+ "changeType": "UPSERT",
+ "aspectName": "browsePathsV2",
+ "aspect": {
+ "json": {
+ "path": [
+ {
+ "id": "urn:li:container:c8107a53ee221a15de176e4d34a06940",
+ "urn": "urn:li:container:c8107a53ee221a15de176e4d34a06940"
+ },
+ {
+ "id": "urn:li:container:f870c782e0a44727bd10da2ab742363b",
+ "urn": "urn:li:container:f870c782e0a44727bd10da2ab742363b"
+ }
+ ]
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1586847600000,
+ "runId": "hana-test",
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.maintenance,PROD)",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "container",
"aspect": {
- "value": "{\"container\": \"urn:li:container:f870c782e0a44727bd10da2ab742363b\"}",
- "contentType": "application/json"
+ "json": {
+ "container": "urn:li:container:f870c782e0a44727bd10da2ab742363b"
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"proposedSnapshot": {
"com.linkedin.pegasus2avro.metadata.snapshot.DatasetSnapshot": {
"urn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.maintenance,PROD)",
@@ -625,11 +620,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {},
- "externalUrl": null,
"name": "maintenance",
- "qualifiedName": null,
- "description": null,
- "uri": null,
"tags": []
}
},
@@ -640,17 +631,12 @@
"version": 0,
"created": {
"time": 0,
- "actor": "urn:li:corpuser:unknown",
- "impersonator": null
+ "actor": "urn:li:corpuser:unknown"
},
"lastModified": {
"time": 0,
- "actor": "urn:li:corpuser:unknown",
- "impersonator": null
+ "actor": "urn:li:corpuser:unknown"
},
- "deleted": null,
- "dataset": null,
- "cluster": null,
"hash": "",
"platformSchema": {
"com.linkedin.pegasus2avro.schema.MySqlDDL": {
@@ -660,205 +646,811 @@
"fields": [
{
"fieldPath": "mno",
- "jsonPath": null,
"nullable": false,
- "description": null,
"type": {
"type": {
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
- "globalTags": null,
- "glossaryTerms": null,
- "isPartOfKey": true,
- "isPartitioningKey": null,
- "jsonProps": null
+ "isPartOfKey": true
},
{
"fieldPath": "hno",
- "jsonPath": null,
"nullable": true,
- "description": null,
"type": {
"type": {
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
- "globalTags": null,
- "glossaryTerms": null,
- "isPartOfKey": false,
- "isPartitioningKey": null,
- "jsonProps": null
+ "isPartOfKey": false
},
{
"fieldPath": "description",
- "jsonPath": null,
"nullable": true,
- "description": null,
"type": {
"type": {
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=100)",
+ "nativeDataType": "VARCHAR(100)",
"recursive": false,
- "globalTags": null,
- "glossaryTerms": null,
- "isPartOfKey": false,
- "isPartitioningKey": null,
- "jsonProps": null
+ "isPartOfKey": false
},
{
"fieldPath": "date_performed",
- "jsonPath": null,
"nullable": true,
- "description": null,
"type": {
"type": {
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
- "globalTags": null,
- "glossaryTerms": null,
- "isPartOfKey": false,
- "isPartitioningKey": null,
- "jsonProps": null
+ "isPartOfKey": false
},
{
"fieldPath": "performed_by",
- "jsonPath": null,
"nullable": true,
- "description": null,
"type": {
"type": {
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=40)",
+ "nativeDataType": "VARCHAR(40)",
"recursive": false,
- "globalTags": null,
- "glossaryTerms": null,
- "isPartOfKey": false,
- "isPartitioningKey": null,
- "jsonProps": null
+ "isPartOfKey": false
}
- ],
- "primaryKeys": null,
- "foreignKeysSpecs": null,
- "foreignKeys": null
+ ]
}
}
]
}
},
- "proposedDelta": null,
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.maintenance,PROD)",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "subTypes",
"aspect": {
- "value": "{\"typeNames\": [\"Table\"]}",
- "contentType": "application/json"
+ "json": {
+ "typeNames": [
+ "Table"
+ ]
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.maintenance,PROD)",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "domains",
"aspect": {
- "value": "{\"domains\": [\"urn:li:domain:sales\"]}",
- "contentType": "application/json"
+ "json": {
+ "domains": [
+ "urn:li:domain:sales"
+ ]
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
+ }
+},
+{
+ "entityType": "dataset",
+ "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.maintenance,PROD)",
+ "changeType": "UPSERT",
+ "aspectName": "browsePathsV2",
+ "aspect": {
+ "json": {
+ "path": [
+ {
+ "id": "urn:li:container:c8107a53ee221a15de176e4d34a06940",
+ "urn": "urn:li:container:c8107a53ee221a15de176e4d34a06940"
+ },
+ {
+ "id": "urn:li:container:f870c782e0a44727bd10da2ab742363b",
+ "urn": "urn:li:container:f870c782e0a44727bd10da2ab742363b"
+ }
+ ]
+ }
+ },
+ "systemMetadata": {
+ "lastObserved": 1586847600000,
+ "runId": "hana-test",
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.customer,PROD)",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "datasetProfile",
"aspect": {
- "value": "{\"timestampMillis\": 1586847600000, \"partitionSpec\": {\"type\": \"FULL_TABLE\", \"partition\": \"FULL_TABLE_SNAPSHOT\"}, \"rowCount\": 15, \"columnCount\": 6, \"fieldProfiles\": [{\"fieldPath\": \"cno\", \"uniqueCount\": 15, \"uniqueProportion\": 1.0, \"nullCount\": 0, \"nullProportion\": 0.0, \"sampleValues\": [\"1000\", \"1001\", \"1002\", \"1003\", \"1004\", \"1005\", \"1006\", \"1007\", \"1008\", \"1009\", \"1010\", \"1011\", \"1012\", \"1013\", \"1014\"]}, {\"fieldPath\": \"title\", \"uniqueCount\": 3, \"uniqueProportion\": 0.2, \"nullCount\": 0, \"nullProportion\": 0.0, \"distinctValueFrequencies\": [{\"value\": \"Company\", \"frequency\": 2}, {\"value\": \"Mr\", \"frequency\": 7}, {\"value\": \"Mrs\", \"frequency\": 6}], \"sampleValues\": [\"Mrs\", \"Mr\", \"Company\", \"Mrs\", \"Mrs\", \"Mr\", \"Mrs\", \"Mr\", \"Mrs\", \"Mr\", \"Mr\", \"Mrs\", \"Mr\", \"Company\", \"Mr\"]}, {\"fieldPath\": \"firstname\", \"uniqueCount\": 13, \"uniqueProportion\": 1.0, \"nullCount\": 2, \"nullProportion\": 0.13333333333333333, \"sampleValues\": [\"Jenny\", \"Peter\", \"Rose\", \"Mary\", \"Martin\", \"Sally\", \"Mike\", \"Rita\", \"George\", \"Frank\", \"Susan\", \"Joseph\", \"Antony\"]}, {\"fieldPath\": \"name\", \"uniqueCount\": 15, \"uniqueProportion\": 1.0, \"nullCount\": 0, \"nullProportion\": 0.0, \"sampleValues\": [\"Porter\", \"Brown\", \"Datasoft\", \"Brian\", \"Griffith\", \"Randolph\", \"Smith\", \"Jackson\", \"Doe\", \"Howe\", \"Miller\", \"Baker\", \"Peters\", \"TOOLware\", \"Jenkins\"]}, {\"fieldPath\": \"address\", \"uniqueCount\": 15, \"uniqueProportion\": 1.0, \"nullCount\": 0, \"nullProportion\": 0.0, \"sampleValues\": [\"1340 N. Ash Street, #3\", \"1001 34th St., APT.3\", \"486 Maple St.\", \"500 Yellowstone Drive, #2\", \"3401 Elder Lane\", \"340 MAIN STREET, #7\", \"250 Curtis Street\", \"133 BROADWAY APT. 1\", \"2000 Humboldt St., #6\", \"111 B Parkway, #23\", \"27 5th St., 76\", \"200 MAIN STREET, #94\", \"700 S. Ash St., APT.12\", \"410 Mariposa St., #10\", \"55 A Parkway, #15\"]}, {\"fieldPath\": \"zip\", \"uniqueCount\": 12, \"uniqueProportion\": 0.8, \"nullCount\": 0, \"nullProportion\": 0.0, \"distinctValueFrequencies\": [{\"value\": \"10580\", \"frequency\": 1}, {\"value\": \"20005\", \"frequency\": 1}, {\"value\": \"20019\", \"frequency\": 1}, {\"value\": \"20903\", \"frequency\": 1}, {\"value\": \"45211\", \"frequency\": 1}, {\"value\": \"48226\", \"frequency\": 1}, {\"value\": \"60615\", \"frequency\": 1}, {\"value\": \"75243\", \"frequency\": 3}, {\"value\": \"90018\", \"frequency\": 2}, {\"value\": \"92714\", \"frequency\": 1}, {\"value\": \"95054\", \"frequency\": 1}, {\"value\": \"97213\", \"frequency\": 1}], \"sampleValues\": [\"10580\", \"48226\", \"90018\", \"75243\", \"20005\", \"60615\", \"75243\", \"45211\", \"97213\", \"75243\", \"95054\", \"90018\", \"92714\", \"20019\", \"20903\"]}]}",
- "contentType": "application/json"
+ "json": {
+ "timestampMillis": 1586847600000,
+ "partitionSpec": {
+ "type": "FULL_TABLE",
+ "partition": "FULL_TABLE_SNAPSHOT"
+ },
+ "rowCount": 15,
+ "columnCount": 6,
+ "fieldProfiles": [
+ {
+ "fieldPath": "cno",
+ "uniqueCount": 15,
+ "uniqueProportion": 1,
+ "nullCount": 0,
+ "nullProportion": 0.0,
+ "min": "1000",
+ "max": "1014",
+ "mean": "1007.0",
+ "median": "1007",
+ "stdev": "4.472135",
+ "sampleValues": [
+ "1000",
+ "1001",
+ "1002",
+ "1003",
+ "1004",
+ "1005",
+ "1006",
+ "1007",
+ "1008",
+ "1009",
+ "1010",
+ "1011",
+ "1012",
+ "1013",
+ "1014"
+ ]
+ },
+ {
+ "fieldPath": "title",
+ "uniqueCount": 3,
+ "uniqueProportion": 0.2,
+ "nullCount": 0,
+ "nullProportion": 0.0,
+ "distinctValueFrequencies": [
+ {
+ "value": "Company",
+ "frequency": 2
+ },
+ {
+ "value": "Mr",
+ "frequency": 7
+ },
+ {
+ "value": "Mrs",
+ "frequency": 6
+ }
+ ],
+ "sampleValues": [
+ "Mrs",
+ "Mr",
+ "Company",
+ "Mrs",
+ "Mrs",
+ "Mr",
+ "Mrs",
+ "Mr",
+ "Mrs",
+ "Mr",
+ "Mr",
+ "Mrs",
+ "Mr",
+ "Company",
+ "Mr"
+ ]
+ },
+ {
+ "fieldPath": "firstname",
+ "uniqueCount": 13,
+ "uniqueProportion": 1,
+ "nullCount": 2,
+ "nullProportion": 0.13333333333333333,
+ "sampleValues": [
+ "Jenny",
+ "Peter",
+ "Rose",
+ "Mary",
+ "Martin",
+ "Sally",
+ "Mike",
+ "Rita",
+ "George",
+ "Frank",
+ "Susan",
+ "Joseph",
+ "Antony"
+ ]
+ },
+ {
+ "fieldPath": "name",
+ "uniqueCount": 15,
+ "uniqueProportion": 1,
+ "nullCount": 0,
+ "nullProportion": 0.0,
+ "sampleValues": [
+ "Porter",
+ "Brown",
+ "Datasoft",
+ "Brian",
+ "Griffith",
+ "Randolph",
+ "Smith",
+ "Jackson",
+ "Doe",
+ "Howe",
+ "Miller",
+ "Baker",
+ "Peters",
+ "TOOLware",
+ "Jenkins"
+ ]
+ },
+ {
+ "fieldPath": "address",
+ "uniqueCount": 15,
+ "uniqueProportion": 1,
+ "nullCount": 0,
+ "nullProportion": 0.0,
+ "sampleValues": [
+ "1340 N. Ash Street, #3",
+ "1001 34th St., APT.3",
+ "486 Maple St.",
+ "500 Yellowstone Drive, #2",
+ "3401 Elder Lane",
+ "340 MAIN STREET, #7",
+ "250 Curtis Street",
+ "133 BROADWAY APT. 1",
+ "2000 Humboldt St., #6",
+ "111 B Parkway, #23",
+ "27 5th St., 76",
+ "200 MAIN STREET, #94",
+ "700 S. Ash St., APT.12",
+ "410 Mariposa St., #10",
+ "55 A Parkway, #15"
+ ]
+ },
+ {
+ "fieldPath": "zip",
+ "uniqueCount": 12,
+ "uniqueProportion": 0.8,
+ "nullCount": 0,
+ "nullProportion": 0.0,
+ "distinctValueFrequencies": [
+ {
+ "value": "10580",
+ "frequency": 1
+ },
+ {
+ "value": "20005",
+ "frequency": 1
+ },
+ {
+ "value": "20019",
+ "frequency": 1
+ },
+ {
+ "value": "20903",
+ "frequency": 1
+ },
+ {
+ "value": "45211",
+ "frequency": 1
+ },
+ {
+ "value": "48226",
+ "frequency": 1
+ },
+ {
+ "value": "60615",
+ "frequency": 1
+ },
+ {
+ "value": "75243",
+ "frequency": 3
+ },
+ {
+ "value": "90018",
+ "frequency": 2
+ },
+ {
+ "value": "92714",
+ "frequency": 1
+ },
+ {
+ "value": "95054",
+ "frequency": 1
+ },
+ {
+ "value": "97213",
+ "frequency": 1
+ }
+ ],
+ "sampleValues": [
+ "10580",
+ "48226",
+ "90018",
+ "75243",
+ "20005",
+ "60615",
+ "75243",
+ "45211",
+ "97213",
+ "75243",
+ "95054",
+ "90018",
+ "92714",
+ "20019",
+ "20903"
+ ]
+ }
+ ]
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.hotel,PROD)",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "datasetProfile",
"aspect": {
- "value": "{\"timestampMillis\": 1586847600000, \"partitionSpec\": {\"type\": \"FULL_TABLE\", \"partition\": \"FULL_TABLE_SNAPSHOT\"}, \"rowCount\": 17, \"columnCount\": 6, \"fieldProfiles\": [{\"fieldPath\": \"hno\", \"uniqueCount\": 17, \"uniqueProportion\": 1.0, \"nullCount\": 0, \"nullProportion\": 0.0, \"sampleValues\": [\"10\", \"11\", \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"20\", \"21\", \"22\", \"23\", \"24\", \"25\", \"26\"]}, {\"fieldPath\": \"name\", \"uniqueCount\": 17, \"uniqueProportion\": 1.0, \"nullCount\": 0, \"nullProportion\": 0.0, \"sampleValues\": [\"Congress\", \"Regency\", \"Long Island\", \"Empire State\", \"Midtown\", \"Eighth Avenue\", \"Lake Michigan\", \"Airport\", \"Sunshine\", \"Beach\", \"Atlantic\", \"Long Beach\", \"Indian Horse\", \"Star\", \"River Boat\", \"Ocean Star\", \"Bella Ciente\"]}, {\"fieldPath\": \"address\", \"uniqueCount\": 17, \"uniqueProportion\": 1.0, \"nullCount\": 0, \"nullProportion\": 0.0, \"sampleValues\": [\"155 Beechwood St.\", \"477 17th Avenue\", \"1499 Grove Street\", \"65 Yellowstone Dr.\", \"12 Barnard St.\", \"112 8th Avenue\", \"354 OAK Terrace\", \"650 C Parkway\", \"200 Yellowstone Dr.\", \"1980 34th St.\", \"111 78th St.\", \"35 Broadway\", \"16 MAIN STREET\", \"13 Beechwood Place\", \"788 MAIN STREET\", \"45 Pacific Avenue\", \"1407 Marshall Ave\"]}, {\"fieldPath\": \"city\", \"uniqueCount\": 15, \"uniqueProportion\": 0.8823529411764706, \"nullCount\": 0, \"nullProportion\": 0.0, \"distinctValueFrequencies\": [{\"value\": \"Albany\", \"frequency\": 1}, {\"value\": \"Atlantic City\", \"frequency\": 1}, {\"value\": \"Chicago\", \"frequency\": 1}, {\"value\": \"Clearwater\", \"frequency\": 1}, {\"value\": \"Daytona Beach\", \"frequency\": 1}, {\"value\": \"Deerfield Beach\", \"frequency\": 1}, {\"value\": \"Hollywood\", \"frequency\": 1}, {\"value\": \"Long Beach\", \"frequency\": 1}, {\"value\": \"Long Island\", \"frequency\": 1}, {\"value\": \"Longview\", \"frequency\": 1}, {\"value\": \"New Orleans\", \"frequency\": 1}, {\"value\": \"New York\", \"frequency\": 2}, {\"value\": \"Palm Springs\", \"frequency\": 1}, {\"value\": \"Rosemont\", \"frequency\": 1}, {\"value\": \"Seattle\", \"frequency\": 2}], \"sampleValues\": [\"Seattle\", \"Seattle\", \"Long Island\", \"Albany\", \"New York\", \"New York\", \"Chicago\", \"Rosemont\", \"Clearwater\", \"Daytona Beach\", \"Deerfield Beach\", \"Long Beach\", \"Palm Springs\", \"Hollywood\", \"New Orleans\", \"Atlantic City\", \"Longview\"]}, {\"fieldPath\": \"state\", \"uniqueCount\": 8, \"uniqueProportion\": 0.47058823529411764, \"nullCount\": 0, \"nullProportion\": 0.0, \"distinctValueFrequencies\": [{\"value\": \"CA\", \"frequency\": 3}, {\"value\": \"FL\", \"frequency\": 3}, {\"value\": \"IL\", \"frequency\": 2}, {\"value\": \"LA\", \"frequency\": 1}, {\"value\": \"NJ\", \"frequency\": 1}, {\"value\": \"NY\", \"frequency\": 4}, {\"value\": \"TX\", \"frequency\": 1}, {\"value\": \"WA\", \"frequency\": 2}], \"sampleValues\": [\"WA\", \"WA\", \"NY\", \"NY\", \"NY\", \"NY\", \"IL\", \"IL\", \"FL\", \"FL\", \"FL\", \"CA\", \"CA\", \"CA\", \"LA\", \"NJ\", \"TX\"]}, {\"fieldPath\": \"zip\", \"uniqueCount\": 16, \"uniqueProportion\": 0.9411764705882353, \"nullCount\": 0, \"nullProportion\": 0.0, \"distinctValueFrequencies\": [{\"value\": \"08401\", \"frequency\": 1}, {\"value\": \"10019\", \"frequency\": 2}, {\"value\": \"11788\", \"frequency\": 1}, {\"value\": \"12203\", \"frequency\": 1}, {\"value\": \"20005\", \"frequency\": 1}, {\"value\": \"20037\", \"frequency\": 1}, {\"value\": \"32018\", \"frequency\": 1}, {\"value\": \"33441\", \"frequency\": 1}, {\"value\": \"33575\", \"frequency\": 1}, {\"value\": \"60018\", \"frequency\": 1}, {\"value\": \"60601\", \"frequency\": 1}, {\"value\": \"70112\", \"frequency\": 1}, {\"value\": \"75601\", \"frequency\": 1}, {\"value\": \"90029\", \"frequency\": 1}, {\"value\": \"90804\", \"frequency\": 1}, {\"value\": \"92262\", \"frequency\": 1}], \"sampleValues\": [\"20005\", \"20037\", \"11788\", \"12203\", \"10019\", \"10019\", \"60601\", \"60018\", \"33575\", \"32018\", \"33441\", \"90804\", \"92262\", \"90029\", \"70112\", \"08401\", \"75601\"]}]}",
- "contentType": "application/json"
+ "json": {
+ "timestampMillis": 1586847600000,
+ "partitionSpec": {
+ "type": "FULL_TABLE",
+ "partition": "FULL_TABLE_SNAPSHOT"
+ },
+ "rowCount": 17,
+ "columnCount": 6,
+ "fieldProfiles": [
+ {
+ "fieldPath": "hno",
+ "uniqueCount": 17,
+ "uniqueProportion": 1,
+ "nullCount": 0,
+ "nullProportion": 0.0,
+ "min": "10",
+ "max": "26",
+ "mean": "18.0",
+ "median": "18",
+ "stdev": "5.049752",
+ "sampleValues": [
+ "10",
+ "11",
+ "12",
+ "13",
+ "14",
+ "15",
+ "16",
+ "17",
+ "18",
+ "19",
+ "20",
+ "21",
+ "22",
+ "23",
+ "24",
+ "25",
+ "26"
+ ]
+ },
+ {
+ "fieldPath": "name",
+ "uniqueCount": 17,
+ "uniqueProportion": 1,
+ "nullCount": 0,
+ "nullProportion": 0.0,
+ "sampleValues": [
+ "Congress",
+ "Regency",
+ "Long Island",
+ "Empire State",
+ "Midtown",
+ "Eighth Avenue",
+ "Lake Michigan",
+ "Airport",
+ "Sunshine",
+ "Beach",
+ "Atlantic",
+ "Long Beach",
+ "Indian Horse",
+ "Star",
+ "River Boat",
+ "Ocean Star",
+ "Bella Ciente"
+ ]
+ },
+ {
+ "fieldPath": "address",
+ "uniqueCount": 17,
+ "uniqueProportion": 1,
+ "nullCount": 0,
+ "nullProportion": 0.0,
+ "sampleValues": [
+ "155 Beechwood St.",
+ "477 17th Avenue",
+ "1499 Grove Street",
+ "65 Yellowstone Dr.",
+ "12 Barnard St.",
+ "112 8th Avenue",
+ "354 OAK Terrace",
+ "650 C Parkway",
+ "200 Yellowstone Dr.",
+ "1980 34th St.",
+ "111 78th St.",
+ "35 Broadway",
+ "16 MAIN STREET",
+ "13 Beechwood Place",
+ "788 MAIN STREET",
+ "45 Pacific Avenue",
+ "1407 Marshall Ave"
+ ]
+ },
+ {
+ "fieldPath": "city",
+ "uniqueCount": 15,
+ "uniqueProportion": 0.8823529411764706,
+ "nullCount": 0,
+ "nullProportion": 0.0,
+ "distinctValueFrequencies": [
+ {
+ "value": "Albany",
+ "frequency": 1
+ },
+ {
+ "value": "Atlantic City",
+ "frequency": 1
+ },
+ {
+ "value": "Chicago",
+ "frequency": 1
+ },
+ {
+ "value": "Clearwater",
+ "frequency": 1
+ },
+ {
+ "value": "Daytona Beach",
+ "frequency": 1
+ },
+ {
+ "value": "Deerfield Beach",
+ "frequency": 1
+ },
+ {
+ "value": "Hollywood",
+ "frequency": 1
+ },
+ {
+ "value": "Long Beach",
+ "frequency": 1
+ },
+ {
+ "value": "Long Island",
+ "frequency": 1
+ },
+ {
+ "value": "Longview",
+ "frequency": 1
+ },
+ {
+ "value": "New Orleans",
+ "frequency": 1
+ },
+ {
+ "value": "New York",
+ "frequency": 2
+ },
+ {
+ "value": "Palm Springs",
+ "frequency": 1
+ },
+ {
+ "value": "Rosemont",
+ "frequency": 1
+ },
+ {
+ "value": "Seattle",
+ "frequency": 2
+ }
+ ],
+ "sampleValues": [
+ "Seattle",
+ "Seattle",
+ "Long Island",
+ "Albany",
+ "New York",
+ "New York",
+ "Chicago",
+ "Rosemont",
+ "Clearwater",
+ "Daytona Beach",
+ "Deerfield Beach",
+ "Long Beach",
+ "Palm Springs",
+ "Hollywood",
+ "New Orleans",
+ "Atlantic City",
+ "Longview"
+ ]
+ },
+ {
+ "fieldPath": "state",
+ "uniqueCount": 8,
+ "uniqueProportion": 0.47058823529411764,
+ "nullCount": 0,
+ "nullProportion": 0.0,
+ "distinctValueFrequencies": [
+ {
+ "value": "CA",
+ "frequency": 3
+ },
+ {
+ "value": "FL",
+ "frequency": 3
+ },
+ {
+ "value": "IL",
+ "frequency": 2
+ },
+ {
+ "value": "LA",
+ "frequency": 1
+ },
+ {
+ "value": "NJ",
+ "frequency": 1
+ },
+ {
+ "value": "NY",
+ "frequency": 4
+ },
+ {
+ "value": "TX",
+ "frequency": 1
+ },
+ {
+ "value": "WA",
+ "frequency": 2
+ }
+ ],
+ "sampleValues": [
+ "WA",
+ "WA",
+ "NY",
+ "NY",
+ "NY",
+ "NY",
+ "IL",
+ "IL",
+ "FL",
+ "FL",
+ "FL",
+ "CA",
+ "CA",
+ "CA",
+ "LA",
+ "NJ",
+ "TX"
+ ]
+ },
+ {
+ "fieldPath": "zip",
+ "uniqueCount": 16,
+ "uniqueProportion": 0.9411764705882353,
+ "nullCount": 0,
+ "nullProportion": 0.0,
+ "distinctValueFrequencies": [
+ {
+ "value": "08401",
+ "frequency": 1
+ },
+ {
+ "value": "10019",
+ "frequency": 2
+ },
+ {
+ "value": "11788",
+ "frequency": 1
+ },
+ {
+ "value": "12203",
+ "frequency": 1
+ },
+ {
+ "value": "20005",
+ "frequency": 1
+ },
+ {
+ "value": "20037",
+ "frequency": 1
+ },
+ {
+ "value": "32018",
+ "frequency": 1
+ },
+ {
+ "value": "33441",
+ "frequency": 1
+ },
+ {
+ "value": "33575",
+ "frequency": 1
+ },
+ {
+ "value": "60018",
+ "frequency": 1
+ },
+ {
+ "value": "60601",
+ "frequency": 1
+ },
+ {
+ "value": "70112",
+ "frequency": 1
+ },
+ {
+ "value": "75601",
+ "frequency": 1
+ },
+ {
+ "value": "90029",
+ "frequency": 1
+ },
+ {
+ "value": "90804",
+ "frequency": 1
+ },
+ {
+ "value": "92262",
+ "frequency": 1
+ }
+ ],
+ "sampleValues": [
+ "20005",
+ "20037",
+ "11788",
+ "12203",
+ "10019",
+ "10019",
+ "60601",
+ "60018",
+ "33575",
+ "32018",
+ "33441",
+ "90804",
+ "92262",
+ "90029",
+ "70112",
+ "08401",
+ "75601"
+ ]
+ }
+ ]
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
},
{
- "auditHeader": null,
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:hana,hotel.maintenance,PROD)",
- "entityKeyAspect": null,
"changeType": "UPSERT",
"aspectName": "datasetProfile",
"aspect": {
- "value": "{\"timestampMillis\": 1586847600000, \"partitionSpec\": {\"type\": \"FULL_TABLE\", \"partition\": \"FULL_TABLE_SNAPSHOT\"}, \"rowCount\": 3, \"columnCount\": 5, \"fieldProfiles\": [{\"fieldPath\": \"mno\", \"uniqueCount\": 3, \"uniqueProportion\": 1.0, \"nullCount\": 0, \"nullProportion\": 0.0, \"sampleValues\": [\"10\", \"11\", \"12\"]}, {\"fieldPath\": \"hno\", \"uniqueCount\": 3, \"uniqueProportion\": 1.0, \"nullCount\": 0, \"nullProportion\": 0.0, \"sampleValues\": [\"24\", \"25\", \"26\"]}, {\"fieldPath\": \"description\", \"uniqueCount\": 3, \"uniqueProportion\": 1.0, \"nullCount\": 0, \"nullProportion\": 0.0, \"sampleValues\": [\"Replace pool liner and pump\", \"Renovate the bar area. Replace TV and speakers\", \"Roof repair due to storm\"]}, {\"fieldPath\": \"date_performed\", \"uniqueCount\": 2, \"uniqueProportion\": 1.0, \"nullCount\": 1, \"nullProportion\": 0.3333333333333333, \"min\": \"2019-03-21\", \"max\": \"2020-11-29\", \"sampleValues\": [\"2019-03-21\", \"2020-11-29\"]}, {\"fieldPath\": \"performed_by\", \"uniqueCount\": 2, \"uniqueProportion\": 1.0, \"nullCount\": 1, \"nullProportion\": 0.3333333333333333, \"sampleValues\": [\"Discount Pool Supplies\", \"TV and Audio Superstore\"]}]}",
- "contentType": "application/json"
+ "json": {
+ "timestampMillis": 1586847600000,
+ "partitionSpec": {
+ "type": "FULL_TABLE",
+ "partition": "FULL_TABLE_SNAPSHOT"
+ },
+ "rowCount": 3,
+ "columnCount": 5,
+ "fieldProfiles": [
+ {
+ "fieldPath": "mno",
+ "uniqueCount": 3,
+ "uniqueProportion": 1,
+ "nullCount": 0,
+ "nullProportion": 0.0,
+ "min": "10",
+ "max": "12",
+ "mean": "11.0",
+ "median": "11",
+ "stdev": "1.0",
+ "sampleValues": [
+ "10",
+ "11",
+ "12"
+ ]
+ },
+ {
+ "fieldPath": "hno",
+ "uniqueCount": 3,
+ "uniqueProportion": 1,
+ "nullCount": 0,
+ "nullProportion": 0.0,
+ "min": "24",
+ "max": "26",
+ "mean": "25.0",
+ "median": "25",
+ "stdev": "1.0",
+ "sampleValues": [
+ "24",
+ "25",
+ "26"
+ ]
+ },
+ {
+ "fieldPath": "description",
+ "uniqueCount": 3,
+ "uniqueProportion": 1,
+ "nullCount": 0,
+ "nullProportion": 0.0,
+ "sampleValues": [
+ "Replace pool liner and pump",
+ "Renovate the bar area. Replace TV and speakers",
+ "Roof repair due to storm"
+ ]
+ },
+ {
+ "fieldPath": "date_performed",
+ "uniqueCount": 2,
+ "uniqueProportion": 1,
+ "nullCount": 1,
+ "nullProportion": 0.3333333333333333,
+ "min": "2019-03-21",
+ "max": "2020-11-29",
+ "sampleValues": [
+ "2019-03-21",
+ "2020-11-29"
+ ]
+ },
+ {
+ "fieldPath": "performed_by",
+ "uniqueCount": 2,
+ "uniqueProportion": 1,
+ "nullCount": 1,
+ "nullProportion": 0.3333333333333333,
+ "sampleValues": [
+ "Discount Pool Supplies",
+ "TV and Audio Superstore"
+ ]
+ }
+ ]
+ }
},
"systemMetadata": {
"lastObserved": 1586847600000,
"runId": "hana-test",
- "registryName": null,
- "registryVersion": null,
- "properties": null
+ "lastRunId": "no-run-id-provided"
}
}
]
\ No newline at end of file
diff --git a/metadata-ingestion/tests/integration/mysql/mysql_mces_no_db_golden.json b/metadata-ingestion/tests/integration/mysql/mysql_mces_no_db_golden.json
index f78b45fb373fc..bddccc856c842 100644
--- a/metadata-ingestion/tests/integration/mysql/mysql_mces_no_db_golden.json
+++ b/metadata-ingestion/tests/integration/mysql/mysql_mces_no_db_golden.json
@@ -147,7 +147,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -159,7 +159,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -171,7 +171,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=14)",
+ "nativeDataType": "VARCHAR(14)",
"recursive": false,
"isPartOfKey": false
},
@@ -183,7 +183,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=16)",
+ "nativeDataType": "VARCHAR(16)",
"recursive": false,
"isPartOfKey": false
},
@@ -195,7 +195,7 @@
"com.linkedin.pegasus2avro.schema.EnumType": {}
}
},
- "nativeDataType": "ENUM('M', 'F')",
+ "nativeDataType": "ENUM('M','F')",
"recursive": false,
"glossaryTerms": {
"terms": [
@@ -218,7 +218,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
}
@@ -334,7 +334,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -346,7 +346,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -358,7 +358,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": true
},
@@ -370,7 +370,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
}
@@ -439,7 +439,6 @@
},
"rowCount": 10,
"columnCount": 6,
- "sizeInBytes": 16384,
"fieldProfiles": [
{
"fieldPath": "emp_no",
@@ -574,7 +573,8 @@
"1989-08-24"
]
}
- ]
+ ],
+ "sizeInBytes": 16384
}
},
"systemMetadata": {
@@ -597,7 +597,6 @@
},
"rowCount": 112,
"columnCount": 4,
- "sizeInBytes": 16384,
"fieldProfiles": [
{
"fieldPath": "emp_no",
@@ -991,7 +990,8 @@
"1993-02-09"
]
}
- ]
+ ],
+ "sizeInBytes": 16384
}
},
"systemMetadata": {
@@ -1166,7 +1166,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=500)",
+ "nativeDataType": "VARCHAR(500)",
"recursive": false,
"isPartOfKey": true
},
@@ -1178,7 +1178,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=200)",
+ "nativeDataType": "VARCHAR(200)",
"recursive": false,
"isPartOfKey": true
},
@@ -1190,7 +1190,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "BIGINT()",
+ "nativeDataType": "BIGINT",
"recursive": false,
"isPartOfKey": true
},
@@ -1202,7 +1202,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "LONGTEXT()",
+ "nativeDataType": "LONGTEXT",
"recursive": false,
"isPartOfKey": false
},
@@ -1214,7 +1214,7 @@
"com.linkedin.pegasus2avro.schema.TimeType": {}
}
},
- "nativeDataType": "DATETIME(fsp=6)",
+ "nativeDataType": "DATETIME(6)",
"recursive": false,
"isPartOfKey": false
},
@@ -1226,7 +1226,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=255)",
+ "nativeDataType": "VARCHAR(255)",
"recursive": false,
"isPartOfKey": false
},
@@ -1238,7 +1238,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=255)",
+ "nativeDataType": "VARCHAR(255)",
"recursive": false,
"isPartOfKey": false
}
@@ -1373,7 +1373,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "BIGINT()",
+ "nativeDataType": "BIGINT",
"recursive": false,
"isPartOfKey": true
},
@@ -1386,7 +1386,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=200)",
+ "nativeDataType": "VARCHAR(200)",
"recursive": false,
"isPartOfKey": false
},
@@ -1398,7 +1398,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=150)",
+ "nativeDataType": "VARCHAR(150)",
"recursive": false,
"isPartOfKey": false
},
@@ -1410,7 +1410,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=150)",
+ "nativeDataType": "VARCHAR(150)",
"recursive": false,
"isPartOfKey": false
},
@@ -1422,7 +1422,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "BIGINT()",
+ "nativeDataType": "BIGINT",
"recursive": false,
"isPartOfKey": false
},
@@ -1434,7 +1434,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=200)",
+ "nativeDataType": "VARCHAR(200)",
"recursive": false,
"isPartOfKey": false
},
@@ -1446,7 +1446,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "DOUBLE(asdecimal=True)",
+ "nativeDataType": "DOUBLE",
"recursive": false,
"isPartOfKey": false
}
@@ -1583,7 +1583,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "BIGINT()",
+ "nativeDataType": "BIGINT",
"recursive": false,
"isPartOfKey": false
},
@@ -1595,7 +1595,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=200)",
+ "nativeDataType": "VARCHAR(200)",
"recursive": false,
"isPartOfKey": false
},
@@ -1607,7 +1607,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=150)",
+ "nativeDataType": "VARCHAR(150)",
"recursive": false,
"isPartOfKey": false
},
@@ -1619,7 +1619,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "DOUBLE(asdecimal=True)",
+ "nativeDataType": "DOUBLE",
"recursive": false,
"isPartOfKey": false
}
@@ -1858,7 +1858,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -1870,7 +1870,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -1882,7 +1882,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -1894,7 +1894,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -1906,7 +1906,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"glossaryTerms": {
"terms": [
@@ -1929,7 +1929,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
}
@@ -2045,7 +2045,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -2057,7 +2057,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -2069,7 +2069,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -2150,7 +2150,6 @@
},
"rowCount": 5,
"columnCount": 6,
- "sizeInBytes": 16384,
"fieldProfiles": [
{
"fieldPath": "id",
@@ -2259,7 +2258,8 @@
"3.8"
]
}
- ]
+ ],
+ "sizeInBytes": 16384
}
},
"systemMetadata": {
@@ -2282,7 +2282,6 @@
},
"rowCount": 0,
"columnCount": 3,
- "sizeInBytes": 16384,
"fieldProfiles": [
{
"fieldPath": "id",
@@ -2299,7 +2298,8 @@
"uniqueCount": 0,
"nullCount": 0
}
- ]
+ ],
+ "sizeInBytes": 16384
}
},
"systemMetadata": {
@@ -2456,7 +2456,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "SET('a', 'b', 'c', 'd')",
+ "nativeDataType": "SET('a','b','c','d')",
"recursive": false,
"isPartOfKey": false
}
@@ -2572,7 +2572,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
}
@@ -2641,14 +2641,14 @@
},
"rowCount": 0,
"columnCount": 1,
- "sizeInBytes": 16384,
"fieldProfiles": [
{
"fieldPath": "col",
"uniqueCount": 0,
"nullCount": 0
}
- ]
+ ],
+ "sizeInBytes": 16384
}
},
"systemMetadata": {
@@ -2671,14 +2671,14 @@
},
"rowCount": 0,
"columnCount": 1,
- "sizeInBytes": 16384,
"fieldProfiles": [
{
"fieldPath": "dummy",
"uniqueCount": 0,
"nullCount": 0
}
- ]
+ ],
+ "sizeInBytes": 16384
}
},
"systemMetadata": {
diff --git a/metadata-ingestion/tests/integration/mysql/mysql_mces_with_db_golden.json b/metadata-ingestion/tests/integration/mysql/mysql_mces_with_db_golden.json
index 065d6cbe90b31..8c6f6338bc2b0 100644
--- a/metadata-ingestion/tests/integration/mysql/mysql_mces_with_db_golden.json
+++ b/metadata-ingestion/tests/integration/mysql/mysql_mces_with_db_golden.json
@@ -165,7 +165,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -177,7 +177,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -189,7 +189,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -201,7 +201,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -213,7 +213,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -225,7 +225,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
}
@@ -359,7 +359,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -371,7 +371,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -383,7 +383,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
diff --git a/metadata-ingestion/tests/integration/mysql/mysql_table_level_only.json b/metadata-ingestion/tests/integration/mysql/mysql_table_level_only.json
index b8dfd7d9efc37..3f5899aa8a98c 100644
--- a/metadata-ingestion/tests/integration/mysql/mysql_table_level_only.json
+++ b/metadata-ingestion/tests/integration/mysql/mysql_table_level_only.json
@@ -147,7 +147,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -159,7 +159,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -171,7 +171,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -183,7 +183,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -195,7 +195,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -207,7 +207,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
}
@@ -323,7 +323,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -335,7 +335,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -347,7 +347,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -461,63 +461,5 @@
"runId": "mysql-2020_04_14-07_00_00",
"lastRunId": "no-run-id-provided"
}
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:dc2ae101b66746b9c2b6df8ee89ca88f",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": []
- }
- },
- "systemMetadata": {
- "lastObserved": 1586847600000,
- "runId": "mysql-2020_04_14-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mysql,northwind.customers,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:dc2ae101b66746b9c2b6df8ee89ca88f",
- "urn": "urn:li:container:dc2ae101b66746b9c2b6df8ee89ca88f"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1586847600000,
- "runId": "mysql-2020_04_14-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mysql,northwind.orders,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:dc2ae101b66746b9c2b6df8ee89ca88f",
- "urn": "urn:li:container:dc2ae101b66746b9c2b6df8ee89ca88f"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1586847600000,
- "runId": "mysql-2020_04_14-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
}
]
\ No newline at end of file
diff --git a/metadata-ingestion/tests/integration/mysql/mysql_table_row_count_estimate_only.json b/metadata-ingestion/tests/integration/mysql/mysql_table_row_count_estimate_only.json
index fc25af0400bb5..58a70cae2b2d5 100644
--- a/metadata-ingestion/tests/integration/mysql/mysql_table_row_count_estimate_only.json
+++ b/metadata-ingestion/tests/integration/mysql/mysql_table_row_count_estimate_only.json
@@ -147,7 +147,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -159,7 +159,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -171,7 +171,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -183,7 +183,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -195,7 +195,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -207,7 +207,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
}
@@ -323,7 +323,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -335,7 +335,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -347,7 +347,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
diff --git a/metadata-ingestion/tests/integration/oracle/golden_test_ingest_with_database.json b/metadata-ingestion/tests/integration/oracle/golden_test_ingest_with_database.json
index b740dfe025ef7..6732b17d2e832 100644
--- a/metadata-ingestion/tests/integration/oracle/golden_test_ingest_with_database.json
+++ b/metadata-ingestion/tests/integration/oracle/golden_test_ingest_with_database.json
@@ -258,7 +258,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "NUMBER(asdecimal=False)",
+ "nativeDataType": "NUMBER",
"recursive": false,
"isPartOfKey": true
}
@@ -380,7 +380,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "NUMBER(asdecimal=False)",
+ "nativeDataType": "NUMBER",
"recursive": false,
"isPartOfKey": true
}
@@ -505,7 +505,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "NUMBER(asdecimal=False)",
+ "nativeDataType": "NUMBER",
"recursive": false,
"isPartOfKey": false
}
@@ -754,7 +754,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "NUMBER(asdecimal=False)",
+ "nativeDataType": "NUMBER",
"recursive": false,
"isPartOfKey": true
}
@@ -876,7 +876,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "NUMBER(asdecimal=False)",
+ "nativeDataType": "NUMBER",
"recursive": false,
"isPartOfKey": true
}
@@ -1001,7 +1001,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "NUMBER(asdecimal=False)",
+ "nativeDataType": "NUMBER",
"recursive": false,
"isPartOfKey": false
}
@@ -1207,213 +1207,5 @@
"runId": "oracle-2022_02_03-07_00_00",
"lastRunId": "no-run-id-provided"
}
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": []
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:c093e810646c7ebc493237bb24a3538f",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "urn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:oracle,OraDoc.schema1.test1,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "urn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287"
- },
- {
- "id": "urn:li:container:c093e810646c7ebc493237bb24a3538f",
- "urn": "urn:li:container:c093e810646c7ebc493237bb24a3538f"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:oracle,OraDoc.schema1.test2,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "urn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287"
- },
- {
- "id": "urn:li:container:c093e810646c7ebc493237bb24a3538f",
- "urn": "urn:li:container:c093e810646c7ebc493237bb24a3538f"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:oracle,OraDoc.schema1.view1,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "urn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287"
- },
- {
- "id": "urn:li:container:c093e810646c7ebc493237bb24a3538f",
- "urn": "urn:li:container:c093e810646c7ebc493237bb24a3538f"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:ab1a240f35ae787df0eff0e6726a9825",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "urn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:oracle,OraDoc.schema2.test3,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "urn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287"
- },
- {
- "id": "urn:li:container:ab1a240f35ae787df0eff0e6726a9825",
- "urn": "urn:li:container:ab1a240f35ae787df0eff0e6726a9825"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:oracle,OraDoc.schema2.test4,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "urn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287"
- },
- {
- "id": "urn:li:container:ab1a240f35ae787df0eff0e6726a9825",
- "urn": "urn:li:container:ab1a240f35ae787df0eff0e6726a9825"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:oracle,OraDoc.schema2.view1,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "urn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287"
- },
- {
- "id": "urn:li:container:ab1a240f35ae787df0eff0e6726a9825",
- "urn": "urn:li:container:ab1a240f35ae787df0eff0e6726a9825"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
}
]
\ No newline at end of file
diff --git a/metadata-ingestion/tests/integration/oracle/golden_test_ingest_with_out_database.json b/metadata-ingestion/tests/integration/oracle/golden_test_ingest_with_out_database.json
index 008cd405186c3..7610daaa54b4a 100644
--- a/metadata-ingestion/tests/integration/oracle/golden_test_ingest_with_out_database.json
+++ b/metadata-ingestion/tests/integration/oracle/golden_test_ingest_with_out_database.json
@@ -258,7 +258,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "NUMBER(asdecimal=False)",
+ "nativeDataType": "NUMBER",
"recursive": false,
"isPartOfKey": true
}
@@ -380,7 +380,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "NUMBER(asdecimal=False)",
+ "nativeDataType": "NUMBER",
"recursive": false,
"isPartOfKey": true
}
@@ -505,7 +505,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "NUMBER(asdecimal=False)",
+ "nativeDataType": "NUMBER",
"recursive": false,
"isPartOfKey": false
}
@@ -754,7 +754,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "NUMBER(asdecimal=False)",
+ "nativeDataType": "NUMBER",
"recursive": false,
"isPartOfKey": true
}
@@ -876,7 +876,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "NUMBER(asdecimal=False)",
+ "nativeDataType": "NUMBER",
"recursive": false,
"isPartOfKey": true
}
@@ -1001,7 +1001,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "NUMBER(asdecimal=False)",
+ "nativeDataType": "NUMBER",
"recursive": false,
"isPartOfKey": false
}
@@ -1053,214 +1053,6 @@
"lastRunId": "no-run-id-provided"
}
},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:oracle,schema2.view1,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "urn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287"
- },
- {
- "id": "urn:li:container:ab1a240f35ae787df0eff0e6726a9825",
- "urn": "urn:li:container:ab1a240f35ae787df0eff0e6726a9825"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": []
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:c093e810646c7ebc493237bb24a3538f",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "urn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:oracle,schema1.test1,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "urn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287"
- },
- {
- "id": "urn:li:container:c093e810646c7ebc493237bb24a3538f",
- "urn": "urn:li:container:c093e810646c7ebc493237bb24a3538f"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:oracle,schema1.test2,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "urn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287"
- },
- {
- "id": "urn:li:container:c093e810646c7ebc493237bb24a3538f",
- "urn": "urn:li:container:c093e810646c7ebc493237bb24a3538f"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:oracle,schema1.view1,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "urn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287"
- },
- {
- "id": "urn:li:container:c093e810646c7ebc493237bb24a3538f",
- "urn": "urn:li:container:c093e810646c7ebc493237bb24a3538f"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:ab1a240f35ae787df0eff0e6726a9825",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "urn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:oracle,schema2.test3,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "urn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287"
- },
- {
- "id": "urn:li:container:ab1a240f35ae787df0eff0e6726a9825",
- "urn": "urn:li:container:ab1a240f35ae787df0eff0e6726a9825"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:oracle,schema2.test4,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:8c867b02fcc2615b19cd02b15b023287",
- "urn": "urn:li:container:8c867b02fcc2615b19cd02b15b023287"
- },
- {
- "id": "urn:li:container:ab1a240f35ae787df0eff0e6726a9825",
- "urn": "urn:li:container:ab1a240f35ae787df0eff0e6726a9825"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1643871600000,
- "runId": "oracle-2022_02_03-07_00_00",
- "lastRunId": "no-run-id-provided"
- }
-},
{
"entityType": "dataset",
"entityUrn": "urn:li:dataset:(urn:li:dataPlatform:oracle,schema2.view1,PROD)",
diff --git a/metadata-ingestion/tests/integration/oracle/test_oracle.py b/metadata-ingestion/tests/integration/oracle/test_oracle.py
index 6c9aba8ec5620..4541bb8ac65bf 100644
--- a/metadata-ingestion/tests/integration/oracle/test_oracle.py
+++ b/metadata-ingestion/tests/integration/oracle/test_oracle.py
@@ -24,6 +24,7 @@ def apply_mock_data(self, mock_create_engine, mock_inspect, mock_event):
inspector_magic_mock.dialect.server_version_info = (
self.get_server_version_info()
)
+ inspector_magic_mock.dialect.type_compiler.process = lambda x: "NUMBER"
mock_inspect.return_value = inspector_magic_mock
mock_create_engine.connect.return_value = connection_magic_mock
diff --git a/metadata-ingestion/tests/integration/postgres/postgres_all_db_mces_with_db_golden.json b/metadata-ingestion/tests/integration/postgres/postgres_all_db_mces_with_db_golden.json
index f35ff9fdb9d15..f42ff7c0df068 100644
--- a/metadata-ingestion/tests/integration/postgres/postgres_all_db_mces_with_db_golden.json
+++ b/metadata-ingestion/tests/integration/postgres/postgres_all_db_mces_with_db_golden.json
@@ -452,7 +452,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=500)",
+ "nativeDataType": "VARCHAR(500)",
"recursive": false,
"isPartOfKey": true
},
@@ -464,7 +464,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=200)",
+ "nativeDataType": "VARCHAR(200)",
"recursive": false,
"isPartOfKey": true
},
@@ -476,7 +476,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "BIGINT()",
+ "nativeDataType": "BIGINT",
"recursive": false,
"isPartOfKey": true
},
@@ -488,7 +488,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "TEXT()",
+ "nativeDataType": "TEXT",
"recursive": false,
"isPartOfKey": false
},
@@ -500,7 +500,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "TEXT()",
+ "nativeDataType": "TEXT",
"recursive": false,
"isPartOfKey": false
},
@@ -512,7 +512,7 @@
"com.linkedin.pegasus2avro.schema.TimeType": {}
}
},
- "nativeDataType": "TIMESTAMP()",
+ "nativeDataType": "TIMESTAMP WITHOUT TIME ZONE",
"recursive": false,
"isPartOfKey": false
},
@@ -524,7 +524,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=255)",
+ "nativeDataType": "VARCHAR(255)",
"recursive": false,
"isPartOfKey": false
},
@@ -536,7 +536,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=255)",
+ "nativeDataType": "VARCHAR(255)",
"recursive": false,
"isPartOfKey": false
},
@@ -548,7 +548,7 @@
"com.linkedin.pegasus2avro.schema.RecordType": {}
}
},
- "nativeDataType": "JSON(astext_type=Text())",
+ "nativeDataType": "JSON",
"recursive": false,
"isPartOfKey": false
}
@@ -671,7 +671,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=500)",
+ "nativeDataType": "VARCHAR(500)",
"recursive": false,
"isPartOfKey": false
},
@@ -683,7 +683,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=200)",
+ "nativeDataType": "VARCHAR(200)",
"recursive": false,
"isPartOfKey": false
}
diff --git a/metadata-ingestion/tests/integration/postgres/postgres_mces_with_db_golden.json b/metadata-ingestion/tests/integration/postgres/postgres_mces_with_db_golden.json
index f47789fc470cd..f107fb1006bf6 100644
--- a/metadata-ingestion/tests/integration/postgres/postgres_mces_with_db_golden.json
+++ b/metadata-ingestion/tests/integration/postgres/postgres_mces_with_db_golden.json
@@ -256,7 +256,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=500)",
+ "nativeDataType": "VARCHAR(500)",
"recursive": false,
"glossaryTerms": {
"terms": [
@@ -279,7 +279,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=200)",
+ "nativeDataType": "VARCHAR(200)",
"recursive": false,
"isPartOfKey": true
},
@@ -291,7 +291,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "BIGINT()",
+ "nativeDataType": "BIGINT",
"recursive": false,
"isPartOfKey": true
},
@@ -303,7 +303,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "TEXT()",
+ "nativeDataType": "TEXT",
"recursive": false,
"isPartOfKey": false
},
@@ -315,7 +315,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "TEXT()",
+ "nativeDataType": "TEXT",
"recursive": false,
"isPartOfKey": false
},
@@ -327,7 +327,7 @@
"com.linkedin.pegasus2avro.schema.TimeType": {}
}
},
- "nativeDataType": "TIMESTAMP()",
+ "nativeDataType": "TIMESTAMP WITHOUT TIME ZONE",
"recursive": false,
"isPartOfKey": false
},
@@ -339,7 +339,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=255)",
+ "nativeDataType": "VARCHAR(255)",
"recursive": false,
"glossaryTerms": {
"terms": [
@@ -362,7 +362,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=255)",
+ "nativeDataType": "VARCHAR(255)",
"recursive": false,
"isPartOfKey": false
},
@@ -374,7 +374,7 @@
"com.linkedin.pegasus2avro.schema.RecordType": {}
}
},
- "nativeDataType": "JSON(astext_type=Text())",
+ "nativeDataType": "JSON",
"recursive": false,
"isPartOfKey": false
}
@@ -497,7 +497,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=500)",
+ "nativeDataType": "VARCHAR(500)",
"recursive": false,
"isPartOfKey": false
},
@@ -509,7 +509,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=200)",
+ "nativeDataType": "VARCHAR(200)",
"recursive": false,
"isPartOfKey": false
}
diff --git a/metadata-ingestion/tests/integration/sql_server/golden_files/golden_mces_mssql_no_db_to_file.json b/metadata-ingestion/tests/integration/sql_server/golden_files/golden_mces_mssql_no_db_to_file.json
index 4c0c1c6512ec7..74cb216117bd4 100644
--- a/metadata-ingestion/tests/integration/sql_server/golden_files/golden_mces_mssql_no_db_to_file.json
+++ b/metadata-ingestion/tests/integration/sql_server/golden_files/golden_mces_mssql_no_db_to_file.json
@@ -112,11 +112,11 @@
"aspect": {
"json": {
"customProperties": {
- "job_id": "0565425f-2083-45d3-bb61-76e0ee5e1117",
+ "job_id": "c6fb6778-14f1-4516-bb41-e5eaa97a687b",
"job_name": "Weekly Demo Data Backup",
"description": "No description available.",
- "date_created": "2024-01-19 11:45:06.667000",
- "date_modified": "2024-01-19 11:45:06.840000",
+ "date_created": "2024-07-27 23:58:29.780000",
+ "date_modified": "2024-07-27 23:58:29.943000",
"step_id": "1",
"step_name": "Set database to read only",
"subsystem": "TSQL",
@@ -1304,7 +1304,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1316,7 +1316,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "NVARCHAR()",
+ "nativeDataType": "NVARCHAR(max) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
}
@@ -1546,7 +1546,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1558,7 +1558,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "NVARCHAR()",
+ "nativeDataType": "NVARCHAR(max) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
}
@@ -1678,7 +1678,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -1691,7 +1691,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=255, collation='SQL_Latin1_General_CP1_CI_AS')",
+ "nativeDataType": "VARCHAR(255) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
},
@@ -1703,7 +1703,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=255, collation='SQL_Latin1_General_CP1_CI_AS')",
+ "nativeDataType": "VARCHAR(255) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
},
@@ -1715,7 +1715,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -1835,7 +1835,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -1847,7 +1847,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "UNIQUEIDENTIFIER()",
+ "nativeDataType": "UNIQUEIDENTIFIER",
"recursive": false,
"isPartOfKey": false
},
@@ -1859,7 +1859,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "NVARCHAR(length=50)",
+ "nativeDataType": "NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
}
@@ -1961,8 +1961,8 @@
"code": "CREATE PROCEDURE [Foo].[Proc.With.SpecialChar] @ID INT\nAS\n SELECT @ID AS ThatDB;\n",
"input parameters": "['@ID']",
"parameter @ID": "{'type': 'int'}",
- "date_created": "2024-01-19 11:45:06.590000",
- "date_modified": "2024-01-19 11:45:06.590000"
+ "date_created": "2024-07-27 23:58:29.703000",
+ "date_modified": "2024-07-27 23:58:29.703000"
},
"externalUrl": "",
"name": "demodata.Foo.Proc.With.SpecialChar",
@@ -3560,7 +3560,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -3572,7 +3572,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "NVARCHAR()",
+ "nativeDataType": "NVARCHAR(max) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
},
@@ -3584,7 +3584,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "MONEY()",
+ "nativeDataType": "MONEY",
"recursive": false,
"isPartOfKey": false
}
@@ -3813,7 +3813,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -3825,7 +3825,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "NVARCHAR()",
+ "nativeDataType": "NVARCHAR(max) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
},
@@ -3837,7 +3837,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "SMALLMONEY()",
+ "nativeDataType": "SMALLMONEY",
"recursive": false,
"isPartOfKey": false
}
@@ -3957,7 +3957,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -3969,7 +3969,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=255, collation='SQL_Latin1_General_CP1_CI_AS')",
+ "nativeDataType": "VARCHAR(255) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
},
@@ -3981,7 +3981,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=255, collation='SQL_Latin1_General_CP1_CI_AS')",
+ "nativeDataType": "VARCHAR(255) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
},
@@ -3993,7 +3993,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -4442,800 +4442,5 @@
"runId": "mssql-test",
"lastRunId": "no-run-id-provided"
}
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": []
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:f1b4c0e379c4b2e2e09a8ecd6c1b6dec",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:bad84e08ecf49aee863df68243d8b9d0",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:e48d82445eeacfbe13b431f0bb1826ee",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:884bfecd9e414990a494681293413e8e",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:142ca5fc51b7f44e5e6a424bf1043590",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:1b9d125d390447de36719bfb8dd1f782",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:fcd4c8da3739150766f91e7f6c2a3a30",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:2029cab615b3cd82cb87b153957d2e92",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:556e25ccec98892284f017f870ef7809",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:d41a036a2e6cfa44b834edf7683199ec",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,DemoData.dbo.Products,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- },
- {
- "id": "urn:li:container:d41a036a2e6cfa44b834edf7683199ec",
- "urn": "urn:li:container:d41a036a2e6cfa44b834edf7683199ec"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,DemoData.Foo.Items,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- },
- {
- "id": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671",
- "urn": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,DemoData.Foo.Persons,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- },
- {
- "id": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671",
- "urn": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,DemoData.Foo.SalesReason,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- },
- {
- "id": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671",
- "urn": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:a6bea84fba7b05fb5d12630c8e6306ac",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:9f37bb7baa7ded19cc023e9f644a8cf8",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:3f157d8292fb473142f19e2250af537f",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": []
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:47217386c89d8b94153f6ee31e7e77ec",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "urn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:5eb0d61efa998d1ccd5cbdc6ce4bb4af",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "urn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:2816b2cb7f90d3dce64125ba89fb1fa8",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "urn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:20d0f0c94e9796ff44ff32d4d0e19084",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "urn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:3600d2ebb33b25dac607624d7eae7575",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "urn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:280f2e3aefacc346d0ce1590ec337c7d",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "urn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:cba5c3ca7f028fcf749593be369d3c24",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "urn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:58c30fa72f213ca7e12fb04f5a7d150f",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "urn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:9387ddfeb7b57672cabd761ade89c49c",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "urn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:3a5f70e0e34834d4eeeb4d5a5caf03d0",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "urn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,NewData.dbo.ProductsNew,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "urn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59"
- },
- {
- "id": "urn:li:container:3a5f70e0e34834d4eeeb4d5a5caf03d0",
- "urn": "urn:li:container:3a5f70e0e34834d4eeeb4d5a5caf03d0"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:7cc43e5b4e2a7f2f66f1df774d1a0c63",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "urn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,NewData.FooNew.ItemsNew,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "urn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59"
- },
- {
- "id": "urn:li:container:7cc43e5b4e2a7f2f66f1df774d1a0c63",
- "urn": "urn:li:container:7cc43e5b4e2a7f2f66f1df774d1a0c63"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,NewData.FooNew.PersonsNew,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "urn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59"
- },
- {
- "id": "urn:li:container:7cc43e5b4e2a7f2f66f1df774d1a0c63",
- "urn": "urn:li:container:7cc43e5b4e2a7f2f66f1df774d1a0c63"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:54727d9fd7deacef27641559125bbc56",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "urn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:141b0980dcb08f48544583e47cf48807",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "urn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:c6627af82d44de89492e1a9315ae9f4b",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59",
- "urn": "urn:li:container:9447d283fb4f95ce7474f1db0179bb59"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
}
]
\ No newline at end of file
diff --git a/metadata-ingestion/tests/integration/sql_server/golden_files/golden_mces_mssql_no_db_with_filter.json b/metadata-ingestion/tests/integration/sql_server/golden_files/golden_mces_mssql_no_db_with_filter.json
index 02c357259c3f5..e1af3f72a8af1 100644
--- a/metadata-ingestion/tests/integration/sql_server/golden_files/golden_mces_mssql_no_db_with_filter.json
+++ b/metadata-ingestion/tests/integration/sql_server/golden_files/golden_mces_mssql_no_db_with_filter.json
@@ -112,11 +112,11 @@
"aspect": {
"json": {
"customProperties": {
- "job_id": "0565425f-2083-45d3-bb61-76e0ee5e1117",
+ "job_id": "c6fb6778-14f1-4516-bb41-e5eaa97a687b",
"job_name": "Weekly Demo Data Backup",
"description": "No description available.",
- "date_created": "2024-01-19 11:45:06.667000",
- "date_modified": "2024-01-19 11:45:06.840000",
+ "date_created": "2024-07-27 23:58:29.780000",
+ "date_modified": "2024-07-27 23:58:29.943000",
"step_id": "1",
"step_name": "Set database to read only",
"subsystem": "TSQL",
@@ -1304,7 +1304,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1316,7 +1316,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "NVARCHAR()",
+ "nativeDataType": "NVARCHAR(max) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
}
@@ -1546,7 +1546,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1558,7 +1558,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "NVARCHAR()",
+ "nativeDataType": "NVARCHAR(max) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
}
@@ -1678,7 +1678,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -1691,7 +1691,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=255, collation='SQL_Latin1_General_CP1_CI_AS')",
+ "nativeDataType": "VARCHAR(255) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
},
@@ -1703,7 +1703,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=255, collation='SQL_Latin1_General_CP1_CI_AS')",
+ "nativeDataType": "VARCHAR(255) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
},
@@ -1715,7 +1715,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -1835,7 +1835,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -1847,7 +1847,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "UNIQUEIDENTIFIER()",
+ "nativeDataType": "UNIQUEIDENTIFIER",
"recursive": false,
"isPartOfKey": false
},
@@ -1859,7 +1859,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "NVARCHAR(length=50)",
+ "nativeDataType": "NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
}
@@ -1961,8 +1961,8 @@
"code": "CREATE PROCEDURE [Foo].[Proc.With.SpecialChar] @ID INT\nAS\n SELECT @ID AS ThatDB;\n",
"input parameters": "['@ID']",
"parameter @ID": "{'type': 'int'}",
- "date_created": "2024-01-19 11:45:06.590000",
- "date_modified": "2024-01-19 11:45:06.590000"
+ "date_created": "2024-07-27 23:58:29.703000",
+ "date_modified": "2024-07-27 23:58:29.703000"
},
"externalUrl": "",
"name": "demodata.Foo.Proc.With.SpecialChar",
@@ -2385,415 +2385,5 @@
"runId": "mssql-test",
"lastRunId": "no-run-id-provided"
}
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": []
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:f1b4c0e379c4b2e2e09a8ecd6c1b6dec",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:bad84e08ecf49aee863df68243d8b9d0",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:e48d82445eeacfbe13b431f0bb1826ee",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:884bfecd9e414990a494681293413e8e",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:142ca5fc51b7f44e5e6a424bf1043590",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:1b9d125d390447de36719bfb8dd1f782",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:fcd4c8da3739150766f91e7f6c2a3a30",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:2029cab615b3cd82cb87b153957d2e92",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:556e25ccec98892284f017f870ef7809",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:d41a036a2e6cfa44b834edf7683199ec",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,DemoData.dbo.Products,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- },
- {
- "id": "urn:li:container:d41a036a2e6cfa44b834edf7683199ec",
- "urn": "urn:li:container:d41a036a2e6cfa44b834edf7683199ec"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,DemoData.Foo.Items,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- },
- {
- "id": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671",
- "urn": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,DemoData.Foo.Persons,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- },
- {
- "id": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671",
- "urn": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,DemoData.Foo.SalesReason,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- },
- {
- "id": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671",
- "urn": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:a6bea84fba7b05fb5d12630c8e6306ac",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:9f37bb7baa7ded19cc023e9f644a8cf8",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:3f157d8292fb473142f19e2250af537f",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
}
]
\ No newline at end of file
diff --git a/metadata-ingestion/tests/integration/sql_server/golden_files/golden_mces_mssql_to_file.json b/metadata-ingestion/tests/integration/sql_server/golden_files/golden_mces_mssql_to_file.json
index 02c357259c3f5..e1af3f72a8af1 100644
--- a/metadata-ingestion/tests/integration/sql_server/golden_files/golden_mces_mssql_to_file.json
+++ b/metadata-ingestion/tests/integration/sql_server/golden_files/golden_mces_mssql_to_file.json
@@ -112,11 +112,11 @@
"aspect": {
"json": {
"customProperties": {
- "job_id": "0565425f-2083-45d3-bb61-76e0ee5e1117",
+ "job_id": "c6fb6778-14f1-4516-bb41-e5eaa97a687b",
"job_name": "Weekly Demo Data Backup",
"description": "No description available.",
- "date_created": "2024-01-19 11:45:06.667000",
- "date_modified": "2024-01-19 11:45:06.840000",
+ "date_created": "2024-07-27 23:58:29.780000",
+ "date_modified": "2024-07-27 23:58:29.943000",
"step_id": "1",
"step_name": "Set database to read only",
"subsystem": "TSQL",
@@ -1304,7 +1304,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1316,7 +1316,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "NVARCHAR()",
+ "nativeDataType": "NVARCHAR(max) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
}
@@ -1546,7 +1546,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1558,7 +1558,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "NVARCHAR()",
+ "nativeDataType": "NVARCHAR(max) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
}
@@ -1678,7 +1678,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -1691,7 +1691,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=255, collation='SQL_Latin1_General_CP1_CI_AS')",
+ "nativeDataType": "VARCHAR(255) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
},
@@ -1703,7 +1703,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=255, collation='SQL_Latin1_General_CP1_CI_AS')",
+ "nativeDataType": "VARCHAR(255) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
},
@@ -1715,7 +1715,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -1835,7 +1835,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -1847,7 +1847,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "UNIQUEIDENTIFIER()",
+ "nativeDataType": "UNIQUEIDENTIFIER",
"recursive": false,
"isPartOfKey": false
},
@@ -1859,7 +1859,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "NVARCHAR(length=50)",
+ "nativeDataType": "NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
}
@@ -1961,8 +1961,8 @@
"code": "CREATE PROCEDURE [Foo].[Proc.With.SpecialChar] @ID INT\nAS\n SELECT @ID AS ThatDB;\n",
"input parameters": "['@ID']",
"parameter @ID": "{'type': 'int'}",
- "date_created": "2024-01-19 11:45:06.590000",
- "date_modified": "2024-01-19 11:45:06.590000"
+ "date_created": "2024-07-27 23:58:29.703000",
+ "date_modified": "2024-07-27 23:58:29.703000"
},
"externalUrl": "",
"name": "demodata.Foo.Proc.With.SpecialChar",
@@ -2385,415 +2385,5 @@
"runId": "mssql-test",
"lastRunId": "no-run-id-provided"
}
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": []
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:f1b4c0e379c4b2e2e09a8ecd6c1b6dec",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:bad84e08ecf49aee863df68243d8b9d0",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:e48d82445eeacfbe13b431f0bb1826ee",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:884bfecd9e414990a494681293413e8e",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:142ca5fc51b7f44e5e6a424bf1043590",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:1b9d125d390447de36719bfb8dd1f782",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:fcd4c8da3739150766f91e7f6c2a3a30",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:2029cab615b3cd82cb87b153957d2e92",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:556e25ccec98892284f017f870ef7809",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:d41a036a2e6cfa44b834edf7683199ec",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,DemoData.dbo.Products,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- },
- {
- "id": "urn:li:container:d41a036a2e6cfa44b834edf7683199ec",
- "urn": "urn:li:container:d41a036a2e6cfa44b834edf7683199ec"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,DemoData.Foo.Items,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- },
- {
- "id": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671",
- "urn": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,DemoData.Foo.Persons,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- },
- {
- "id": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671",
- "urn": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,DemoData.Foo.SalesReason,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- },
- {
- "id": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671",
- "urn": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:a6bea84fba7b05fb5d12630c8e6306ac",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:9f37bb7baa7ded19cc023e9f644a8cf8",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:3f157d8292fb473142f19e2250af537f",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
}
]
\ No newline at end of file
diff --git a/metadata-ingestion/tests/integration/sql_server/golden_files/golden_mces_mssql_with_lower_case_urn.json b/metadata-ingestion/tests/integration/sql_server/golden_files/golden_mces_mssql_with_lower_case_urn.json
index ad15c654e44c9..5b936c0d9f244 100644
--- a/metadata-ingestion/tests/integration/sql_server/golden_files/golden_mces_mssql_with_lower_case_urn.json
+++ b/metadata-ingestion/tests/integration/sql_server/golden_files/golden_mces_mssql_with_lower_case_urn.json
@@ -112,11 +112,11 @@
"aspect": {
"json": {
"customProperties": {
- "job_id": "0565425f-2083-45d3-bb61-76e0ee5e1117",
+ "job_id": "c6fb6778-14f1-4516-bb41-e5eaa97a687b",
"job_name": "Weekly Demo Data Backup",
"description": "No description available.",
- "date_created": "2024-01-19 11:45:06.667000",
- "date_modified": "2024-01-19 11:45:06.840000",
+ "date_created": "2024-07-27 23:58:29.780000",
+ "date_modified": "2024-07-27 23:58:29.943000",
"step_id": "1",
"step_name": "Set database to read only",
"subsystem": "TSQL",
@@ -1304,7 +1304,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1316,7 +1316,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "NVARCHAR()",
+ "nativeDataType": "NVARCHAR(max) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
}
@@ -1546,7 +1546,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1558,7 +1558,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "NVARCHAR()",
+ "nativeDataType": "NVARCHAR(max) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
}
@@ -1678,7 +1678,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -1691,7 +1691,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=255, collation='SQL_Latin1_General_CP1_CI_AS')",
+ "nativeDataType": "VARCHAR(255) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
},
@@ -1703,7 +1703,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=255, collation='SQL_Latin1_General_CP1_CI_AS')",
+ "nativeDataType": "VARCHAR(255) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
},
@@ -1715,7 +1715,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -1835,7 +1835,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -1847,7 +1847,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "UNIQUEIDENTIFIER()",
+ "nativeDataType": "UNIQUEIDENTIFIER",
"recursive": false,
"isPartOfKey": false
},
@@ -1859,7 +1859,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "NVARCHAR(length=50)",
+ "nativeDataType": "NVARCHAR(50) COLLATE SQL_Latin1_General_CP1_CI_AS",
"recursive": false,
"isPartOfKey": false
}
@@ -1961,8 +1961,8 @@
"code": "CREATE PROCEDURE [Foo].[Proc.With.SpecialChar] @ID INT\nAS\n SELECT @ID AS ThatDB;\n",
"input parameters": "['@ID']",
"parameter @ID": "{'type': 'int'}",
- "date_created": "2024-01-19 11:45:06.590000",
- "date_modified": "2024-01-19 11:45:06.590000"
+ "date_created": "2024-07-27 23:58:29.703000",
+ "date_modified": "2024-07-27 23:58:29.703000"
},
"externalUrl": "",
"name": "demodata.Foo.Proc.With.SpecialChar",
@@ -2385,415 +2385,5 @@
"runId": "mssql-test",
"lastRunId": "no-run-id-provided"
}
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": []
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:f1b4c0e379c4b2e2e09a8ecd6c1b6dec",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:bad84e08ecf49aee863df68243d8b9d0",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:e48d82445eeacfbe13b431f0bb1826ee",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:884bfecd9e414990a494681293413e8e",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:142ca5fc51b7f44e5e6a424bf1043590",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:1b9d125d390447de36719bfb8dd1f782",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:fcd4c8da3739150766f91e7f6c2a3a30",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:2029cab615b3cd82cb87b153957d2e92",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:556e25ccec98892284f017f870ef7809",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:d41a036a2e6cfa44b834edf7683199ec",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,demodata.dbo.products,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- },
- {
- "id": "urn:li:container:d41a036a2e6cfa44b834edf7683199ec",
- "urn": "urn:li:container:d41a036a2e6cfa44b834edf7683199ec"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,demodata.foo.items,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- },
- {
- "id": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671",
- "urn": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,demodata.foo.persons,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- },
- {
- "id": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671",
- "urn": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:mssql,demodata.foo.salesreason,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- },
- {
- "id": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671",
- "urn": "urn:li:container:6e5c6d608d0a2dcc4eb03591382e5671"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:a6bea84fba7b05fb5d12630c8e6306ac",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:9f37bb7baa7ded19cc023e9f644a8cf8",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:3f157d8292fb473142f19e2250af537f",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5",
- "urn": "urn:li:container:b7062d1c0c650d9de0f7a9a5de00b1b5"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1615443388097,
- "runId": "mssql-test",
- "lastRunId": "no-run-id-provided"
- }
}
]
\ No newline at end of file
diff --git a/metadata-ingestion/tests/integration/trino/trino_hive_instance_mces_golden.json b/metadata-ingestion/tests/integration/trino/trino_hive_instance_mces_golden.json
index c5664b9373e8c..d19b83f4d4e2f 100644
--- a/metadata-ingestion/tests/integration/trino/trino_hive_instance_mces_golden.json
+++ b/metadata-ingestion/tests/integration/trino/trino_hive_instance_mces_golden.json
@@ -244,7 +244,7 @@
"numrows": "1",
"rawdatasize": "32",
"totalsize": "33",
- "transient_lastddltime": "1710150034"
+ "transient_lastddltime": "1722106707"
},
"name": "array_struct_test",
"description": "This table has array of structs",
@@ -280,7 +280,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -505,7 +505,7 @@
"numrows": "3",
"rawdatasize": "94",
"totalsize": "97",
- "transient_lastddltime": "1710150038"
+ "transient_lastddltime": "1722106711"
},
"name": "classification_test",
"tags": []
@@ -539,7 +539,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR()",
+ "nativeDataType": "VARCHAR",
"recursive": false,
"isPartOfKey": false
},
@@ -551,7 +551,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR()",
+ "nativeDataType": "VARCHAR",
"recursive": false,
"isPartOfKey": false
},
@@ -563,7 +563,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR()",
+ "nativeDataType": "VARCHAR",
"recursive": false,
"isPartOfKey": false
},
@@ -575,7 +575,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR()",
+ "nativeDataType": "VARCHAR",
"recursive": false,
"isPartOfKey": false
},
@@ -587,7 +587,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -764,7 +764,7 @@
"numrows": "0",
"rawdatasize": "0",
"totalsize": "0",
- "transient_lastddltime": "1710150036"
+ "transient_lastddltime": "1722106709"
},
"name": "map_test",
"tags": []
@@ -798,7 +798,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR()",
+ "nativeDataType": "VARCHAR",
"recursive": false,
"isPartOfKey": false
},
@@ -991,7 +991,7 @@
"numrows": "0",
"rawdatasize": "0",
"totalsize": "0",
- "transient_lastddltime": "1710150036"
+ "transient_lastddltime": "1722106709"
},
"name": "nested_struct_test",
"tags": []
@@ -1025,7 +1025,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1262,7 +1262,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "transient_lastddltime": "1710150028"
+ "transient_lastddltime": "1722106702"
},
"name": "pokes",
"tags": []
@@ -1296,7 +1296,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1308,7 +1308,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR()",
+ "nativeDataType": "VARCHAR",
"recursive": false,
"isPartOfKey": false
},
@@ -1320,7 +1320,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR()",
+ "nativeDataType": "VARCHAR",
"recursive": false,
"isPartOfKey": false
}
@@ -1497,7 +1497,7 @@
"numrows": "0",
"rawdatasize": "0",
"totalsize": "0",
- "transient_lastddltime": "1710150031"
+ "transient_lastddltime": "1722106704"
},
"name": "struct_test",
"tags": []
@@ -1531,7 +1531,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1748,7 +1748,7 @@
"customProperties": {
"numfiles": "0",
"totalsize": "0",
- "transient_lastddltime": "1710150036"
+ "transient_lastddltime": "1722106709"
},
"name": "struct_test_view_materialized",
"tags": []
@@ -1782,7 +1782,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -2002,7 +2002,7 @@
"numrows": "0",
"rawdatasize": "0",
"totalsize": "0",
- "transient_lastddltime": "1710150031"
+ "transient_lastddltime": "1722106704"
},
"name": "_test_table_underscore",
"tags": []
@@ -2036,7 +2036,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -2048,7 +2048,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR()",
+ "nativeDataType": "VARCHAR",
"recursive": false,
"isPartOfKey": false
}
@@ -2225,7 +2225,7 @@
"numrows": "0",
"rawdatasize": "0",
"totalsize": "0",
- "transient_lastddltime": "1710150036"
+ "transient_lastddltime": "1722106709"
},
"name": "union_test",
"tags": []
@@ -2527,7 +2527,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "transient_lastddltime": "1710150036",
+ "transient_lastddltime": "1722106709",
"view_definition": "SELECT \"property_id\", \"service\"\nFROM \"db1\".\"array_struct_test\"",
"is_view": "True"
},
@@ -2563,7 +2563,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
diff --git a/metadata-ingestion/tests/integration/trino/trino_hive_mces_golden.json b/metadata-ingestion/tests/integration/trino/trino_hive_mces_golden.json
index 2764433808cbd..f72610fba7c54 100644
--- a/metadata-ingestion/tests/integration/trino/trino_hive_mces_golden.json
+++ b/metadata-ingestion/tests/integration/trino/trino_hive_mces_golden.json
@@ -231,7 +231,7 @@
"numrows": "1",
"rawdatasize": "32",
"totalsize": "33",
- "transient_lastddltime": "1713211020"
+ "transient_lastddltime": "1722106707"
},
"name": "array_struct_test",
"description": "This table has array of structs",
@@ -267,7 +267,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -471,7 +471,7 @@
"numrows": "3",
"rawdatasize": "94",
"totalsize": "97",
- "transient_lastddltime": "1713211025"
+ "transient_lastddltime": "1722106711"
},
"name": "classification_test",
"tags": []
@@ -505,7 +505,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR()",
+ "nativeDataType": "VARCHAR",
"recursive": false,
"isPartOfKey": false
},
@@ -517,7 +517,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR()",
+ "nativeDataType": "VARCHAR",
"recursive": false,
"glossaryTerms": {
"terms": [
@@ -540,7 +540,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR()",
+ "nativeDataType": "VARCHAR",
"recursive": false,
"glossaryTerms": {
"terms": [
@@ -563,7 +563,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR()",
+ "nativeDataType": "VARCHAR",
"recursive": false,
"glossaryTerms": {
"terms": [
@@ -586,7 +586,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"glossaryTerms": {
"terms": [
@@ -753,7 +753,7 @@
"numrows": "0",
"rawdatasize": "0",
"totalsize": "0",
- "transient_lastddltime": "1713211023"
+ "transient_lastddltime": "1722106709"
},
"name": "map_test",
"tags": []
@@ -787,7 +787,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR()",
+ "nativeDataType": "VARCHAR",
"recursive": false,
"isPartOfKey": false
},
@@ -959,7 +959,7 @@
"numrows": "0",
"rawdatasize": "0",
"totalsize": "0",
- "transient_lastddltime": "1713211023"
+ "transient_lastddltime": "1722106709"
},
"name": "nested_struct_test",
"tags": []
@@ -993,7 +993,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1209,7 +1209,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "transient_lastddltime": "1713211015"
+ "transient_lastddltime": "1722106702"
},
"name": "pokes",
"tags": []
@@ -1243,7 +1243,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1255,7 +1255,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR()",
+ "nativeDataType": "VARCHAR",
"recursive": false,
"isPartOfKey": false
},
@@ -1267,7 +1267,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR()",
+ "nativeDataType": "VARCHAR",
"recursive": false,
"isPartOfKey": false
}
@@ -1423,7 +1423,7 @@
"numrows": "0",
"rawdatasize": "0",
"totalsize": "0",
- "transient_lastddltime": "1713211017"
+ "transient_lastddltime": "1722106704"
},
"name": "struct_test",
"tags": []
@@ -1457,7 +1457,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1653,7 +1653,7 @@
"customProperties": {
"numfiles": "0",
"totalsize": "0",
- "transient_lastddltime": "1713211023"
+ "transient_lastddltime": "1722106709"
},
"name": "struct_test_view_materialized",
"tags": []
@@ -1687,7 +1687,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1886,7 +1886,7 @@
"numrows": "0",
"rawdatasize": "0",
"totalsize": "0",
- "transient_lastddltime": "1713211017"
+ "transient_lastddltime": "1722106704"
},
"name": "_test_table_underscore",
"tags": []
@@ -1920,7 +1920,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1932,7 +1932,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR()",
+ "nativeDataType": "VARCHAR",
"recursive": false,
"isPartOfKey": false
}
@@ -2088,7 +2088,7 @@
"numrows": "0",
"rawdatasize": "0",
"totalsize": "0",
- "transient_lastddltime": "1713211023"
+ "transient_lastddltime": "1722106709"
},
"name": "union_test",
"tags": []
@@ -2369,7 +2369,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "transient_lastddltime": "1713211023",
+ "transient_lastddltime": "1722106709",
"view_definition": "SELECT \"property_id\", \"service\"\nFROM \"db1\".\"array_struct_test\"",
"is_view": "True"
},
@@ -2405,7 +2405,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
diff --git a/metadata-ingestion/tests/integration/trino/trino_mces_golden.json b/metadata-ingestion/tests/integration/trino/trino_mces_golden.json
index 1f03f02fa9408..b2afad81b12fa 100644
--- a/metadata-ingestion/tests/integration/trino/trino_mces_golden.json
+++ b/metadata-ingestion/tests/integration/trino/trino_mces_golden.json
@@ -256,7 +256,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -268,7 +268,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -280,7 +280,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -292,7 +292,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -304,7 +304,7 @@
"com.linkedin.pegasus2avro.schema.RecordType": {}
}
},
- "nativeDataType": "JSON()",
+ "nativeDataType": "JSON",
"recursive": false,
"isPartOfKey": false
},
@@ -504,7 +504,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -516,7 +516,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -528,7 +528,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -540,7 +540,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
}
@@ -723,7 +723,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -735,7 +735,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
}
@@ -918,7 +918,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -930,7 +930,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -942,7 +942,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -954,7 +954,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -966,7 +966,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -978,7 +978,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
}
@@ -1479,142 +1479,5 @@
"runId": "trino-test",
"lastRunId": "no-run-id-provided"
}
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:ad9f7c5e0d4bf83d6278f62271c28761",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": []
- }
- },
- "systemMetadata": {
- "lastObserved": 1632398400000,
- "runId": "trino-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "container",
- "entityUrn": "urn:li:container:2d206e03e435f48a5b8bacf444bf565c",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:ad9f7c5e0d4bf83d6278f62271c28761",
- "urn": "urn:li:container:ad9f7c5e0d4bf83d6278f62271c28761"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1632398400000,
- "runId": "trino-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:trino,postgresqldb.librarydb.book,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:ad9f7c5e0d4bf83d6278f62271c28761",
- "urn": "urn:li:container:ad9f7c5e0d4bf83d6278f62271c28761"
- },
- {
- "id": "urn:li:container:2d206e03e435f48a5b8bacf444bf565c",
- "urn": "urn:li:container:2d206e03e435f48a5b8bacf444bf565c"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1632398400000,
- "runId": "trino-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:trino,postgresqldb.librarydb.issue_history,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:ad9f7c5e0d4bf83d6278f62271c28761",
- "urn": "urn:li:container:ad9f7c5e0d4bf83d6278f62271c28761"
- },
- {
- "id": "urn:li:container:2d206e03e435f48a5b8bacf444bf565c",
- "urn": "urn:li:container:2d206e03e435f48a5b8bacf444bf565c"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1632398400000,
- "runId": "trino-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:trino,postgresqldb.librarydb.member,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:ad9f7c5e0d4bf83d6278f62271c28761",
- "urn": "urn:li:container:ad9f7c5e0d4bf83d6278f62271c28761"
- },
- {
- "id": "urn:li:container:2d206e03e435f48a5b8bacf444bf565c",
- "urn": "urn:li:container:2d206e03e435f48a5b8bacf444bf565c"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1632398400000,
- "runId": "trino-test",
- "lastRunId": "no-run-id-provided"
- }
-},
-{
- "entityType": "dataset",
- "entityUrn": "urn:li:dataset:(urn:li:dataPlatform:trino,postgresqldb.librarydb.book_in_circulation,PROD)",
- "changeType": "UPSERT",
- "aspectName": "browsePathsV2",
- "aspect": {
- "json": {
- "path": [
- {
- "id": "urn:li:container:ad9f7c5e0d4bf83d6278f62271c28761",
- "urn": "urn:li:container:ad9f7c5e0d4bf83d6278f62271c28761"
- },
- {
- "id": "urn:li:container:2d206e03e435f48a5b8bacf444bf565c",
- "urn": "urn:li:container:2d206e03e435f48a5b8bacf444bf565c"
- }
- ]
- }
- },
- "systemMetadata": {
- "lastObserved": 1632398400000,
- "runId": "trino-test",
- "lastRunId": "no-run-id-provided"
- }
}
]
\ No newline at end of file
diff --git a/metadata-ingestion/tests/integration/vertica/vertica_mces_with_db_golden.json b/metadata-ingestion/tests/integration/vertica/vertica_mces_with_db_golden.json
index cd1cd0d7e28a4..b7e0f268aa7fe 100644
--- a/metadata-ingestion/tests/integration/vertica/vertica_mces_with_db_golden.json
+++ b/metadata-ingestion/tests/integration/vertica/vertica_mces_with_db_golden.json
@@ -250,7 +250,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:24:31.057395+00:00",
+ "create_time": "2024-06-18 12:46:11.762979+00:00",
"table_size": "0 KB"
},
"name": "clicks",
@@ -287,7 +287,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -300,7 +300,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -313,7 +313,7 @@
"com.linkedin.pegasus2avro.schema.TimeType": {}
}
},
- "nativeDataType": "TIMESTAMP_WITH_PRECISION()",
+ "nativeDataType": "TIMESTAMP",
"recursive": false,
"isPartOfKey": false
}
@@ -427,7 +427,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:23:45.887434+00:00",
+ "create_time": "2024-06-18 12:45:49.748139+00:00",
"table_size": "2119 KB"
},
"name": "customer_dimension",
@@ -464,7 +464,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -477,7 +477,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=16)",
+ "nativeDataType": "VARCHAR(16)",
"recursive": false,
"isPartOfKey": false
},
@@ -490,7 +490,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=256)",
+ "nativeDataType": "VARCHAR(256)",
"recursive": false,
"isPartOfKey": false
},
@@ -503,7 +503,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=8)",
+ "nativeDataType": "VARCHAR(8)",
"recursive": false,
"isPartOfKey": false
},
@@ -516,7 +516,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=8)",
+ "nativeDataType": "VARCHAR(8)",
"recursive": false,
"isPartOfKey": false
},
@@ -529,7 +529,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -542,7 +542,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=256)",
+ "nativeDataType": "VARCHAR(256)",
"recursive": false,
"isPartOfKey": false
},
@@ -555,7 +555,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -568,7 +568,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=2)",
+ "nativeDataType": "CHAR(2)",
"recursive": false,
"isPartOfKey": false
},
@@ -581,7 +581,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -594,7 +594,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -607,7 +607,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -620,7 +620,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -633,7 +633,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -646,7 +646,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -659,7 +659,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -672,7 +672,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -685,7 +685,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -698,7 +698,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -711,7 +711,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -724,7 +724,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
}
@@ -838,7 +838,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:23:45.897002+00:00",
+ "create_time": "2024-06-18 12:45:49.756539+00:00",
"table_size": "145 KB"
},
"name": "date_dimension",
@@ -875,7 +875,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -888,7 +888,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -901,7 +901,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=18)",
+ "nativeDataType": "VARCHAR(18)",
"recursive": false,
"isPartOfKey": false
},
@@ -914,7 +914,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=9)",
+ "nativeDataType": "VARCHAR(9)",
"recursive": false,
"isPartOfKey": false
},
@@ -927,7 +927,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -940,7 +940,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -953,7 +953,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -966,7 +966,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -979,7 +979,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -992,7 +992,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1005,7 +1005,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1018,7 +1018,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=9)",
+ "nativeDataType": "VARCHAR(9)",
"recursive": false,
"isPartOfKey": false
},
@@ -1031,7 +1031,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1044,7 +1044,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=7)",
+ "nativeDataType": "CHAR(7)",
"recursive": false,
"isPartOfKey": false
},
@@ -1057,7 +1057,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1070,7 +1070,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=7)",
+ "nativeDataType": "CHAR(7)",
"recursive": false,
"isPartOfKey": false
},
@@ -1083,7 +1083,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1096,7 +1096,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1109,7 +1109,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=10)",
+ "nativeDataType": "VARCHAR(10)",
"recursive": false,
"isPartOfKey": false
},
@@ -1122,7 +1122,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=7)",
+ "nativeDataType": "CHAR(7)",
"recursive": false,
"isPartOfKey": false
},
@@ -1135,7 +1135,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
}
@@ -1249,7 +1249,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:23:45.903227+00:00",
+ "create_time": "2024-06-18 12:45:49.761468+00:00",
"table_size": "327 KB"
},
"name": "employee_dimension",
@@ -1286,7 +1286,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -1299,7 +1299,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=8)",
+ "nativeDataType": "VARCHAR(8)",
"recursive": false,
"isPartOfKey": false
},
@@ -1312,7 +1312,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=8)",
+ "nativeDataType": "VARCHAR(8)",
"recursive": false,
"isPartOfKey": false
},
@@ -1325,7 +1325,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -1338,7 +1338,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=8)",
+ "nativeDataType": "VARCHAR(8)",
"recursive": false,
"isPartOfKey": false
},
@@ -1351,7 +1351,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -1364,7 +1364,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1377,7 +1377,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -1390,7 +1390,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=256)",
+ "nativeDataType": "VARCHAR(256)",
"recursive": false,
"isPartOfKey": false
},
@@ -1403,7 +1403,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -1416,7 +1416,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=2)",
+ "nativeDataType": "CHAR(2)",
"recursive": false,
"isPartOfKey": false
},
@@ -1429,7 +1429,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=32)",
+ "nativeDataType": "CHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -1442,7 +1442,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -1455,7 +1455,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1468,7 +1468,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1481,7 +1481,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1494,7 +1494,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
},
@@ -1507,7 +1507,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -1621,7 +1621,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:23:45.912348+00:00",
+ "create_time": "2024-06-18 12:45:49.768272+00:00",
"table_size": "2567 KB"
},
"name": "inventory_fact",
@@ -1658,7 +1658,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1671,7 +1671,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1684,7 +1684,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1697,7 +1697,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1710,7 +1710,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -1723,7 +1723,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
}
@@ -1837,7 +1837,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:24:31.194163+00:00",
+ "create_time": "2024-06-18 12:46:11.881911+00:00",
"table_size": "0 KB"
},
"name": "phrases",
@@ -1874,7 +1874,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=128)",
+ "nativeDataType": "VARCHAR(128)",
"recursive": false,
"isPartOfKey": false
}
@@ -1988,7 +1988,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:23:45.890782+00:00",
+ "create_time": "2024-06-18 12:45:49.751522+00:00",
"table_size": "19 KB"
},
"name": "product_dimension",
@@ -2025,7 +2025,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -2038,7 +2038,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -2051,7 +2051,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=128)",
+ "nativeDataType": "VARCHAR(128)",
"recursive": false,
"isPartOfKey": false
},
@@ -2064,7 +2064,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=32)",
+ "nativeDataType": "CHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -2077,7 +2077,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=32)",
+ "nativeDataType": "CHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -2090,7 +2090,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=32)",
+ "nativeDataType": "CHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -2103,7 +2103,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=32)",
+ "nativeDataType": "CHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -2116,7 +2116,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=32)",
+ "nativeDataType": "CHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -2129,7 +2129,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -2142,7 +2142,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=32)",
+ "nativeDataType": "CHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -2155,7 +2155,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -2168,7 +2168,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=32)",
+ "nativeDataType": "CHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -2181,7 +2181,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -2194,7 +2194,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -2207,7 +2207,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -2220,7 +2220,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -2233,7 +2233,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -2246,7 +2246,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -2259,7 +2259,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -2272,7 +2272,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -2285,7 +2285,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -2399,7 +2399,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:23:45.893891+00:00",
+ "create_time": "2024-06-18 12:45:49.754039+00:00",
"table_size": "3 KB"
},
"name": "promotion_dimension",
@@ -2436,7 +2436,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -2449,7 +2449,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=128)",
+ "nativeDataType": "VARCHAR(128)",
"recursive": false,
"isPartOfKey": false
},
@@ -2462,7 +2462,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -2475,7 +2475,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -2488,7 +2488,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -2501,7 +2501,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -2514,7 +2514,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -2527,7 +2527,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -2540,7 +2540,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=128)",
+ "nativeDataType": "VARCHAR(128)",
"recursive": false,
"isPartOfKey": false
},
@@ -2553,7 +2553,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -2566,7 +2566,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -2579,7 +2579,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
}
@@ -2693,7 +2693,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:24:31.046829+00:00",
+ "create_time": "2024-06-18 12:46:11.751917+00:00",
"table_size": "0 KB"
},
"name": "readings",
@@ -2730,7 +2730,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -2743,7 +2743,7 @@
"com.linkedin.pegasus2avro.schema.TimeType": {}
}
},
- "nativeDataType": "TIMESTAMP_WITH_PRECISION()",
+ "nativeDataType": "TIMESTAMP",
"recursive": false,
"isPartOfKey": false
},
@@ -2756,7 +2756,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
}
@@ -2870,7 +2870,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:23:45.906471+00:00",
+ "create_time": "2024-06-18 12:45:49.763788+00:00",
"table_size": "1 KB"
},
"name": "shipping_dimension",
@@ -2907,7 +2907,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -2920,7 +2920,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=30)",
+ "nativeDataType": "CHAR(30)",
"recursive": false,
"isPartOfKey": false
},
@@ -2933,7 +2933,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=10)",
+ "nativeDataType": "CHAR(10)",
"recursive": false,
"isPartOfKey": false
},
@@ -2946,7 +2946,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=20)",
+ "nativeDataType": "CHAR(20)",
"recursive": false,
"isPartOfKey": false
}
@@ -3060,7 +3060,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:23:45.900185+00:00",
+ "create_time": "2024-06-18 12:45:49.759103+00:00",
"table_size": "1 KB"
},
"name": "vendor_dimension",
@@ -3097,7 +3097,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -3110,7 +3110,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -3123,7 +3123,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -3136,7 +3136,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -3149,7 +3149,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=2)",
+ "nativeDataType": "CHAR(2)",
"recursive": false,
"isPartOfKey": false
},
@@ -3162,7 +3162,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -3175,7 +3175,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -3188,7 +3188,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
}
@@ -3302,7 +3302,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:24:30.233405+00:00",
+ "create_time": "2024-06-18 12:46:11.212820+00:00",
"table_size": "0 KB"
},
"name": "vmart_load_success",
@@ -3339,7 +3339,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -3453,7 +3453,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:23:45.909432+00:00",
+ "create_time": "2024-06-18 12:45:49.766036+00:00",
"table_size": "2 KB"
},
"name": "warehouse_dimension",
@@ -3490,7 +3490,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -3503,7 +3503,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=20)",
+ "nativeDataType": "VARCHAR(20)",
"recursive": false,
"isPartOfKey": false
},
@@ -3516,7 +3516,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=256)",
+ "nativeDataType": "VARCHAR(256)",
"recursive": false,
"isPartOfKey": false
},
@@ -3529,7 +3529,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=60)",
+ "nativeDataType": "VARCHAR(60)",
"recursive": false,
"isPartOfKey": false
},
@@ -3542,7 +3542,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=2)",
+ "nativeDataType": "CHAR(2)",
"recursive": false,
"isPartOfKey": false
},
@@ -3555,7 +3555,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
}
@@ -3669,7 +3669,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:24:31.075640+00:00",
+ "create_time": "2024-06-18 12:46:11.778456+00:00",
"table_size": "0 KB",
"view_definition": "SELECT sum(customer_dimension.annual_income) AS SUM, customer_dimension.customer_state FROM public.customer_dimension WHERE (customer_dimension.customer_key IN (SELECT store_sales_fact.customer_key FROM store.store_sales_fact)) GROUP BY customer_dimension.customer_state ORDER BY customer_dimension.customer_state",
"is_view": "True"
@@ -3708,7 +3708,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -3721,7 +3721,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=2)",
+ "nativeDataType": "CHAR(2)",
"recursive": false,
"isPartOfKey": false
}
@@ -3962,7 +3962,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:23:45.918904+00:00",
+ "create_time": "2024-06-18 12:45:49.773986+00:00",
"table_size": "2 KB"
},
"name": "store_dimension",
@@ -3999,7 +3999,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -4012,7 +4012,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -4025,7 +4025,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4038,7 +4038,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=256)",
+ "nativeDataType": "VARCHAR(256)",
"recursive": false,
"isPartOfKey": false
},
@@ -4051,7 +4051,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -4064,7 +4064,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=2)",
+ "nativeDataType": "CHAR(2)",
"recursive": false,
"isPartOfKey": false
},
@@ -4077,7 +4077,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -4090,7 +4090,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -4103,7 +4103,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -4116,7 +4116,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -4129,7 +4129,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4142,7 +4142,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4155,7 +4155,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -4168,7 +4168,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -4181,7 +4181,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4194,7 +4194,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4207,7 +4207,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4220,7 +4220,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -4334,7 +4334,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:23:45.929154+00:00",
+ "create_time": "2024-06-18 12:45:49.781744+00:00",
"table_size": "8646 KB"
},
"name": "store_orders_fact",
@@ -4371,7 +4371,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4384,7 +4384,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4397,7 +4397,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4410,7 +4410,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4423,7 +4423,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4436,7 +4436,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4449,7 +4449,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -4462,7 +4462,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -4475,7 +4475,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -4488,7 +4488,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -4501,7 +4501,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4514,7 +4514,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4527,7 +4527,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -4540,7 +4540,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4553,7 +4553,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4566,7 +4566,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4579,7 +4579,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4592,7 +4592,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4605,7 +4605,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -4719,7 +4719,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:23:45.922050+00:00",
+ "create_time": "2024-06-18 12:45:49.776427+00:00",
"table_size": "225096 KB"
},
"name": "store_sales_fact",
@@ -4756,7 +4756,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4769,7 +4769,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4782,7 +4782,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4795,7 +4795,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4808,7 +4808,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4821,7 +4821,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4834,7 +4834,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4847,7 +4847,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4860,7 +4860,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4873,7 +4873,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4886,7 +4886,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4899,7 +4899,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -4912,7 +4912,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=16)",
+ "nativeDataType": "VARCHAR(16)",
"recursive": false,
"isPartOfKey": false
},
@@ -4925,7 +4925,7 @@
"com.linkedin.pegasus2avro.schema.TimeType": {}
}
},
- "nativeDataType": "TIME()",
+ "nativeDataType": "TIME",
"recursive": false,
"isPartOfKey": false
},
@@ -4938,7 +4938,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=8)",
+ "nativeDataType": "VARCHAR(8)",
"recursive": false,
"isPartOfKey": false
},
@@ -4951,7 +4951,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -4964,7 +4964,7 @@
"com.linkedin.pegasus2avro.schema.TimeType": {}
}
},
- "nativeDataType": "TIMESTAMP_WITH_PRECISION()",
+ "nativeDataType": "TIMESTAMP",
"recursive": false,
"isPartOfKey": false
}
@@ -5187,7 +5187,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:23:45.938730+00:00",
+ "create_time": "2024-06-18 12:45:49.789350+00:00",
"table_size": "6 KB"
},
"name": "call_center_dimension",
@@ -5224,7 +5224,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -5237,7 +5237,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -5250,7 +5250,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -5263,7 +5263,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -5276,7 +5276,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -5289,7 +5289,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -5302,7 +5302,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=20)",
+ "nativeDataType": "CHAR(20)",
"recursive": false,
"isPartOfKey": false
},
@@ -5315,7 +5315,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=40)",
+ "nativeDataType": "VARCHAR(40)",
"recursive": false,
"isPartOfKey": false
},
@@ -5328,7 +5328,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=256)",
+ "nativeDataType": "VARCHAR(256)",
"recursive": false,
"isPartOfKey": false
},
@@ -5341,7 +5341,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -5354,7 +5354,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=2)",
+ "nativeDataType": "CHAR(2)",
"recursive": false,
"isPartOfKey": false
},
@@ -5367,7 +5367,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
}
@@ -5481,7 +5481,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:23:45.935745+00:00",
+ "create_time": "2024-06-18 12:45:49.786989+00:00",
"table_size": "9 KB"
},
"name": "online_page_dimension",
@@ -5518,7 +5518,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": true
},
@@ -5531,7 +5531,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -5544,7 +5544,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -5557,7 +5557,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -5570,7 +5570,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=100)",
+ "nativeDataType": "VARCHAR(100)",
"recursive": false,
"isPartOfKey": false
},
@@ -5583,7 +5583,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=100)",
+ "nativeDataType": "VARCHAR(100)",
"recursive": false,
"isPartOfKey": false
}
@@ -5697,7 +5697,7 @@
{
"com.linkedin.pegasus2avro.dataset.DatasetProperties": {
"customProperties": {
- "create_time": "2024-06-03 12:23:45.941712+00:00",
+ "create_time": "2024-06-18 12:45:49.791761+00:00",
"table_size": "182385 KB"
},
"name": "online_sales_fact",
@@ -5734,7 +5734,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -5747,7 +5747,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -5760,7 +5760,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -5773,7 +5773,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -5786,7 +5786,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -5799,7 +5799,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -5812,7 +5812,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -5825,7 +5825,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -5838,7 +5838,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -5851,7 +5851,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -5864,7 +5864,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -5877,7 +5877,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -5890,7 +5890,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
},
@@ -5903,7 +5903,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
},
@@ -5916,7 +5916,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
},
@@ -5929,7 +5929,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
},
@@ -5942,7 +5942,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
},
@@ -5955,7 +5955,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=16)",
+ "nativeDataType": "VARCHAR(16)",
"recursive": false,
"isPartOfKey": false
},
@@ -5968,7 +5968,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -5981,7 +5981,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
}
@@ -6052,7 +6052,7 @@
"env": "PROD",
"database": "vmart",
"cluster_type": "Enterprise",
- "cluster_size": "52 GB",
+ "cluster_size": "243 GB",
"subcluster": " ",
"communal_storage_path": ""
},
@@ -6129,7 +6129,7 @@
"schema": "public",
"projection_count": "12",
"udx_list": "APPROXIMATE_COUNT_DISTINCT_SYNOPSIS_INFO, APPROXIMATE_MEDIAN, APPROXIMATE_PERCENTILE, AcdDataToCount, AcdDataToLongSyn, AcdDataToSyn, AcdSynToCount, AcdSynToSyn, DelimitedExport, DelimitedExportMulti, EmptyMap, Explode, FAvroParser, FCefParser, FCsvParser, FDelimitedPairParser, FDelimitedParser, FIDXParser, FJSONParser, FRegexParser, FlexTokenizer, JsonExport, JsonExportMulti, KafkaAvroParser, KafkaCheckBrokers, KafkaExport, KafkaInsertDelimiters, KafkaInsertLengths, KafkaJsonParser, KafkaListManyTopics, KafkaListTopics, KafkaOffsets, KafkaParser, KafkaSource, KafkaTopicDetails, MSE, MapAggregate, MapAggregate, MapContainsKey, MapContainsKey, MapContainsValue, MapContainsValue, MapDelimitedExtractor, MapItems, MapItems, MapJSONExtractor, MapKeys, MapKeys, MapKeysInfo, MapKeysInfo, MapLookup, MapLookup, MapLookup, MapPut, MapRegexExtractor, MapSize, MapSize, MapToString, MapToString, MapValues, MapValues, MapValuesOrField, MapVersion, MapVersion, OrcExport, OrcExportMulti, PRC, ParquetExport, ParquetExportMulti, PickBestType, PickBestType, PickBestType, ROC, STV_AsGeoJSON, STV_AsGeoJSON, STV_AsGeoJSON, STV_Create_Index, STV_Create_Index, STV_Create_Index, STV_DWithin, STV_DWithin, STV_DWithin, STV_Describe_Index, STV_Drop_Index, STV_Export2Shapefile, STV_Extent, STV_Extent, STV_ForceLHR, STV_Geography, STV_Geography, STV_GeographyPoint, STV_Geometry, STV_Geometry, STV_GeometryPoint, STV_GeometryPoint, STV_GetExportShapefileDirectory, STV_Intersect, STV_Intersect, STV_Intersect, STV_Intersect, STV_Intersect, STV_Intersect, STV_Intersect, STV_Intersect, STV_IsValidReason, STV_IsValidReason, STV_IsValidReason, STV_LineStringPoint, STV_LineStringPoint, STV_LineStringPoint, STV_MemSize, STV_MemSize, STV_MemSize, STV_NN, STV_NN, STV_NN, STV_PolygonPoint, STV_PolygonPoint, STV_PolygonPoint, STV_Refresh_Index, STV_Refresh_Index, STV_Refresh_Index, STV_Rename_Index, STV_Reverse, STV_SetExportShapefileDirectory, STV_ShpCreateTable, STV_ShpParser, STV_ShpSource, ST_Area, ST_Area, ST_Area, ST_AsBinary, ST_AsBinary, ST_AsBinary, ST_AsText, ST_AsText, ST_AsText, ST_Boundary, ST_Buffer, ST_Centroid, ST_Contains, ST_Contains, ST_Contains, ST_ConvexHull, ST_Crosses, ST_Difference, ST_Disjoint, ST_Disjoint, ST_Disjoint, ST_Distance, ST_Distance, ST_Distance, ST_Envelope, ST_Equals, ST_Equals, ST_Equals, ST_GeoHash, ST_GeoHash, ST_GeoHash, ST_GeographyFromText, ST_GeographyFromWKB, ST_GeomFromGeoHash, ST_GeomFromGeoJSON, ST_GeomFromGeoJSON, ST_GeomFromText, ST_GeomFromText, ST_GeomFromWKB, ST_GeomFromWKB, ST_GeometryN, ST_GeometryN, ST_GeometryN, ST_GeometryType, ST_GeometryType, ST_GeometryType, ST_Intersection, ST_Intersects, ST_Intersects, ST_IsEmpty, ST_IsEmpty, ST_IsEmpty, ST_IsSimple, ST_IsSimple, ST_IsSimple, ST_IsValid, ST_IsValid, ST_IsValid, ST_Length, ST_Length, ST_Length, ST_NumGeometries, ST_NumGeometries, ST_NumGeometries, ST_NumPoints, ST_NumPoints, ST_NumPoints, ST_Overlaps, ST_PointFromGeoHash, ST_PointN, ST_PointN, ST_PointN, ST_Relate, ST_SRID, ST_SRID, ST_SRID, ST_Simplify, ST_SimplifyPreserveTopology, ST_SymDifference, ST_Touches, ST_Touches, ST_Touches, ST_Transform, ST_Union, ST_Union, ST_Within, ST_Within, ST_Within, ST_X, ST_X, ST_X, ST_XMax, ST_XMax, ST_XMax, ST_XMin, ST_XMin, ST_XMin, ST_Y, ST_Y, ST_Y, ST_YMax, ST_YMax, ST_YMax, ST_YMin, ST_YMin, ST_YMin, ST_intersects, SetMapKeys, Summarize_CatCol, Summarize_CatCol, Summarize_CatCol, Summarize_CatCol, Summarize_CatCol, Summarize_NumCol, Unnest, VoltageSecureAccess, VoltageSecureAccess, VoltageSecureConfigure, VoltageSecureConfigureGlobal, VoltageSecureProtect, VoltageSecureProtect, VoltageSecureProtectAllKeys, VoltageSecureRefreshPolicy, VoltageSecureVersion, append_centers, apply_bisecting_kmeans, apply_iforest, apply_inverse_pca, apply_inverse_svd, apply_kmeans, apply_kprototypes, apply_normalize, apply_one_hot_encoder, apply_pca, apply_svd, approximate_quantiles, ar_create_blobs, ar_final_newton, ar_save_model, ar_transition_newton, arima_bfgs, arima_line_search, arima_save_model, avg_all_columns_local, bisecting_kmeans_init_model, bk_apply_best_kmeans_results, bk_compute_totss_local, bk_finalize_model, bk_get_rows_in_active_cluster, bk_kmeans_compute_local_centers, bk_kmeans_compute_withinss, bk_kmeans_fast_random_init, bk_kmeans_slow_random_init, bk_kmeanspp_init_cur_cluster, bk_kmeanspp_reset_blob, bk_kmeanspp_select_new_centers, bk_kmeanspp_within_chunk_sum, bk_save_final_model, bk_write_new_cluster_level, blob_to_table, bufUdx, bufUdx, calc_pseudo_centers, calculate_alpha_linear, calculate_hessian_linear1, calculate_hessian_linear2, chi_squared, cleanup_kmeans_files, compute_and_save_global_center, compute_and_save_new_centers, compute_local_totss, compute_local_withinss, compute_new_local_centers, confusion_matrix, coordinate_descent_covariance, corr_matrix, count_rows_in_blob, create_aggregator_blob, error_rate, evaluate_naive_bayes_model, evaluate_reg_model, evaluate_svm_model, export_model_files, finalize_blob_resource_group, get_attr_minmax, get_attr_robust_zscore, get_attr_zscore, get_model_attribute, get_model_summary, get_robust_zscore_median, iforest_create_blobs, iforest_phase0_udf1, iforest_phase0_udf2, iforest_phase1_udf1, iforest_phase1_udf2, iforest_phase1_udf3, iforest_phase1_udf4, iforest_phase2_udf1, iforest_phase2_udf2, iforest_phase2_udf3, iforest_phase2_udf4, iforest_save_model, import_model_files, isOrContains, kmeansAddMetricsToModel, kmeans_init_blobs, kmeans_to_write_final_centers, lift_table, line_search_logistic1, line_search_logistic2, load_rows_into_blocks, map_factor, math_op, matrix_global_xtx, matrix_local_xtx, mode_finder, model_converter, naive_bayes_phase1, naive_bayes_phase1_blob, naive_bayes_phase2, pca_prep1_global, pca_prep1_local, pca_prep2, pmml_parser, predict_arima, predict_autoregressor, predict_linear_reg, predict_logistic_reg, predict_moving_average, predict_naive_bayes, predict_naive_bayes_classes, predict_pmml, predict_poisson_reg, predict_rf_classifier, predict_rf_classifier_classes, predict_rf_regressor, predict_svm_classifier, predict_svm_regressor, predict_xgb_classifier, predict_xgb_classifier_classes, predict_xgb_regressor, random_init, random_init_write, read_from_dfblob, read_map_factor, read_ptree, read_tree, reg_final_bfgs, reg_final_newton, reg_transition_bfgs, reg_transition_newton, reg_write_model, remove_blob, reverse_normalize, rf_blob, rf_clean, rf_phase0_udf1, rf_phase0_udf2, rf_phase1_udf1, rf_phase1_udf2, rf_phase1_udf3, rf_phase1_udf4, rf_phase2_udf1, rf_phase2_udf2, rf_phase2_udf3, rf_phase2_udf4, rf_predictor_importance, rf_save_model, rsquared, save_cv_result, save_pca_model, save_svd_model, save_svm_model, select_new_centers, store_minmax_model, store_one_hot_encoder_model, store_robust_zscore_model, store_zscore_model, table_to_blob, table_to_dfblob, tokenize, topk, update_and_return_sum_of_squared_distances, upgrade_model_format, writeInitialKmeansModelToDfs, xgb_create_blobs, xgb_phase0_udf1, xgb_phase0_udf2, xgb_phase1_udf1, xgb_phase1_udf2, xgb_phase1_udf3, xgb_phase2_udf1, xgb_phase2_udf2, xgb_phase2_udf3, xgb_predictor_importance, xgb_prune, xgb_save_model, yule_walker, ",
- "udx_language": "ComplexTypesLib -- Functions for Complex Types | DelimitedExportLib -- Delimited data export package | JsonExportLib -- Json data export package | MachineLearningLib -- Machine learning package | OrcExportLib -- Orc export package | ParquetExportLib -- Parquet export package | ApproximateLib -- Approximate package | FlexTableLib -- Flexible Tables Data Load and Query | KafkaLib -- Kafka streaming load and export | PlaceLib -- Geospatial package | VoltageSecureLib -- Voltage SecureData Connector | TransformFunctions -- User-defined Python library | "
+ "udx_language": "ApproximateLib -- Approximate package | FlexTableLib -- Flexible Tables Data Load and Query | OrcExportLib -- Orc export package | JsonExportLib -- Json data export package | PlaceLib -- Geospatial package | ParquetExportLib -- Parquet export package | ComplexTypesLib -- Functions for Complex Types | VoltageSecureLib -- Voltage SecureData Connector | KafkaLib -- Kafka streaming load and export | MachineLearningLib -- Machine learning package | DelimitedExportLib -- Delimited data export package | TransformFunctions -- User-defined Python library | "
},
"name": "public"
}
@@ -6304,7 +6304,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6317,7 +6317,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -6330,7 +6330,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=18)",
+ "nativeDataType": "VARCHAR(18)",
"recursive": false,
"isPartOfKey": false
},
@@ -6343,7 +6343,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=9)",
+ "nativeDataType": "VARCHAR(9)",
"recursive": false,
"isPartOfKey": false
},
@@ -6356,7 +6356,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6369,7 +6369,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6382,7 +6382,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6395,7 +6395,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6408,7 +6408,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6421,7 +6421,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6434,7 +6434,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6447,7 +6447,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=9)",
+ "nativeDataType": "VARCHAR(9)",
"recursive": false,
"isPartOfKey": false
},
@@ -6460,7 +6460,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6473,7 +6473,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=7)",
+ "nativeDataType": "CHAR(7)",
"recursive": false,
"isPartOfKey": false
},
@@ -6486,7 +6486,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6499,7 +6499,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=7)",
+ "nativeDataType": "CHAR(7)",
"recursive": false,
"isPartOfKey": false
},
@@ -6512,7 +6512,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6525,7 +6525,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6538,7 +6538,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=10)",
+ "nativeDataType": "VARCHAR(10)",
"recursive": false,
"isPartOfKey": false
},
@@ -6551,7 +6551,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=7)",
+ "nativeDataType": "CHAR(7)",
"recursive": false,
"isPartOfKey": false
},
@@ -6564,7 +6564,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
}
@@ -6721,7 +6721,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6734,7 +6734,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6747,7 +6747,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=128)",
+ "nativeDataType": "VARCHAR(128)",
"recursive": false,
"isPartOfKey": false
},
@@ -6760,7 +6760,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=32)",
+ "nativeDataType": "CHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -6773,7 +6773,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=32)",
+ "nativeDataType": "CHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -6786,7 +6786,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=32)",
+ "nativeDataType": "CHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -6799,7 +6799,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=32)",
+ "nativeDataType": "CHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -6812,7 +6812,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=32)",
+ "nativeDataType": "CHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -6825,7 +6825,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6838,7 +6838,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=32)",
+ "nativeDataType": "CHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -6851,7 +6851,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6864,7 +6864,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=32)",
+ "nativeDataType": "CHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -6877,7 +6877,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6890,7 +6890,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6903,7 +6903,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6916,7 +6916,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6929,7 +6929,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6942,7 +6942,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6955,7 +6955,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6968,7 +6968,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -6981,7 +6981,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -7138,7 +7138,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -7151,7 +7151,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=128)",
+ "nativeDataType": "VARCHAR(128)",
"recursive": false,
"isPartOfKey": false
},
@@ -7164,7 +7164,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -7177,7 +7177,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -7190,7 +7190,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -7203,7 +7203,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -7216,7 +7216,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -7229,7 +7229,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -7242,7 +7242,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=128)",
+ "nativeDataType": "VARCHAR(128)",
"recursive": false,
"isPartOfKey": false
},
@@ -7255,7 +7255,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -7268,7 +7268,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -7281,7 +7281,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
}
@@ -7438,7 +7438,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -7451,7 +7451,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -7464,7 +7464,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -7477,7 +7477,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -7490,7 +7490,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=2)",
+ "nativeDataType": "CHAR(2)",
"recursive": false,
"isPartOfKey": false
},
@@ -7503,7 +7503,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -7516,7 +7516,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -7529,7 +7529,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
}
@@ -7686,7 +7686,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -7699,7 +7699,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=16)",
+ "nativeDataType": "VARCHAR(16)",
"recursive": false,
"isPartOfKey": false
},
@@ -7712,7 +7712,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=256)",
+ "nativeDataType": "VARCHAR(256)",
"recursive": false,
"isPartOfKey": false
},
@@ -7725,7 +7725,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=8)",
+ "nativeDataType": "VARCHAR(8)",
"recursive": false,
"isPartOfKey": false
},
@@ -7738,7 +7738,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=8)",
+ "nativeDataType": "VARCHAR(8)",
"recursive": false,
"isPartOfKey": false
},
@@ -7751,7 +7751,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -7764,7 +7764,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=256)",
+ "nativeDataType": "VARCHAR(256)",
"recursive": false,
"isPartOfKey": false
},
@@ -7777,7 +7777,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -7790,7 +7790,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=2)",
+ "nativeDataType": "CHAR(2)",
"recursive": false,
"isPartOfKey": false
},
@@ -7803,7 +7803,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -7816,7 +7816,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -7829,7 +7829,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -7842,7 +7842,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -7855,7 +7855,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -7868,7 +7868,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -7881,7 +7881,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -7894,7 +7894,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -7907,7 +7907,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -7920,7 +7920,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -7933,7 +7933,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -7946,7 +7946,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
}
@@ -8103,7 +8103,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -8116,7 +8116,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=8)",
+ "nativeDataType": "VARCHAR(8)",
"recursive": false,
"isPartOfKey": false
},
@@ -8129,7 +8129,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=8)",
+ "nativeDataType": "VARCHAR(8)",
"recursive": false,
"isPartOfKey": false
},
@@ -8142,7 +8142,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -8155,7 +8155,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=8)",
+ "nativeDataType": "VARCHAR(8)",
"recursive": false,
"isPartOfKey": false
},
@@ -8168,7 +8168,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -8181,7 +8181,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -8194,7 +8194,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -8207,7 +8207,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=256)",
+ "nativeDataType": "VARCHAR(256)",
"recursive": false,
"isPartOfKey": false
},
@@ -8220,7 +8220,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -8233,7 +8233,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=2)",
+ "nativeDataType": "CHAR(2)",
"recursive": false,
"isPartOfKey": false
},
@@ -8246,7 +8246,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=32)",
+ "nativeDataType": "CHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -8259,7 +8259,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -8272,7 +8272,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -8285,7 +8285,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -8298,7 +8298,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -8311,7 +8311,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
},
@@ -8324,7 +8324,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -8481,7 +8481,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -8494,7 +8494,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=20)",
+ "nativeDataType": "VARCHAR(20)",
"recursive": false,
"isPartOfKey": false
},
@@ -8507,7 +8507,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=256)",
+ "nativeDataType": "VARCHAR(256)",
"recursive": false,
"isPartOfKey": false
},
@@ -8520,7 +8520,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=60)",
+ "nativeDataType": "VARCHAR(60)",
"recursive": false,
"isPartOfKey": false
},
@@ -8533,7 +8533,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=2)",
+ "nativeDataType": "CHAR(2)",
"recursive": false,
"isPartOfKey": false
},
@@ -8546,7 +8546,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
}
@@ -8703,7 +8703,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -8716,7 +8716,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=30)",
+ "nativeDataType": "CHAR(30)",
"recursive": false,
"isPartOfKey": false
},
@@ -8729,7 +8729,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=10)",
+ "nativeDataType": "CHAR(10)",
"recursive": false,
"isPartOfKey": false
},
@@ -8742,7 +8742,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=20)",
+ "nativeDataType": "CHAR(20)",
"recursive": false,
"isPartOfKey": false
}
@@ -8899,7 +8899,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -8912,7 +8912,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -8925,7 +8925,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -8938,7 +8938,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -8951,7 +8951,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -8964,7 +8964,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
}
@@ -9121,7 +9121,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -9134,7 +9134,7 @@
"com.linkedin.pegasus2avro.schema.TimeType": {}
}
},
- "nativeDataType": "TIMESTAMP_WITH_PRECISION()",
+ "nativeDataType": "TIMESTAMP",
"recursive": false,
"isPartOfKey": false
},
@@ -9147,7 +9147,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
}
@@ -9304,7 +9304,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -9461,7 +9461,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=128)",
+ "nativeDataType": "VARCHAR(128)",
"recursive": false,
"isPartOfKey": false
}
@@ -9709,7 +9709,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -9722,7 +9722,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -9735,7 +9735,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -9748,7 +9748,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=256)",
+ "nativeDataType": "VARCHAR(256)",
"recursive": false,
"isPartOfKey": false
},
@@ -9761,7 +9761,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -9774,7 +9774,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=2)",
+ "nativeDataType": "CHAR(2)",
"recursive": false,
"isPartOfKey": false
},
@@ -9787,7 +9787,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -9800,7 +9800,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -9813,7 +9813,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -9826,7 +9826,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -9839,7 +9839,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -9852,7 +9852,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -9865,7 +9865,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -9878,7 +9878,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -9891,7 +9891,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -9904,7 +9904,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -9917,7 +9917,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -9930,7 +9930,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -10087,7 +10087,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10100,7 +10100,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10113,7 +10113,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10126,7 +10126,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10139,7 +10139,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10152,7 +10152,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10165,7 +10165,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10178,7 +10178,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10191,7 +10191,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10204,7 +10204,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10217,7 +10217,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10230,7 +10230,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10243,7 +10243,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=16)",
+ "nativeDataType": "VARCHAR(16)",
"recursive": false,
"isPartOfKey": false
},
@@ -10256,7 +10256,7 @@
"com.linkedin.pegasus2avro.schema.TimeType": {}
}
},
- "nativeDataType": "TIME()",
+ "nativeDataType": "TIME",
"recursive": false,
"isPartOfKey": false
},
@@ -10269,7 +10269,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=8)",
+ "nativeDataType": "VARCHAR(8)",
"recursive": false,
"isPartOfKey": false
},
@@ -10282,7 +10282,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -10295,7 +10295,7 @@
"com.linkedin.pegasus2avro.schema.TimeType": {}
}
},
- "nativeDataType": "TIMESTAMP_WITH_PRECISION()",
+ "nativeDataType": "TIMESTAMP",
"recursive": false,
"isPartOfKey": false
}
@@ -10452,7 +10452,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10465,7 +10465,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10478,7 +10478,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10491,7 +10491,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10504,7 +10504,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10517,7 +10517,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10530,7 +10530,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -10543,7 +10543,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -10556,7 +10556,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -10569,7 +10569,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -10582,7 +10582,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10595,7 +10595,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10608,7 +10608,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=32)",
+ "nativeDataType": "VARCHAR(32)",
"recursive": false,
"isPartOfKey": false
},
@@ -10621,7 +10621,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10634,7 +10634,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10647,7 +10647,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10660,7 +10660,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10673,7 +10673,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10686,7 +10686,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
}
@@ -10934,7 +10934,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10947,7 +10947,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -10960,7 +10960,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -10973,7 +10973,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -10986,7 +10986,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=100)",
+ "nativeDataType": "VARCHAR(100)",
"recursive": false,
"isPartOfKey": false
},
@@ -10999,7 +10999,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=100)",
+ "nativeDataType": "VARCHAR(100)",
"recursive": false,
"isPartOfKey": false
}
@@ -11156,7 +11156,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -11169,7 +11169,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -11182,7 +11182,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -11195,7 +11195,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -11208,7 +11208,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=50)",
+ "nativeDataType": "VARCHAR(50)",
"recursive": false,
"isPartOfKey": false
},
@@ -11221,7 +11221,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -11234,7 +11234,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=20)",
+ "nativeDataType": "CHAR(20)",
"recursive": false,
"isPartOfKey": false
},
@@ -11247,7 +11247,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=40)",
+ "nativeDataType": "VARCHAR(40)",
"recursive": false,
"isPartOfKey": false
},
@@ -11260,7 +11260,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=256)",
+ "nativeDataType": "VARCHAR(256)",
"recursive": false,
"isPartOfKey": false
},
@@ -11273,7 +11273,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
},
@@ -11286,7 +11286,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "CHAR(length=2)",
+ "nativeDataType": "CHAR(2)",
"recursive": false,
"isPartOfKey": false
},
@@ -11299,7 +11299,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=64)",
+ "nativeDataType": "VARCHAR(64)",
"recursive": false,
"isPartOfKey": false
}
@@ -11456,7 +11456,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -11469,7 +11469,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -11482,7 +11482,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -11495,7 +11495,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -11508,7 +11508,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -11521,7 +11521,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -11534,7 +11534,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -11547,7 +11547,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -11560,7 +11560,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -11573,7 +11573,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -11586,7 +11586,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -11599,7 +11599,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "INTEGER()",
+ "nativeDataType": "INTEGER",
"recursive": false,
"isPartOfKey": false
},
@@ -11612,7 +11612,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
},
@@ -11625,7 +11625,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
},
@@ -11638,7 +11638,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
},
@@ -11651,7 +11651,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
},
@@ -11664,7 +11664,7 @@
"com.linkedin.pegasus2avro.schema.NumberType": {}
}
},
- "nativeDataType": "FLOAT()",
+ "nativeDataType": "FLOAT",
"recursive": false,
"isPartOfKey": false
},
@@ -11677,7 +11677,7 @@
"com.linkedin.pegasus2avro.schema.StringType": {}
}
},
- "nativeDataType": "VARCHAR(length=16)",
+ "nativeDataType": "VARCHAR(16)",
"recursive": false,
"isPartOfKey": false
},
@@ -11690,7 +11690,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
},
@@ -11703,7 +11703,7 @@
"com.linkedin.pegasus2avro.schema.DateType": {}
}
},
- "nativeDataType": "DATE()",
+ "nativeDataType": "DATE",
"recursive": false,
"isPartOfKey": false
}
diff --git a/metadata-ingestion/tests/unit/utilities/test_sqlalchemy_type_converter.py b/metadata-ingestion/tests/unit/utilities/test_sqlalchemy_type_converter.py
index 6c719d351c4c2..b080819cea95b 100644
--- a/metadata-ingestion/tests/unit/utilities/test_sqlalchemy_type_converter.py
+++ b/metadata-ingestion/tests/unit/utilities/test_sqlalchemy_type_converter.py
@@ -1,6 +1,8 @@
from typing import no_type_check
+from unittest.mock import MagicMock
from sqlalchemy import types
+from sqlalchemy.engine.default import DefaultDialect
from sqlalchemy_bigquery import STRUCT
from datahub.metadata.schema_classes import (
@@ -17,8 +19,11 @@
def test_get_avro_schema_for_sqlalchemy_column():
+ inspector_magic_mock = MagicMock()
+ inspector_magic_mock.dialect = DefaultDialect()
+
schema_fields = get_schema_fields_for_sqlalchemy_column(
- column_name="test", column_type=types.INTEGER()
+ column_name="test", column_type=types.INTEGER(), inspector=inspector_magic_mock
)
assert len(schema_fields) == 1
assert schema_fields[0].fieldPath == "[version=2.0].[type=int].test"
@@ -27,7 +32,10 @@ def test_get_avro_schema_for_sqlalchemy_column():
assert schema_fields[0].nullable is True
schema_fields = get_schema_fields_for_sqlalchemy_column(
- column_name="test", column_type=types.String(), nullable=False
+ column_name="test",
+ column_type=types.String(),
+ nullable=False,
+ inspector=inspector_magic_mock,
)
assert len(schema_fields) == 1
assert schema_fields[0].fieldPath == "[version=2.0].[type=string].test"
@@ -37,8 +45,13 @@ def test_get_avro_schema_for_sqlalchemy_column():
def test_get_avro_schema_for_sqlalchemy_array_column():
+ inspector_magic_mock = MagicMock()
+ inspector_magic_mock.dialect = DefaultDialect()
+
schema_fields = get_schema_fields_for_sqlalchemy_column(
- column_name="test", column_type=types.ARRAY(types.FLOAT())
+ column_name="test",
+ column_type=types.ARRAY(types.FLOAT()),
+ inspector=inspector_magic_mock,
)
assert len(schema_fields) == 1
assert (
@@ -50,8 +63,13 @@ def test_get_avro_schema_for_sqlalchemy_array_column():
def test_get_avro_schema_for_sqlalchemy_map_column():
+ inspector_magic_mock = MagicMock()
+ inspector_magic_mock.dialect = DefaultDialect()
+
schema_fields = get_schema_fields_for_sqlalchemy_column(
- column_name="test", column_type=MapType(types.String(), types.BOOLEAN())
+ column_name="test",
+ column_type=MapType(types.String(), types.BOOLEAN()),
+ inspector=inspector_magic_mock,
)
assert len(schema_fields) == 1
assert (
@@ -65,9 +83,13 @@ def test_get_avro_schema_for_sqlalchemy_map_column():
def test_get_avro_schema_for_sqlalchemy_struct_column() -> None:
+ inspector_magic_mock = MagicMock()
+ inspector_magic_mock.dialect = DefaultDialect()
schema_fields = get_schema_fields_for_sqlalchemy_column(
- column_name="test", column_type=STRUCT(("test", types.INTEGER()))
+ column_name="test",
+ column_type=STRUCT(("test", types.INTEGER())),
+ inspector=inspector_magic_mock,
)
assert len(schema_fields) == 2
assert (
@@ -86,7 +108,12 @@ def test_get_avro_schema_for_sqlalchemy_struct_column() -> None:
@no_type_check
def test_get_avro_schema_for_sqlalchemy_unknown_column():
- schema_fields = get_schema_fields_for_sqlalchemy_column("invalid", "test")
+ inspector_magic_mock = MagicMock()
+ inspector_magic_mock.dialect = DefaultDialect()
+
+ schema_fields = get_schema_fields_for_sqlalchemy_column(
+ "invalid", "test", inspector=inspector_magic_mock
+ )
assert len(schema_fields) == 1
assert schema_fields[0].type.type == NullTypeClass()
assert schema_fields[0].fieldPath == "[version=2.0].[type=null]"
From 0400785bce85e6c354822c6e71debe79c24a8d67 Mon Sep 17 00:00:00 2001
From: skrydal
Date: Tue, 6 Aug 2024 22:10:17 +0200
Subject: [PATCH 05/40] chore: Update contributors list in PR labeler (#11105)
---
.github/workflows/pr-labeler.yml | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/pr-labeler.yml b/.github/workflows/pr-labeler.yml
index 77874abedaabd..52f83b3be5283 100644
--- a/.github/workflows/pr-labeler.yml
+++ b/.github/workflows/pr-labeler.yml
@@ -30,12 +30,10 @@ jobs:
"treff7es",
"yoonhyejin",
"eboneil",
- "ethan-cartwright",
"gabe-lyons",
"hsheth2",
"jjoyce0510",
"maggiehays",
- "mrjefflewis",
"pedro93",
"RyanHolstien",
"Kunal-kankriya",
@@ -45,7 +43,8 @@ jobs:
"kushagra-apptware",
"Salman-Apptware",
"mayurinehate",
- "noggi"
+ "noggi",
+ "skrydal"
]'),
github.actor
)
@@ -60,7 +59,6 @@ jobs:
${{
contains(
fromJson('[
- "skrydal",
"siladitya2",
"sgomezvillamor",
"ngamanda",
From 832093ad75acd5554dbd33be3a9031d27d3c0253 Mon Sep 17 00:00:00 2001
From: Harshal Sheth
Date: Tue, 6 Aug 2024 14:00:03 -0700
Subject: [PATCH 06/40] feat(ingest): tweak stale entity removal messaging
(#11064)
---
.../source/state/entity_removal_state.py | 3 +
.../state/stale_entity_removal_handler.py | 61 +++++++++++--------
2 files changed, 39 insertions(+), 25 deletions(-)
diff --git a/metadata-ingestion/src/datahub/ingestion/source/state/entity_removal_state.py b/metadata-ingestion/src/datahub/ingestion/source/state/entity_removal_state.py
index 0f031177c403a..f011aa7bdd19e 100644
--- a/metadata-ingestion/src/datahub/ingestion/source/state/entity_removal_state.py
+++ b/metadata-ingestion/src/datahub/ingestion/source/state/entity_removal_state.py
@@ -131,6 +131,9 @@ def get_percent_entities_changed(
new_entities=self.urns, old_entities=old_checkpoint_state.urns
)
+ def urn_count(self) -> int:
+ return len(self.urns)
+
def compute_percent_entities_changed(
new_entities: List[str], old_entities: List[str]
diff --git a/metadata-ingestion/src/datahub/ingestion/source/state/stale_entity_removal_handler.py b/metadata-ingestion/src/datahub/ingestion/source/state/stale_entity_removal_handler.py
index 7ba06fe24155d..c73472f1b8041 100644
--- a/metadata-ingestion/src/datahub/ingestion/source/state/stale_entity_removal_handler.py
+++ b/metadata-ingestion/src/datahub/ingestion/source/state/stale_entity_removal_handler.py
@@ -42,7 +42,7 @@ class StatefulStaleMetadataRemovalConfig(StatefulIngestionConfig):
description="Soft-deletes the entities present in the last successful run but missing in the current run with stateful_ingestion enabled.",
)
fail_safe_threshold: float = pydantic.Field(
- default=40.0,
+ default=75.0,
description="Prevents large amount of soft deletes & the state from committing from accidental changes to the source configuration if the relative change percent in entities compared to the previous state is above the 'fail_safe_threshold'.",
le=100.0,
ge=0.0,
@@ -257,13 +257,33 @@ def gen_removed_entity_workunits(self) -> Iterable[MetadataWorkUnit]:
assert self.stateful_ingestion_config
- copy_previous_state_and_fail = False
+ copy_previous_state_and_exit = False
+
+ # If the source already had a failure, skip soft-deletion.
+ # TODO: Eventually, switch this to check if anything in the pipeline had a failure so far, not just the source.
+ if self.source.get_report().failures:
+ self.source.get_report().report_warning(
+ title="Skipping stateful ingestion / stale entity removal",
+ message="The soft-deletion of stale entities will be skipped because the source reported a failure.",
+ )
+ copy_previous_state_and_exit = True
+
+ if (
+ not copy_previous_state_and_exit
+ and self.source.get_report().events_produced == 0
+ ):
+ self.source.get_report().report_failure(
+ title="Skipping stateful ingestion / stale entity removal",
+ message="The source did not produce any metadata. Despite stateful ingestion being enabled, we will not delete any metadata. "
+ "This is a fail-safe mechanism to prevent the accidental deletion of all entities.",
+ )
+ copy_previous_state_and_exit = True
# Check if the entity delta is below the fail-safe threshold.
entity_difference_percent = cur_checkpoint_state.get_percent_entities_changed(
last_checkpoint_state
)
- if (
+ if not copy_previous_state_and_exit and (
entity_difference_percent
> self.stateful_ingestion_config.fail_safe_threshold
# Adding this check to protect against cases where get_percent_entities_changed returns over 100%.
@@ -273,30 +293,21 @@ def gen_removed_entity_workunits(self) -> Iterable[MetadataWorkUnit]:
):
# Log the failure. This would prevent the current state from getting committed.
self.source.get_report().report_failure(
- "stale-entity-removal",
- f"Will not soft-delete entities, since we'd be deleting {entity_difference_percent:.1f}% of the existing entities. "
- f"To force a deletion, increase the value of 'stateful_ingestion.fail_safe_threshold' (currently {self.stateful_ingestion_config.fail_safe_threshold})",
- )
- copy_previous_state_and_fail = True
-
- if self.source.get_report().events_produced == 0:
- self.source.get_report().report_failure(
- "stale-entity-removal",
- "Skipping stale entity soft-deletion because the source produced no events. "
- "This is a fail-safe mechanism to prevent accidental deletion of all entities.",
- )
- copy_previous_state_and_fail = True
-
- # If the source already had a failure, skip soft-deletion.
- # TODO: Eventually, switch this to check if anything in the pipeline had a failure so far, not just the source.
- if self.source.get_report().failures:
- self.source.get_report().report_warning(
- "stale-entity-removal",
- "Skipping stale entity soft-deletion and copying urns from last state since source already had failures.",
+ title="Skipping stateful ingestion / stale entity removal",
+ message=f"\
+The previous run produced {last_checkpoint_state.urn_count()} entities, whereas this run produced {cur_checkpoint_state.urn_count()} entities. \
+Comparing the entities produced this run vs the previous run, we would be deleting {entity_difference_percent:.1f}% of the entities produced by the previous run. \
+This percentage is above the threshold (currently {self.stateful_ingestion_config.fail_safe_threshold}), so we will skip soft-deleting stale entities.\
+\
+To update this threshold, add this to your recipe: \
+\
+stateful_ingestion:\
+ fail_safe_threshold: \
+",
)
- copy_previous_state_and_fail = True
+ copy_previous_state_and_exit = True
- if copy_previous_state_and_fail:
+ if copy_previous_state_and_exit:
logger.info(
f"Copying urns from last state (size {len(last_checkpoint_state.urns)}) to current state (size {len(cur_checkpoint_state.urns)}) "
"to ensure stale entities from previous runs are deleted on the next successful run."
From 543e4477879f86bfcc1288b17f458b48ec05fe73 Mon Sep 17 00:00:00 2001
From: david-leifker <114954101+david-leifker@users.noreply.github.com>
Date: Tue, 6 Aug 2024 17:57:01 -0500
Subject: [PATCH 07/40] fix(ingestion): enforce lastObserved timestamps in
SystemMetadata (#11104)
---
.../resolvers/mutate/MutationUtils.java | 3 +-
.../linkedin/datahub/graphql/TestUtils.java | 79 ++++++++++++++-----
.../DeleteAssertionResolverTest.java | 10 +--
.../AddBusinessAttributeResolverTest.java | 2 +-
.../CreateBusinessAttributeResolverTest.java | 2 +-
.../RemoveBusinessAttributeResolverTest.java | 2 +-
.../UpsertDataContractResolverTest.java | 64 ++++++++++++---
.../BatchUpdateSoftDeletedResolverTest.java | 10 +--
.../BatchUpdateDeprecationResolverTest.java | 10 +--
.../UpdateDeprecationResolverTest.java | 14 ++--
.../domain/BatchSetDomainResolverTest.java | 14 ++--
.../domain/CreateDomainResolverTest.java | 12 +--
.../domain/MoveDomainResolverTest.java | 10 +--
.../domain/SetDomainResolverTest.java | 16 ++--
.../domain/UnsetDomainResolverTest.java | 14 ++--
.../embed/UpdateEmbedResolverTest.java | 11 ++-
.../glossary/AddRelatedTermsResolverTest.java | 18 ++---
.../CreateGlossaryNodeResolverTest.java | 17 ++--
.../CreateGlossaryTermResolverTest.java | 18 ++---
.../DeleteGlossaryEntityResolverTest.java | 4 +-
.../RemoveRelatedTermsResolverTest.java | 8 +-
.../glossary/UpdateNameResolverTest.java | 10 +--
.../UpdateParentNodeResolverTest.java | 12 +--
.../UpsertIngestionSourceResolverTest.java | 13 ++-
.../resolvers/mutate/SiblingsUtilsTest.java | 6 +-
.../mutate/UpdateUserSettingResolverTest.java | 2 +-
.../ReportOperationResolverTest.java | 3 +-
.../owner/AddOwnersResolverTest.java | 16 ++--
.../owner/BatchAddOwnersResolverTest.java | 12 +--
.../owner/BatchRemoveOwnersResolverTest.java | 10 +--
.../resolvers/tag/AddTagsResolverTest.java | 10 +--
.../tag/BatchAddTagsResolverTest.java | 12 +--
.../tag/BatchRemoveTagsResolverTest.java | 10 +--
.../resolvers/tag/CreateTagResolverTest.java | 9 +--
.../tag/SetTagColorResolverTest.java | 11 ++-
.../resolvers/term/AddTermsResolverTest.java | 12 +--
.../term/BatchAddTermsResolverTest.java | 12 +--
.../term/BatchRemoveTermsResolverTest.java | 10 +--
.../BackfillBrowsePathsV2Step.java | 5 +-
.../BackfillPolicyFieldsStep.java | 6 +-
.../metadata/entity/EntityApiUtils.java | 7 +-
.../metadata/entity/EntityServiceImpl.java | 7 +-
.../metadata/AspectGenerationUtils.java | 7 +-
.../metadata/entity/EntityServiceTest.java | 5 +-
.../boot/steps/BackfillBrowsePathsV2Step.java | 5 +-
.../steps/UpgradeDefaultBrowsePathsStep.java | 5 +-
.../resources/entity/EntityResource.java | 19 +----
.../metadata/utils/SystemMetadataUtils.java | 24 ++++--
48 files changed, 330 insertions(+), 268 deletions(-)
diff --git a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/mutate/MutationUtils.java b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/mutate/MutationUtils.java
index 8b798b243ca86..7608007e9dda9 100644
--- a/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/mutate/MutationUtils.java
+++ b/datahub-graphql-core/src/main/java/com/linkedin/datahub/graphql/resolvers/mutate/MutationUtils.java
@@ -1,6 +1,7 @@
package com.linkedin.datahub.graphql.resolvers.mutate;
import static com.linkedin.metadata.Constants.*;
+import static com.linkedin.metadata.utils.SystemMetadataUtils.createDefaultSystemMetadata;
import com.linkedin.common.urn.Urn;
import com.linkedin.data.template.RecordTemplate;
@@ -84,7 +85,7 @@ private static MetadataChangeProposal setProposalProperties(
proposal.setChangeType(ChangeType.UPSERT);
// Assumes proposal is generated first from the builder methods above so SystemMetadata is empty
- SystemMetadata systemMetadata = new SystemMetadata();
+ SystemMetadata systemMetadata = createDefaultSystemMetadata();
StringMap properties = new StringMap();
properties.put(APP_SOURCE, UI_SOURCE);
systemMetadata.setProperties(properties);
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/TestUtils.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/TestUtils.java
index 0df5d162bab44..522e4be0ec5ec 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/TestUtils.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/TestUtils.java
@@ -12,14 +12,19 @@
import com.datahub.plugins.auth.authorization.Authorizer;
import com.linkedin.common.AuditStamp;
import com.linkedin.common.urn.UrnUtils;
+import com.linkedin.entity.client.EntityClient;
import com.linkedin.metadata.entity.EntityService;
import com.linkedin.metadata.entity.ebean.batch.AspectsBatchImpl;
import com.linkedin.metadata.entity.ebean.batch.ChangeItemImpl;
import com.linkedin.mxe.MetadataChangeProposal;
+import com.linkedin.r2.RemoteInvocationException;
import io.datahubproject.metadata.context.OperationContext;
import io.datahubproject.test.metadata.context.TestOperationContexts;
import java.util.List;
+import java.util.stream.Collectors;
+import org.mockito.ArgumentCaptor;
import org.mockito.Mockito;
+import org.testng.Assert;
public class TestUtils {
@@ -120,53 +125,89 @@ public static QueryContext getMockDenyContext(String actorUrn, AuthorizationRequ
}
public static void verifyIngestProposal(
- EntityService mockService,
- int numberOfInvocations,
- MetadataChangeProposal proposal) {
+ EntityService> mockService, int numberOfInvocations, MetadataChangeProposal proposal) {
verifyIngestProposal(mockService, numberOfInvocations, List.of(proposal));
}
public static void verifyIngestProposal(
- EntityService mockService,
+ EntityService> mockService,
int numberOfInvocations,
List proposals) {
- AspectsBatchImpl batch =
- AspectsBatchImpl.builder()
- .mcps(
- proposals,
- mock(AuditStamp.class),
- TestOperationContexts.emptyRetrieverContext(null))
- .build();
+ ArgumentCaptor batchCaptor = ArgumentCaptor.forClass(AspectsBatchImpl.class);
+
Mockito.verify(mockService, Mockito.times(numberOfInvocations))
- .ingestProposal(any(), Mockito.eq(batch), Mockito.eq(false));
+ .ingestProposal(any(), batchCaptor.capture(), Mockito.eq(false));
+
+ // check has time
+ Assert.assertTrue(
+ batchCaptor.getValue().getItems().stream()
+ .allMatch(prop -> prop.getSystemMetadata().getLastObserved() > 0L));
+
+ // check without time
+ Assert.assertEquals(
+ batchCaptor.getValue().getItems().stream()
+ .map(m -> m.getSystemMetadata().setLastObserved(0))
+ .collect(Collectors.toList()),
+ proposals.stream()
+ .map(m -> m.getSystemMetadata().setLastObserved(0))
+ .collect(Collectors.toList()));
}
public static void verifySingleIngestProposal(
- EntityService mockService,
+ EntityService> mockService,
int numberOfInvocations,
- MetadataChangeProposal proposal) {
+ MetadataChangeProposal expectedProposal) {
+ ArgumentCaptor proposalCaptor =
+ ArgumentCaptor.forClass(MetadataChangeProposal.class);
+
Mockito.verify(mockService, Mockito.times(numberOfInvocations))
- .ingestProposal(any(), Mockito.eq(proposal), any(AuditStamp.class), Mockito.eq(false));
+ .ingestProposal(any(), proposalCaptor.capture(), any(AuditStamp.class), Mockito.eq(false));
+
+ // check has time
+ Assert.assertTrue(proposalCaptor.getValue().getSystemMetadata().getLastObserved() > 0L);
+
+ // check without time
+ proposalCaptor.getValue().getSystemMetadata().setLastObserved(0L);
+ expectedProposal.getSystemMetadata().setLastObserved(0L);
+ Assert.assertEquals(proposalCaptor.getValue(), expectedProposal);
}
- public static void verifyIngestProposal(
- EntityService mockService, int numberOfInvocations) {
+ public static void verifyIngestProposal(EntityService> mockService, int numberOfInvocations) {
Mockito.verify(mockService, Mockito.times(numberOfInvocations))
.ingestProposal(any(), any(AspectsBatchImpl.class), Mockito.eq(false));
}
public static void verifySingleIngestProposal(
- EntityService mockService, int numberOfInvocations) {
+ EntityService> mockService, int numberOfInvocations) {
Mockito.verify(mockService, Mockito.times(numberOfInvocations))
.ingestProposal(
any(), any(MetadataChangeProposal.class), any(AuditStamp.class), Mockito.eq(false));
}
- public static void verifyNoIngestProposal(EntityService mockService) {
+ public static void verifyNoIngestProposal(EntityService> mockService) {
Mockito.verify(mockService, Mockito.times(0))
.ingestProposal(any(), any(AspectsBatchImpl.class), Mockito.anyBoolean());
}
+ public static void verifyIngestProposal(
+ EntityClient mockClient, int numberOfInvocations, MetadataChangeProposal expectedProposal)
+ throws RemoteInvocationException {
+
+ ArgumentCaptor proposalCaptor =
+ ArgumentCaptor.forClass(MetadataChangeProposal.class);
+
+ Mockito.verify(mockClient, Mockito.times(numberOfInvocations))
+ .ingestProposal(any(), proposalCaptor.capture(), Mockito.eq(false));
+
+ // check has time
+ Assert.assertTrue(proposalCaptor.getValue().getSystemMetadata().getLastObserved() > 0L);
+
+ // check without time
+ proposalCaptor.getValue().getSystemMetadata().setLastObserved(0L);
+ expectedProposal.getSystemMetadata().setLastObserved(0L);
+ Assert.assertEquals(proposalCaptor.getValue(), expectedProposal);
+ }
+
private TestUtils() {}
}
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/assertion/DeleteAssertionResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/assertion/DeleteAssertionResolverTest.java
index 4dd09c1e5cfd5..948088175e8e6 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/assertion/DeleteAssertionResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/assertion/DeleteAssertionResolverTest.java
@@ -31,7 +31,7 @@ public class DeleteAssertionResolverTest {
public void testGetSuccess() throws Exception {
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ASSERTION_URN)), eq(true)))
.thenReturn(true);
Mockito.when(
@@ -77,7 +77,7 @@ public void testGetSuccess() throws Exception {
public void testGetSuccessNoAssertionInfoFound() throws Exception {
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ASSERTION_URN)), eq(true)))
.thenReturn(true);
Mockito.when(
@@ -117,7 +117,7 @@ public void testGetSuccessAssertionAlreadyRemoved() throws Exception {
// Create resolver
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ASSERTION_URN)), eq(true)))
.thenReturn(false);
@@ -149,7 +149,7 @@ public void testGetSuccessAssertionAlreadyRemoved() throws Exception {
public void testGetUnauthorized() throws Exception {
// Create resolver
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ASSERTION_URN)), eq(true)))
.thenReturn(true);
Mockito.when(
@@ -186,7 +186,7 @@ public void testGetEntityClientException() throws Exception {
.when(mockClient)
.deleteEntity(any(), Mockito.any());
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ASSERTION_URN)), eq(true)))
.thenReturn(true);
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/businessattribute/AddBusinessAttributeResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/businessattribute/AddBusinessAttributeResolverTest.java
index 1a0e558e309d7..280adcf896d5e 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/businessattribute/AddBusinessAttributeResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/businessattribute/AddBusinessAttributeResolverTest.java
@@ -29,7 +29,7 @@ public class AddBusinessAttributeResolverTest {
"urn:li:businessAttribute:7d0c4283-de02-4043-aaf2-698b04274658";
private static final String RESOURCE_URN =
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:hive,SampleCypressHiveDataset,PROD),field_bar)";
- private EntityService mockService;
+ private EntityService> mockService;
private QueryContext mockContext;
private DataFetchingEnvironment mockEnv;
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/businessattribute/CreateBusinessAttributeResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/businessattribute/CreateBusinessAttributeResolverTest.java
index 574b81bb86630..2623a6b25811a 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/businessattribute/CreateBusinessAttributeResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/businessattribute/CreateBusinessAttributeResolverTest.java
@@ -56,7 +56,7 @@ public class CreateBusinessAttributeResolverTest {
TEST_BUSINESS_ATTRIBUTE_DESCRIPTION,
SchemaFieldDataType.BOOLEAN);
private EntityClient mockClient;
- private EntityService mockService;
+ private EntityService> mockService;
private QueryContext mockContext;
private DataFetchingEnvironment mockEnv;
private BusinessAttributeService businessAttributeService;
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/businessattribute/RemoveBusinessAttributeResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/businessattribute/RemoveBusinessAttributeResolverTest.java
index 32a12d3ee8607..3e7df66716062 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/businessattribute/RemoveBusinessAttributeResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/businessattribute/RemoveBusinessAttributeResolverTest.java
@@ -31,7 +31,7 @@ public class RemoveBusinessAttributeResolverTest {
"urn:li:businessAttribute:7d0c4283-de02-4043-aaf2-698b04274658";
private static final String RESOURCE_URN =
"urn:li:schemaField:(urn:li:dataset:(urn:li:dataPlatform:hive,SampleCypressHiveDataset,PROD),field_bar)";
- private EntityService mockService;
+ private EntityService> mockService;
private QueryContext mockContext;
private DataFetchingEnvironment mockEnv;
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/datacontract/UpsertDataContractResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/datacontract/UpsertDataContractResolverTest.java
index 601fc56b25149..bf01b54c7ed72 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/datacontract/UpsertDataContractResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/datacontract/UpsertDataContractResolverTest.java
@@ -2,6 +2,7 @@
import static com.linkedin.datahub.graphql.TestUtils.*;
import static com.linkedin.datahub.graphql.resolvers.datacontract.EntityDataContractResolver.*;
+import static com.linkedin.metadata.utils.SystemMetadataUtils.createDefaultSystemMetadata;
import static org.mockito.ArgumentMatchers.any;
import static org.testng.Assert.*;
@@ -43,14 +44,19 @@
import com.linkedin.metadata.utils.EntityKeyUtils;
import com.linkedin.metadata.utils.GenericRecordUtils;
import com.linkedin.mxe.MetadataChangeProposal;
-import com.linkedin.mxe.SystemMetadata;
import com.linkedin.r2.RemoteInvocationException;
import graphql.schema.DataFetchingEnvironment;
import io.datahubproject.metadata.context.OperationContext;
import java.util.Collections;
+import java.util.List;
import java.util.concurrent.CompletionException;
+import java.util.stream.Collectors;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
import org.testng.Assert;
+import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class UpsertDataContractResolverTest {
@@ -83,9 +89,15 @@ public class UpsertDataContractResolverTest {
private static final Urn TEST_ACTOR_URN = UrnUtils.getUrn("urn:li:corpuser:test");
+ @Captor private ArgumentCaptor> proposalCaptor;
+
+ @BeforeTest
+ public void init() {
+ MockitoAnnotations.openMocks(this);
+ }
+
@Test
public void testGetSuccessCreate() throws Exception {
-
// Expected results
final DataContractKey key = new DataContractKey();
key.setId("test-id");
@@ -127,7 +139,8 @@ public void testGetSuccessCreate() throws Exception {
propertiesProposal.setEntityUrn(dataContractUrn);
propertiesProposal.setEntityType(Constants.DATA_CONTRACT_ENTITY_NAME);
propertiesProposal.setSystemMetadata(
- new SystemMetadata().setProperties(new StringMap(ImmutableMap.of("appSource", "ui"))));
+ createDefaultSystemMetadata()
+ .setProperties(new StringMap(ImmutableMap.of("appSource", "ui"))));
propertiesProposal.setAspectName(Constants.DATA_CONTRACT_PROPERTIES_ASPECT_NAME);
propertiesProposal.setAspect(GenericRecordUtils.serializeAspect(props));
propertiesProposal.setChangeType(ChangeType.UPSERT);
@@ -136,16 +149,29 @@ public void testGetSuccessCreate() throws Exception {
statusProposal.setEntityUrn(dataContractUrn);
statusProposal.setEntityType(Constants.DATA_CONTRACT_ENTITY_NAME);
statusProposal.setSystemMetadata(
- new SystemMetadata().setProperties(new StringMap(ImmutableMap.of("appSource", "ui"))));
+ createDefaultSystemMetadata()
+ .setProperties(new StringMap(ImmutableMap.of("appSource", "ui"))));
statusProposal.setAspectName(Constants.DATA_CONTRACT_STATUS_ASPECT_NAME);
statusProposal.setAspect(GenericRecordUtils.serializeAspect(status));
statusProposal.setChangeType(ChangeType.UPSERT);
Mockito.verify(mockClient, Mockito.times(1))
.batchIngestProposals(
- any(OperationContext.class),
- Mockito.eq(ImmutableList.of(propertiesProposal, statusProposal)),
- Mockito.eq(false));
+ any(OperationContext.class), proposalCaptor.capture(), Mockito.eq(false));
+
+ // check has time
+ Assert.assertTrue(
+ proposalCaptor.getValue().stream()
+ .allMatch(prop -> prop.getSystemMetadata().getLastObserved() > 0L));
+
+ // check without time
+ Assert.assertEquals(
+ proposalCaptor.getValue().stream()
+ .map(m -> m.getSystemMetadata().setLastObserved(0))
+ .collect(Collectors.toList()),
+ List.of(propertiesProposal, statusProposal).stream()
+ .map(m -> m.getSystemMetadata().setLastObserved(0))
+ .collect(Collectors.toList()));
Assert.assertEquals(result.getUrn(), TEST_CONTRACT_URN.toString());
}
@@ -188,7 +214,8 @@ public void testGetSuccessUpdate() throws Exception {
propertiesProposal.setEntityUrn(TEST_CONTRACT_URN);
propertiesProposal.setEntityType(Constants.DATA_CONTRACT_ENTITY_NAME);
propertiesProposal.setSystemMetadata(
- new SystemMetadata().setProperties(new StringMap(ImmutableMap.of("appSource", "ui"))));
+ createDefaultSystemMetadata()
+ .setProperties(new StringMap(ImmutableMap.of("appSource", "ui"))));
propertiesProposal.setAspectName(Constants.DATA_CONTRACT_PROPERTIES_ASPECT_NAME);
propertiesProposal.setAspect(GenericRecordUtils.serializeAspect(props));
propertiesProposal.setChangeType(ChangeType.UPSERT);
@@ -197,16 +224,29 @@ public void testGetSuccessUpdate() throws Exception {
statusProposal.setEntityUrn(TEST_CONTRACT_URN);
statusProposal.setEntityType(Constants.DATA_CONTRACT_ENTITY_NAME);
statusProposal.setSystemMetadata(
- new SystemMetadata().setProperties(new StringMap(ImmutableMap.of("appSource", "ui"))));
+ createDefaultSystemMetadata()
+ .setProperties(new StringMap(ImmutableMap.of("appSource", "ui"))));
statusProposal.setAspectName(Constants.DATA_CONTRACT_STATUS_ASPECT_NAME);
statusProposal.setAspect(GenericRecordUtils.serializeAspect(status));
statusProposal.setChangeType(ChangeType.UPSERT);
Mockito.verify(mockClient, Mockito.times(1))
.batchIngestProposals(
- any(OperationContext.class),
- Mockito.eq(ImmutableList.of(propertiesProposal, statusProposal)),
- Mockito.eq(false));
+ any(OperationContext.class), proposalCaptor.capture(), Mockito.eq(false));
+
+ // check has time
+ Assert.assertTrue(
+ proposalCaptor.getValue().stream()
+ .allMatch(prop -> prop.getSystemMetadata().getLastObserved() > 0L));
+
+ // check without time
+ Assert.assertEquals(
+ proposalCaptor.getValue().stream()
+ .map(m -> m.getSystemMetadata().setLastObserved(0))
+ .collect(Collectors.toList()),
+ List.of(propertiesProposal, statusProposal).stream()
+ .map(m -> m.getSystemMetadata().setLastObserved(0))
+ .collect(Collectors.toList()));
Assert.assertEquals(result.getUrn(), TEST_CONTRACT_URN.toString());
}
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/delete/BatchUpdateSoftDeletedResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/delete/BatchUpdateSoftDeletedResolverTest.java
index 02c9212e7f563..48b3dc5f6db94 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/delete/BatchUpdateSoftDeletedResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/delete/BatchUpdateSoftDeletedResolverTest.java
@@ -33,7 +33,7 @@ public class BatchUpdateSoftDeletedResolverTest {
@Test
public void testGetSuccessNoExistingStatus() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -84,7 +84,7 @@ public void testGetSuccessNoExistingStatus() throws Exception {
public void testGetSuccessExistingStatus() throws Exception {
final Status originalStatus = new Status().setRemoved(true);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -133,7 +133,7 @@ public void testGetSuccessExistingStatus() throws Exception {
@Test
public void testGetFailureResourceDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -173,7 +173,7 @@ public void testGetFailureResourceDoesNotExist() throws Exception {
@Test
public void testGetUnauthorized() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
BatchUpdateSoftDeletedResolver resolver = new BatchUpdateSoftDeletedResolver(mockService);
@@ -193,7 +193,7 @@ public void testGetUnauthorized() throws Exception {
@Test
public void testGetEntityClientException() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.doThrow(RuntimeException.class)
.when(mockService)
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/deprecation/BatchUpdateDeprecationResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/deprecation/BatchUpdateDeprecationResolverTest.java
index b7324d210fc21..265a1a2e0af5b 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/deprecation/BatchUpdateDeprecationResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/deprecation/BatchUpdateDeprecationResolverTest.java
@@ -34,7 +34,7 @@ public class BatchUpdateDeprecationResolverTest {
@Test
public void testGetSuccessNoExistingDeprecation() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -99,7 +99,7 @@ public void testGetSuccessExistingDeprecation() throws Exception {
.setNote("")
.setActor(UrnUtils.getUrn("urn:li:corpuser:test"));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -158,7 +158,7 @@ public void testGetSuccessExistingDeprecation() throws Exception {
@Test
public void testGetFailureResourceDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -202,7 +202,7 @@ public void testGetFailureResourceDoesNotExist() throws Exception {
@Test
public void testGetUnauthorized() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
BatchUpdateDeprecationResolver resolver = new BatchUpdateDeprecationResolver(mockService);
@@ -226,7 +226,7 @@ public void testGetUnauthorized() throws Exception {
@Test
public void testGetEntityClientException() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.doThrow(RuntimeException.class)
.when(mockService)
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/deprecation/UpdateDeprecationResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/deprecation/UpdateDeprecationResolverTest.java
index 09894ccf49f22..ab180724da46d 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/deprecation/UpdateDeprecationResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/deprecation/UpdateDeprecationResolverTest.java
@@ -59,7 +59,7 @@ public void testGetSuccessNoExistingDeprecation() throws Exception {
.setUrn(Urn.createFromString(TEST_ENTITY_URN))
.setAspects(new EnvelopedAspectMap(Collections.emptyMap()))));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
.thenReturn(true);
@@ -83,7 +83,7 @@ public void testGetSuccessNoExistingDeprecation() throws Exception {
MutationUtils.buildMetadataChangeProposalWithUrn(
UrnUtils.getUrn(TEST_ENTITY_URN), DEPRECATION_ASPECT_NAME, newDeprecation);
- Mockito.verify(mockClient, Mockito.times(1)).ingestProposal(any(), eq(proposal), eq(false));
+ verifyIngestProposal(mockClient, 1, proposal);
Mockito.verify(mockService, Mockito.times(1))
.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true));
@@ -120,7 +120,7 @@ public void testGetSuccessExistingDeprecation() throws Exception {
new EnvelopedAspect()
.setValue(new Aspect(originalDeprecation.data())))))));
- EntityService mockService = Mockito.mock(EntityService.class);
+ EntityService> mockService = Mockito.mock(EntityService.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
.thenReturn(true);
@@ -144,7 +144,7 @@ public void testGetSuccessExistingDeprecation() throws Exception {
MutationUtils.buildMetadataChangeProposalWithUrn(
UrnUtils.getUrn(TEST_ENTITY_URN), DEPRECATION_ASPECT_NAME, newDeprecation);
- Mockito.verify(mockClient, Mockito.times(1)).ingestProposal(any(), eq(proposal), eq(false));
+ verifyIngestProposal(mockClient, 1, proposal);
Mockito.verify(mockService, Mockito.times(1))
.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true));
@@ -169,7 +169,7 @@ public void testGetFailureEntityDoesNotExist() throws Exception {
.setUrn(Urn.createFromString(TEST_ENTITY_URN))
.setAspects(new EnvelopedAspectMap(Collections.emptyMap()))));
- EntityService mockService = Mockito.mock(EntityService.class);
+ EntityService> mockService = Mockito.mock(EntityService.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
.thenReturn(false);
@@ -190,7 +190,7 @@ public void testGetFailureEntityDoesNotExist() throws Exception {
public void testGetUnauthorized() throws Exception {
// Create resolver
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = Mockito.mock(EntityService.class);
+ EntityService> mockService = Mockito.mock(EntityService.class);
UpdateDeprecationResolver resolver = new UpdateDeprecationResolver(mockClient, mockService);
// Execute resolver
@@ -206,7 +206,7 @@ public void testGetUnauthorized() throws Exception {
@Test
public void testGetEntityClientException() throws Exception {
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = Mockito.mock(EntityService.class);
+ EntityService> mockService = Mockito.mock(EntityService.class);
Mockito.doThrow(RemoteInvocationException.class)
.when(mockClient)
.ingestProposal(any(), Mockito.any(), anyBoolean());
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/BatchSetDomainResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/BatchSetDomainResolverTest.java
index 9fec8b2fd9572..1a9272c1335cf 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/BatchSetDomainResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/BatchSetDomainResolverTest.java
@@ -39,7 +39,7 @@ public class BatchSetDomainResolverTest {
@Test
public void testGetSuccessNoExistingDomains() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -105,7 +105,7 @@ public void testGetSuccessExistingDomains() throws Exception {
new Domains()
.setDomains(new UrnArray(ImmutableList.of(Urn.createFromString(TEST_DOMAIN_1_URN))));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -176,7 +176,7 @@ public void testGetSuccessUnsetDomains() throws Exception {
new Domains()
.setDomains(new UrnArray(ImmutableList.of(Urn.createFromString(TEST_DOMAIN_1_URN))));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -233,7 +233,7 @@ public void testGetSuccessUnsetDomains() throws Exception {
@Test
public void testGetFailureDomainDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -268,7 +268,7 @@ public void testGetFailureDomainDoesNotExist() throws Exception {
@Test
public void testGetFailureResourceDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -312,7 +312,7 @@ public void testGetFailureResourceDoesNotExist() throws Exception {
@Test
public void testGetUnauthorized() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
BatchSetDomainResolver resolver = new BatchSetDomainResolver(mockService);
@@ -334,7 +334,7 @@ public void testGetUnauthorized() throws Exception {
@Test
public void testGetEntityClientException() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.doThrow(RuntimeException.class)
.when(mockService)
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/CreateDomainResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/CreateDomainResolverTest.java
index 1d6c4519358b4..c0d74225a9cf1 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/CreateDomainResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/CreateDomainResolverTest.java
@@ -53,7 +53,7 @@ public class CreateDomainResolverTest {
public void testGetSuccess() throws Exception {
// Create resolver
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
CreateDomainResolver resolver = new CreateDomainResolver(mockClient, mockService);
Mockito.when(mockClient.exists(any(), Mockito.eq(TEST_DOMAIN_URN))).thenReturn(false);
@@ -103,7 +103,7 @@ public void testGetSuccess() throws Exception {
@Test
public void testGetSuccessNoParentDomain() throws Exception {
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = Mockito.mock(EntityService.class);
+ EntityService> mockService = Mockito.mock(EntityService.class);
CreateDomainResolver resolver = new CreateDomainResolver(mockClient, mockService);
Mockito.when(mockClient.exists(any(), Mockito.eq(TEST_DOMAIN_URN))).thenReturn(false);
@@ -146,7 +146,7 @@ public void testGetSuccessNoParentDomain() throws Exception {
@Test
public void testGetInvalidParent() throws Exception {
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = Mockito.mock(EntityService.class);
+ EntityService> mockService = Mockito.mock(EntityService.class);
CreateDomainResolver resolver = new CreateDomainResolver(mockClient, mockService);
Mockito.when(mockClient.exists(any(), Mockito.eq(TEST_DOMAIN_URN))).thenReturn(false);
@@ -164,7 +164,7 @@ public void testGetInvalidParent() throws Exception {
@Test
public void testGetNameConflict() throws Exception {
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = Mockito.mock(EntityService.class);
+ EntityService> mockService = Mockito.mock(EntityService.class);
CreateDomainResolver resolver = new CreateDomainResolver(mockClient, mockService);
Mockito.when(mockClient.exists(any(), Mockito.eq(TEST_DOMAIN_URN))).thenReturn(false);
@@ -218,7 +218,7 @@ public void testGetNameConflict() throws Exception {
public void testGetUnauthorized() throws Exception {
// Create resolver
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
CreateDomainResolver resolver = new CreateDomainResolver(mockClient, mockService);
// Execute resolver
@@ -235,7 +235,7 @@ public void testGetUnauthorized() throws Exception {
public void testGetEntityClientException() throws Exception {
// Create resolver
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.doThrow(RemoteInvocationException.class)
.when(mockClient)
.ingestProposal(any(), Mockito.any(), Mockito.eq(false));
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/MoveDomainResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/MoveDomainResolverTest.java
index ae1dffbd5d0db..07fad314747db 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/MoveDomainResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/MoveDomainResolverTest.java
@@ -40,7 +40,7 @@ public class MoveDomainResolverTest {
private static final CorpuserUrn TEST_ACTOR_URN = new CorpuserUrn("test");
private MetadataChangeProposal setupTests(
- DataFetchingEnvironment mockEnv, EntityService mockService, EntityClient mockClient)
+ DataFetchingEnvironment mockEnv, EntityService> mockService, EntityClient mockClient)
throws Exception {
QueryContext mockContext = getMockAllowContext();
Mockito.when(mockContext.getAuthentication()).thenReturn(Mockito.mock(Authentication.class));
@@ -77,7 +77,7 @@ private MetadataChangeProposal setupTests(
@Test
public void testGetSuccess() throws Exception {
- EntityService mockService = Mockito.mock(EntityService.class);
+ EntityService> mockService = Mockito.mock(EntityService.class);
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(
mockService.exists(
@@ -100,7 +100,7 @@ public void testGetSuccess() throws Exception {
@Test
public void testGetFailureEntityDoesNotExist() throws Exception {
- EntityService mockService = Mockito.mock(EntityService.class);
+ EntityService> mockService = Mockito.mock(EntityService.class);
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(PARENT_DOMAIN_URN)), eq(true)))
.thenReturn(true);
@@ -127,7 +127,7 @@ public void testGetFailureEntityDoesNotExist() throws Exception {
@Test
public void testGetFailureParentDoesNotExist() throws Exception {
- EntityService mockService = Mockito.mock(EntityService.class);
+ EntityService> mockService = Mockito.mock(EntityService.class);
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(PARENT_DOMAIN_URN)), eq(true)))
.thenReturn(false);
@@ -143,7 +143,7 @@ public void testGetFailureParentDoesNotExist() throws Exception {
@Test
public void testGetFailureParentIsNotDomain() throws Exception {
- EntityService mockService = Mockito.mock(EntityService.class);
+ EntityService> mockService = Mockito.mock(EntityService.class);
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(PARENT_DOMAIN_URN)), eq(true)))
.thenReturn(true);
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/SetDomainResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/SetDomainResolverTest.java
index 031ac1da8480b..5437f1c860fde 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/SetDomainResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/SetDomainResolverTest.java
@@ -59,7 +59,7 @@ public void testGetSuccessNoExistingDomains() throws Exception {
.setUrn(Urn.createFromString(TEST_ENTITY_URN))
.setAspects(new EnvelopedAspectMap(Collections.emptyMap()))));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
.thenReturn(true);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_NEW_DOMAIN_URN)), eq(true)))
@@ -82,8 +82,7 @@ public void testGetSuccessNoExistingDomains() throws Exception {
MutationUtils.buildMetadataChangeProposalWithUrn(
UrnUtils.getUrn(TEST_ENTITY_URN), DOMAINS_ASPECT_NAME, newDomains);
- Mockito.verify(mockClient, Mockito.times(1))
- .ingestProposal(any(), Mockito.eq(proposal), Mockito.eq(false));
+ verifyIngestProposal(mockClient, 1, proposal);
Mockito.verify(mockService, Mockito.times(1))
.exists(any(), Mockito.eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true));
@@ -122,7 +121,7 @@ public void testGetSuccessExistingDomains() throws Exception {
new EnvelopedAspect()
.setValue(new Aspect(originalDomains.data())))))));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
.thenReturn(true);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_NEW_DOMAIN_URN)), eq(true)))
@@ -145,8 +144,7 @@ public void testGetSuccessExistingDomains() throws Exception {
MutationUtils.buildMetadataChangeProposalWithUrn(
UrnUtils.getUrn(TEST_ENTITY_URN), DOMAINS_ASPECT_NAME, newDomains);
- Mockito.verify(mockClient, Mockito.times(1))
- .ingestProposal(any(), Mockito.eq(proposal), Mockito.eq(false));
+ verifyIngestProposal(mockClient, 1, proposal);
Mockito.verify(mockService, Mockito.times(1))
.exists(any(), Mockito.eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true));
@@ -175,7 +173,7 @@ public void testGetFailureDomainDoesNotExist() throws Exception {
.setUrn(Urn.createFromString(TEST_ENTITY_URN))
.setAspects(new EnvelopedAspectMap(Collections.emptyMap()))));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
.thenReturn(true);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_NEW_DOMAIN_URN)), eq(true)))
@@ -214,7 +212,7 @@ public void testGetFailureEntityDoesNotExist() throws Exception {
.setUrn(Urn.createFromString(TEST_ENTITY_URN))
.setAspects(new EnvelopedAspectMap(Collections.emptyMap()))));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
.thenReturn(false);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_NEW_DOMAIN_URN)), eq(true)))
@@ -237,7 +235,7 @@ public void testGetFailureEntityDoesNotExist() throws Exception {
public void testGetUnauthorized() throws Exception {
// Create resolver
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
SetDomainResolver resolver = new SetDomainResolver(mockClient, mockService);
// Execute resolver
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/UnsetDomainResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/UnsetDomainResolverTest.java
index b9910e6ca3c85..1c61963703a2a 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/UnsetDomainResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/domain/UnsetDomainResolverTest.java
@@ -58,7 +58,7 @@ public void testGetSuccessNoExistingDomains() throws Exception {
.setUrn(Urn.createFromString(TEST_ENTITY_URN))
.setAspects(new EnvelopedAspectMap(Collections.emptyMap()))));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
.thenReturn(true);
@@ -76,8 +76,7 @@ public void testGetSuccessNoExistingDomains() throws Exception {
MutationUtils.buildMetadataChangeProposalWithUrn(
UrnUtils.getUrn(TEST_ENTITY_URN), DOMAINS_ASPECT_NAME, newDomains);
- Mockito.verify(mockClient, Mockito.times(1))
- .ingestProposal(any(), Mockito.eq(proposal), Mockito.eq(false));
+ verifyIngestProposal(mockClient, 1, proposal);
Mockito.verify(mockService, Mockito.times(1))
.exists(any(), Mockito.eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true));
@@ -113,7 +112,7 @@ public void testGetSuccessExistingDomains() throws Exception {
new EnvelopedAspect()
.setValue(new Aspect(originalDomains.data())))))));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
.thenReturn(true);
@@ -131,8 +130,7 @@ public void testGetSuccessExistingDomains() throws Exception {
MutationUtils.buildMetadataChangeProposalWithUrn(
UrnUtils.getUrn(TEST_ENTITY_URN), DOMAINS_ASPECT_NAME, newDomains);
- Mockito.verify(mockClient, Mockito.times(1))
- .ingestProposal(any(), Mockito.eq(proposal), Mockito.eq(false));
+ verifyIngestProposal(mockClient, 1, proposal);
Mockito.verify(mockService, Mockito.times(1))
.exists(any(), Mockito.eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true));
@@ -158,7 +156,7 @@ public void testGetFailureEntityDoesNotExist() throws Exception {
.setUrn(Urn.createFromString(TEST_ENTITY_URN))
.setAspects(new EnvelopedAspectMap(Collections.emptyMap()))));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
.thenReturn(false);
@@ -178,7 +176,7 @@ public void testGetFailureEntityDoesNotExist() throws Exception {
public void testGetUnauthorized() throws Exception {
// Create resolver
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
UnsetDomainResolver resolver = new UnsetDomainResolver(mockClient, mockService);
// Execute resolver
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/embed/UpdateEmbedResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/embed/UpdateEmbedResolverTest.java
index 2bb9dff29a564..c45e620a46a73 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/embed/UpdateEmbedResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/embed/UpdateEmbedResolverTest.java
@@ -39,7 +39,7 @@ public class UpdateEmbedResolverTest {
@Test
public void testGetSuccessNoExistingEmbed() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -68,7 +68,6 @@ public void testGetSuccessNoExistingEmbed() throws Exception {
Urn.createFromString(TEST_ENTITY_URN), EMBED_ASPECT_NAME, newEmbed);
verifySingleIngestProposal(mockService, 1, proposal);
- ;
Mockito.verify(mockService, Mockito.times(1))
.exists(any(), Mockito.eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true));
@@ -79,7 +78,7 @@ public void testGetSuccessExistingEmbed() throws Exception {
Embed originalEmbed = new Embed().setRenderUrl("https://otherurl.com");
// Create resolver
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -132,7 +131,7 @@ public void testGetFailureEntityDoesNotExist() throws Exception {
.setUrn(Urn.createFromString(TEST_ENTITY_URN))
.setAspects(new EnvelopedAspectMap(Collections.emptyMap()))));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
.thenReturn(false);
@@ -154,7 +153,7 @@ public void testGetFailureEntityDoesNotExist() throws Exception {
@Test
public void testGetUnauthorized() throws Exception {
// Create resolver
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
UpdateEmbedResolver resolver = new UpdateEmbedResolver(mockService);
// Execute resolver
@@ -171,7 +170,7 @@ public void testGetUnauthorized() throws Exception {
@Test
public void testGetEntityClientException() throws Exception {
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.doThrow(RemoteInvocationException.class)
.when(mockClient)
.ingestProposal(any(), Mockito.any());
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/AddRelatedTermsResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/AddRelatedTermsResolverTest.java
index ffa9e4a728dda..a8920fa9e5b3c 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/AddRelatedTermsResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/AddRelatedTermsResolverTest.java
@@ -28,7 +28,7 @@ public class AddRelatedTermsResolverTest {
private static final String DATASET_URN = "urn:li:dataset:(test,test,test)";
private EntityService setUpService() {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
any(),
@@ -41,7 +41,7 @@ private EntityService setUpService() {
@Test
public void testGetSuccessIsRelatedNonExistent() throws Exception {
- EntityService mockService = setUpService();
+ EntityService> mockService = setUpService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
@@ -75,7 +75,7 @@ public void testGetSuccessIsRelatedNonExistent() throws Exception {
@Test
public void testGetSuccessHasRelatedNonExistent() throws Exception {
- EntityService mockService = setUpService();
+ EntityService> mockService = setUpService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
@@ -109,7 +109,7 @@ public void testGetSuccessHasRelatedNonExistent() throws Exception {
@Test
public void testGetFailAddSelfAsRelatedTerm() throws Exception {
- EntityService mockService = setUpService();
+ EntityService> mockService = setUpService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
@@ -131,7 +131,7 @@ public void testGetFailAddSelfAsRelatedTerm() throws Exception {
@Test
public void testGetFailAddNonTermAsRelatedTerm() throws Exception {
- EntityService mockService = setUpService();
+ EntityService> mockService = setUpService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
@@ -153,7 +153,7 @@ public void testGetFailAddNonTermAsRelatedTerm() throws Exception {
@Test
public void testGetFailAddNonExistentTermAsRelatedTerm() throws Exception {
- EntityService mockService = setUpService();
+ EntityService> mockService = setUpService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
@@ -177,7 +177,7 @@ public void testGetFailAddNonExistentTermAsRelatedTerm() throws Exception {
@Test
public void testGetFailAddToNonExistentUrn() throws Exception {
- EntityService mockService = setUpService();
+ EntityService> mockService = setUpService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
@@ -201,7 +201,7 @@ public void testGetFailAddToNonExistentUrn() throws Exception {
@Test
public void testGetFailAddToNonTerm() throws Exception {
- EntityService mockService = setUpService();
+ EntityService> mockService = setUpService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(DATASET_URN)), eq(true)))
@@ -225,7 +225,7 @@ public void testGetFailAddToNonTerm() throws Exception {
@Test
public void testFailNoPermissions() throws Exception {
- EntityService mockService = setUpService();
+ EntityService> mockService = setUpService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/CreateGlossaryNodeResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/CreateGlossaryNodeResolverTest.java
index 1a7e74c36733c..0f2fa7f88cd9b 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/CreateGlossaryNodeResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/CreateGlossaryNodeResolverTest.java
@@ -2,8 +2,8 @@
import static com.linkedin.datahub.graphql.TestUtils.getMockAllowContext;
import static com.linkedin.datahub.graphql.TestUtils.getMockEntityService;
+import static com.linkedin.datahub.graphql.TestUtils.verifyIngestProposal;
import static com.linkedin.metadata.Constants.*;
-import static org.mockito.ArgumentMatchers.any;
import com.datahub.authentication.Authentication;
import com.linkedin.common.urn.GlossaryNodeUrn;
@@ -63,7 +63,7 @@ private MetadataChangeProposal setupTest(
@Test
public void testGetSuccess() throws Exception {
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
DataFetchingEnvironment mockEnv = Mockito.mock(DataFetchingEnvironment.class);
final MetadataChangeProposal proposal =
setupTest(mockEnv, TEST_INPUT, "test-description", parentNodeUrn);
@@ -71,14 +71,13 @@ public void testGetSuccess() throws Exception {
CreateGlossaryNodeResolver resolver = new CreateGlossaryNodeResolver(mockClient, mockService);
resolver.get(mockEnv).get();
- Mockito.verify(mockClient, Mockito.times(1))
- .ingestProposal(any(), Mockito.eq(proposal), Mockito.eq(false));
+ verifyIngestProposal(mockClient, 1, proposal);
}
@Test
public void testGetSuccessNoDescription() throws Exception {
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
DataFetchingEnvironment mockEnv = Mockito.mock(DataFetchingEnvironment.class);
final MetadataChangeProposal proposal =
setupTest(mockEnv, TEST_INPUT_NO_DESCRIPTION, "", parentNodeUrn);
@@ -86,14 +85,13 @@ public void testGetSuccessNoDescription() throws Exception {
CreateGlossaryNodeResolver resolver = new CreateGlossaryNodeResolver(mockClient, mockService);
resolver.get(mockEnv).get();
- Mockito.verify(mockClient, Mockito.times(1))
- .ingestProposal(any(), Mockito.eq(proposal), Mockito.eq(false));
+ verifyIngestProposal(mockClient, 1, proposal);
}
@Test
public void testGetSuccessNoParentNode() throws Exception {
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
DataFetchingEnvironment mockEnv = Mockito.mock(DataFetchingEnvironment.class);
final MetadataChangeProposal proposal =
setupTest(mockEnv, TEST_INPUT_NO_PARENT_NODE, "test-description", null);
@@ -101,7 +99,6 @@ public void testGetSuccessNoParentNode() throws Exception {
CreateGlossaryNodeResolver resolver = new CreateGlossaryNodeResolver(mockClient, mockService);
resolver.get(mockEnv).get();
- Mockito.verify(mockClient, Mockito.times(1))
- .ingestProposal(any(), Mockito.eq(proposal), Mockito.eq(false));
+ verifyIngestProposal(mockClient, 1, proposal);
}
}
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/CreateGlossaryTermResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/CreateGlossaryTermResolverTest.java
index 728a840d97e94..8a51d8ea10009 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/CreateGlossaryTermResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/CreateGlossaryTermResolverTest.java
@@ -2,6 +2,7 @@
import static com.linkedin.datahub.graphql.TestUtils.getMockAllowContext;
import static com.linkedin.datahub.graphql.TestUtils.getMockEntityService;
+import static com.linkedin.datahub.graphql.TestUtils.verifyIngestProposal;
import static com.linkedin.metadata.Constants.*;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
@@ -81,7 +82,7 @@ private MetadataChangeProposal setupTest(
@Test
public void testGetSuccess() throws Exception {
EntityClient mockClient = initMockClient();
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
DataFetchingEnvironment mockEnv = Mockito.mock(DataFetchingEnvironment.class);
final MetadataChangeProposal proposal =
setupTest(mockEnv, TEST_INPUT, "test-description", parentNodeUrn);
@@ -89,14 +90,13 @@ public void testGetSuccess() throws Exception {
CreateGlossaryTermResolver resolver = new CreateGlossaryTermResolver(mockClient, mockService);
resolver.get(mockEnv).get();
- Mockito.verify(mockClient, Mockito.times(1))
- .ingestProposal(any(), Mockito.eq(proposal), Mockito.eq(false));
+ verifyIngestProposal(mockClient, 1, proposal);
}
@Test
public void testGetSuccessNoDescription() throws Exception {
EntityClient mockClient = initMockClient();
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
DataFetchingEnvironment mockEnv = Mockito.mock(DataFetchingEnvironment.class);
final MetadataChangeProposal proposal =
setupTest(mockEnv, TEST_INPUT_NO_DESCRIPTION, "", parentNodeUrn);
@@ -104,14 +104,13 @@ public void testGetSuccessNoDescription() throws Exception {
CreateGlossaryTermResolver resolver = new CreateGlossaryTermResolver(mockClient, mockService);
resolver.get(mockEnv).get();
- Mockito.verify(mockClient, Mockito.times(1))
- .ingestProposal(any(), Mockito.eq(proposal), Mockito.eq(false));
+ verifyIngestProposal(mockClient, 1, proposal);
}
@Test
public void testGetSuccessNoParentNode() throws Exception {
EntityClient mockClient = initMockClient();
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
DataFetchingEnvironment mockEnv = Mockito.mock(DataFetchingEnvironment.class);
final MetadataChangeProposal proposal =
setupTest(mockEnv, TEST_INPUT_NO_PARENT_NODE, "test-description", null);
@@ -119,8 +118,7 @@ public void testGetSuccessNoParentNode() throws Exception {
CreateGlossaryTermResolver resolver = new CreateGlossaryTermResolver(mockClient, mockService);
resolver.get(mockEnv).get();
- Mockito.verify(mockClient, Mockito.times(1))
- .ingestProposal(any(), Mockito.eq(proposal), Mockito.eq(false));
+ verifyIngestProposal(mockClient, 1, proposal);
}
@Test
@@ -157,7 +155,7 @@ public void testGetFailureExistingTermSameName() throws Exception {
Mockito.eq(Collections.singleton(GLOSSARY_TERM_INFO_ASPECT_NAME))))
.thenReturn(result);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
DataFetchingEnvironment mockEnv = Mockito.mock(DataFetchingEnvironment.class);
CreateGlossaryEntityInput input =
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/DeleteGlossaryEntityResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/DeleteGlossaryEntityResolverTest.java
index 18c4b07ffeff0..9adc5d5e516e5 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/DeleteGlossaryEntityResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/DeleteGlossaryEntityResolverTest.java
@@ -25,7 +25,7 @@ public class DeleteGlossaryEntityResolverTest {
@Test
public void testGetSuccess() throws Exception {
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_TERM_URN)), eq(true)))
.thenReturn(true);
@@ -50,7 +50,7 @@ public void testGetEntityClientException() throws Exception {
.when(mockClient)
.deleteEntity(any(), Mockito.any());
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_TERM_URN)), eq(true)))
.thenReturn(true);
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/RemoveRelatedTermsResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/RemoveRelatedTermsResolverTest.java
index 5de7966dc15e9..85019a475865e 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/RemoveRelatedTermsResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/RemoveRelatedTermsResolverTest.java
@@ -36,7 +36,7 @@ public void testGetSuccessIsA() throws Exception {
GlossaryTermUrn term2Urn = GlossaryTermUrn.createFromString(TEST_TERM_2_URN);
final GlossaryRelatedTerms relatedTerms = new GlossaryRelatedTerms();
relatedTerms.setIsRelatedTerms(new GlossaryTermUrnArray(Arrays.asList(term1Urn, term2Urn)));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
any(),
@@ -71,7 +71,7 @@ public void testGetSuccessHasA() throws Exception {
GlossaryTermUrn term2Urn = GlossaryTermUrn.createFromString(TEST_TERM_2_URN);
final GlossaryRelatedTerms relatedTerms = new GlossaryRelatedTerms();
relatedTerms.setHasRelatedTerms(new GlossaryTermUrnArray(Arrays.asList(term1Urn, term2Urn)));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
any(),
@@ -102,7 +102,7 @@ public void testGetSuccessHasA() throws Exception {
@Test
public void testFailAspectDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
any(),
@@ -135,7 +135,7 @@ public void testFailNoPermissions() throws Exception {
GlossaryTermUrn term2Urn = GlossaryTermUrn.createFromString(TEST_TERM_2_URN);
final GlossaryRelatedTerms relatedTerms = new GlossaryRelatedTerms();
relatedTerms.setIsRelatedTerms(new GlossaryTermUrnArray(Arrays.asList(term1Urn, term2Urn)));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
any(),
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/UpdateNameResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/UpdateNameResolverTest.java
index e6f4aae56127c..b4a2655755a02 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/UpdateNameResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/UpdateNameResolverTest.java
@@ -42,7 +42,7 @@ public class UpdateNameResolverTest {
private static final CorpuserUrn TEST_ACTOR_URN = new CorpuserUrn("test");
private MetadataChangeProposal setupTests(
- DataFetchingEnvironment mockEnv, EntityService mockService) throws Exception {
+ DataFetchingEnvironment mockEnv, EntityService> mockService) throws Exception {
QueryContext mockContext = getMockAllowContext();
Mockito.when(mockContext.getAuthentication()).thenReturn(Mockito.mock(Authentication.class));
Mockito.when(mockContext.getActorUrn()).thenReturn(TEST_ACTOR_URN.toString());
@@ -65,7 +65,7 @@ private MetadataChangeProposal setupTests(
@Test
public void testGetSuccess() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(
mockService.exists(
@@ -83,7 +83,7 @@ public void testGetSuccess() throws Exception {
@Test
public void testGetSuccessForNode() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(NODE_URN)), eq(true)))
.thenReturn(true);
@@ -117,7 +117,7 @@ public void testGetSuccessForNode() throws Exception {
@Test
public void testGetSuccessForDomain() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(DOMAIN_URN)), eq(true)))
.thenReturn(true);
@@ -163,7 +163,7 @@ public void testGetSuccessForDomain() throws Exception {
@Test
public void testGetFailureEntityDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(
mockService.exists(
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/UpdateParentNodeResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/UpdateParentNodeResolverTest.java
index 39f9066bcddaa..25a900d4d9069 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/UpdateParentNodeResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/glossary/UpdateParentNodeResolverTest.java
@@ -43,7 +43,7 @@ public class UpdateParentNodeResolverTest {
private static final CorpuserUrn TEST_ACTOR_URN = new CorpuserUrn("test");
private MetadataChangeProposal setupTests(
- DataFetchingEnvironment mockEnv, EntityService mockService) throws Exception {
+ DataFetchingEnvironment mockEnv, EntityService> mockService) throws Exception {
QueryContext mockContext = getMockAllowContext();
Mockito.when(mockContext.getAuthentication()).thenReturn(Mockito.mock(Authentication.class));
Mockito.when(mockContext.getActorUrn()).thenReturn(TEST_ACTOR_URN.toString());
@@ -67,7 +67,7 @@ private MetadataChangeProposal setupTests(
@Test
public void testGetSuccess() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TERM_URN)), eq(true)))
.thenReturn(true);
@@ -89,7 +89,7 @@ public void testGetSuccess() throws Exception {
@Test
public void testGetSuccessForNode() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(NODE_URN)), eq(true)))
.thenReturn(true);
@@ -129,7 +129,7 @@ public void testGetSuccessForNode() throws Exception {
@Test
public void testGetFailureEntityDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TERM_URN)), eq(true)))
.thenReturn(false);
@@ -149,7 +149,7 @@ public void testGetFailureEntityDoesNotExist() throws Exception {
@Test
public void testGetFailureNodeDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TERM_URN)), eq(true)))
.thenReturn(true);
@@ -169,7 +169,7 @@ public void testGetFailureNodeDoesNotExist() throws Exception {
@Test
public void testGetFailureParentIsNotNode() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TERM_URN)), eq(true)))
.thenReturn(true);
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/ingest/source/UpsertIngestionSourceResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/ingest/source/UpsertIngestionSourceResolverTest.java
index 57d96030a32aa..955188a4e4fed 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/ingest/source/UpsertIngestionSourceResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/ingest/source/UpsertIngestionSourceResolverTest.java
@@ -1,5 +1,6 @@
package com.linkedin.datahub.graphql.resolvers.ingest.source;
+import static com.linkedin.datahub.graphql.TestUtils.verifyIngestProposal;
import static com.linkedin.datahub.graphql.resolvers.ingest.IngestTestUtils.*;
import static com.linkedin.metadata.Constants.*;
import static org.mockito.ArgumentMatchers.any;
@@ -66,13 +67,11 @@ public void testGetSuccess() throws Exception {
.setExecutorId(TEST_INPUT.getConfig().getExecutorId())
.setDebugMode(TEST_INPUT.getConfig().getDebugMode()));
- Mockito.verify(mockClient, Mockito.times(1))
- .ingestProposal(
- any(),
- Mockito.eq(
- MutationUtils.buildMetadataChangeProposalWithUrn(
- TEST_INGESTION_SOURCE_URN, INGESTION_INFO_ASPECT_NAME, info)),
- Mockito.eq(false));
+ verifyIngestProposal(
+ mockClient,
+ 1,
+ MutationUtils.buildMetadataChangeProposalWithUrn(
+ TEST_INGESTION_SOURCE_URN, INGESTION_INFO_ASPECT_NAME, info));
}
@Test
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/mutate/SiblingsUtilsTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/mutate/SiblingsUtilsTest.java
index 5965c8b790a76..e76317391ac34 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/mutate/SiblingsUtilsTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/mutate/SiblingsUtilsTest.java
@@ -31,7 +31,7 @@ public class SiblingsUtilsTest {
public void testGetSiblingUrns() {
UrnArray siblingUrns =
new UrnArray(UrnUtils.getUrn(TEST_DATASET_URN2), UrnUtils.getUrn(TEST_DATASET_URN3));
- EntityService mockService = mock(EntityService.class);
+ EntityService> mockService = mock(EntityService.class);
Mockito.when(
mockService.getLatestAspect(
any(), eq(UrnUtils.getUrn(TEST_DATASET_URN1)), eq(SIBLINGS_ASPECT_NAME)))
@@ -45,7 +45,7 @@ public void testGetSiblingUrns() {
@Test
public void testGetSiblingUrnsWithoutSiblings() {
- EntityService mockService = mock(EntityService.class);
+ EntityService> mockService = mock(EntityService.class);
Mockito.when(
mockService.getLatestAspect(
any(), eq(UrnUtils.getUrn(TEST_DATASET_URN1)), eq(SIBLINGS_ASPECT_NAME)))
@@ -59,7 +59,7 @@ public void testGetSiblingUrnsWithoutSiblings() {
@Test
public void testGetSiblingUrnsWithSiblingsAspect() {
- EntityService mockService = mock(EntityService.class);
+ EntityService> mockService = mock(EntityService.class);
Mockito.when(
mockService.getLatestAspect(
any(), eq(UrnUtils.getUrn(TEST_DATASET_URN1)), eq(SIBLINGS_ASPECT_NAME)))
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/mutate/UpdateUserSettingResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/mutate/UpdateUserSettingResolverTest.java
index ce339fa2c75c7..313c15c95c952 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/mutate/UpdateUserSettingResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/mutate/UpdateUserSettingResolverTest.java
@@ -23,7 +23,7 @@ public class UpdateUserSettingResolverTest {
@Test
public void testWriteCorpUserSettings() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_USER_URN)), eq(true)))
.thenReturn(true);
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/operation/ReportOperationResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/operation/ReportOperationResolverTest.java
index ad5f39d4b3c6d..c4778cbbd4053 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/operation/ReportOperationResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/operation/ReportOperationResolverTest.java
@@ -57,8 +57,7 @@ public void testGetSuccess() throws Exception {
Mockito.when(mockEnv.getContext()).thenReturn(mockContext);
resolver.get(mockEnv).get();
- Mockito.verify(mockClient, Mockito.times(1))
- .ingestProposal(any(), Mockito.eq(expectedProposal), Mockito.eq(false));
+ verifyIngestProposal(mockClient, 1, expectedProposal);
}
@Test
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/owner/AddOwnersResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/owner/AddOwnersResolverTest.java
index 40a2e45724381..b239e0300ffcc 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/owner/AddOwnersResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/owner/AddOwnersResolverTest.java
@@ -38,7 +38,7 @@ public class AddOwnersResolverTest {
@Test
public void testGetSuccessNoExistingOwners() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -101,7 +101,7 @@ public void testGetSuccessNoExistingOwners() throws Exception {
@Test
public void testGetSuccessExistingOwnerNewType() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
com.linkedin.common.Ownership oldOwnership =
new Ownership()
@@ -167,7 +167,7 @@ public void testGetSuccessExistingOwnerNewType() throws Exception {
@Test
public void testGetSuccessDeprecatedTypeToOwnershipType() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
com.linkedin.common.Ownership oldOwnership =
new Ownership()
@@ -230,7 +230,7 @@ public void testGetSuccessDeprecatedTypeToOwnershipType() throws Exception {
@Test
public void testGetSuccessMultipleOwnerTypes() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
com.linkedin.common.Ownership oldOwnership =
new Ownership()
@@ -328,7 +328,7 @@ public void testGetSuccessMultipleOwnerTypes() throws Exception {
@Test
public void testGetFailureOwnerDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -366,7 +366,7 @@ public void testGetFailureOwnerDoesNotExist() throws Exception {
@Test
public void testGetFailureResourceDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -404,7 +404,7 @@ public void testGetFailureResourceDoesNotExist() throws Exception {
@Test
public void testGetUnauthorized() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
AddOwnersResolver resolver = new AddOwnersResolver(mockService);
@@ -429,7 +429,7 @@ public void testGetUnauthorized() throws Exception {
@Test
public void testGetEntityClientException() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.doThrow(RuntimeException.class)
.when(mockService)
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/owner/BatchAddOwnersResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/owner/BatchAddOwnersResolverTest.java
index 2d7b67685cc69..8275f9f83ef83 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/owner/BatchAddOwnersResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/owner/BatchAddOwnersResolverTest.java
@@ -38,7 +38,7 @@ public class BatchAddOwnersResolverTest {
@Test
public void testGetSuccessNoExistingOwners() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -126,7 +126,7 @@ public void testGetSuccessExistingOwners() throws Exception {
new Owner()
.setOwner(Urn.createFromString(TEST_OWNER_URN_1))
.setType(OwnershipType.TECHNICAL_OWNER))));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -217,7 +217,7 @@ public void testGetSuccessExistingOwners() throws Exception {
@Test
public void testGetFailureOwnerDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -267,7 +267,7 @@ public void testGetFailureOwnerDoesNotExist() throws Exception {
@Test
public void testGetFailureResourceDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -326,7 +326,7 @@ public void testGetFailureResourceDoesNotExist() throws Exception {
@Test
public void testGetUnauthorized() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
BatchAddOwnersResolver resolver = new BatchAddOwnersResolver(mockService);
@@ -363,7 +363,7 @@ public void testGetUnauthorized() throws Exception {
@Test
public void testGetEntityClientException() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.doThrow(RuntimeException.class)
.when(mockService)
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/owner/BatchRemoveOwnersResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/owner/BatchRemoveOwnersResolverTest.java
index 8fcedfa605e1b..9ea9ac693b98e 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/owner/BatchRemoveOwnersResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/owner/BatchRemoveOwnersResolverTest.java
@@ -35,7 +35,7 @@ public class BatchRemoveOwnersResolverTest {
@Test
public void testGetSuccessNoExistingOwners() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -83,7 +83,7 @@ public void testGetSuccessNoExistingOwners() throws Exception {
@Test
public void testGetSuccessExistingOwners() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
final Ownership oldOwners1 =
new Ownership()
@@ -150,7 +150,7 @@ public void testGetSuccessExistingOwners() throws Exception {
@Test
public void testGetFailureResourceDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -195,7 +195,7 @@ public void testGetFailureResourceDoesNotExist() throws Exception {
@Test
public void testGetUnauthorized() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
BatchRemoveOwnersResolver resolver = new BatchRemoveOwnersResolver(mockService);
@@ -218,7 +218,7 @@ public void testGetUnauthorized() throws Exception {
@Test
public void testGetEntityClientException() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.doThrow(RuntimeException.class)
.when(mockService)
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/AddTagsResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/AddTagsResolverTest.java
index 4384d9e2650e4..ee1d59cdf87c7 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/AddTagsResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/AddTagsResolverTest.java
@@ -35,7 +35,7 @@ public class AddTagsResolverTest {
@Test
public void testGetSuccessNoExistingTags() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -94,7 +94,7 @@ public void testGetSuccessExistingTags() throws Exception {
ImmutableList.of(
new TagAssociation().setTag(TagUrn.createFromString(TEST_TAG_1_URN)))));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -146,7 +146,7 @@ public void testGetSuccessExistingTags() throws Exception {
@Test
public void testGetFailureTagDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -177,7 +177,7 @@ public void testGetFailureTagDoesNotExist() throws Exception {
@Test
public void testGetFailureResourceDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -208,7 +208,7 @@ public void testGetFailureResourceDoesNotExist() throws Exception {
@Test
public void testGetUnauthorized() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
AddTagsResolver resolver = new AddTagsResolver(mockService);
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/BatchAddTagsResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/BatchAddTagsResolverTest.java
index 0d22cd6e5eb2b..5f6db4cb1e5a5 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/BatchAddTagsResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/BatchAddTagsResolverTest.java
@@ -39,7 +39,7 @@ public class BatchAddTagsResolverTest {
@Test
public void testGetSuccessNoExistingTags() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -115,7 +115,7 @@ public void testGetSuccessExistingTags() throws Exception {
ImmutableList.of(
new TagAssociation().setTag(TagUrn.createFromString(TEST_TAG_1_URN)))));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -184,7 +184,7 @@ public void testGetSuccessExistingTags() throws Exception {
@Test
public void testGetFailureTagDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -218,7 +218,7 @@ public void testGetFailureTagDoesNotExist() throws Exception {
@Test
public void testGetFailureResourceDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -263,7 +263,7 @@ public void testGetFailureResourceDoesNotExist() throws Exception {
@Test
public void testGetUnauthorized() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
BatchAddTagsResolver resolver = new BatchAddTagsResolver(mockService);
@@ -286,7 +286,7 @@ public void testGetUnauthorized() throws Exception {
@Test
public void testGetEntityClientException() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.doThrow(RuntimeException.class)
.when(mockService)
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/BatchRemoveTagsResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/BatchRemoveTagsResolverTest.java
index e6c33ea734178..9f34c0da82744 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/BatchRemoveTagsResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/BatchRemoveTagsResolverTest.java
@@ -42,7 +42,7 @@ public class BatchRemoveTagsResolverTest {
@Test
public void testGetSuccessNoExistingTags() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -104,7 +104,7 @@ public void testGetSuccessNoExistingTags() throws Exception {
@Test
public void testGetSuccessExistingTags() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
final GlobalTags oldTags1 =
new GlobalTags()
@@ -177,7 +177,7 @@ public void testGetSuccessExistingTags() throws Exception {
@Test
public void testGetFailureResourceDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -222,7 +222,7 @@ public void testGetFailureResourceDoesNotExist() throws Exception {
@Test
public void testGetUnauthorized() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
BatchRemoveTagsResolver resolver = new BatchRemoveTagsResolver(mockService);
@@ -245,7 +245,7 @@ public void testGetUnauthorized() throws Exception {
@Test
public void testGetEntityClientException() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.doThrow(RuntimeException.class)
.when(mockService)
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/CreateTagResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/CreateTagResolverTest.java
index cd9ac9f0b610a..6c8984addb265 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/CreateTagResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/CreateTagResolverTest.java
@@ -27,7 +27,7 @@ public class CreateTagResolverTest {
@Test
public void testGetSuccess() throws Exception {
// Create resolver
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.when(
mockClient.ingestProposal(
@@ -53,14 +53,13 @@ public void testGetSuccess() throws Exception {
key, TAG_ENTITY_NAME, TAG_PROPERTIES_ASPECT_NAME, props);
// Not ideal to match against "any", but we don't know the auto-generated execution request id
- Mockito.verify(mockClient, Mockito.times(1))
- .ingestProposal(any(), Mockito.eq(proposal), Mockito.eq(false));
+ verifyIngestProposal(mockClient, 1, proposal);
}
@Test
public void testGetUnauthorized() throws Exception {
// Create resolver
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
CreateTagResolver resolver = new CreateTagResolver(mockClient, mockService);
@@ -77,7 +76,7 @@ public void testGetUnauthorized() throws Exception {
@Test
public void testGetEntityClientException() throws Exception {
// Create resolver
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
EntityClient mockClient = Mockito.mock(EntityClient.class);
Mockito.doThrow(RuntimeException.class)
.when(mockClient)
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/SetTagColorResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/SetTagColorResolverTest.java
index 624e300b19f46..92f7a2688b43e 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/SetTagColorResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/tag/SetTagColorResolverTest.java
@@ -38,7 +38,7 @@ public class SetTagColorResolverTest {
public void testGetSuccessExistingProperties() throws Exception {
// Create resolver
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
// Test setting the domain
final TagProperties oldTagProperties = new TagProperties().setName("Test Tag");
@@ -69,8 +69,7 @@ public void testGetSuccessExistingProperties() throws Exception {
MutationUtils.buildMetadataChangeProposalWithUrn(
UrnUtils.getUrn(TEST_ENTITY_URN), TAG_PROPERTIES_ASPECT_NAME, newTagProperties);
- Mockito.verify(mockClient, Mockito.times(1))
- .ingestProposal(any(), Mockito.eq(proposal), Mockito.eq(false));
+ verifyIngestProposal(mockClient, 1, proposal);
Mockito.verify(mockService, Mockito.times(1))
.exists(any(), Mockito.eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true));
@@ -80,7 +79,7 @@ public void testGetSuccessExistingProperties() throws Exception {
public void testGetFailureNoExistingProperties() throws Exception {
// Create resolver
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
// Test setting the domain
Mockito.when(
@@ -135,7 +134,7 @@ public void testGetFailureTagDoesNotExist() throws Exception {
ImmutableMap.of(
Constants.TAG_PROPERTIES_ASPECT_NAME, oldTagPropertiesAspect)))));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(mockService.exists(any(), eq(Urn.createFromString(TEST_ENTITY_URN)), eq(true)))
.thenReturn(false);
@@ -155,7 +154,7 @@ public void testGetFailureTagDoesNotExist() throws Exception {
public void testGetUnauthorized() throws Exception {
// Create resolver
EntityClient mockClient = Mockito.mock(EntityClient.class);
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
SetTagColorResolver resolver = new SetTagColorResolver(mockClient, mockService);
// Execute resolver
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/term/AddTermsResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/term/AddTermsResolverTest.java
index 9eeb525c3657e..8f8a071ce8932 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/term/AddTermsResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/term/AddTermsResolverTest.java
@@ -32,7 +32,7 @@ public class AddTermsResolverTest {
@Test
public void testGetSuccessNoExistingTerms() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -82,7 +82,7 @@ public void testGetSuccessExistingTerms() throws Exception {
new GlossaryTermAssociation()
.setUrn(GlossaryTermUrn.createFromString(TEST_TERM_1_URN)))));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -124,7 +124,7 @@ public void testGetSuccessExistingTerms() throws Exception {
@Test
public void testGetFailureTermDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -156,7 +156,7 @@ public void testGetFailureTermDoesNotExist() throws Exception {
@Test
public void testGetFailureResourceDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -188,7 +188,7 @@ public void testGetFailureResourceDoesNotExist() throws Exception {
@Test
public void testGetUnauthorized() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
AddTermsResolver resolver = new AddTermsResolver(mockService);
@@ -207,7 +207,7 @@ public void testGetUnauthorized() throws Exception {
@Test
public void testGetEntityClientException() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.doThrow(RuntimeException.class)
.when(mockService)
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/term/BatchAddTermsResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/term/BatchAddTermsResolverTest.java
index 185bb5cc97953..ced9e371814f7 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/term/BatchAddTermsResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/term/BatchAddTermsResolverTest.java
@@ -35,7 +35,7 @@ public class BatchAddTermsResolverTest {
@Test
public void testGetSuccessNoExistingTerms() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -99,7 +99,7 @@ public void testGetSuccessExistingTerms() throws Exception {
new GlossaryTermAssociation()
.setUrn(GlossaryTermUrn.createFromString(TEST_GLOSSARY_TERM_1_URN)))));
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -155,7 +155,7 @@ public void testGetSuccessExistingTerms() throws Exception {
@Test
public void testGetFailureTagDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -189,7 +189,7 @@ public void testGetFailureTagDoesNotExist() throws Exception {
@Test
public void testGetFailureResourceDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -234,7 +234,7 @@ public void testGetFailureResourceDoesNotExist() throws Exception {
@Test
public void testGetUnauthorized() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
BatchAddTermsResolver resolver = new BatchAddTermsResolver(mockService);
@@ -256,7 +256,7 @@ public void testGetUnauthorized() throws Exception {
@Test
public void testGetEntityClientException() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.doThrow(RuntimeException.class)
.when(mockService)
diff --git a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/term/BatchRemoveTermsResolverTest.java b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/term/BatchRemoveTermsResolverTest.java
index 9e269bed436d9..254a301159ac2 100644
--- a/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/term/BatchRemoveTermsResolverTest.java
+++ b/datahub-graphql-core/src/test/java/com/linkedin/datahub/graphql/resolvers/term/BatchRemoveTermsResolverTest.java
@@ -35,7 +35,7 @@ public class BatchRemoveTermsResolverTest {
@Test
public void testGetSuccessNoExistingTerms() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -82,7 +82,7 @@ public void testGetSuccessNoExistingTerms() throws Exception {
@Test
public void testGetSuccessExistingTerms() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
final GlossaryTerms oldTerms1 =
new GlossaryTerms()
@@ -148,7 +148,7 @@ public void testGetSuccessExistingTerms() throws Exception {
@Test
public void testGetFailureResourceDoesNotExist() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.when(
mockService.getAspect(
@@ -192,7 +192,7 @@ public void testGetFailureResourceDoesNotExist() throws Exception {
@Test
public void testGetUnauthorized() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
BatchRemoveTermsResolver resolver = new BatchRemoveTermsResolver(mockService);
@@ -214,7 +214,7 @@ public void testGetUnauthorized() throws Exception {
@Test
public void testGetEntityClientException() throws Exception {
- EntityService mockService = getMockEntityService();
+ EntityService> mockService = getMockEntityService();
Mockito.doThrow(RuntimeException.class)
.when(mockService)
diff --git a/datahub-upgrade/src/main/java/com/linkedin/datahub/upgrade/system/browsepaths/BackfillBrowsePathsV2Step.java b/datahub-upgrade/src/main/java/com/linkedin/datahub/upgrade/system/browsepaths/BackfillBrowsePathsV2Step.java
index 09b27fbcfbdf2..a1d559d05ad2f 100644
--- a/datahub-upgrade/src/main/java/com/linkedin/datahub/upgrade/system/browsepaths/BackfillBrowsePathsV2Step.java
+++ b/datahub-upgrade/src/main/java/com/linkedin/datahub/upgrade/system/browsepaths/BackfillBrowsePathsV2Step.java
@@ -1,6 +1,7 @@
package com.linkedin.datahub.upgrade.system.browsepaths;
import static com.linkedin.metadata.Constants.*;
+import static com.linkedin.metadata.utils.SystemMetadataUtils.createDefaultSystemMetadata;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
@@ -29,7 +30,6 @@
import com.linkedin.metadata.search.SearchService;
import com.linkedin.metadata.utils.GenericRecordUtils;
import com.linkedin.mxe.MetadataChangeProposal;
-import com.linkedin.mxe.SystemMetadata;
import io.datahubproject.metadata.context.OperationContext;
import java.util.Set;
import java.util.function.Function;
@@ -208,8 +208,7 @@ private void ingestBrowsePathsV2(
proposal.setEntityType(urn.getEntityType());
proposal.setAspectName(Constants.BROWSE_PATHS_V2_ASPECT_NAME);
proposal.setChangeType(ChangeType.UPSERT);
- proposal.setSystemMetadata(
- new SystemMetadata().setRunId(DEFAULT_RUN_ID).setLastObserved(System.currentTimeMillis()));
+ proposal.setSystemMetadata(createDefaultSystemMetadata());
proposal.setAspect(GenericRecordUtils.serializeAspect(browsePathsV2));
entityService.ingestProposal(opContext, proposal, auditStamp, true);
}
diff --git a/datahub-upgrade/src/main/java/com/linkedin/datahub/upgrade/system/policyfields/BackfillPolicyFieldsStep.java b/datahub-upgrade/src/main/java/com/linkedin/datahub/upgrade/system/policyfields/BackfillPolicyFieldsStep.java
index 93bf8cc5b9b60..c65a45aefc357 100644
--- a/datahub-upgrade/src/main/java/com/linkedin/datahub/upgrade/system/policyfields/BackfillPolicyFieldsStep.java
+++ b/datahub-upgrade/src/main/java/com/linkedin/datahub/upgrade/system/policyfields/BackfillPolicyFieldsStep.java
@@ -1,6 +1,7 @@
package com.linkedin.datahub.upgrade.system.policyfields;
import static com.linkedin.metadata.Constants.*;
+import static com.linkedin.metadata.utils.SystemMetadataUtils.createDefaultSystemMetadata;
import com.google.common.collect.ImmutableList;
import com.linkedin.common.AuditStamp;
@@ -25,7 +26,6 @@
import com.linkedin.metadata.search.ScrollResult;
import com.linkedin.metadata.search.SearchEntity;
import com.linkedin.metadata.search.SearchService;
-import com.linkedin.mxe.SystemMetadata;
import com.linkedin.policy.DataHubPolicyInfo;
import io.datahubproject.metadata.context.OperationContext;
import java.net.URISyntaxException;
@@ -234,9 +234,7 @@ private Optional> ingestPolicyFields(
null,
infoAspect,
null,
- new SystemMetadata()
- .setRunId(DEFAULT_RUN_ID)
- .setLastObserved(System.currentTimeMillis()),
+ createDefaultSystemMetadata(),
auditStamp,
ChangeType.RESTATE)
.getFirst());
diff --git a/metadata-io/metadata-io-api/src/main/java/com/linkedin/metadata/entity/EntityApiUtils.java b/metadata-io/metadata-io-api/src/main/java/com/linkedin/metadata/entity/EntityApiUtils.java
index 656534e24f551..fa6d9cae45a6a 100644
--- a/metadata-io/metadata-io-api/src/main/java/com/linkedin/metadata/entity/EntityApiUtils.java
+++ b/metadata-io/metadata-io-api/src/main/java/com/linkedin/metadata/entity/EntityApiUtils.java
@@ -1,6 +1,6 @@
package com.linkedin.metadata.entity;
-import static com.linkedin.metadata.Constants.DEFAULT_RUN_ID;
+import static com.linkedin.metadata.utils.SystemMetadataUtils.createDefaultSystemMetadata;
import com.datahub.util.RecordUtils;
import com.linkedin.common.urn.Urn;
@@ -37,10 +37,7 @@ public static RecordTemplate buildKeyAspect(
public static SystemMetadata parseSystemMetadata(String jsonSystemMetadata) {
if (jsonSystemMetadata == null || jsonSystemMetadata.equals("")) {
- SystemMetadata response = new SystemMetadata();
- response.setRunId(DEFAULT_RUN_ID);
- response.setLastObserved(0);
- return response;
+ return createDefaultSystemMetadata();
}
return RecordUtils.toRecordTemplate(SystemMetadata.class, jsonSystemMetadata);
}
diff --git a/metadata-io/src/main/java/com/linkedin/metadata/entity/EntityServiceImpl.java b/metadata-io/src/main/java/com/linkedin/metadata/entity/EntityServiceImpl.java
index 8c83e7f469fe3..3e640365f3fd2 100644
--- a/metadata-io/src/main/java/com/linkedin/metadata/entity/EntityServiceImpl.java
+++ b/metadata-io/src/main/java/com/linkedin/metadata/entity/EntityServiceImpl.java
@@ -2,7 +2,6 @@
import static com.linkedin.metadata.Constants.APP_SOURCE;
import static com.linkedin.metadata.Constants.ASPECT_LATEST_VERSION;
-import static com.linkedin.metadata.Constants.DEFAULT_RUN_ID;
import static com.linkedin.metadata.Constants.FORCE_INDEXING_KEY;
import static com.linkedin.metadata.Constants.STATUS_ASPECT_NAME;
import static com.linkedin.metadata.Constants.SYSTEM_ACTOR;
@@ -10,6 +9,7 @@
import static com.linkedin.metadata.utils.PegasusUtils.constructMCL;
import static com.linkedin.metadata.utils.PegasusUtils.getDataTemplateClassFromSchema;
import static com.linkedin.metadata.utils.PegasusUtils.urnToEntityName;
+import static com.linkedin.metadata.utils.SystemMetadataUtils.createDefaultSystemMetadata;
import static com.linkedin.metadata.utils.metrics.ExceptionUtils.collectMetrics;
import com.codahale.metrics.Timer;
@@ -1835,10 +1835,7 @@ public void ingestEntities(
@Override
public SystemMetadata ingestEntity(
@Nonnull OperationContext opContext, Entity entity, AuditStamp auditStamp) {
- SystemMetadata generatedSystemMetadata = new SystemMetadata();
- generatedSystemMetadata.setRunId(DEFAULT_RUN_ID);
- generatedSystemMetadata.setLastObserved(System.currentTimeMillis());
-
+ SystemMetadata generatedSystemMetadata = createDefaultSystemMetadata();
ingestEntity(opContext, entity, auditStamp, generatedSystemMetadata);
return generatedSystemMetadata;
}
diff --git a/metadata-io/src/test/java/com/linkedin/metadata/AspectGenerationUtils.java b/metadata-io/src/test/java/com/linkedin/metadata/AspectGenerationUtils.java
index b9a1817f476fb..346a1eef84592 100644
--- a/metadata-io/src/test/java/com/linkedin/metadata/AspectGenerationUtils.java
+++ b/metadata-io/src/test/java/com/linkedin/metadata/AspectGenerationUtils.java
@@ -1,5 +1,7 @@
package com.linkedin.metadata;
+import static com.linkedin.metadata.utils.SystemMetadataUtils.createDefaultSystemMetadata;
+
import com.linkedin.chart.ChartInfo;
import com.linkedin.common.AuditStamp;
import com.linkedin.common.ChangeAuditStamps;
@@ -48,11 +50,10 @@ public static SystemMetadata createSystemMetadata(
@Nonnull String runId,
@Nonnull String lastRunId,
@Nullable String version) {
- SystemMetadata metadata = new SystemMetadata();
- metadata.setLastObserved(lastObserved);
- metadata.setRunId(runId);
+ SystemMetadata metadata = createDefaultSystemMetadata(runId);
metadata.setLastRunId(lastRunId);
metadata.setVersion(version, SetMode.IGNORE_NULL);
+ metadata.setLastObserved(lastObserved);
return metadata;
}
diff --git a/metadata-io/src/test/java/com/linkedin/metadata/entity/EntityServiceTest.java b/metadata-io/src/test/java/com/linkedin/metadata/entity/EntityServiceTest.java
index acdbd7855f7b0..53f5ebfe59728 100644
--- a/metadata-io/src/test/java/com/linkedin/metadata/entity/EntityServiceTest.java
+++ b/metadata-io/src/test/java/com/linkedin/metadata/entity/EntityServiceTest.java
@@ -602,8 +602,9 @@ public void testReingestLineageAspect() throws Exception {
GenericAspect aspect = GenericRecordUtils.serializeAspect(pairToIngest.get(0).getSecond());
+ SystemMetadata initialSystemMetadata = AspectGenerationUtils.createSystemMetadata(1);
initialChangeLog.setAspect(aspect);
- initialChangeLog.setSystemMetadata(AspectGenerationUtils.createSystemMetadata(1));
+ initialChangeLog.setSystemMetadata(initialSystemMetadata);
initialChangeLog.setEntityKeyAspect(
GenericRecordUtils.serializeAspect(
EntityKeyUtils.convertUrnToEntityKey(
@@ -620,7 +621,7 @@ public void testReingestLineageAspect() throws Exception {
restateChangeLog.setSystemMetadata(AspectGenerationUtils.createSystemMetadata(1));
restateChangeLog.setPreviousAspectValue(aspect);
restateChangeLog.setPreviousSystemMetadata(
- simulatePullFromDB(AspectGenerationUtils.createSystemMetadata(1), SystemMetadata.class));
+ simulatePullFromDB(initialSystemMetadata, SystemMetadata.class));
restateChangeLog.setEntityKeyAspect(
GenericRecordUtils.serializeAspect(
EntityKeyUtils.convertUrnToEntityKey(
diff --git a/metadata-service/factories/src/main/java/com/linkedin/metadata/boot/steps/BackfillBrowsePathsV2Step.java b/metadata-service/factories/src/main/java/com/linkedin/metadata/boot/steps/BackfillBrowsePathsV2Step.java
index 6743effd775b1..668892bb46b7f 100644
--- a/metadata-service/factories/src/main/java/com/linkedin/metadata/boot/steps/BackfillBrowsePathsV2Step.java
+++ b/metadata-service/factories/src/main/java/com/linkedin/metadata/boot/steps/BackfillBrowsePathsV2Step.java
@@ -1,6 +1,7 @@
package com.linkedin.metadata.boot.steps;
import static com.linkedin.metadata.Constants.*;
+import static com.linkedin.metadata.utils.SystemMetadataUtils.createDefaultSystemMetadata;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
@@ -23,7 +24,6 @@
import com.linkedin.metadata.search.SearchService;
import com.linkedin.metadata.utils.GenericRecordUtils;
import com.linkedin.mxe.MetadataChangeProposal;
-import com.linkedin.mxe.SystemMetadata;
import io.datahubproject.metadata.context.OperationContext;
import java.util.Set;
import javax.annotation.Nonnull;
@@ -152,8 +152,7 @@ private void ingestBrowsePathsV2(
proposal.setEntityType(urn.getEntityType());
proposal.setAspectName(Constants.BROWSE_PATHS_V2_ASPECT_NAME);
proposal.setChangeType(ChangeType.UPSERT);
- proposal.setSystemMetadata(
- new SystemMetadata().setRunId(DEFAULT_RUN_ID).setLastObserved(System.currentTimeMillis()));
+ proposal.setSystemMetadata(createDefaultSystemMetadata());
proposal.setAspect(GenericRecordUtils.serializeAspect(browsePathsV2));
entityService.ingestProposal(systemOperationContext, proposal, auditStamp, false);
}
diff --git a/metadata-service/factories/src/main/java/com/linkedin/metadata/boot/steps/UpgradeDefaultBrowsePathsStep.java b/metadata-service/factories/src/main/java/com/linkedin/metadata/boot/steps/UpgradeDefaultBrowsePathsStep.java
index 765ba2f44a54d..89846476a9875 100644
--- a/metadata-service/factories/src/main/java/com/linkedin/metadata/boot/steps/UpgradeDefaultBrowsePathsStep.java
+++ b/metadata-service/factories/src/main/java/com/linkedin/metadata/boot/steps/UpgradeDefaultBrowsePathsStep.java
@@ -1,6 +1,7 @@
package com.linkedin.metadata.boot.steps;
import static com.linkedin.metadata.Constants.*;
+import static com.linkedin.metadata.utils.SystemMetadataUtils.createDefaultSystemMetadata;
import com.google.common.collect.ImmutableSet;
import com.linkedin.common.AuditStamp;
@@ -17,7 +18,6 @@
import com.linkedin.metadata.search.utils.BrowsePathUtils;
import com.linkedin.metadata.utils.GenericRecordUtils;
import com.linkedin.mxe.MetadataChangeProposal;
-import com.linkedin.mxe.SystemMetadata;
import io.datahubproject.metadata.context.OperationContext;
import java.util.Set;
import javax.annotation.Nonnull;
@@ -138,8 +138,7 @@ private void migrateBrowsePath(
proposal.setEntityType(urn.getEntityType());
proposal.setAspectName(Constants.BROWSE_PATHS_ASPECT_NAME);
proposal.setChangeType(ChangeType.UPSERT);
- proposal.setSystemMetadata(
- new SystemMetadata().setRunId(DEFAULT_RUN_ID).setLastObserved(System.currentTimeMillis()));
+ proposal.setSystemMetadata(createDefaultSystemMetadata());
proposal.setAspect(GenericRecordUtils.serializeAspect(newPaths));
entityService.ingestProposal(opContext, proposal, auditStamp, false);
}
diff --git a/metadata-service/restli-servlet-impl/src/main/java/com/linkedin/metadata/resources/entity/EntityResource.java b/metadata-service/restli-servlet-impl/src/main/java/com/linkedin/metadata/resources/entity/EntityResource.java
index e79dda3425682..f2e025c8ed2b4 100644
--- a/metadata-service/restli-servlet-impl/src/main/java/com/linkedin/metadata/resources/entity/EntityResource.java
+++ b/metadata-service/restli-servlet-impl/src/main/java/com/linkedin/metadata/resources/entity/EntityResource.java
@@ -13,6 +13,7 @@
import static com.linkedin.metadata.resources.restli.RestliConstants.*;
import static com.linkedin.metadata.search.utils.SearchUtils.*;
import static com.linkedin.metadata.utils.PegasusUtils.*;
+import static com.linkedin.metadata.utils.SystemMetadataUtils.generateSystemMetadataIfEmpty;
import com.codahale.metrics.MetricRegistry;
import com.datahub.authentication.Authentication;
@@ -20,6 +21,7 @@
import com.datahub.authorization.AuthUtil;
import com.datahub.authorization.EntitySpec;
+import com.linkedin.metadata.utils.SystemMetadataUtils;
import io.datahubproject.metadata.context.RequestContext;
import io.datahubproject.metadata.services.RestrictedService;
import com.linkedin.data.template.SetMode;
@@ -257,19 +259,6 @@ public Task
-**Platform** Policies determine who has platform-level Privileges on DataHub. These include:
+## Platform
+
+Policies determine who has platform-level Privileges on DataHub. These include:
- Managing Users & Groups
- Viewing the DataHub Analytics Page
@@ -31,7 +33,9 @@ A few Platform Policies in plain English include:
- The Data Platform team should be allowed to manage users & groups, view platform analytics, & manage policies themselves
- John from IT should be able to invite new users
-**Metadata** policies determine who can do what to which Metadata Entities. For example:
+## Metadata
+
+Metadata policies determine who can do what to which Metadata Entities. For example:
- Who can edit Dataset Documentation & Links?
- Who can add Owners to a Chart?
@@ -51,17 +55,14 @@ A few **Metadata** Policies in plain English include:
Each of these can be implemented by constructing DataHub Access Policies.
-## Access Policies Setup, Prerequisites, and Permissions
-
-What you need to manage Access Policies on DataHub:
+## Using Access Policies
+:::note Required Access
* **Manage Policies** Privilege
This Platform Privilege allows users to create, edit, and remove all Access Policies on DataHub. Therefore, it should only be
given to those users who will be serving as Admins of the platform. The default `Admin` role has this Privilege.
-
-
-## Using Access Policies
+:::
Policies can be created by first navigating to **Settings > Permissions > Policies**.
@@ -270,10 +271,5 @@ Policies only affect REST APIs when the environment variable `REST_API_AUTHORIZA
Policies are the lowest level primitive for granting Privileges to users on DataHub.
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.
-
-
-
-### Related Features
-
-- [Roles](./roles.md)
\ No newline at end of file
+behind the scenes. Both can be used in conjunction to grant Privileges to end users. For more information on roles
+please refer to [Authorization > Roles](./roles.md).
diff --git a/docs/authorization/policies.md b/docs/authorization/policies.md
index 91b0241c7d514..b393c8ffa3757 100644
--- a/docs/authorization/policies.md
+++ b/docs/authorization/policies.md
@@ -49,14 +49,23 @@ and so on.
A Metadata Policy can be broken down into 3 parts:
-1. **Actors**: The 'who'. Specific users, groups that the policy applies to.
+1. **Resources**: The 'which'. Resources that the policy applies to, e.g. "All Datasets".
2. **Privileges**: The 'what'. What actions are being permitted by a policy, e.g. "Add Tags".
-3. **Resources**: The 'which'. Resources that the policy applies to, e.g. "All Datasets".
+3. **Actors**: The 'who'. Specific users, groups that the policy applies to.
-#### Actors
+#### Resources
+
+Resources can be associated with the policy in a number of ways.
-We currently support 3 ways to define the set of actors the policy applies to: a) list of users b) list of groups, and
-c) owners of the entity. You also have the option to apply the policy to all users or groups.
+1. List of resource types - The entity's type for example: dataset, chart, dashboard
+2. List of resource URNs
+3. List of tags
+4. List of domains
+
+:::note Important Note
+The associations in the list above are an *intersection* or an _AND_ operation. For example, if the policy targets
+`1. resource type: dataset` and `3. resources tagged: 'myTag'`, it will apply to datasets that are tagged with tag 'myTag'.
+:::
#### Privileges
@@ -64,55 +73,162 @@ Check out the list of
privileges [here](https://github.com/datahub-project/datahub/blob/master/metadata-utils/src/main/java/com/linkedin/metadata/authorization/PoliciesConfig.java)
. Note, the privileges are semantic by nature, and does not tie in 1-to-1 with the aspect model.
-All edits on the UI are covered by a privilege, to make sure we have the ability to restrict write access.
+All edits on the UI are covered by a privilege, to make sure we have the ability to restrict write access. See the
+[Reference](#Reference) section below.
+
+#### Actors
+
+We currently support 3 ways to define the set of actors the policy applies to:
+
+1. list of users (or all users)
+2. list of groups (or all groups)
+3. owners of the entity
+
+:::note Important Note
+Unlike resources, the definitions for actors are a union of the actors. For example, if user `1. Alice` is associated
+with the policy as well as `3. owners of the entity`. This means that Alice _OR_ any owner of
+the targeted resource(s) will be included in the policy.
+:::
+
+## Managing Policies
+
+Policies can be managed on the page **Settings > Permissions > Policies** page. The `Policies` tab will only
+be visible to those users having the `Manage Policies` privilege.
-We currently support the following:
+Out of the box, DataHub is deployed with a set of pre-baked Policies. The set of default policies are created at deploy
+time and can be found inside the `policies.json` file within `metadata-service/war/src/main/resources/boot`. This set of policies serves the
+following purposes:
+
+1. Assigns immutable super-user privileges for the root `datahub` user account (Immutable)
+2. Assigns all Platform privileges for all Users by default (Editable)
+
+The reason for #1 is to prevent people from accidentally deleting all policies and getting locked out (`datahub` super user account can be a backup)
+The reason for #2 is to permit administrators to log in via OIDC or another means outside of the `datahub` root account
+when they are bootstrapping with DataHub. This way, those setting up DataHub can start managing policies without friction.
+Note that these privilege *can* and likely *should* be altered inside the **Policies** page of the UI.
+
+:::note Pro-Tip
+To login using the `datahub` account, simply navigate to `/login` and enter `datahub`, `datahub`. Note that the password can be customized for your
+deployment by changing the `user.props` file within the `datahub-frontend` module. Notice that JaaS authentication must be enabled.
+:::note
+
+## Configuration
+
+By default, the Policies feature is *enabled*. This means that the deployment will support creating, editing, removing, and
+most importantly enforcing fine-grained access policies.
+
+In some cases, these capabilities are not desirable. For example, if your company's users are already used to having free reign, you
+may want to keep it that way. Or perhaps it is only your Data Platform team who actively uses DataHub, in which case Policies may be overkill.
+
+For these scenarios, we've provided a back door to disable Policies in your deployment of DataHub. This will completely hide
+the policies management UI and by default will allow all actions on the platform. It will be as though
+each user has *all* privileges, both of the **Platform** & **Metadata** flavor.
+
+To disable Policies, you can simply set the `AUTH_POLICIES_ENABLED` environment variable for the `datahub-gms` service container
+to `false`. For example in your `docker/datahub-gms/docker.env`, you'd place
+
+```
+AUTH_POLICIES_ENABLED=false
+```
+
+### REST API Authorization
+
+Policies only affect REST APIs when the environment variable `REST_API_AUTHORIZATION` is set to `true` for GMS. Some policies only apply when this setting is enabled, marked above, and other Metadata and Platform policies apply to the APIs where relevant, also specified in the table above.
+
+## Reference
+
+For a complete list of privileges see the
+privileges [here](https://github.com/datahub-project/datahub/blob/master/metadata-utils/src/main/java/com/linkedin/metadata/authorization/PoliciesConfig.java).
+
+### Platform-level privileges
-##### Platform-level privileges
These privileges are for DataHub operators to access & manage the administrative functionality of the system.
-| Platform Privileges | Description |
-|-----------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
-| Generate Personal Access Tokens | Allow actor to generate personal access tokens for use with DataHub APIs. |
-| Manage Domains | Allow actor to create and remove Asset Domains. |
-| Manage Home Page Posts | Allow actor to create and delete home page posts |
-| Manage Glossaries | Allow actor to create, edit, and remove Glossary Entities |
-| Manage Tags | Allow actor to create and remove Tags. |
-| Manage Business Attribute | Allow actor to create, update, delete Business Attribute |
-| Manage Documentation Forms | Allow actor to manage forms assigned to assets to assist in documentation efforts. |
-| Manage Policies | Allow actor to create and remove access control policies. Be careful - Actors with this privilege are effectively super users. |
-| Manage Metadata Ingestion | Allow actor to create, remove, and update Metadata Ingestion sources. |
-| Manage Secrets | Allow actor to create & remove Secrets stored inside DataHub. |
-| Manage Users & Groups | Allow actor to create, remove, and update users and groups on DataHub. |
-| View Analytics | Allow actor to view the DataHub analytics dashboard. |
-| Manage All Access Tokens | Allow actor to create, list and revoke access tokens on behalf of users in DataHub. Be careful - Actors with this privilege are effectively super users that can impersonate other users. |
-| Manage User Credentials | Allow actor to manage credentials for native DataHub users, including inviting new users and resetting passwords |
-| Manage Public Views | Allow actor to create, update, and delete any Public (shared) Views. |
-| Manage Ownership Types | Allow actor to create, update and delete Ownership Types. |
-| Create Business Attribute | Allow actor to create new Business Attribute. |
-| Manage Connections | Allow actor to manage connections to external DataHub platforms. |
-| Restore Indices API[^1] | Allow actor to use the Restore Indices API. |
-| Get Timeseries index sizes API[^1] | Allow actor to use the get Timeseries indices size API. |
-| Truncate timeseries aspect index size API[^1] | Allow actor to use the API to truncate a timeseries index. |
-| Get ES task status API[^1] | Allow actor to use the get task status API for an ElasticSearch task. |
-| Enable/Disable Writeability API[^1] | Allow actor to enable or disable GMS writeability for data migrations. |
-| Apply Retention API[^1] | Allow actor to apply retention using the API. |
-| Analytics API access[^1] | Allow actor to use API read access to raw analytics data. |
-| Manage Tests[^2] | Allow actor to create and remove Asset Tests. |
-| View Metadata Proposals[^2] | Allow actor to view the requests tab for viewing metadata proposals. |
-| Create metadata constraints[^2] | Allow actor to create metadata constraints. |
-| Manage Platform Settings[^2] | Allow actor to view and change platform-level settings, like integrations & notifications. |
-| Manage Monitors[^2] | Allow actor to create, update, and delete any data asset monitors, including Custom SQL monitors. Grant with care. |
+#### Access & Credentials
+
+| Platform Privileges | Description |
+|--------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Generate Personal Access Tokens | Allow actor to generate personal access tokens for use with DataHub APIs. |
+| Manage Policies | Allow actor to create and remove access control policies. Be careful - Actors with this privilege are effectively super users. |
+| Manage Secrets | Allow actor to create & remove Secrets stored inside DataHub. |
+| Manage Users & Groups | Allow actor to create, remove, and update users and groups on DataHub. |
+| Manage All Access Tokens | Allow actor to create, list and revoke access tokens on behalf of users in DataHub. Be careful - Actors with this privilege are effectively super users that can impersonate other users. |
+| Manage User Credentials | Allow actor to manage credentials for native DataHub users, including inviting new users and resetting passwords | |
+| Manage Connections | Allow actor to manage connections to external DataHub platforms. |
+
+#### Product Features
+
+| Platform Privileges | Description |
+|-------------------------------------|--------------------------------------------------------------------------------------------------------------------|
+| Manage Home Page Posts | Allow actor to create and delete home page posts |
+| Manage Business Attribute | Allow actor to create, update, delete Business Attribute |
+| Manage Documentation Forms | Allow actor to manage forms assigned to assets to assist in documentation efforts. |
+| Manage Metadata Ingestion | Allow actor to create, remove, and update Metadata Ingestion sources. |
+| Manage Features | Umbrella privilege to manage all features. |
+| View Analytics | Allow actor to view the DataHub analytics dashboard. |
+| Manage Public Views | Allow actor to create, update, and delete any Public (shared) Views. |
+| Manage Ownership Types | Allow actor to create, update and delete Ownership Types. |
+| Create Business Attribute | Allow actor to create new Business Attribute. |
+| Manage Structured Properties | Manage structured properties in your instance. |
+| View Tests | View Asset Tests. |
+| Manage Tests[^2] | Allow actor to create and remove Asset Tests. |
+| View Metadata Proposals[^2] | Allow actor to view the requests tab for viewing metadata proposals. |
+| Create metadata constraints[^2] | Allow actor to create metadata constraints. |
+| Manage Platform Settings[^2] | Allow actor to view and change platform-level settings, like integrations & notifications. |
+| Manage Monitors[^2] | Allow actor to create, update, and delete any data asset monitors, including Custom SQL monitors. Grant with care. |
[^1]: Only active if REST_API_AUTHORIZATION_ENABLED is true
[^2]: DataHub Cloud only
-##### Common metadata privileges
+#### Entity Management
+
+| Platform Privileges | Description |
+|-------------------------------------|------------------------------------------------------------------------------------|
+| Manage Domains | Allow actor to create and remove Asset Domains. |
+| Manage Glossaries | Allow actor to create, edit, and remove Glossary Entities |
+| Manage Tags | Allow actor to create and remove Tags. |
+
+#### System Management
+
+| Platform Privileges | Description |
+|-----------------------------------------------|--------------------------------------------------------------------------|
+| Restore Indices API[^1] | Allow actor to use the Restore Indices API. | |
+| Get Timeseries index sizes API[^1] | Allow actor to use the get Timeseries indices size API. |
+| Truncate timeseries aspect index size API[^1] | Allow actor to use the API to truncate a timeseries index. |
+| Get ES task status API[^1] | Allow actor to use the get task status API for an ElasticSearch task. |
+| Enable/Disable Writeability API[^1] | Allow actor to enable or disable GMS writeability for data migrations. |
+| Apply Retention API[^1] | Allow actor to apply retention using the API. |
+| Analytics API access[^1] | Allow actor to use API read access to raw analytics data. |
+
+[^1]: Only active if REST_API_AUTHORIZATION_ENABLED is true
+[^2]: DataHub Cloud only
+
+### Common Metadata Privileges
+
These privileges are to view & modify any entity within DataHub.
-| Common Privileges | Description |
+#### Entity Privileges
+
+| Entity Privileges | Description |
|-------------------------------------|--------------------------------------------------------------------------------------------|
| View Entity Page | Allow actor to view the entity page. |
+| Edit Entity | Allow actor to edit any information about an entity. Super user privileges for the entity. |
+| Delete | Allow actor to delete this entity. |
+| Create Entity | Allow actor to create an entity if it doesn't exist. |
+| Entity Exists | Allow actor to determine whether the entity exists. |
+| Get Timeline API[^1] | Allow actor to use the GET Timeline API. |
+| Get Entity + Relationships API[^1] | Allow actor to use the GET Entity and Relationships API. |
+| Get Aspect/Entity Count APIs[^1] | Allow actor to use the GET Aspect/Entity Count APIs. |
+| View Entity[^2] | Allow actor to view the entity in search results. |
+| Share Entity[^2] | Allow actor to share an entity with another DataHub Cloud instance. |
+
+[^1]: Only active if REST_API_AUTHORIZATION_ENABLED is true
+[^2]: DataHub Cloud only
+
+#### Aspect Privileges
+
+| Aspect Privileges | Description |
+|-------------------------------------|--------------------------------------------------------------------------------------------|
| Edit Tags | Allow actor to add and remove tags to an asset. |
| Edit Glossary Terms | Allow actor to add and remove glossary terms to an asset. |
| Edit Description | Allow actor to edit the description (documentation) of an entity. |
@@ -122,35 +238,57 @@ These privileges are to view & modify any entity within DataHub.
| Edit Data Product | Allow actor to edit the Data Product of an entity. |
| Edit Deprecation | Allow actor to edit the Deprecation status of an entity. |
| Edit Incidents | Allow actor to create and remove incidents for an entity. |
-| Edit Entity | Allow actor to edit any information about an entity. Super user privileges for the entity. |
| Edit Lineage | Allow actor to add and remove lineage edges for this entity. |
| Edit Properties | Allow actor to edit the properties for an entity. |
| Edit Owners | Allow actor to add and remove owners of an entity. |
-| Delete | Allow actor to delete this entity. |
-| Search API[^1] | Allow actor to access search APIs. |
-| Get Aspect/Entity Count APIs[^1] | Allow actor to use the GET Aspect/Entity Count APIs. |
| Get Timeseries Aspect API[^1] | Allow actor to use the GET Timeseries Aspect API. |
-| Get Entity + Relationships API[^1] | Allow actor to use the GET Entity and Relationships API. |
-| Get Timeline API[^1] | Allow actor to use the GET Timeline API. |
+
+[^1]: Only active if REST_API_AUTHORIZATION_ENABLED is true
+[^2]: DataHub Cloud only
+
+#### Proposals
+
+| Proposals Privileges | Description |
+|------------------------------------|--------------------------------------------------------------------------------------------|
+| Propose Tags[^2] | Allow actor to propose adding a tag to an asset. |
+| Propose Glossary Terms[^2] | Allow actor to propose adding a glossary term to an asset. |
+| Propose Documentation[^2] | Allow actor to propose updates to an asset's documentation. |
+| Manage Tag Proposals[^2] | Allow actor to manage a proposal to add a tag to an asset. |
+| Manage Glossary Term Proposals[^2] | Allow actor to manage a proposal to add a glossary term to an asset. |
+| Manage Documentation Proposals[^2] | Allow actor to manage a proposal update an asset's documentation |
+
+[^1]: Only active if REST_API_AUTHORIZATION_ENABLED is true
+[^2]: DataHub Cloud only
+
+#### System Management
+
+| System Privileges | Description |
+|-------------------------------------|--------------------------------------------------------------------------------------------|
| Explain ElasticSearch Query API[^1] | Allow actor to use the Operations API explain endpoint. |
| Produce Platform Event API[^1] | Allow actor to produce Platform Events using the API. |
-| Create Entity | Allow actor to create an entity if it doesn't exist. |
-| Entity Exists | Allow actor to determine whether the entity exists. |
-| View Entity[^2] | Allow actor to view the entity in search results. |
-| Propose Tags[^2] | Allow actor to propose adding a tag to an asset. |
-| Propose Glossary Terms[^2] | Allow actor to propose adding a glossary term to an asset. |
-| Propose Documentation[^2] | Allow actor to propose updates to an asset's documentation. |
-| Manage Tag Proposals[^2] | Allow actor to manage a proposal to add a tag to an asset. |
-| Manage Glossary Term Proposals[^2] | Allow actor to manage a proposal to add a glossary term to an asset. |
-| Manage Documentation Proposals[^2] | Allow actor to manage a proposal update an asset's documentation |
-| Share Entity[^2] | Allow actor to share an entity with another DataHub Cloud instance. |
[^1]: Only active if REST_API_AUTHORIZATION_ENABLED is true
[^2]: DataHub Cloud only
-##### Specific entity-level privileges
+### Specific Entity-level Privileges
These privileges are not generalizable.
+#### Users & Groups
+
+| Entity | Privilege | Description |
+|--------------|-------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Group | Edit Group Members | Allow actor to add and remove members to a group. |
+| Group | Manage Group Notification Settings[^2] | Allow actor to manage notification settings for a group. |
+| Group | Manage Group Subscriptions[^2] | Allow actor to manage subscriptions for a group. |
+| Group | Edit Contact Information | Allow actor to change the contact information such as email & chat handles. |
+| User | Edit Contact Information | Allow actor to change the contact information such as email & chat handles. |
+| User | Edit User Profile | Allow actor to change the user's profile including display name, bio, title, profile image, etc. |
+
+[^1]: Only active if REST_API_AUTHORIZATION_ENABLED is true
+[^2]: DataHub Cloud only
+
+#### Dataset
+
| Entity | Privilege | Description |
|--------------|-------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Dataset | View Dataset Usage | Allow actor to access dataset usage information (includes usage statistics and queries). |
@@ -174,101 +312,22 @@ These privileges are not generalizable.
| Domain | Manage Data Products | Allow actor to create, edit, and delete Data Products within a Domain |
| GlossaryNode | Manage Direct Glossary Children | Allow actor to create and delete the direct children of this entity. |
| GlossaryNode | Manage All Glossary Children | Allow actor to create and delete everything underneath this entity. |
-| Group | Edit Group Members | Allow actor to add and remove members to a group. |
-| Group | Manage Group Notification Settings[^2] | Allow actor to manage notification settings for a group. |
-| Group | Manage Group Subscriptions[^2] | Allow actor to manage subscriptions for a group. |
-| Group | Edit Contact Information | Allow actor to change the contact information such as email & chat handles. |
-| User | Edit Contact Information | Allow actor to change the contact information such as email & chat handles. |
-| User | Edit User Profile | Allow actor to change the user's profile including display name, bio, title, profile image, etc. |
-
-#### Resources
-
-Resource filter defines the set of resources that the policy applies to is defined using a list of criteria. Each
-criterion defines a field type (like type, urn, domain), a list of field values to compare, and a
-condition (like EQUALS). It essentially checks whether the field of a certain resource matches any of the input values.
-Note, that if there are no criteria or resource is not set, policy is applied to ALL resources.
-
-For example, the following resource filter will apply the policy to datasets, charts, and dashboards under domain 1.
-
-```json
-{
- "resources": {
- "filter": {
- "criteria": [
- {
- "field": "TYPE",
- "condition": "EQUALS",
- "values": [
- "dataset",
- "chart",
- "dashboard"
- ]
- },
- {
- "field": "DOMAIN",
- "values": [
- "urn:li:domain:domain1"
- ],
- "condition": "EQUALS"
- }
- ]
- }
- }
-}
-```
-Where `resources` is inside the `info` aspect of a Policy.
-
-Supported fields are as follows
-
-| Field Type | Description | Example |
-|---------------|------------------------|-------------------------|
-| type | Type of the resource | dataset, chart, dataJob |
-| urn | Urn of the resource | urn:li:dataset:... |
-| domain | Domain of the resource | urn:li:domain:domainX |
-
-## Managing Policies
-
-Policies can be managed on the page **Settings > Permissions > Policies** page. The `Policies` tab will only
-be visible to those users having the `Manage Policies` privilege.
-
-Out of the box, DataHub is deployed with a set of pre-baked Policies. The set of default policies are created at deploy
-time and can be found inside the `policies.json` file within `metadata-service/war/src/main/resources/boot`. This set of policies serves the
-following purposes:
-
-1. Assigns immutable super-user privileges for the root `datahub` user account (Immutable)
-2. Assigns all Platform privileges for all Users by default (Editable)
-
-The reason for #1 is to prevent people from accidentally deleting all policies and getting locked out (`datahub` super user account can be a backup)
-The reason for #2 is to permit administrators to log in via OIDC or another means outside of the `datahub` root account
-when they are bootstrapping with DataHub. This way, those setting up DataHub can start managing policies without friction.
-Note that these privilege *can* and likely *should* be altered inside the **Policies** page of the UI.
-
-> Pro-Tip: To login using the `datahub` account, simply navigate to `/login` and enter `datahub`, `datahub`. Note that the password can be customized for your
-deployment by changing the `user.props` file within the `datahub-frontend` module. Notice that JaaS authentication must be enabled.
-
-## Configuration
-
-By default, the Policies feature is *enabled*. This means that the deployment will support creating, editing, removing, and
-most importantly enforcing fine-grained access policies.
-
-In some cases, these capabilities are not desirable. For example, if your company's users are already used to having free reign, you
-may want to keep it that way. Or perhaps it is only your Data Platform team who actively uses DataHub, in which case Policies may be overkill.
-For these scenarios, we've provided a back door to disable Policies in your deployment of DataHub. This will completely hide
-the policies management UI and by default will allow all actions on the platform. It will be as though
-each user has *all* privileges, both of the **Platform** & **Metadata** flavor.
-To disable Policies, you can simply set the `AUTH_POLICIES_ENABLED` environment variable for the `datahub-gms` service container
-to `false`. For example in your `docker/datahub-gms/docker.env`, you'd place
+[^1]: Only active if REST_API_AUTHORIZATION_ENABLED is true
+[^2]: DataHub Cloud only
-```
-AUTH_POLICIES_ENABLED=false
-```
+#### Misc
-### REST API Authorization
-
-Policies only affect REST APIs when the environment variable `REST_API_AUTHORIZATION` is set to `true` for GMS. Some policies only apply when this setting is enabled, marked above, and other Metadata and Platform policies apply to the APIs where relevant, also specified in the table above.
+| Entity | Privilege | Description |
+|--------------|-------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
+| Tag | Edit Tag Color | Allow actor to change the color of a Tag. |
+| Domain | Manage Data Products | Allow actor to create, edit, and delete Data Products within a Domain |
+| GlossaryNode | Manage Direct Glossary Children | Allow actor to create and delete the direct children of this entity. |
+| GlossaryNode | Manage All Glossary Children | Allow actor to create and delete everything underneath this entity. |
+[^1]: Only active if REST_API_AUTHORIZATION_ENABLED is true
+[^2]: DataHub Cloud only
## Coming Soon
@@ -278,7 +337,7 @@ The DataHub team is hard at work trying to improve the Policies feature. We are
Under consideration
-- Ability to define Metadata Policies against multiple reosurces scoped to particular "Containers" (e.g. A "schema", "database", or "collection")
+- Ability to define Metadata Policies against multiple resources scoped to particular "Containers" (e.g. A "schema", "database", or "collection")
## Feedback / Questions / Concerns
From 479f31d0f2368ab7376c419f4b365239da353d98 Mon Sep 17 00:00:00 2001
From: david-leifker <114954101+david-leifker@users.noreply.github.com>
Date: Fri, 9 Aug 2024 14:42:59 -0500
Subject: [PATCH 28/40] fix(openapi): fix openapi v2 and v3 docs update
(#11139)
---
docs/api/tutorials/structured-properties.md | 204 ++++++++++--------
.../controller/GenericEntitiesController.java | 23 +-
.../v2/controller/EntityController.java | 25 +++
.../v3/controller/EntityController.java | 27 +++
4 files changed, 169 insertions(+), 110 deletions(-)
diff --git a/docs/api/tutorials/structured-properties.md b/docs/api/tutorials/structured-properties.md
index 6f6c6541554d9..00e992f2bd0bb 100644
--- a/docs/api/tutorials/structured-properties.md
+++ b/docs/api/tutorials/structured-properties.md
@@ -158,29 +158,37 @@ curl -X 'POST' -v \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
+ "value": {
"qualifiedName": "io.acryl.privacy.retentionTime",
- "valueType": "urn:li:dataType:datahub.number",
- "description": "Retention Time is used to figure out how long to retain records in a dataset",
- "displayName": "Retention Time",
- "cardinality": "MULTIPLE",
- "entityTypes": [
- "urn:li:entityType:datahub.dataset",
- "urn:li:entityType:datahub.dataFlow"
- ],
- "allowedValues": [
- {
- "value": {"double": 30},
- "description": "30 days, usually reserved for datasets that are ephemeral and contain pii"
- },
- {
- "value": {"double": 60},
- "description": "Use this for datasets that drive monthly reporting but contain pii"
- },
- {
- "value": {"double": 365},
- "description": "Use this for non-sensitive data that can be retained for longer"
- }
- ]
+ "valueType": "urn:li:dataType:datahub.number",
+ "description": "Retention Time is used to figure out how long to retain records in a dataset",
+ "displayName": "Retention Time",
+ "cardinality": "MULTIPLE",
+ "entityTypes": [
+ "urn:li:entityType:datahub.dataset",
+ "urn:li:entityType:datahub.dataFlow"
+ ],
+ "allowedValues": [
+ {
+ "value": {
+ "double": 30
+ },
+ "description": "30 days, usually reserved for datasets that are ephemeral and contain pii"
+ },
+ {
+ "value": {
+ "double": 60
+ },
+ "description": "Use this for datasets that drive monthly reporting but contain pii"
+ },
+ {
+ "value": {
+ "double": 365
+ },
+ "description": "Use this for non-sensitive data that can be retained for longer"
+ }
+ ]
+ }
}' | jq
```
@@ -474,14 +482,16 @@ curl -X 'POST' -v \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
- "properties": [
- {
- "propertyUrn": "urn:li:structuredProperty:io.acryl.privacy.retentionTime",
- "values": [
- {"double": 60.0}
- ]
- }
- ]
+ "value": {
+ "properties": [
+ {
+ "propertyUrn": "urn:li:structuredProperty:io.acryl.privacy.retentionTime",
+ "values": [
+ {"double": 60.0}
+ ]
+ }
+ ]
+ }
}' | jq
```
Example Response:
@@ -627,23 +637,25 @@ curl -X 'POST' -v \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
- "qualifiedName": "io.acryl.privacy.retentionTime02",
- "displayName": "Retention Time 02",
- "valueType": "urn:li:dataType:datahub.string",
- "allowedValues": [
- {
- "value": {"string": "foo2"},
- "description": "test foo2 value"
- },
- {
- "value": {"string": "bar2"},
- "description": "test bar2 value"
- }
- ],
- "cardinality": "SINGLE",
- "entityTypes": [
- "urn:li:entityType:datahub.dataset"
- ]
+ "value": {
+ "qualifiedName": "io.acryl.privacy.retentionTime02",
+ "displayName": "Retention Time 02",
+ "valueType": "urn:li:dataType:datahub.string",
+ "allowedValues": [
+ {
+ "value": {"string": "foo2"},
+ "description": "test foo2 value"
+ },
+ {
+ "value": {"string": "bar2"},
+ "description": "test bar2 value"
+ }
+ ],
+ "cardinality": "SINGLE",
+ "entityTypes": [
+ "urn:li:entityType:datahub.dataset"
+ ]
+ }
}' | jq
```
@@ -686,24 +698,26 @@ Specically, this will set `io.acryl.privacy.retentionTime` as `60.0` and `io.acr
```shell
curl -X 'POST' -v \
- 'http://localhost:8080/openapi/v3/entity/dataset/urn%3Ali%3Adataset%3A%28urn%3Ali%3AdataPlatform%3Ahive%2CSampleHiveDataset%2CPROD%29/structuredProperties' \
+ 'http://localhost:8080/openapi/v3/entity/dataset/urn%3Ali%3Adataset%3A%28urn%3Ali%3AdataPlatform%3Ahive%2CSampleHiveDataset%2CPROD%29/structuredProperties?createIfNotExists=false' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
- "properties": [
- {
- "propertyUrn": "urn:li:structuredProperty:io.acryl.privacy.retentionTime",
- "values": [
- {"double": 60.0}
- ]
- },
- {
- "propertyUrn": "urn:li:structuredProperty:io.acryl.privacy.retentionTime02",
- "values": [
- {"string": "bar2"}
- ]
- }
- ]
+ "value": {
+ "properties": [
+ {
+ "propertyUrn": "urn:li:structuredProperty:io.acryl.privacy.retentionTime",
+ "values": [
+ {"double": 60.0}
+ ]
+ },
+ {
+ "propertyUrn": "urn:li:structuredProperty:io.acryl.privacy.retentionTime02",
+ "values": [
+ {"string": "bar2"}
+ ]
+ }
+ ]
+ }
}' | jq
```
@@ -1111,7 +1125,9 @@ curl -X 'POST' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
-"removed": true
+ "value": {
+ "removed": true
+ }
}' | jq
```
@@ -1132,11 +1148,13 @@ If you want to **remove the soft delete**, you can do so by either hard deleting
```shell
curl -X 'POST' \
- 'http://localhost:8080/openapi/v3/entity/structuredProperty/urn%3Ali%3AstructuredProperty%3Aio.acryl.privacy.retentionTime/status?systemMetadata=false' \
+ 'http://localhost:8080/openapi/v3/entity/structuredProperty/urn%3Ali%3AstructuredProperty%3Aio.acryl.privacy.retentionTime/status?systemMetadata=false&createIfNotExists=false' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
-"removed": false
+ "value": {
+ "removed": true
+ }
}' | jq
```
@@ -1271,34 +1289,42 @@ Change the cardinality to `SINGLE` and add a `version`.
```shell
curl -X 'POST' -v \
- 'http://localhost:8080/openapi/v3/entity/structuredProperty/urn%3Ali%3AstructuredProperty%3Aio.acryl.privacy.retentionTime/propertyDefinition' \
+ 'http://localhost:8080/openapi/v3/entity/structuredProperty/urn%3Ali%3AstructuredProperty%3Aio.acryl.privacy.retentionTime/propertyDefinition?createIfNotExists=false' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
+ "value": {
"qualifiedName": "io.acryl.privacy.retentionTime",
- "valueType": "urn:li:dataType:datahub.number",
- "description": "Retention Time is used to figure out how long to retain records in a dataset",
- "displayName": "Retention Time",
- "cardinality": "SINGLE",
- "version": "20240614080000",
- "entityTypes": [
- "urn:li:entityType:datahub.dataset",
- "urn:li:entityType:datahub.dataFlow"
- ],
- "allowedValues": [
- {
- "value": {"double": 30},
- "description": "30 days, usually reserved for datasets that are ephemeral and contain pii"
- },
- {
- "value": {"double": 60},
- "description": "Use this for datasets that drive monthly reporting but contain pii"
- },
- {
- "value": {"double": 365},
- "description": "Use this for non-sensitive data that can be retained for longer"
- }
- ]
+ "valueType": "urn:li:dataType:datahub.number",
+ "description": "Retention Time is used to figure out how long to retain records in a dataset",
+ "displayName": "Retention Time",
+ "cardinality": "SINGLE",
+ "version": "20240614080000",
+ "entityTypes": [
+ "urn:li:entityType:datahub.dataset",
+ "urn:li:entityType:datahub.dataFlow"
+ ],
+ "allowedValues": [
+ {
+ "value": {
+ "double": 30
+ },
+ "description": "30 days, usually reserved for datasets that are ephemeral and contain pii"
+ },
+ {
+ "value": {
+ "double": 60
+ },
+ "description": "Use this for datasets that drive monthly reporting but contain pii"
+ },
+ {
+ "value": {
+ "double": 365
+ },
+ "description": "Use this for non-sensitive data that can be retained for longer"
+ }
+ ]
+ }
}' | jq
```
diff --git a/metadata-service/openapi-servlet/src/main/java/io/datahubproject/openapi/controller/GenericEntitiesController.java b/metadata-service/openapi-servlet/src/main/java/io/datahubproject/openapi/controller/GenericEntitiesController.java
index de5d2ae1118d4..f415a4f47c9dc 100644
--- a/metadata-service/openapi-servlet/src/main/java/io/datahubproject/openapi/controller/GenericEntitiesController.java
+++ b/metadata-service/openapi-servlet/src/main/java/io/datahubproject/openapi/controller/GenericEntitiesController.java
@@ -13,14 +13,11 @@
import com.datahub.authorization.AuthorizerChain;
import com.datahub.util.RecordUtils;
import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.google.common.collect.ImmutableSet;
import com.linkedin.common.urn.Urn;
-import com.linkedin.data.ByteString;
import com.linkedin.data.template.RecordTemplate;
import com.linkedin.entity.EnvelopedAspect;
-import com.linkedin.events.metadata.ChangeType;
import com.linkedin.metadata.aspect.AspectRetriever;
import com.linkedin.metadata.aspect.batch.AspectsBatch;
import com.linkedin.metadata.aspect.batch.ChangeMCP;
@@ -41,7 +38,6 @@
import com.linkedin.metadata.search.SearchEntityArray;
import com.linkedin.metadata.search.SearchService;
import com.linkedin.metadata.utils.AuditStampUtils;
-import com.linkedin.metadata.utils.GenericRecordUtils;
import com.linkedin.metadata.utils.SearchUtil;
import com.linkedin.mxe.SystemMetadata;
import com.linkedin.util.Pair;
@@ -57,7 +53,6 @@
import jakarta.servlet.http.HttpServletRequest;
import java.lang.reflect.InvocationTargetException;
import java.net.URISyntaxException;
-import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Nonnull;
@@ -726,28 +721,14 @@ protected RecordTemplate toRecordTemplate(
aspectSpec.getDataTemplateClass(), envelopedAspect.getValue().data());
}
- protected ChangeMCP toUpsertItem(
+ protected abstract ChangeMCP toUpsertItem(
@Nonnull AspectRetriever aspectRetriever,
Urn entityUrn,
AspectSpec aspectSpec,
Boolean createIfNotExists,
String jsonAspect,
Actor actor)
- throws JsonProcessingException {
- JsonNode jsonNode = objectMapper.readTree(jsonAspect);
- String aspectJson = jsonNode.get("value").toString();
- return ChangeItemImpl.builder()
- .urn(entityUrn)
- .aspectName(aspectSpec.getName())
- .changeType(Boolean.TRUE.equals(createIfNotExists) ? ChangeType.CREATE : ChangeType.UPSERT)
- .auditStamp(AuditStampUtils.createAuditStamp(actor.toUrnStr()))
- .recordTemplate(
- GenericRecordUtils.deserializeAspect(
- ByteString.copyString(aspectJson, StandardCharsets.UTF_8),
- GenericRecordUtils.JSON,
- aspectSpec))
- .build(aspectRetriever);
- }
+ throws URISyntaxException, JsonProcessingException;
protected ChangeMCP toUpsertItem(
@Nonnull AspectRetriever aspectRetriever,
diff --git a/metadata-service/openapi-servlet/src/main/java/io/datahubproject/openapi/v2/controller/EntityController.java b/metadata-service/openapi-servlet/src/main/java/io/datahubproject/openapi/v2/controller/EntityController.java
index 54a7724cadd34..1207eb331b795 100644
--- a/metadata-service/openapi-servlet/src/main/java/io/datahubproject/openapi/v2/controller/EntityController.java
+++ b/metadata-service/openapi-servlet/src/main/java/io/datahubproject/openapi/v2/controller/EntityController.java
@@ -13,8 +13,11 @@
import com.linkedin.data.ByteString;
import com.linkedin.data.template.RecordTemplate;
import com.linkedin.entity.EnvelopedAspect;
+import com.linkedin.events.metadata.ChangeType;
+import com.linkedin.metadata.aspect.AspectRetriever;
import com.linkedin.metadata.aspect.batch.AspectsBatch;
import com.linkedin.metadata.aspect.batch.BatchItem;
+import com.linkedin.metadata.aspect.batch.ChangeMCP;
import com.linkedin.metadata.entity.EntityApiUtils;
import com.linkedin.metadata.entity.IngestResult;
import com.linkedin.metadata.entity.UpdateAspectResult;
@@ -260,4 +263,26 @@ protected List buildEntityList(
}
return responseList;
}
+
+ @Override
+ protected ChangeMCP toUpsertItem(
+ @Nonnull AspectRetriever aspectRetriever,
+ Urn entityUrn,
+ AspectSpec aspectSpec,
+ Boolean createIfNotExists,
+ String jsonAspect,
+ Actor actor)
+ throws URISyntaxException {
+ return ChangeItemImpl.builder()
+ .urn(entityUrn)
+ .aspectName(aspectSpec.getName())
+ .changeType(Boolean.TRUE.equals(createIfNotExists) ? ChangeType.CREATE : ChangeType.UPSERT)
+ .auditStamp(AuditStampUtils.createAuditStamp(actor.toUrnStr()))
+ .recordTemplate(
+ GenericRecordUtils.deserializeAspect(
+ ByteString.copyString(jsonAspect, StandardCharsets.UTF_8),
+ GenericRecordUtils.JSON,
+ aspectSpec))
+ .build(aspectRetriever);
+ }
}
diff --git a/metadata-service/openapi-servlet/src/main/java/io/datahubproject/openapi/v3/controller/EntityController.java b/metadata-service/openapi-servlet/src/main/java/io/datahubproject/openapi/v3/controller/EntityController.java
index a0478c9af1609..fbc9bf2956cfd 100644
--- a/metadata-service/openapi-servlet/src/main/java/io/datahubproject/openapi/v3/controller/EntityController.java
+++ b/metadata-service/openapi-servlet/src/main/java/io/datahubproject/openapi/v3/controller/EntityController.java
@@ -14,8 +14,11 @@
import com.linkedin.common.urn.Urn;
import com.linkedin.data.ByteString;
import com.linkedin.entity.EnvelopedAspect;
+import com.linkedin.events.metadata.ChangeType;
+import com.linkedin.metadata.aspect.AspectRetriever;
import com.linkedin.metadata.aspect.batch.AspectsBatch;
import com.linkedin.metadata.aspect.batch.BatchItem;
+import com.linkedin.metadata.aspect.batch.ChangeMCP;
import com.linkedin.metadata.entity.EntityApiUtils;
import com.linkedin.metadata.entity.IngestResult;
import com.linkedin.metadata.entity.UpdateAspectResult;
@@ -348,4 +351,28 @@ protected AspectsBatch toMCPBatch(
.retrieverContext(opContext.getRetrieverContext().get())
.build();
}
+
+ @Override
+ protected ChangeMCP toUpsertItem(
+ @Nonnull AspectRetriever aspectRetriever,
+ Urn entityUrn,
+ AspectSpec aspectSpec,
+ Boolean createIfNotExists,
+ String jsonAspect,
+ Actor actor)
+ throws JsonProcessingException {
+ JsonNode jsonNode = objectMapper.readTree(jsonAspect);
+ String aspectJson = jsonNode.get("value").toString();
+ return ChangeItemImpl.builder()
+ .urn(entityUrn)
+ .aspectName(aspectSpec.getName())
+ .changeType(Boolean.TRUE.equals(createIfNotExists) ? ChangeType.CREATE : ChangeType.UPSERT)
+ .auditStamp(AuditStampUtils.createAuditStamp(actor.toUrnStr()))
+ .recordTemplate(
+ GenericRecordUtils.deserializeAspect(
+ ByteString.copyString(aspectJson, StandardCharsets.UTF_8),
+ GenericRecordUtils.JSON,
+ aspectSpec))
+ .build(aspectRetriever);
+ }
}
From 946b9f37450a51dd12670f4b383d6970767c4129 Mon Sep 17 00:00:00 2001
From: RyanHolstien
Date: Fri, 9 Aug 2024 14:55:35 -0500
Subject: [PATCH 29/40] feat(auth): grant type and acr values custom oidc
parameters support (#11116)
---
.../app/auth/sso/oidc/OidcConfigs.java | 12 +++++++++++-
.../app/auth/sso/oidc/OidcProvider.java | 14 +++++++++++++-
datahub-frontend/conf/application.conf | 2 ++
3 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/datahub-frontend/app/auth/sso/oidc/OidcConfigs.java b/datahub-frontend/app/auth/sso/oidc/OidcConfigs.java
index 753edaf89d988..080ca236630bf 100644
--- a/datahub-frontend/app/auth/sso/oidc/OidcConfigs.java
+++ b/datahub-frontend/app/auth/sso/oidc/OidcConfigs.java
@@ -41,6 +41,8 @@ public class OidcConfigs extends SsoConfigs {
public static final String OIDC_EXTRACT_JWT_ACCESS_TOKEN_CLAIMS =
"auth.oidc.extractJwtAccessTokenClaims";
public static final String OIDC_PREFERRED_JWS_ALGORITHM = "auth.oidc.preferredJwsAlgorithm";
+ public static final String OIDC_GRANT_TYPE = "auth.oidc.grantType";
+ public static final String OIDC_ACR_VALUES = "auth.oidc.acrValues";
/** Default values */
private static final String DEFAULT_OIDC_USERNAME_CLAIM = "email";
@@ -75,7 +77,9 @@ public class OidcConfigs extends SsoConfigs {
private final Optional customParamResource;
private final String readTimeout;
private final Optional extractJwtAccessTokenClaims;
- private Optional preferredJwsAlgorithm;
+ private final Optional preferredJwsAlgorithm;
+ private final Optional grantType;
+ private final Optional acrValues;
public OidcConfigs(Builder builder) {
super(builder);
@@ -98,6 +102,8 @@ public OidcConfigs(Builder builder) {
this.readTimeout = builder.readTimeout;
this.extractJwtAccessTokenClaims = builder.extractJwtAccessTokenClaims;
this.preferredJwsAlgorithm = builder.preferredJwsAlgorithm;
+ this.acrValues = builder.acrValues;
+ this.grantType = builder.grantType;
}
public static class Builder extends SsoConfigs.Builder {
@@ -123,6 +129,8 @@ public static class Builder extends SsoConfigs.Builder {
private String readTimeout = DEFAULT_OIDC_READ_TIMEOUT;
private Optional extractJwtAccessTokenClaims = Optional.empty();
private Optional preferredJwsAlgorithm = Optional.empty();
+ private Optional grantType = Optional.empty();
+ private Optional acrValues = Optional.empty();
public Builder from(final com.typesafe.config.Config configs) {
super.from(configs);
@@ -169,6 +177,8 @@ public Builder from(final com.typesafe.config.Config configs) {
getOptional(configs, OIDC_EXTRACT_JWT_ACCESS_TOKEN_CLAIMS).map(Boolean::parseBoolean);
preferredJwsAlgorithm =
Optional.ofNullable(getOptional(configs, OIDC_PREFERRED_JWS_ALGORITHM, null));
+ grantType = Optional.ofNullable(getOptional(configs, OIDC_GRANT_TYPE, null));
+ acrValues = Optional.ofNullable(getOptional(configs, OIDC_ACR_VALUES, null));
return this;
}
diff --git a/datahub-frontend/app/auth/sso/oidc/OidcProvider.java b/datahub-frontend/app/auth/sso/oidc/OidcProvider.java
index 39a65a46cbf91..a8a3205e8299c 100644
--- a/datahub-frontend/app/auth/sso/oidc/OidcProvider.java
+++ b/datahub-frontend/app/auth/sso/oidc/OidcProvider.java
@@ -3,6 +3,8 @@
import auth.sso.SsoProvider;
import auth.sso.oidc.custom.CustomOidcClient;
import com.google.common.collect.ImmutableMap;
+import java.util.HashMap;
+import java.util.Map;
import lombok.extern.slf4j.Slf4j;
import org.pac4j.core.client.Client;
import org.pac4j.core.http.callback.PathParameterCallbackUrlResolver;
@@ -64,9 +66,19 @@ private Client createPac4jClient() {
_oidcConfigs.getResponseType().ifPresent(oidcConfiguration::setResponseType);
_oidcConfigs.getResponseMode().ifPresent(oidcConfiguration::setResponseMode);
_oidcConfigs.getUseNonce().ifPresent(oidcConfiguration::setUseNonce);
+ Map customParamsMap = new HashMap<>();
_oidcConfigs
.getCustomParamResource()
- .ifPresent(value -> oidcConfiguration.setCustomParams(ImmutableMap.of("resource", value)));
+ .ifPresent(value -> customParamsMap.put("resource", value));
+ _oidcConfigs
+ .getGrantType()
+ .ifPresent(value -> customParamsMap.put("grant_type", value));
+ _oidcConfigs
+ .getAcrValues()
+ .ifPresent(value -> customParamsMap.put("acr_values", value));
+ if (!customParamsMap.isEmpty()) {
+ oidcConfiguration.setCustomParams(customParamsMap);
+ }
_oidcConfigs
.getPreferredJwsAlgorithm()
.ifPresent(
diff --git a/datahub-frontend/conf/application.conf b/datahub-frontend/conf/application.conf
index dc243ecadafd8..63ff2c9166fbc 100644
--- a/datahub-frontend/conf/application.conf
+++ b/datahub-frontend/conf/application.conf
@@ -186,6 +186,8 @@ auth.oidc.customParam.resource = ${?AUTH_OIDC_CUSTOM_PARAM_RESOURCE}
auth.oidc.readTimeout = ${?AUTH_OIDC_READ_TIMEOUT}
auth.oidc.extractJwtAccessTokenClaims = ${?AUTH_OIDC_EXTRACT_JWT_ACCESS_TOKEN_CLAIMS} # Whether to extract claims from JWT access token. Defaults to false.
auth.oidc.preferredJwsAlgorithm = ${?AUTH_OIDC_PREFERRED_JWS_ALGORITHM} # Which jws algorithm to use
+auth.oidc.acrValues = ${?AUTH_OIDC_ACR_VALUES}
+auth.oidc.grantType = ${?AUTH_OIDC_GRANT_TYPE}
#
# By default, the callback URL that should be registered with the identity provider is computed as {$baseUrl}/callback/oidc.
From 4d2af40465bc26e432285999c1250f6966997124 Mon Sep 17 00:00:00 2001
From: RyanHolstien
Date: Fri, 9 Aug 2024 14:56:32 -0500
Subject: [PATCH 30/40] fix(mutator): mutator hook fixes (#11140)
---
.../models/registry/ConfigEntityRegistry.java | 2 +-
.../registry/SnapshotEntityRegistry.java | 21 +++++++
.../metadata/aspect/plugins/PluginsTest.java | 36 ++++++++---
.../java/com/datahub/util/RecordUtils.java | 12 ++++
.../entity/ebean/batch/AspectsBatchImpl.java | 60 +++++++++++++++----
.../entityregistry/EntityRegistryFactory.java | 18 +++++-
6 files changed, 127 insertions(+), 22 deletions(-)
diff --git a/entity-registry/src/main/java/com/linkedin/metadata/models/registry/ConfigEntityRegistry.java b/entity-registry/src/main/java/com/linkedin/metadata/models/registry/ConfigEntityRegistry.java
index 4238c333615ec..8dd642f63dd97 100644
--- a/entity-registry/src/main/java/com/linkedin/metadata/models/registry/ConfigEntityRegistry.java
+++ b/entity-registry/src/main/java/com/linkedin/metadata/models/registry/ConfigEntityRegistry.java
@@ -52,7 +52,7 @@ public class ConfigEntityRegistry implements EntityRegistry {
private final DataSchemaFactory dataSchemaFactory;
@Getter private final PluginFactory pluginFactory;
- @Nullable
+ @Getter @Nullable
private BiFunction, PluginFactory> pluginFactoryProvider;
private final Map entityNameToSpec;
diff --git a/entity-registry/src/main/java/com/linkedin/metadata/models/registry/SnapshotEntityRegistry.java b/entity-registry/src/main/java/com/linkedin/metadata/models/registry/SnapshotEntityRegistry.java
index c60f89c510cd7..16df2d452a619 100644
--- a/entity-registry/src/main/java/com/linkedin/metadata/models/registry/SnapshotEntityRegistry.java
+++ b/entity-registry/src/main/java/com/linkedin/metadata/models/registry/SnapshotEntityRegistry.java
@@ -22,6 +22,8 @@
import com.linkedin.metadata.aspect.patch.template.dataset.UpstreamLineageTemplate;
import com.linkedin.metadata.aspect.patch.template.form.FormInfoTemplate;
import com.linkedin.metadata.aspect.patch.template.structuredproperty.StructuredPropertyDefinitionTemplate;
+import com.linkedin.metadata.aspect.plugins.PluginFactory;
+import com.linkedin.metadata.aspect.plugins.config.PluginConfiguration;
import com.linkedin.metadata.models.AspectSpec;
import com.linkedin.metadata.models.DefaultEntitySpec;
import com.linkedin.metadata.models.EntitySpec;
@@ -32,8 +34,11 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.function.BiFunction;
import java.util.stream.Collectors;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+import lombok.Getter;
/**
* Implementation of {@link EntityRegistry} that builds {@link DefaultEntitySpec} objects from the a
@@ -46,6 +51,9 @@ public class SnapshotEntityRegistry implements EntityRegistry {
private final AspectTemplateEngine _aspectTemplateEngine;
private final Map _aspectNameToSpec;
+ @Getter @Nullable
+ private BiFunction, PluginFactory> pluginFactoryProvider;
+
private static final SnapshotEntityRegistry INSTANCE = new SnapshotEntityRegistry();
public SnapshotEntityRegistry() {
@@ -56,6 +64,19 @@ public SnapshotEntityRegistry() {
entitySpecs = new ArrayList<>(entityNameToSpec.values());
_aspectNameToSpec = populateAspectMap(entitySpecs);
_aspectTemplateEngine = populateTemplateEngine(_aspectNameToSpec);
+ pluginFactoryProvider = null;
+ }
+
+ public SnapshotEntityRegistry(
+ BiFunction, PluginFactory> pluginFactoryProvider) {
+ entityNameToSpec =
+ new EntitySpecBuilder()
+ .buildEntitySpecs(new Snapshot().schema()).stream()
+ .collect(Collectors.toMap(spec -> spec.getName().toLowerCase(), spec -> spec));
+ entitySpecs = new ArrayList<>(entityNameToSpec.values());
+ _aspectNameToSpec = populateAspectMap(entitySpecs);
+ _aspectTemplateEngine = populateTemplateEngine(_aspectNameToSpec);
+ this.pluginFactoryProvider = pluginFactoryProvider;
}
public SnapshotEntityRegistry(UnionTemplate snapshot) {
diff --git a/entity-registry/src/test/java/com/linkedin/metadata/aspect/plugins/PluginsTest.java b/entity-registry/src/test/java/com/linkedin/metadata/aspect/plugins/PluginsTest.java
index cecf21849f3aa..b98df05d721dd 100644
--- a/entity-registry/src/test/java/com/linkedin/metadata/aspect/plugins/PluginsTest.java
+++ b/entity-registry/src/test/java/com/linkedin/metadata/aspect/plugins/PluginsTest.java
@@ -6,6 +6,7 @@
import com.datahub.test.TestEntityProfile;
import com.linkedin.data.schema.annotation.PathSpecBasedSchemaAnnotationVisitor;
import com.linkedin.events.metadata.ChangeType;
+import com.linkedin.metadata.aspect.plugins.config.AspectPluginConfig;
import com.linkedin.metadata.models.EntitySpec;
import com.linkedin.metadata.models.EventSpec;
import com.linkedin.metadata.models.registry.ConfigEntityRegistry;
@@ -262,23 +263,42 @@ public void testUnloadedMerge() throws EntityRegistryException {
mergedEntityRegistry.apply(configEntityRegistry2);
assertEquals(
- mergedEntityRegistry.getAllAspectPayloadValidators().stream()
- .filter(p -> p.getConfig().getSupportedOperations().contains("DELETE"))
+ mergedEntityRegistry
+ .getPluginFactory()
+ .getPluginConfiguration()
+ .getAspectPayloadValidators()
+ .stream()
+ .filter(AspectPluginConfig::isEnabled)
+ .filter(p -> p.getSupportedOperations().contains("DELETE"))
.count(),
1);
+
assertEquals(
- mergedEntityRegistry.getAllMutationHooks().stream()
- .filter(p -> p.getConfig().getSupportedOperations().contains("DELETE"))
+ mergedEntityRegistry.getPluginFactory().getPluginConfiguration().getMutationHooks().stream()
+ .filter(AspectPluginConfig::isEnabled)
+ .filter(p -> p.getSupportedOperations().contains("DELETE"))
.count(),
1);
+
assertEquals(
- mergedEntityRegistry.getAllMCLSideEffects().stream()
- .filter(p -> p.getConfig().getSupportedOperations().contains("DELETE"))
+ mergedEntityRegistry
+ .getPluginFactory()
+ .getPluginConfiguration()
+ .getMclSideEffects()
+ .stream()
+ .filter(AspectPluginConfig::isEnabled)
+ .filter(p -> p.getSupportedOperations().contains("DELETE"))
.count(),
1);
+
assertEquals(
- mergedEntityRegistry.getAllMCPSideEffects().stream()
- .filter(p -> p.getConfig().getSupportedOperations().contains("DELETE"))
+ mergedEntityRegistry
+ .getPluginFactory()
+ .getPluginConfiguration()
+ .getMcpSideEffects()
+ .stream()
+ .filter(AspectPluginConfig::isEnabled)
+ .filter(p -> p.getSupportedOperations().contains("DELETE"))
.count(),
1);
}
diff --git a/li-utils/src/main/java/com/datahub/util/RecordUtils.java b/li-utils/src/main/java/com/datahub/util/RecordUtils.java
index 8183ecc21ee27..2955943919e3b 100644
--- a/li-utils/src/main/java/com/datahub/util/RecordUtils.java
+++ b/li-utils/src/main/java/com/datahub/util/RecordUtils.java
@@ -99,6 +99,18 @@ public static T toRecordTemplate(
return toRecordTemplate(type, dataMap);
}
+ @Nonnull
+ public static DataMap toDataMap(@Nonnull String jsonString) {
+ DataMap dataMap;
+ try {
+ dataMap = DATA_TEMPLATE_CODEC.stringToMap(jsonString);
+ } catch (IOException e) {
+ throw new ModelConversionException("Failed to deserialize DataMap: " + jsonString);
+ }
+
+ return dataMap;
+ }
+
/**
* Creates a {@link RecordTemplate} object from a {@link DataMap}.
*
diff --git a/metadata-io/metadata-io-api/src/main/java/com/linkedin/metadata/entity/ebean/batch/AspectsBatchImpl.java b/metadata-io/metadata-io-api/src/main/java/com/linkedin/metadata/entity/ebean/batch/AspectsBatchImpl.java
index 7a1af12272ac5..0808c29e8ea89 100644
--- a/metadata-io/metadata-io-api/src/main/java/com/linkedin/metadata/entity/ebean/batch/AspectsBatchImpl.java
+++ b/metadata-io/metadata-io-api/src/main/java/com/linkedin/metadata/entity/ebean/batch/AspectsBatchImpl.java
@@ -9,6 +9,7 @@
import com.linkedin.metadata.aspect.batch.BatchItem;
import com.linkedin.metadata.aspect.batch.ChangeMCP;
import com.linkedin.metadata.aspect.batch.MCPItem;
+import com.linkedin.metadata.aspect.plugins.hooks.MutationHook;
import com.linkedin.metadata.aspect.plugins.validation.ValidationExceptionCollection;
import com.linkedin.mxe.MetadataChangeProposal;
import com.linkedin.util.Pair;
@@ -47,7 +48,7 @@ public Pair