chore: import upstream snapshot with attribution
Integration Tests - MySQL + Elasticsearch / Detect Changes (push) Has been cancelled
Integration Tests - MySQL + Elasticsearch / integration-tests-mysql-elasticsearch (push) Has been cancelled
Integration Tests - PostgreSQL + Elasticsearch + Redis / Detect Changes (push) Has been cancelled
Integration Tests - PostgreSQL + Elasticsearch + Redis / integration-tests-postgres-elasticsearch-redis (push) Has been cancelled
Integration Tests - PostgreSQL + OpenSearch / Detect Changes (push) Has been cancelled
Integration Tests - PostgreSQL + OpenSearch / integration-tests-postgres-opensearch (push) Has been cancelled
Java Checkstyle / java-checkstyle (push) Has been cancelled
Maven Collate Tests / maven-collate-ci (push) Has been cancelled
OpenMetadata Service Unit Tests / openmetadata-service-unit-tests-status (push) Has been cancelled
Publish Package to Maven Central Repository / publish-maven-packages (push) Has been cancelled
OpenMetadata Service Unit Tests / Detect Changes (push) Has been cancelled
OpenMetadata Service Unit Tests / openmetadata-service-unit-tests (push) Has been cancelled
OpenMetadata Service Unit Tests / k8s_operator-unit-tests (push) Has been cancelled
Integration Tests - MySQL + Elasticsearch / Detect Changes (push) Has been cancelled
Integration Tests - MySQL + Elasticsearch / integration-tests-mysql-elasticsearch (push) Has been cancelled
Integration Tests - PostgreSQL + Elasticsearch + Redis / Detect Changes (push) Has been cancelled
Integration Tests - PostgreSQL + Elasticsearch + Redis / integration-tests-postgres-elasticsearch-redis (push) Has been cancelled
Integration Tests - PostgreSQL + OpenSearch / Detect Changes (push) Has been cancelled
Integration Tests - PostgreSQL + OpenSearch / integration-tests-postgres-opensearch (push) Has been cancelled
Java Checkstyle / java-checkstyle (push) Has been cancelled
Maven Collate Tests / maven-collate-ci (push) Has been cancelled
OpenMetadata Service Unit Tests / openmetadata-service-unit-tests-status (push) Has been cancelled
Publish Package to Maven Central Repository / publish-maven-packages (push) Has been cancelled
OpenMetadata Service Unit Tests / Detect Changes (push) Has been cancelled
OpenMetadata Service Unit Tests / openmetadata-service-unit-tests (push) Has been cancelled
OpenMetadata Service Unit Tests / k8s_operator-unit-tests (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"name": "pet",
|
||||
"service": "sample_api_service",
|
||||
"endpointURL": "https://petstore3.swagger.io/#/pet"
|
||||
}
|
||||
@@ -0,0 +1,327 @@
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"name": "updatePet",
|
||||
"displayName": "Update Pet",
|
||||
"description": "Update an existing pet",
|
||||
"endpointURL": "https://petstore3.swagger.io/#/pet/updatePet",
|
||||
"apiCollection": "sample_api_service.pet",
|
||||
"requestMethod": "PUT",
|
||||
"requestSchema": {
|
||||
"schemaType": "JSON",
|
||||
"schemaFields": [
|
||||
{
|
||||
"name": "id",
|
||||
"dataType": "INT",
|
||||
"description": "ID of pet that needs to be updated"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "Name of pet"
|
||||
},
|
||||
{
|
||||
"name": "category",
|
||||
"dataType": "RECORD",
|
||||
"description": "Category of pet",
|
||||
"children": [
|
||||
{
|
||||
"name": "id",
|
||||
"dataType": "INT",
|
||||
"description": "ID of category"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "Name of category"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "photoUrls",
|
||||
"dataType": "ARRAY",
|
||||
"description": "URLs of pet's photos"
|
||||
},
|
||||
{
|
||||
"name": "tags",
|
||||
"dataType": "ARRAY",
|
||||
"description": "Tags of pet"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"dataType": "STRING",
|
||||
"description": "Status of pet"
|
||||
}
|
||||
]
|
||||
},
|
||||
"responseSchema": {
|
||||
"schemaType": "JSON",
|
||||
"schemaFields": [
|
||||
{
|
||||
"name": "id",
|
||||
"dataType": "INT",
|
||||
"description": "ID of pet that needs to be updated"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "Name of pet"
|
||||
},
|
||||
{
|
||||
"name": "category",
|
||||
"dataType": "RECORD",
|
||||
"description": "Category of pet",
|
||||
"children": [
|
||||
{
|
||||
"name": "id",
|
||||
"dataType": "INT",
|
||||
"description": "ID of category"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "Name of category"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "photoUrls",
|
||||
"dataType": "ARRAY",
|
||||
"description": "URLs of pet's photos"
|
||||
},
|
||||
{
|
||||
"name": "tags",
|
||||
"dataType": "ARRAY",
|
||||
"description": "Tags of pet"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"dataType": "STRING",
|
||||
"description": "Status of pet"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "addPet",
|
||||
"displayName": "Add Pet",
|
||||
"apiCollection": "sample_api_service.pet",
|
||||
"description": "add a new pet",
|
||||
"endpointURL": "https://petstore3.swagger.io/#/pet/addPet",
|
||||
"requestMethod": "POST",
|
||||
"requestSchema": {
|
||||
"schemaType": "JSON",
|
||||
"schemaFields": [
|
||||
{
|
||||
"name": "id",
|
||||
"dataType": "INT",
|
||||
"description": "ID of pet that needs to be updated"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "Name of pet"
|
||||
},
|
||||
{
|
||||
"name": "category",
|
||||
"dataType": "RECORD",
|
||||
"description": "Category of pet",
|
||||
"children": [
|
||||
{
|
||||
"name": "id",
|
||||
"dataType": "INT",
|
||||
"description": "ID of category"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "Name of category"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "photoUrls",
|
||||
"dataType": "ARRAY",
|
||||
"description": "URLs of pet's photos"
|
||||
},
|
||||
{
|
||||
"name": "tags",
|
||||
"dataType": "ARRAY",
|
||||
"description": "Tags of pet"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"dataType": "STRING",
|
||||
"description": "Status of pet"
|
||||
}
|
||||
]
|
||||
},
|
||||
"responseSchema": {
|
||||
"schemaType": "JSON",
|
||||
"schemaFields": [
|
||||
{
|
||||
"name": "id",
|
||||
"dataType": "INT",
|
||||
"description": "ID of pet that needs to be updated"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "Name of pet"
|
||||
},
|
||||
{
|
||||
"name": "category",
|
||||
"dataType": "RECORD",
|
||||
"description": "Category of pet",
|
||||
"children": [
|
||||
{
|
||||
"name": "id",
|
||||
"dataType": "INT",
|
||||
"description": "ID of category"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "Name of category"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "photoUrls",
|
||||
"dataType": "ARRAY",
|
||||
"description": "URLs of pet's photos"
|
||||
},
|
||||
{
|
||||
"name": "tags",
|
||||
"dataType": "ARRAY",
|
||||
"description": "Tags of pet"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"dataType": "STRING",
|
||||
"description": "Status of pet"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "getPetById",
|
||||
"displayName": "Find pet by ID",
|
||||
"description": "Returns a single pet",
|
||||
"apiCollection": "sample_api_service.pet",
|
||||
"endpointURL": "https://petstore3.swagger.io/#/pet/addPet",
|
||||
"requestMethod": "GET",
|
||||
"responseSchema": {
|
||||
"schemaType": "JSON",
|
||||
"schemaFields": [
|
||||
{
|
||||
"name": "id",
|
||||
"dataType": "INT",
|
||||
"description": "ID of pet that needs to be updated"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "Name of pet"
|
||||
},
|
||||
{
|
||||
"name": "category",
|
||||
"dataType": "RECORD",
|
||||
"description": "Category of pet",
|
||||
"children": [
|
||||
{
|
||||
"name": "id",
|
||||
"dataType": "INT",
|
||||
"description": "ID of category"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "Name of category"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "photoUrls",
|
||||
"dataType": "ARRAY",
|
||||
"description": "URLs of pet's photos"
|
||||
},
|
||||
{
|
||||
"name": "tags",
|
||||
"dataType": "ARRAY",
|
||||
"description": "Tags of pet"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"dataType": "STRING",
|
||||
"description": "Status of pet"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "deletePet",
|
||||
"apiCollection": "sample_api_service.pet",
|
||||
"displayName": "Delete pet by ID",
|
||||
"description": "Delete pet by ID",
|
||||
"endpointURL": "https://petstore3.swagger.io/#/pet/deletePet",
|
||||
"requestMethod": "DELETE"
|
||||
},
|
||||
{
|
||||
"name": "provider_address_texas_endpoint",
|
||||
"apiCollection": "sample_api_service.pet",
|
||||
"displayName": "Provider Address Texas Endpoint",
|
||||
"description": "Search relevancy fixture endpoint for provider address Texas lookups.",
|
||||
"endpointURL": "https://petstore3.swagger.io/#/pet/providerAddressTexas",
|
||||
"requestMethod": "GET",
|
||||
"responseSchema": {
|
||||
"schemaType": "JSON",
|
||||
"schemaFields": [
|
||||
{
|
||||
"name": "provider_id",
|
||||
"dataType": "INT",
|
||||
"description": "Provider identifier"
|
||||
},
|
||||
{
|
||||
"name": "provider_address",
|
||||
"dataType": "STRING",
|
||||
"description": "Provider address"
|
||||
},
|
||||
{
|
||||
"name": "texas_region",
|
||||
"dataType": "STRING",
|
||||
"description": "Texas region"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "customer_profiles_endpoint",
|
||||
"apiCollection": "sample_api_service.pet",
|
||||
"displayName": "Customer Profiles Endpoint",
|
||||
"description": "Search relevancy fixture endpoint for customer profiles lookups.",
|
||||
"endpointURL": "https://petstore3.swagger.io/#/pet/customerProfiles",
|
||||
"requestMethod": "GET",
|
||||
"responseSchema": {
|
||||
"schemaType": "JSON",
|
||||
"schemaFields": [
|
||||
{
|
||||
"name": "customer_id",
|
||||
"dataType": "INT",
|
||||
"description": "Customer identifier"
|
||||
},
|
||||
{
|
||||
"name": "customer_profile_id",
|
||||
"dataType": "STRING",
|
||||
"description": "Customer profile identifier"
|
||||
},
|
||||
{
|
||||
"name": "profile_status",
|
||||
"dataType": "STRING",
|
||||
"description": "Customer profile status"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"type": "rest",
|
||||
"serviceName": "sample_api_service",
|
||||
"serviceConnection": {
|
||||
"config": {
|
||||
"type": "Rest",
|
||||
"openAPISchemaConnection": {
|
||||
"openAPISchemaURL": "https://petstore3.swagger.io/"
|
||||
},
|
||||
"token":"mock_token"
|
||||
}
|
||||
},
|
||||
"sourceConfig": {
|
||||
"config": {}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
{
|
||||
"charts": [
|
||||
{
|
||||
"id": "2841fdb1-e378-4a2c-94f8-27c9f5d6ef8e",
|
||||
"name": "114",
|
||||
"displayName": "# of Games That Hit 100k in Sales By Release Year",
|
||||
"fullyQualifiedName": "sample_superset.101",
|
||||
"description": "",
|
||||
"chartId": "114",
|
||||
"chartType": "Area",
|
||||
"sourceUrl": "http://localhost:8088/superset/explore/?form_data=%7B%22slice_id%22%3A%20114%7D",
|
||||
"href": "http://localhost:8585/api/v1/charts/2841fdb1-e378-4a2c-94f8-27c9f5d6ef8e"
|
||||
},
|
||||
{
|
||||
"id": "3bcba490-9e5c-4946-a0e3-41e8ff8f4aa4",
|
||||
"name":"166",
|
||||
"displayName": "% Rural",
|
||||
"fullyQualifiedName": "sample_superset.110",
|
||||
"description": "",
|
||||
"chartId": "166",
|
||||
"chartType": "Other",
|
||||
"sourceUrl": "http://localhost:8088/superset/explore/?form_data=%7B%22slice_id%22%3A%20166%7D",
|
||||
"href": "http://localhost:8585/api/v1/charts/3bcba490-9e5c-4946-a0e3-41e8ff8f4aa4"
|
||||
},
|
||||
{
|
||||
"id": "22b95748-4a7b-48ad-859e-cf7c66a7f343",
|
||||
"name": "92",
|
||||
"displayName": "✈️ Relocation ability",
|
||||
"fullyQualifiedName": "sample_superset.92",
|
||||
"description": "",
|
||||
"chartId": "92",
|
||||
"chartType": "Other",
|
||||
"sourceUrl": "http://localhost:8088/superset/explore/?form_data=%7B%22slice_id%22%3A%2092%7D",
|
||||
"href": "http://localhost:8585/api/v1/charts/22b95748-4a7b-48ad-859e-cf7c66a7f343"
|
||||
},
|
||||
{
|
||||
"id": "62b31dcc-4619-46a0-99b1-0fa7cd6f93da",
|
||||
"name": "117",
|
||||
"displayName": "Age distribution of respondents",
|
||||
"fullyQualifiedName": "sample_superset.11",
|
||||
"description": "",
|
||||
"chartId": "117",
|
||||
"chartType": "Histogram",
|
||||
"sourceUrl": "http://localhost:8088/superset/explore/?form_data=%7B%22slice_id%22%3A%20117%7D",
|
||||
"href": "http://localhost:8585/api/v1/charts/62b31dcc-4619-46a0-99b1-0fa7cd6f93da"
|
||||
},
|
||||
{
|
||||
"id": "57944482-e187-439a-aaae-0e8aabd2f455",
|
||||
"displayName": "Arcs",
|
||||
"fullyQualifiedName": "sample_superset.197",
|
||||
"description": "",
|
||||
"name": "197",
|
||||
"chartType": "Other",
|
||||
"sourceUrl": "http://localhost:8088/superset/explore/?form_data=%7B%22slice_id%22%3A%20197%7D",
|
||||
"href": "http://localhost:8585/api/v1/charts/57944482-e187-439a-aaae-0e8aabd2f455"
|
||||
},
|
||||
{
|
||||
"id": "d88e2056-c74a-410d-829e-eb31b040c132",
|
||||
"displayName": "Are you an ethnic minority in your city?",
|
||||
"fullyQualifiedName": "sample_superset.127",
|
||||
"description": "",
|
||||
"name": "127",
|
||||
"chartType": "Other",
|
||||
"sourceUrl": "http://localhost:8088/superset/explore/?form_data=%7B%22slice_id%22%3A%20127%7D",
|
||||
"href": "http://localhost:8585/api/v1/charts/d88e2056-c74a-410d-829e-eb31b040c132"
|
||||
},
|
||||
{
|
||||
"id": "c1d3e156-4628-414e-8d6e-a6bdd486128f",
|
||||
"displayName": "Average and Sum Trends",
|
||||
"fullyQualifiedName": "sample_superset.183",
|
||||
"description": "",
|
||||
"name": "183",
|
||||
"chartType": "Line",
|
||||
"sourceUrl": "http://localhost:8088/superset/explore/?form_data=%7B%22slice_id%22%3A%20183%7D",
|
||||
"href": "http://localhost:8585/api/v1/charts/c1d3e156-4628-414e-8d6e-a6bdd486128f"
|
||||
},
|
||||
{
|
||||
"id": "bfc57519-8cef-47e6-a423-375d5b89a6a4",
|
||||
"displayName": "Birth in France by department in 2016",
|
||||
"fullyQualifiedName": "sample_superset.Birth in France by department in 2016",
|
||||
"description": "",
|
||||
"name": "161",
|
||||
"chartType": "Other",
|
||||
"sourceUrl": "http://localhost:8088/superset/explore/?form_data=%7B%22slice_id%22%3A%20161%7D",
|
||||
"href": "http://localhost:8585/api/v1/charts/bfc57519-8cef-47e6-a423-375d5b89a6a4"
|
||||
},
|
||||
{
|
||||
"id": "bf2eeac4-7226-46c6-bbef-918569c137a0",
|
||||
"displayName": "Box plot",
|
||||
"fullyQualifiedName": "sample_superset.170",
|
||||
"description": "",
|
||||
"name": "170",
|
||||
"chartType": "Bar",
|
||||
"sourceUrl": "http://localhost:8088/superset/explore/?form_data=%7B%22slice_id%22%3A%20170%7D",
|
||||
"href": "http://localhost:8585/api/v1/charts/bf2eeac4-7226-46c6-bbef-918569c137a0"
|
||||
},
|
||||
{
|
||||
"id": "167fd63b-42f1-4d7e-a37d-893fd8173b44",
|
||||
"displayName": "Boy Name Cloud",
|
||||
"fullyQualifiedName": "sample_superset.180",
|
||||
"description": "",
|
||||
"name": "180",
|
||||
"chartType": "Other",
|
||||
"sourceUrl": "http://localhost:8088/superset/explore/?form_data=%7B%22slice_id%22%3A%20180%7D",
|
||||
"href": "http://localhost:8585/api/v1/charts/167fd63b-42f1-4d7e-a37d-893fd8173b44"
|
||||
},
|
||||
{
|
||||
"id": "8474e579-4eff-492b-8685-70ec9aa99f5f",
|
||||
"displayName": "ETA Predictions Accuracy",
|
||||
"fullyQualifiedName": "sample_superset.210",
|
||||
"description": "",
|
||||
"name": "210",
|
||||
"chartType": "Line",
|
||||
"sourceUrl": "http://localhost:8088/superset/explore/?form_data=%7B%22slice_id%22%3A%20180%7D",
|
||||
"href": "http://localhost:8585/api/v1/charts/8474e579-4eff-492b-8685-70ec9aa99f5f"
|
||||
},
|
||||
{
|
||||
"id": "12345e567-4eff-492b-8685-69ec9bb88g4g",
|
||||
"displayName": "Sales Predictions Accuracy",
|
||||
"fullyQualifiedName": "sample_superset.211",
|
||||
"description": "",
|
||||
"name": "211",
|
||||
"chartType": "Line",
|
||||
"sourceUrl": "http://localhost:8088/superset/explore/?form_data=%7B%22slice_id%22%3A%20180%7D",
|
||||
"href": "http://localhost:8585/api/v1/charts/12345e567-4eff-492b-8685-69ec9bb88g4g"
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,145 @@
|
||||
{
|
||||
"dashboards": [
|
||||
{
|
||||
"id": "d4dc7baf-1b17-45f8-acd5-a15b78cc7c5f",
|
||||
"name": "8",
|
||||
"displayName": "Orders dashboard",
|
||||
"fullyQualifiedName": "sample_superset.8",
|
||||
"description": "",
|
||||
"sourceUrl": "http://localhost:808/superset/dashboard/1/",
|
||||
"charts": ["sample_superset.183", "sample_superset.170", "sample_superset.197"],
|
||||
"href": "http://localhost:8585/api/v1/dashboards/d4dc7baf-1b17-45f8-acd5-a15b78cc7c5f"
|
||||
},
|
||||
{
|
||||
"id": "063cd787-8630-4809-9702-34d3992c7248",
|
||||
"name": "9",
|
||||
"displayName": "COVID Vaccine Dashboard",
|
||||
"fullyQualifiedName": "sample_superset.9",
|
||||
"description": "",
|
||||
"sourceUrl": "http://localhost:808/superset/dashboard/8/",
|
||||
"charts": ["sample_superset.117", "sample_superset.197"],
|
||||
"dataModels": ["sample_superset.model.103", "sample_superset.model.73"],
|
||||
"href": "http://localhost:8585/api/v1/dashboards/063cd787-8630-4809-9702-34d3992c7248"
|
||||
},
|
||||
{
|
||||
"id": "df6c698e-066a-4440-be0a-121025573b73",
|
||||
"name": "10",
|
||||
"displayName": "deck.gl Demo",
|
||||
"fullyQualifiedName": "sample_superset.10",
|
||||
"description": "",
|
||||
"sourceUrl": "http://localhost:808/superset/dashboard/deck/",
|
||||
"charts": ["sample_superset.127", "sample_superset.166", "sample_superset.114"],
|
||||
"href": "http://localhost:8585/api/v1/dashboards/df6c698e-066a-4440-be0a-121025573b73"
|
||||
},
|
||||
{
|
||||
"id": "98b38a49-b5c6-431b-b61f-690e39f8ead2",
|
||||
"name": "11",
|
||||
"displayName": "FCC New Coder Survey 2018",
|
||||
"fullyQualifiedName": "sample_superset.11",
|
||||
"description": "",
|
||||
"sourceUrl": "http://localhost:808/superset/dashboard/7/",
|
||||
"charts": ["sample_superset.183", "sample_superset.197", "sample_superset.170", "sample_superset.180"],
|
||||
"href": "http://localhost:8585/api/v1/dashboards/98b38a49-b5c6-431b-b61f-690e39f8ead2"
|
||||
},
|
||||
{
|
||||
"id": "dffcf9b2-4f43-4881-a5f5-10109655bf50",
|
||||
"name": "12",
|
||||
"displayName": "Misc Charts",
|
||||
"fullyQualifiedName": "sample_superset.12",
|
||||
"description": "",
|
||||
"sourceUrl": "http://localhost:808/superset/dashboard/misc_charts/",
|
||||
"charts": ["sample_superset.127", "sample_superset.197"],
|
||||
"href": "http://localhost:8585/api/v1/dashboards/dffcf9b2-4f43-4881-a5f5-10109655bf50"
|
||||
},
|
||||
{
|
||||
"id": "2583737d-6236-421e-ba0f-cd0b79adb216",
|
||||
"name": "31",
|
||||
"displayName": "Sales Dashboard",
|
||||
"fullyQualifiedName": "sample_superset.31",
|
||||
"description": "",
|
||||
"sourceUrl": "http://localhost:808/superset/dashboard/6/",
|
||||
"charts": ["sample_superset.92", "sample_superset.117", "sample_superset.166"],
|
||||
"href": "http://localhost:8585/api/v1/dashboards/2583737d-6236-421e-ba0f-cd0b79adb216"
|
||||
},
|
||||
{
|
||||
"id": "6bf9bfcb-4e80-4af0-9f0c-13e47bbc27a2",
|
||||
"name": "33",
|
||||
"displayName": "Slack Dashboard",
|
||||
"fullyQualifiedName": "sample_superset.33",
|
||||
"description": "",
|
||||
"sourceUrl": "http://localhost:808/superset/dashboard/10/",
|
||||
"charts": ["sample_superset.114", "sample_superset.92", "sample_superset.127"],
|
||||
"href": "http://localhost:8585/api/v1/dashboards/6bf9bfcb-4e80-4af0-9f0c-13e47bbc27a2"
|
||||
},
|
||||
{
|
||||
"id": "1f02caf2-c5e5-442d-bda3-b8ce3e757b45",
|
||||
"name": "34",
|
||||
"displayName": "Unicode Test",
|
||||
"fullyQualifiedName": "sample_superset.34",
|
||||
"description": "",
|
||||
"sourceUrl": "http://localhost:808/superset/dashboard/unicode-test/",
|
||||
"charts": ["sample_superset.161", "sample_superset.170", "sample_superset.180"],
|
||||
"href": "http://localhost:8585/api/v1/dashboards/1f02caf2-c5e5-442d-bda3-b8ce3e757b45"
|
||||
},
|
||||
{
|
||||
"id": "a3ace318-ee37-4da1-974a-62eddbd77d20",
|
||||
"name": "45",
|
||||
"displayName": "USA Births Names",
|
||||
"fullyQualifiedName": "sample_superset.45",
|
||||
"description": "",
|
||||
"sourceUrl": "http://localhost:808/superset/dashboard/births/",
|
||||
"charts": ["sample_superset.180"],
|
||||
"href": "http://localhost:8585/api/v1/dashboards/a3ace318-ee37-4da1-974a-62eddbd77d20"
|
||||
},
|
||||
{
|
||||
"id": "e6e21717-1164-403f-8807-d12be277aec6",
|
||||
"name": "51",
|
||||
"displayName": "Video Game Sales",
|
||||
"fullyQualifiedName": "sample_superset.51",
|
||||
"description": "",
|
||||
"sourceUrl": "http://localhost:808/superset/dashboard/11/",
|
||||
"charts": ["sample_superset.127", "sample_superset.183"],
|
||||
"href": "http://localhost:8585/api/v1/dashboards/e6e21717-1164-403f-8807-d12be277aec6"
|
||||
},
|
||||
{
|
||||
"id": "d2b0af00-f419-4905-bb43-036697ce53a5",
|
||||
"name": "eta_predictions_performance",
|
||||
"displayName": "ETA Predictions Performance",
|
||||
"fullyQualifiedName": "sample_superset.eta_predictions_performance",
|
||||
"description": "",
|
||||
"sourceUrl": "http://localhost:808/superset/dashboard/eta_predictions_performance/",
|
||||
"charts": ["sample_superset.210"],
|
||||
"href": "http://localhost:8585/api/v1/dashboards/d2b0af00-f419-4905-bb43-036697ce53a5"
|
||||
},
|
||||
{
|
||||
"id": "f5a1af99-f123-7845-cc12-0312347ce53a",
|
||||
"name": "forecast_sales_performance",
|
||||
"displayName": "ETA Predictions Performance",
|
||||
"fullyQualifiedName": "sample_superset.forecast_sales_performance",
|
||||
"description": "",
|
||||
"sourceUrl": "http://localhost:808/superset/dashboard/forecast_sales_performance/",
|
||||
"charts": ["sample_superset.211"],
|
||||
"href": "http://localhost:8585/api/v1/dashboards/d2b0af00-f419-4905-bb43-036697ce53a5"
|
||||
},
|
||||
{
|
||||
"name": "provider_address_texas_dashboard",
|
||||
"displayName": "Provider Address Texas Dashboard",
|
||||
"fullyQualifiedName": "sample_superset.provider_address_texas_dashboard",
|
||||
"description": "Search relevancy fixture dashboard for provider address Texas reporting.",
|
||||
"sourceUrl": "http://localhost:808/superset/dashboard/provider_address_texas_dashboard/",
|
||||
"charts": ["sample_superset.210"],
|
||||
"tags": [],
|
||||
"href": "http://localhost:8585/api/v1/dashboards/provider_address_texas_dashboard"
|
||||
},
|
||||
{
|
||||
"name": "customer_profiles_dashboard",
|
||||
"displayName": "Customer Profiles Dashboard",
|
||||
"fullyQualifiedName": "sample_superset.customer_profiles_dashboard",
|
||||
"description": "Search relevancy fixture dashboard for customer profiles reporting.",
|
||||
"sourceUrl": "http://localhost:808/superset/dashboard/customer_profiles_dashboard/",
|
||||
"charts": ["sample_superset.210"],
|
||||
"tags": [],
|
||||
"href": "http://localhost:8585/api/v1/dashboards/customer_profiles_dashboard"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"type": "superset",
|
||||
"serviceName": "sample_superset",
|
||||
"serviceConnection": {
|
||||
"config": {
|
||||
"type": "Superset",
|
||||
"hostPort": "http://localhost:8088",
|
||||
"connection":{
|
||||
"username": "admin",
|
||||
"password": "admin",
|
||||
"provider": "db"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceConfig": {
|
||||
"config": {}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,195 @@
|
||||
{
|
||||
"dataContractResults": [
|
||||
{
|
||||
"dataContractFQN": "sample_data.ecommerce_db.shopify.dim_customer.dataContract_dim_customer_schema_contract",
|
||||
"table_fqn": "sample_data.ecommerce_db.shopify.dim_customer",
|
||||
"results": [
|
||||
{
|
||||
"contractExecutionStatus": "Success",
|
||||
"result": "All schema validations passed successfully",
|
||||
"schemaValidation": {
|
||||
"passed": 5,
|
||||
"failed": 0,
|
||||
"total": 5,
|
||||
"failedFields": []
|
||||
},
|
||||
"executionTime": 1500
|
||||
},
|
||||
{
|
||||
"contractExecutionStatus": "Failed",
|
||||
"result": "Schema validation failed: missing required constraint on email field",
|
||||
"schemaValidation": {
|
||||
"passed": 4,
|
||||
"failed": 1,
|
||||
"total": 5,
|
||||
"failedFields": ["email"]
|
||||
},
|
||||
"executionTime": 1200
|
||||
},
|
||||
{
|
||||
"contractExecutionStatus": "Success",
|
||||
"result": "Schema validation successful after fixing email field constraints",
|
||||
"schemaValidation": {
|
||||
"passed": 5,
|
||||
"failed": 0,
|
||||
"total": 5,
|
||||
"failedFields": []
|
||||
},
|
||||
"executionTime": 1450
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"dataContractFQN": "sample_data.ecommerce_db.shopify.dim_location.dataContract_dim_location_semantics_contract",
|
||||
"table_fqn": "sample_data.ecommerce_db.shopify.dim_location",
|
||||
"results": [
|
||||
{
|
||||
"contractExecutionStatus": "Success",
|
||||
"result": "All semantic validations passed",
|
||||
"schemaValidation": {
|
||||
"passed": 4,
|
||||
"failed": 0,
|
||||
"total": 4,
|
||||
"failedFields": []
|
||||
},
|
||||
"semanticsValidation": {
|
||||
"passed": 3,
|
||||
"failed": 0,
|
||||
"total": 3,
|
||||
"failedRules": []
|
||||
},
|
||||
"executionTime": 1800
|
||||
},
|
||||
{
|
||||
"contractExecutionStatus": "Failed",
|
||||
"result": "Semantic validation failed: found invalid location data",
|
||||
"schemaValidation": {
|
||||
"passed": 4,
|
||||
"failed": 0,
|
||||
"total": 4,
|
||||
"failedFields": []
|
||||
},
|
||||
"semanticsValidation": {
|
||||
"passed": 2,
|
||||
"failed": 1,
|
||||
"total": 3,
|
||||
"failedRules": [
|
||||
{
|
||||
"ruleName": "valid_location_name",
|
||||
"reason": "Found 5 locations with empty or null names"
|
||||
}
|
||||
]
|
||||
},
|
||||
"executionTime": 1950
|
||||
},
|
||||
{
|
||||
"contractExecutionStatus": "PartialSuccess",
|
||||
"result": "Partial success: location names fixed but some invalid IDs remain",
|
||||
"schemaValidation": {
|
||||
"passed": 4,
|
||||
"failed": 0,
|
||||
"total": 4,
|
||||
"failedFields": []
|
||||
},
|
||||
"semanticsValidation": {
|
||||
"passed": 2,
|
||||
"failed": 1,
|
||||
"total": 3,
|
||||
"failedRules": [
|
||||
{
|
||||
"ruleName": "positive_location_id",
|
||||
"reason": "Found 2 locations with negative or zero location_id"
|
||||
}
|
||||
]
|
||||
},
|
||||
"executionTime": 1750
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"dataContractFQN": "sample_data.ecommerce_db.shopify.dim_address.dataContract_dim_address_comprehensive_contract",
|
||||
"table_fqn": "sample_data.ecommerce_db.shopify.dim_address",
|
||||
"results": [
|
||||
{
|
||||
"contractExecutionStatus": "Success",
|
||||
"result": "All validations passed: schema, semantics, and quality expectations met",
|
||||
"schemaValidation": {
|
||||
"passed": 10,
|
||||
"failed": 0,
|
||||
"total": 10,
|
||||
"failedFields": []
|
||||
},
|
||||
"semanticsValidation": {
|
||||
"passed": 4,
|
||||
"failed": 0,
|
||||
"total": 4,
|
||||
"failedRules": []
|
||||
},
|
||||
"qualityValidation": {
|
||||
"passed": 3,
|
||||
"failed": 0,
|
||||
"total": 3,
|
||||
"qualityScore": 95.8
|
||||
},
|
||||
"executionTime": 2800
|
||||
},
|
||||
{
|
||||
"contractExecutionStatus": "Failed",
|
||||
"result": "Multiple validation failures across schema, semantics, and quality checks",
|
||||
"schemaValidation": {
|
||||
"passed": 8,
|
||||
"failed": 2,
|
||||
"total": 10,
|
||||
"failedFields": ["zip", "phone"]
|
||||
},
|
||||
"semanticsValidation": {
|
||||
"passed": 3,
|
||||
"failed": 1,
|
||||
"total": 4,
|
||||
"failedRules": [
|
||||
{
|
||||
"ruleName": "valid_zip_format",
|
||||
"reason": "Found 23 addresses with invalid ZIP code format"
|
||||
}
|
||||
]
|
||||
},
|
||||
"qualityValidation": {
|
||||
"passed": 1,
|
||||
"failed": 2,
|
||||
"total": 3,
|
||||
"qualityScore": 68.9
|
||||
},
|
||||
"executionTime": 3200
|
||||
},
|
||||
{
|
||||
"contractExecutionStatus": "Running",
|
||||
"result": "Validation in progress...",
|
||||
"executionTime": 0
|
||||
},
|
||||
{
|
||||
"contractExecutionStatus": "Success",
|
||||
"result": "All issues resolved: comprehensive validation successful",
|
||||
"schemaValidation": {
|
||||
"passed": 10,
|
||||
"failed": 0,
|
||||
"total": 10,
|
||||
"failedFields": []
|
||||
},
|
||||
"semanticsValidation": {
|
||||
"passed": 4,
|
||||
"failed": 0,
|
||||
"total": 4,
|
||||
"failedRules": []
|
||||
},
|
||||
"qualityValidation": {
|
||||
"passed": 3,
|
||||
"failed": 0,
|
||||
"total": 3,
|
||||
"qualityScore": 94.2
|
||||
},
|
||||
"executionTime": 2900
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,155 @@
|
||||
{
|
||||
"dataContracts": [
|
||||
{
|
||||
"tableFQN": "sample_data.ecommerce_db.shopify.dim_customer",
|
||||
"name": "dim_customer_schema_contract",
|
||||
"displayName": "Customer Dimension Schema Contract",
|
||||
"description": "Data contract ensuring the customer dimension table maintains its required schema structure",
|
||||
"entityStatus": "Approved",
|
||||
"schema": [
|
||||
{
|
||||
"name": "customer_id",
|
||||
"dataType": "NUMERIC"
|
||||
},
|
||||
{
|
||||
"name": "email",
|
||||
"dataType": "VARCHAR"
|
||||
},
|
||||
{
|
||||
"name": "first_name",
|
||||
"dataType": "VARCHAR"
|
||||
},
|
||||
{
|
||||
"name": "last_name",
|
||||
"dataType": "VARCHAR"
|
||||
},
|
||||
{
|
||||
"name": "created_at",
|
||||
"dataType": "TIMESTAMP"
|
||||
}
|
||||
],
|
||||
"effectiveFrom": "2024-01-01T00:00:00Z"
|
||||
},
|
||||
{
|
||||
"tableFQN": "sample_data.ecommerce_db.shopify.dim_location",
|
||||
"name": "dim_location_semantics_contract",
|
||||
"displayName": "Location Dimension Semantics Contract",
|
||||
"description": "Contract defining semantic rules for the location dimension table to ensure data quality and business logic compliance",
|
||||
"entityStatus": "Approved",
|
||||
"schema": [
|
||||
{
|
||||
"name": "location_id",
|
||||
"dataType": "NUMERIC"
|
||||
},
|
||||
{
|
||||
"name": "shop_id",
|
||||
"dataType": "NUMERIC"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "VARCHAR"
|
||||
},
|
||||
{
|
||||
"name": "address",
|
||||
"dataType": "STRUCT"
|
||||
}
|
||||
],
|
||||
"semantics": [
|
||||
{
|
||||
"name": "description_exists",
|
||||
"description": "Checks that the description field exists",
|
||||
"rule": "{\"!!\": {\"var\": \"description\"}}",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"name": "owners_field_exists",
|
||||
"description": "Checks that the owners field exists",
|
||||
"rule": "{\"!!\": {\"var\": \"owners\"}}",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"name": "domains_field_exists",
|
||||
"description": "Checks that the domains field exists",
|
||||
"rule": "{\"!!\": {\"var\": \"domains\"}}",
|
||||
"enabled": true
|
||||
}
|
||||
],
|
||||
"effectiveFrom": "2024-01-15T00:00:00Z"
|
||||
},
|
||||
{
|
||||
"tableFQN": "sample_data.ecommerce_db.shopify.dim_address",
|
||||
"name": "dim_address_comprehensive_contract",
|
||||
"displayName": "Address Dimension Comprehensive Contract",
|
||||
"description": "Complete data contract covering schema validation, semantic rules, and data quality expectations for the address dimension table",
|
||||
"entityStatus": "Approved",
|
||||
"schema": [
|
||||
{
|
||||
"name": "address_id",
|
||||
"dataType": "NUMERIC"
|
||||
},
|
||||
{
|
||||
"name": "shop_id",
|
||||
"dataType": "NUMERIC"
|
||||
},
|
||||
{
|
||||
"name": "first_name",
|
||||
"dataType": "VARCHAR"
|
||||
},
|
||||
{
|
||||
"name": "last_name",
|
||||
"dataType": "VARCHAR"
|
||||
},
|
||||
{
|
||||
"name": "address1",
|
||||
"dataType": "VARCHAR"
|
||||
},
|
||||
{
|
||||
"name": "city",
|
||||
"dataType": "VARCHAR"
|
||||
},
|
||||
{
|
||||
"name": "region",
|
||||
"dataType": "VARCHAR"
|
||||
},
|
||||
{
|
||||
"name": "zip",
|
||||
"dataType": "VARCHAR"
|
||||
},
|
||||
{
|
||||
"name": "country",
|
||||
"dataType": "VARCHAR"
|
||||
},
|
||||
{
|
||||
"name": "phone",
|
||||
"dataType": "VARCHAR"
|
||||
}
|
||||
],
|
||||
"semantics": [
|
||||
{
|
||||
"name": "description_exists",
|
||||
"description": "Checks that the description field exists",
|
||||
"rule": "{\"!!\": {\"var\": \"description\"}}",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"name": "owners_field_exists",
|
||||
"description": "Checks that the owners field exists",
|
||||
"rule": "{\"!!\": {\"var\": \"owners\"}}",
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"name": "domains_field_exists",
|
||||
"description": "Checks that the domains field exists",
|
||||
"rule": "{\"!!\": {\"var\": \"domains\"}}",
|
||||
"enabled": true
|
||||
}
|
||||
],
|
||||
"qualityExpectations": [
|
||||
"sample_data.ecommerce_db.shopify.dim_address.table_column_count_equals",
|
||||
"sample_data.ecommerce_db.shopify.dim_address.zip.column_values_to_be_between",
|
||||
"sample_data.ecommerce_db.shopify.dim_address.zip.column_values_to_be_between_with_sample_rows"
|
||||
],
|
||||
"effectiveFrom": "2024-02-01T00:00:00Z"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"reports": {
|
||||
"entityReportData": [
|
||||
{"id": "9cf881f1-6871-4a89-9b38-0671ad915a3d", "data": {"team": null, "hasOwner": 0, "entityTier": null, "entityType": "Chart", "entityCount": 17, "serviceName": "Tableau%connector", "missingOwner": 17, "organization": null, "missingDescriptions": 15, "completedDescriptions": 2}, "reportDataType": "entityReportData"},
|
||||
{"id": "b731eeba-026d-4aec-9b47-f49507d7ed22", "data": {"team": null, "hasOwner": 0, "entityTier": null, "entityType": "Chart", "entityCount": 17, "serviceName": "Tableau%connector", "missingOwner": 17, "organization": null, "missingDescriptions": 15, "completedDescriptions": 2}, "reportDataType": "entityReportData"},
|
||||
{"id": "7c27811a-a1a1-495d-a005-d4079ccb475a", "data": {"team": null, "hasOwner": 0, "entityTier": null, "entityType": "Chart", "entityCount": 17, "serviceName": "Tableau%connector", "missingOwner": 17, "organization": null, "missingDescriptions": 15, "completedDescriptions": 2}, "reportDataType": "entityReportData"},
|
||||
{"id": "fa5fc3ca-9b4b-441c-94dd-5078bca04f24", "data": {"team": null, "hasOwner": 0, "entityTier": null, "entityType": "Chart", "entityCount": 17, "serviceName": "Tableau%connector", "missingOwner": 17, "organization": null, "missingDescriptions": 15, "completedDescriptions": 2}, "reportDataType": "entityReportData"}
|
||||
],
|
||||
"webAnalyticEntityViewReportData":[
|
||||
{"id": "665e4ae7-6586-4a26-aec8-93c2b278db20", "data": {"owner": null, "views": 2, "ownerId": null, "tagsFQN": ["Business Glossary.Clothing", "Certification.Bronze", "dbtTags.model_tag_two", "PII.None"], "entityFqn": "test_snow.SNOWFLAKE.ORGANIZATION_USAGE.ACCOUNTS", "entityHref": "http://localhost:8585/table/test_snow.SNOWFLAKE.ORGANIZATION_USAGE.ACCOUNTS", "entityTier": null, "entityType": "Table"}, "reportDataType": "webAnalyticEntityViewReportData"},
|
||||
{"id": "e4bd1b14-43a4-47e4-9853-1406e0c4c6ab", "data": {"owner": "Rob", "views": 13, "ownerId": "15336cef-1690-4843-ac4f-71c386e87e43", "tagsFQN": null, "entityFqn": "sample_data.ecommerce_db.shopify.dim_address", "entityHref": "http://localhost:8585/table/sample_data.ecommerce_db.shopify.dim_address", "entityTier": null, "entityType": "Table"}, "reportDataType": "webAnalyticEntityViewReportData"}
|
||||
],
|
||||
"webAnalyticUserActivityReportData": [
|
||||
{"id": "171cc257-339a-4780-bf52-a3eb54869dbd", "data": {"team": "Organization", "userId": "15336cef-1690-4843-ac4f-71c386e87e43", "userName": "Bob", "lastSession": 1690024291033, "totalPageView": 4, "totalSessions": 1, "totalSessionDuration": 743}, "reportDataType": "webAnalyticUserActivityReportData"},
|
||||
{"id": "c8a530a4-e232-4756-9f1b-f8638c6ef2d3", "data": {"team": "Organization", "userId": "b020c337-3534-43c6-afc8-e29a90026774", "userName": "Joe", "lastSession": 1692806224018, "totalPageView": 24, "totalSessions": 4, "totalSessionDuration": 1169}, "reportDataType": "webAnalyticUserActivityReportData"},
|
||||
{"id": "703a5f50-6990-4e10-8cfc-fed9faefa99d", "data": {"team": "Organization", "userId": "54d2fbb7-2942-4549-b046-8c09a32d4616", "userName": "Jane", "lastSession": 1692902339074, "totalPageView": 39, "totalSessions": 3, "totalSessionDuration": 2731}, "reportDataType": "webAnalyticUserActivityReportData"},
|
||||
{"id": "992bc53e-915a-4c7a-8630-c671e3b3960d", "data": {"team": "Organization", "userId": "b020c337-3534-43c6-afc8-e29a90026774", "userName": "John", "lastSession": 1692982368713, "totalPageView": 16, "totalSessions": 3, "totalSessionDuration": 2329}, "reportDataType": "webAnalyticUserActivityReportData"}
|
||||
],
|
||||
"aggregatedCostAnalysisReportData": [
|
||||
{"id":"b7f4f28c-df63-4060-9e18-89ed33d3508d","timestamp":1696232067205,"reportDataType":"aggregatedCostAnalysisReportData","data":{"unusedDataAssets":{"count":{"threeDays":14,"sevenDays":11,"fourteenDays":7,"thirtyDays":3,"sixtyDays":1},"size":{"threeDays":8574,"sevenDays":8103,"fourteenDays":451,"thirtyDays":2456,"sixtyDays":4537},"totalSize":8574,"totalCount":14},"frequentlyUsedDataAssets":{"count":{"threeDays":1,"sevenDays":4,"fourteenDays":8,"thirtyDays":12,"sixtyDays":14},"size":{"threeDays":30844,"sevenDays":38723,"fourteenDays":3246,"thirtyDays":7824,"sixtyDays":6758},"totalSize":30844,"totalCount":1},"totalCount":39418,"totalSize":15,"serviceName":"sample_data","serviceType":"BigQuery","entityType":"Table","serviceOwner":null},"entityType":"aggregatedCostAnalysisReportData"},
|
||||
{"id":"b7f4f28c-df63-4060-9e18-89ed33d3508d","timestamp":1696232067205,"reportDataType":"aggregatedCostAnalysisReportData","data":{"unusedDataAssets":{"count":{"threeDays":18,"sevenDays":8,"fourteenDays":11,"thirtyDays":3,"sixtyDays":10},"size":{"threeDays":32423,"sevenDays":4543,"fourteenDays":3414,"thirtyDays":4532,"sixtyDays":34435},"totalSize":32423,"totalCount":18},"frequentlyUsedDataAssets":{"count":{"threeDays":2,"sevenDays":5,"fourteenDays":9,"thirtyDays":13,"sixtyDays":15},"size":{"threeDays":3341,"sevenDays":795,"fourteenDays":3492,"thirtyDays":1233,"sixtyDays":5647},"totalSize":3341,"totalCount":2},"totalSize":35764,"totalCount":20,"serviceName":"sample_data","serviceType":"Snowflake","entityType":"Table","serviceOwner":null},"entityType":"aggregatedCostAnalysisReportData"},
|
||||
{"id":"b7f4f28c-df63-4060-9e18-89ed33d3508d","timestamp":1696232067205,"reportDataType":"aggregatedCostAnalysisReportData","data":{"unusedDataAssets":{"count":{"threeDays":20,"sevenDays":15,"fourteenDays":10,"thirtyDays":5,"sixtyDays":2},"size":{"threeDays":12000,"sevenDays":11000,"fourteenDays":700,"thirtyDays":3500,"sixtyDays":1800},"totalSize":12000,"totalCount":20},"frequentlyUsedDataAssets":{"count":{"threeDays":2,"sevenDays":8,"fourteenDays":15,"thirtyDays":20,"sixtyDays":25},"size":{"threeDays":60000,"sevenDays":75000,"fourteenDays":6000,"thirtyDays":12000,"sixtyDays":10000},"totalSize":60000,"totalCount":2},"totalSize":72000,"totalCount":12,"serviceName":"sample_data","serviceType":"AzureSQL","entityType":"Table","serviceOwner":null},"entityType":"aggregatedCostAnalysisReportData"},
|
||||
{"id":"b7f4f28c-df63-4060-9e18-89ed33d3508d","timestamp":1696232067205,"reportDataType":"aggregatedCostAnalysisReportData","data":{"unusedDataAssets":{"count":{"threeDays":18,"sevenDays":13,"fourteenDays":9,"thirtyDays":4,"sixtyDays":2},"size":{"threeDays":10000,"sevenDays":9500,"fourteenDays":600,"thirtyDays":3100,"sixtyDays":2000},"totalSize":10000,"totalCount":18},"frequentlyUsedDataAssets":{"count":{"threeDays":3,"sevenDays":7,"fourteenDays":12,"thirtyDays":15,"sixtyDays":20},"size":{"threeDays":55000,"sevenDays":68000,"fourteenDays":5500,"thirtyDays":11000,"sixtyDays":9000},"totalSize":55000,"totalCount":3},"totalSize":65000,"totalCount":21,"serviceName":"sample_data","serviceType":"Redshift","entityType":"Table","serviceOwner":null},"entityType":"aggregatedCostAnalysisReportData"}
|
||||
],
|
||||
"rawCostAnalysisReportData": [
|
||||
{"id":"e8feffaa-3277-461c-9261-b967d2aee2dd","timestamp":1696232067205,"reportDataType":"rawCostAnalysisReportData","data":{"entity":{"id":"34c63f1b-36f8-43ab-9420-aa1fc550653a","type":"table","name":null,"fullyQualifiedName":"sample_data.ecommerce_db.shopify.fact_session","description":"This fact table contains information about the visitors to your online store. This table has one row per session, where one session can contain many page views. If you use Urchin Traffic Module (UTM) parameters in marketing campaigns, then you can use this table to track how many customers they direct to your store.","displayName":null,"deleted":null,"href":"http://openmetadata-server:8585/api/v1/tables/34c63f1b-36f8-43ab-9420-aa1fc550653a"},"lifeCycle":{"created":{"timestamp":1695022318000,"accessedBy":null,"accessedByAProcess":"Alice"},"updated":{"timestamp":1695195118000,"accessedBy":null,"accessedByAProcess":"Bob"},"accessed":{"timestamp":1695454318000,"accessedBy":null,"accessedByAProcess":"Charlie"}},"sizeInByte":16890.0},"entityType":"rawCostAnalysisReportData"},
|
||||
{"id":"455b3241-fc98-4d61-bf48-39df9054f89e","timestamp":1696232067205,"reportDataType":"rawCostAnalysisReportData","data":{"entity":{"id":"9a3b6464-3d33-4b0f-a804-930ee28c0402","type":"table","name":null,"fullyQualifiedName":"sample_data.ecommerce_db.shopify.dim_staff","description":"This dimension table contains information about the staff accounts in the store. It contains one row per staff account. Use this table to generate a list of your staff accounts, or join it with the sales, API clients and locations tables to analyze staff performance at Shopify POS locations.","displayName":null,"deleted":null,"href":"http://openmetadata-server:8585/api/v1/tables/9a3b6464-3d33-4b0f-a804-930ee28c0402"},"lifeCycle":{"created":{"timestamp":1696059118000,"accessedBy":null,"accessedByAProcess":"Alice"},"updated":{"timestamp":1696059118000,"accessedBy":null,"accessedByAProcess":"Bob"},"accessed":{"timestamp":1696059118000,"accessedBy":null,"accessedByAProcess":"Charlie"}},"sizeInByte":61580.93255764959},"entityType":"rawCostAnalysisReportData"},
|
||||
{"id":"455b3241-fc98-4d61-bf48-39df9054f89e","timestamp":1696232067205,"reportDataType":"rawCostAnalysisReportData","data":{"entity":{"id":"9a3b6464-3d33-4b0f-a804-930ee28c0402","type":"table","name":null,"fullyQualifiedName":"sample_data.ecommerce_db.shopify.dim_staff","description":"This dimension table contains information about the staff accounts in the store. It contains one row per staff account. Use this table to generate a list of your staff accounts, or join it with the sales, API clients and locations tables to analyze staff performance at Shopify POS locations.","displayName":null,"deleted":null,"href":"http://openmetadata-server:8585/api/v1/tables/9a3b6464-3d33-4b0f-a804-930ee28c0402"},"lifeCycle":{"created":{"timestamp":1696059118000,"accessedBy":null,"accessedByAProcess":"Alice"},"updated":{"timestamp":1696059118000,"accessedBy":null,"accessedByAProcess":"Bob"},"accessed":{"timestamp":1696059118000,"accessedBy":null,"accessedByAProcess":"Charlie"}},"sizeInByte":47113.348918067684},"entityType":"rawCostAnalysisReportData"},
|
||||
{"id":"708f9bae-87b9-4626-a945-b84a92428565","timestamp":1696232067205,"reportDataType":"rawCostAnalysisReportData","data":{"entity":{"id":"d55fe3c3-1268-4179-90e4-00dd1c808cc7","type":"table","name":null,"fullyQualifiedName":"sample_data.ecommerce_db.shopify.fact_sale","description":"The fact table captures the value of products sold or returned, as well as the values of other charges such as taxes and shipping costs. The sales table contains one row per order line item, one row per returned line item, and one row per shipping charge. Use this table when you need financial metrics.","displayName":null,"deleted":null,"href":"http://openmetadata-server:8585/api/v1/tables/d55fe3c3-1268-4179-90e4-00dd1c808cc7"},"lifeCycle":{"created":{"timestamp":1695281518000,"accessedBy":null,"accessedByAProcess":"Alice"},"updated":{"timestamp":1695281518000,"accessedBy":null,"accessedByAProcess":"Bob"},"accessed":{"timestamp":1695367918000,"accessedBy":null,"accessedByAProcess":"Charlie"}},"sizeInByte":42431.388637010125},"entityType":"rawCostAnalysisReportData"},
|
||||
{"id":"d4750f97-6a71-4be9-81ba-7d7de0882bef","timestamp":1696232067205,"reportDataType":"rawCostAnalysisReportData","data":{"entity":{"id":"36a03fd4-2c4d-4c5a-9dff-417cbe19164b","type":"table","name":null,"fullyQualifiedName":"sample_data.ecommerce_db.shopify.fact_order","description":"The orders table contains information about each order in your store. Although this table is good for generating order lists and joining with the dim_customer, use the sales table instead for computing financial or other metrics.","displayName":null,"deleted":null,"href":"http://openmetadata-server:8585/api/v1/tables/36a03fd4-2c4d-4c5a-9dff-417cbe19164b"},"lifeCycle":{"created":{"timestamp":1695022318000,"accessedBy":null,"accessedByAProcess":"Alice"},"updated":{"timestamp":1695022318000,"accessedBy":null,"accessedByAProcess":"Bob"},"accessed":{"timestamp":1695108718000,"accessedBy":null,"accessedByAProcess":"Charlie"}},"sizeInByte":69096.51910918455},"entityType":"rawCostAnalysisReportData"},
|
||||
{"id":"1fd31e1b-b055-4d3c-ab34-50dc6b1cd6c9","timestamp":1696232067205,"reportDataType":"rawCostAnalysisReportData","data":{"entity":{"id":"a02856c7-8cf6-4b88-8e51-45959d77a365","type":"table","name":null,"fullyQualifiedName":"sample_data.ecommerce_db.shopify.\"dim.product\"","description":"This dimension table contains information about each of the products in your store. This table contains one row per product. This table reflects the current state of products in your Shopify admin.","displayName":null,"deleted":null,"href":"http://openmetadata-server:8585/api/v1/tables/a02856c7-8cf6-4b88-8e51-45959d77a365"},"lifeCycle":{"created":{"timestamp":1691911918000,"accessedBy":null,"accessedByAProcess":"Alice"},"updated":{"timestamp":1691911918000,"accessedBy":null,"accessedByAProcess":"Bob"},"accessed":{"timestamp":1691998318000,"accessedBy":null,"accessedByAProcess":"Charlie"}},"sizeInByte":959364.5073707071},"entityType":"rawCostAnalysisReportData"},
|
||||
{"id":"89268ae3-34b5-4338-8ce6-498d93cf7a2c","timestamp":1696232067205,"reportDataType":"rawCostAnalysisReportData","data":{"entity":{"id":"1c063243-f60e-4768-b31b-4b2ef0d5e690","type":"table","name":null,"fullyQualifiedName":"sample_data.ecommerce_db.shopify.\"dim.product.variant\"","description":"This dimension table contains current information about each of the product variants in your store. This table contains one row per product variant.","displayName":null,"deleted":null,"href":"http://openmetadata-server:8585/api/v1/tables/1c063243-f60e-4768-b31b-4b2ef0d5e690"},"lifeCycle":{"created":{"timestamp":1695799918000,"accessedBy":null,"accessedByAProcess":"Alice"},"updated":{"timestamp":1695886318000,"accessedBy":null,"accessedByAProcess":"Bob"},"accessed":{"timestamp":1695972718000,"accessedBy":null,"accessedByAProcess":"Charlie"}},"sizeInByte":20671.816891976534},"entityType":"rawCostAnalysisReportData"},
|
||||
{"id":"89268ae3-34b5-4338-8ce6-498d93cf7b2c","timestamp":1696232067205,"reportDataType":"rawCostAnalysisReportData","data":{"entity":{"id":"1c063243-f60e-4768-b31b-4b2ef0d5e690","type":"table","name":null,"fullyQualifiedName":"sample_data.ecommerce_db.shopify.\"dim.product.variant\"","description":"This dimension table contains current information about each of the product variants in your store. This table contains one row per product variant.","displayName":null,"deleted":null,"href":"http://openmetadata-server:8585/api/v1/tables/1c063243-f60e-4768-b31b-4b2ef0d5e690"},"lifeCycle":{"created":{"timestamp":1695799918000,"accessedBy":null,"accessedByAProcess":"Alice"},"updated":{"timestamp":1695886318000,"accessedBy":null,"accessedByAProcess":"Bob"},"accessed":{"timestamp":1695972718000,"accessedBy":null,"accessedByAProcess":"Charlie"}},"sizeInByte":206411.22164610436},"entityType":"rawCostAnalysisReportData"},
|
||||
{"id":"8593b4a8-ceae-4afd-be83-2674cec526e2","timestamp":1696232067205,"reportDataType":"rawCostAnalysisReportData","data":{"entity":{"id":"5f78ad7e-e8d4-444e-b6e9-27d4cb4be957","type":"table","name":null,"fullyQualifiedName":"sample_data.ecommerce_db.shopify.\"dim.shop\"","description":"This dimension table contains online shop information. This table contains one shop per row.","displayName":null,"deleted":null,"href":"http://openmetadata-server:8585/api/v1/tables/5f78ad7e-e8d4-444e-b6e9-27d4cb4be957"},"lifeCycle":{"created":{"timestamp":1690183918000,"accessedBy":null,"accessedByAProcess":"Alice"},"updated":{"timestamp":1690961518000,"accessedBy":null,"accessedByAProcess":"Bob"},"accessed":{"timestamp":1690875118000,"accessedBy":null,"accessedByAProcess":"Charlie"}},"sizeInByte":27261.282607083493},"entityType":"rawCostAnalysisReportData"},
|
||||
{"id":"5edcf4f2-4fdf-4f03-aa8c-58b21f78eba8","timestamp":1696232067205,"reportDataType":"rawCostAnalysisReportData","data":{"entity":{"id":"53b5f66f-234e-4abf-ba3f-65804642b439","type":"table","name":null,"fullyQualifiedName":"sample_data.ecommerce_db.shopify.dim(shop)","description":"This dimension table contains online shop information with weird characters.","displayName":null,"deleted":null,"href":"http://openmetadata-server:8585/api/v1/tables/53b5f66f-234e-4abf-ba3f-65804642b439"},"lifeCycle":{"created":{"timestamp":1694071918000,"accessedBy":null,"accessedByAProcess":"Alice"},"updated":{"timestamp":1695022318000,"accessedBy":null,"accessedByAProcess":"Bob"},"accessed":{"timestamp":1694158318000,"accessedBy":null,"accessedByAProcess":"Charlie"}},"sizeInByte":494660.85729422217},"entityType":"rawCostAnalysisReportData"},
|
||||
{"id":"e4fe174b-819a-4eed-8d37-a8c91a5bc8ee","timestamp":1696232067205,"reportDataType":"rawCostAnalysisReportData","data":{"entity":{"id":"e5e4e64c-2eba-4e19-8248-5b64f4d93dae","type":"table","name":null,"fullyQualifiedName":"sample_data.ecommerce_db.shopify.marketing","description":"Marketing data","displayName":null,"deleted":null,"href":"http://openmetadata-server:8585/api/v1/tables/e5e4e64c-2eba-4e19-8248-5b64f4d93dae"},"lifeCycle":{"created":{"timestamp":1695367918000,"accessedBy":null,"accessedByAProcess":"Alice"},"updated":{"timestamp":1695367918000,"accessedBy":null,"accessedByAProcess":"Bob"},"accessed":{"timestamp":1695540718000,"accessedBy":null,"accessedByAProcess":"Charlie"}},"sizeInByte":667097.5608493362},"entityType":"rawCostAnalysisReportData"},
|
||||
{"id":"c25de105-4d47-43e5-b6b1-3662effcddeb","timestamp":1696232067205,"reportDataType":"rawCostAnalysisReportData","data":{"entity":{"id":"ab52d858-31e2-45a0-b20c-c32c0e5070cd","type":"table","name":null,"fullyQualifiedName":"sample_data.ecommerce_db.shopify.dim_customer","description":"The dimension table contains data about your customers. The customers table contains one row per customer. It includes historical metrics (such as the total amount that each customer has spent in your store) as well as forward-looking metrics (such as the predicted number of days between future orders and the expected order value in the next 30 days). This table also includes columns that segment customers into various categories (such as new, returning, promising, at risk, dormant, and loyal), which you can use to target marketing activities.","displayName":null,"deleted":null,"href":"http://openmetadata-server:8585/api/v1/tables/ab52d858-31e2-45a0-b20c-c32c0e5070cd"},"lifeCycle":{"created":{"timestamp":1695627117000,"accessedBy":null,"accessedByAProcess":"Alice"},"updated":{"timestamp":1695713517000,"accessedBy":null,"accessedByAProcess":"Bob"},"accessed":{"timestamp":1695713517000,"accessedBy":null,"accessedByAProcess":"Charlie"}},"sizeInByte":292479.6493415711},"entityType":"rawCostAnalysisReportData"},
|
||||
{"id":"6714afb1-712d-4284-99e8-d17c61aa8b92","timestamp":1696232067205,"reportDataType":"rawCostAnalysisReportData","data":{"entity":{"id":"76bff45d-1d71-42bb-b0eb-c8ccc335ce79","type":"table","name":null,"fullyQualifiedName":"sample_data.ecommerce_db.shopify.dim_address_clean","description":"Created from dim_address after a small cleanup.","displayName":null,"deleted":null,"href":"http://openmetadata-server:8585/api/v1/tables/76bff45d-1d71-42bb-b0eb-c8ccc335ce79"},"lifeCycle":{"created":{"timestamp":1691047918000,"accessedBy":null,"accessedByAProcess":"Alice"},"updated":{"timestamp":1691479918000,"accessedBy":null,"accessedByAProcess":"Bob"},"accessed":{"timestamp":1691479918000,"accessedBy":null,"accessedByAProcess":"Charlie"}},"sizeInByte":null},"entityType":"rawCostAnalysisReportData"},
|
||||
{"id":"ead10126-6f2f-4bac-9e1e-6909810ec40f","timestamp":1696232067205,"reportDataType":"rawCostAnalysisReportData","data":{"entity":{"id":"6e5ab5eb-b627-4af5-a2a6-4ee0465d95d9","type":"table","name":null,"fullyQualifiedName":"sample_data.ecommerce_db.shopify.raw_order","description":"This is a raw orders table as represented in our online DB. This table contains all the orders by the customers and can be used to buid our dim and fact tables","displayName":null,"deleted":null,"href":"http://openmetadata-server:8585/api/v1/tables/6e5ab5eb-b627-4af5-a2a6-4ee0465d95d9"},"lifeCycle":{"created":{"timestamp":1693899118000,"accessedBy":null,"accessedByAProcess":"Alice"},"updated":{"timestamp":1693985518000,"accessedBy":null,"accessedByAProcess":"Bob"},"accessed":{"timestamp":1694071918000,"accessedBy":null,"accessedByAProcess":"Charlie"}},"sizeInByte":77437.25870415506},"entityType":"rawCostAnalysisReportData"},
|
||||
{"id":"9d02102c-884d-45c2-99bd-86c1cc0632e2","timestamp":1696232067205,"reportDataType":"rawCostAnalysisReportData","data":{"entity":{"id":"b5a0e658-a15a-4327-b993-00688ebb7d8b","type":"table","name":null,"fullyQualifiedName":"sample_data.ecommerce_db.shopify.raw_product_catalog","description":"This is a raw product catalog table contains the product listing, price, seller etc.. represented in our online DB. ","displayName":null,"deleted":null,"href":"http://openmetadata-server:8585/api/v1/tables/b5a0e658-a15a-4327-b993-00688ebb7d8b"},"lifeCycle":{"created":{"timestamp":1693639918000,"accessedBy":null,"accessedByAProcess":"Alice"},"updated":{"timestamp":1693639918000,"accessedBy":null,"accessedByAProcess":"Bob"},"accessed":{"timestamp":1693726318000,"accessedBy":null,"accessedByAProcess":"Charlie"}},"sizeInByte":126461.16459905276},"entityType":"rawCostAnalysisReportData"},
|
||||
{"id":"b8f1929f-8c58-4e5b-b0b0-df3b5273b893","timestamp":1696232067205,"reportDataType":"rawCostAnalysisReportData","data":{"entity":{"id":"f8d7633c-51e2-4607-8c4e-4f6975cf84d6","type":"table","name":null,"fullyQualifiedName":"sample_data.ecommerce_db.shopify.sales","description":"Sales data","displayName":null,"deleted":null,"href":"http://openmetadata-server:8585/api/v1/tables/f8d7633c-51e2-4607-8c4e-4f6975cf84d6"},"lifeCycle":{"created":{"timestamp":1694503918000,"accessedBy":null,"accessedByAProcess":"Alice"},"updated":{"timestamp":1694590318000,"accessedBy":null,"accessedByAProcess":"Bob"},"accessed":{"timestamp":1694763118000,"accessedBy":null,"accessedByAProcess":"Charlie"}},"sizeInByte":12839.887130541394},"entityType":"rawCostAnalysisReportData"}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": null,
|
||||
"name": "ecommerce_db",
|
||||
"description": "This **mock** database contains schemas related to shopify sales and orders with related dimension tables.",
|
||||
"service": {
|
||||
"id": "b946d870-03b2-4d33-a075-13665a7a76b9",
|
||||
"type": "SAMPLEDATA"
|
||||
},
|
||||
"sourceUrl": "https://www.ecommerce-db.com/ecommerce_db"
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": null,
|
||||
"name": "shopify",
|
||||
"description": "This **mock** database contains schema related to shopify sales and orders with related dimension tables.",
|
||||
"service": {
|
||||
"id": "b946d870-03b2-4d33-a075-13665a7a76b9",
|
||||
"type": "BIGQUERY"
|
||||
},
|
||||
"sourceUrl": "https://www.ecommerce-db.com/shopify"
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"type": "bigquery",
|
||||
"serviceName": "sample_data",
|
||||
"serviceConnection": {
|
||||
"config": {
|
||||
"type": "BigQuery",
|
||||
"hostPort": "localhost:1234",
|
||||
"credentials": {
|
||||
"gcpConfig": {
|
||||
"type": "service_account",
|
||||
"projectId": ["projectID"],
|
||||
"privateKeyId": "privateKeyId",
|
||||
"privateKey": "privateKey",
|
||||
"clientEmail": "clientEmail",
|
||||
"clientId": "clientId",
|
||||
"authUri": "https://accounts.google.com/o/oauth2/auth",
|
||||
"tokenUri": "https://oauth2.googleapis.com/token",
|
||||
"authProviderX509CertUrl": "https://www.googleapis.com/oauth2/v1/certs",
|
||||
"clientX509CertUrl": "https://cert.url"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceConfig": {
|
||||
"config": {
|
||||
"type": "DatabaseMetadata"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,357 @@
|
||||
{
|
||||
"storedProcedures": [
|
||||
{
|
||||
"name": "update_dim_address_table",
|
||||
"description": "This stored procedure updates dim_address table",
|
||||
"version": 0.1,
|
||||
"updatedAt": 1638354087391,
|
||||
"updatedBy": "anonymous",
|
||||
"href": "http://localhost:8585/api/v1/tables/3cda8ecb-f4c6-4ed4-8506-abe965b54b86",
|
||||
"storedProcedureCode": {
|
||||
"langauge": "SQL",
|
||||
"code": "CREATE OR REPLACE PROCEDURE output_message(message VARCHAR)\nRETURNS VARCHAR NOT NULL\nLANGUAGE SQL\nAS\n$$\nBEGIN\n RETURN message;\nEND;\n$$\n;"
|
||||
},
|
||||
"database": {
|
||||
"id": "50da1ff8-4e1d-4967-8931-45edbf4dd908",
|
||||
"type": "database",
|
||||
"name": "sample_data.ecommerce_db",
|
||||
"description": "This **mock** database contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databases/50da1ff8-4e1d-4967-8931-45edbf4dd908"
|
||||
},
|
||||
"tags": [],
|
||||
"followers": [],
|
||||
"databaseSchema": {
|
||||
"id": "d7be1e2c-b3dc-11ec-b909-0242ac120002",
|
||||
"type": "databaseSchema",
|
||||
"name": "sample_data.ecommerce_db.shopify",
|
||||
"description": "This **mock** Schema contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databaseSchemas/d7be1e2c-b3dc-11ec-b909-0242ac120002"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "update_orders_table",
|
||||
"description": "This stored procedure is written java script to update the orders table",
|
||||
"version": 0.1,
|
||||
"updatedAt": 1638354087391,
|
||||
"updatedBy": "anonymous",
|
||||
"href": "http://localhost:8585/api/v1/tables/3cda8ecb-f4c6-4ed4-8506-abe965b54b86",
|
||||
"storedProcedureCode": {
|
||||
"langauge": "JavaScript",
|
||||
"code": "create or replace procedure read_result_set()\n returns float not null\n language javascript\n as \n $$ \n var my_sql_command = \"select * from table1\";\n var statement1 = snowflake.createStatement( {sqlText: my_sql_command} );\n var result_set1 = statement1.execute();\n // Loop through the results, processing one row at a time... \n while (result_set1.next()) {\n var column1 = result_set1.getColumnValue(1);\n var column2 = result_set1.getColumnValue(2);\n // Do something with the retrieved values...\n }\n return 0.0; // Replace with something more useful.\n $$\n ;"
|
||||
},
|
||||
"database": {
|
||||
"id": "50da1ff8-4e1d-4967-8931-45edbf4dd908",
|
||||
"type": "database",
|
||||
"name": "sample_data.ecommerce_db",
|
||||
"description": "This **mock** database contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databases/50da1ff8-4e1d-4967-8931-45edbf4dd908"
|
||||
},
|
||||
"tags": [],
|
||||
"followers": [],
|
||||
"databaseSchema": {
|
||||
"id": "d7be1e2c-b3dc-11ec-b909-0242ac120002",
|
||||
"type": "databaseSchema",
|
||||
"name": "sample_data.ecommerce_db.shopify",
|
||||
"description": "This **mock** Schema contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databaseSchemas/d7be1e2c-b3dc-11ec-b909-0242ac120002"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "calculate_average",
|
||||
"description": "Procedure to calculate average",
|
||||
"version": 0.1,
|
||||
"updatedAt": 1638354087391,
|
||||
"updatedBy": "anonymous",
|
||||
"href": "http://localhost:8585/api/v1/tables/3cda8ecb-f4c6-4ed4-8506-abe965b54b86",
|
||||
"storedProcedureCode": {
|
||||
"langauge": "SQL",
|
||||
"code": "CREATE OR REPLACE PROCEDURE calculate_average(numbers INT ARRAY) RETURNS FLOAT NOT NULL LANGUAGE SQL AS $$DECLARE sum_val INT = 0;count_val INT = 0;average_val FLOAT;BEGIN\n FOR num IN ARRAY numbers DO sum_val := sum_val + num;\n count_val := count_val + 1;\nEND FOR;\nIF count_val = 0 THEN\n average_val := 0.0;\nELSE\n average_val := sum_val / count_val;\nEND IF;\nRETURN average_val;\nEND;$$;"
|
||||
},
|
||||
"database": {
|
||||
"id": "50da1ff8-4e1d-4967-8931-45edbf4dd908",
|
||||
"type": "database",
|
||||
"name": "sample_data.ecommerce_db",
|
||||
"description": "This **mock** database contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databases/50da1ff8-4e1d-4967-8931-45edbf4dd908"
|
||||
},
|
||||
"tags": [],
|
||||
"followers": [],
|
||||
"databaseSchema": {
|
||||
"id": "d7be1e2c-b3dc-11ec-b909-0242ac120002",
|
||||
"type": "databaseSchema",
|
||||
"name": "sample_data.ecommerce_db.shopify",
|
||||
"description": "This **mock** Schema contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databaseSchemas/d7be1e2c-b3dc-11ec-b909-0242ac120002"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "insert_user_data",
|
||||
"description": "Procedure to Insert User Data",
|
||||
"version": 0.1,
|
||||
"updatedAt": 1646500478000,
|
||||
"updatedBy": "anonymous",
|
||||
"href": "http://localhost:8585/api/v1/tables/3cda8ecb-f4c6-4ed4-8506-abe965b54b86",
|
||||
"storedProcedureCode": {
|
||||
"langauge": "SQL",
|
||||
"code": "CREATE OR REPLACE PROCEDURE insert_user_data(user_name varchar, email varchar, age int) RETURNS int NOT NULL LANGUAGE SQL AS $$DECLARE user_id INT;BEGIN\n INSERT INTO users\n (\n NAME,\n email,\n age\n )\n VALUES\n (\n user_name,\n email,\n age\n )\n returning id\n INTO user_id;\n\n RETURN user_id;\nEND;$$;"
|
||||
},
|
||||
"database": {
|
||||
"id": "50da1ff8-4e1d-4967-8931-45edbf4dd908",
|
||||
"type": "database",
|
||||
"name": "sample_data.ecommerce_db",
|
||||
"description": "This **mock** database contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databases/50da1ff8-4e1d-4967-8931-45edbf4dd908"
|
||||
},
|
||||
"tags": [],
|
||||
"followers": [],
|
||||
"databaseSchema": {
|
||||
"id": "d7be1e2c-b3dc-11ec-b909-0242ac120002",
|
||||
"type": "databaseSchema",
|
||||
"name": "sample_data.ecommerce_db.shopify",
|
||||
"description": "This **mock** Schema contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databaseSchemas/d7be1e2c-b3dc-11ec-b909-0242ac120002"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "get_employee_details",
|
||||
"description": "Procedure get employee details",
|
||||
"version": 0.1,
|
||||
"updatedAt": 1647253512000,
|
||||
"updatedBy": "anonymous",
|
||||
"href": "http://localhost:8585/api/v1/tables/3cda8ecb-f4c6-4ed4-8506-abe965b54b86",
|
||||
"storedProcedureCode": {
|
||||
"langauge": "SQL",
|
||||
"code": "CREATE OR REPLACE PROCEDURE get_employee_details(employee_id int) RETURNS JSON NOT NULL LANGUAGE SQL AS $$DECLARE employee_record JSON;BEGIN\n SELECT Row_to_json(e) INTO employee_record FROM employees e WHERE e.id = employee_id;\n RETURN employee_record;\nEND;$$;"
|
||||
},
|
||||
"database": {
|
||||
"id": "50da1ff8-4e1d-4967-8931-45edbf4dd908",
|
||||
"type": "database",
|
||||
"name": "sample_data.ecommerce_db",
|
||||
"description": "This **mock** database contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databases/50da1ff8-4e1d-4967-8931-45edbf4dd908"
|
||||
},
|
||||
"tags": [],
|
||||
"followers": [],
|
||||
"databaseSchema": {
|
||||
"id": "d7be1e2c-b3dc-11ec-b909-0242ac120002",
|
||||
"type": "databaseSchema",
|
||||
"name": "sample_data.ecommerce_db.shopify",
|
||||
"description": "This **mock** Schema contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databaseSchemas/d7be1e2c-b3dc-11ec-b909-0242ac120002"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "delete_records",
|
||||
"description": "Procedure delete the records",
|
||||
"version": 0.1,
|
||||
"updatedAt": 1648937554000,
|
||||
"updatedBy": "anonymous",
|
||||
"href": "http://localhost:8585/api/v1/tables/3cda8ecb-f4c6-4ed4-8506-abe965b54b86",
|
||||
"storedProcedureCode": {
|
||||
"langauge": "SQL",
|
||||
"code": "CREATE OR REPLACE PROCEDURE delete_records(table_name VARCHAR, condition VARCHAR) RETURNS INT NOT NULL LANGUAGE SQL AS $$\nDECLARE\n rows_deleted INT;\nBEGIN\n EXECUTE 'DELETE FROM ' || table_name || ' WHERE ' || condition INTO rows_deleted;\n RETURN rows_deleted;\nEND;\n$$;"
|
||||
},
|
||||
"database": {
|
||||
"id": "50da1ff8-4e1d-4967-8931-45edbf4dd908",
|
||||
"type": "database",
|
||||
"name": "sample_data.ecommerce_db",
|
||||
"description": "This **mock** database contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databases/50da1ff8-4e1d-4967-8931-45edbf4dd908"
|
||||
},
|
||||
"tags": [],
|
||||
"followers": [],
|
||||
"databaseSchema": {
|
||||
"id": "d7be1e2c-b3dc-11ec-b909-0242ac120002",
|
||||
"type": "databaseSchema",
|
||||
"name": "sample_data.ecommerce_db.shopify",
|
||||
"description": "This **mock** Schema contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databaseSchemas/d7be1e2c-b3dc-11ec-b909-0242ac120002"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "calculate_interest",
|
||||
"description": "Procedure to calculate interest",
|
||||
"version": 0.1,
|
||||
"updatedAt": 1650615609000,
|
||||
"updatedBy": "anonymous",
|
||||
"href": "http://localhost:8585/api/v1/tables/3cda8ecb-f4c6-4ed4-8506-abe965b54b86",
|
||||
"storedProcedureCode": {
|
||||
"langauge": "SQL",
|
||||
"code": "CREATE OR REPLACE PROCEDURE calculate_interest(principal FLOAT, rate FLOAT, time_period INT) RETURNS FLOAT NOT NULL LANGUAGE SQL AS $$\nDECLARE interest FLOAT;\nBEGIN\n interest := (principal * rate * time_period) / 100.0;\n RETURN interest;\nEND;\n$$;"
|
||||
},
|
||||
"database": {
|
||||
"id": "50da1ff8-4e1d-4967-8931-45edbf4dd908",
|
||||
"type": "database",
|
||||
"name": "sample_data.ecommerce_db",
|
||||
"description": "This **mock** database contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databases/50da1ff8-4e1d-4967-8931-45edbf4dd908"
|
||||
},
|
||||
"tags": [],
|
||||
"followers": [],
|
||||
"databaseSchema": {
|
||||
"id": "d7be1e2c-b3dc-11ec-b909-0242ac120002",
|
||||
"type": "databaseSchema",
|
||||
"name": "sample_data.ecommerce_db.shopify",
|
||||
"description": "This **mock** Schema contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databaseSchemas/d7be1e2c-b3dc-11ec-b909-0242ac120002"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "generate_random_password",
|
||||
"description": "Procedure to generate random password",
|
||||
"version": 0.1,
|
||||
"updatedAt": 1651451037000,
|
||||
"updatedBy": "anonymous",
|
||||
"href": "http://localhost:8585/api/v1/tables/3cda8ecb-f4c6-4ed4-8506-abe965b54b86",
|
||||
"storedProcedureCode": {
|
||||
"langauge": "SQL",
|
||||
"code": "CREATE OR REPLACE PROCEDURE generate_random_password(length INT) RETURNS VARCHAR NOT NULL LANGUAGE SQL AS $$DECLARE characters VARCHAR = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; random_password VARCHAR = '';BEGIN\n FOR i IN 1..length\n LOOP random_password := random_password || substr(characters, ceil(random() * length(characters)), 1);\n END LOOP;\n RETURN random_password;\nEND;\n$$;"
|
||||
},
|
||||
"database": {
|
||||
"id": "50da1ff8-4e1d-4967-8931-45edbf4dd908",
|
||||
"type": "database",
|
||||
"name": "sample_data.ecommerce_db",
|
||||
"description": "This **mock** database contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databases/50da1ff8-4e1d-4967-8931-45edbf4dd908"
|
||||
},
|
||||
"tags": [],
|
||||
"followers": [],
|
||||
"databaseSchema": {
|
||||
"id": "d7be1e2c-b3dc-11ec-b909-0242ac120002",
|
||||
"type": "databaseSchema",
|
||||
"name": "sample_data.ecommerce_db.shopify",
|
||||
"description": "This **mock** Schema contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databaseSchemas/d7be1e2c-b3dc-11ec-b909-0242ac120002"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "update_product_price",
|
||||
"description": "Procedure to update product price",
|
||||
"version": 0.1,
|
||||
"updatedAt": 1652586518000,
|
||||
"updatedBy": "anonymous",
|
||||
"href": "http://localhost:8585/api/v1/tables/3cda8ecb-f4c6-4ed4-8506-abe965b54b86",
|
||||
"storedProcedureCode": {
|
||||
"langauge": "SQL",
|
||||
"code": "CREATE OR REPLACE PROCEDURE update_product_price(product_id INT, new_price DECIMAL) RETURNS VOID LANGUAGE SQL AS $$\nBEGIN\n UPDATE products\n SET price = new_price\n WHERE id = product_id;\nEND;\n$$;"
|
||||
},
|
||||
"database": {
|
||||
"id": "50da1ff8-4e1d-4967-8931-45edbf4dd908",
|
||||
"type": "database",
|
||||
"name": "sample_data.ecommerce_db",
|
||||
"description": "This **mock** database contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databases/50da1ff8-4e1d-4967-8931-45edbf4dd908"
|
||||
},
|
||||
"tags": [],
|
||||
"followers": [],
|
||||
"databaseSchema": {
|
||||
"id": "d7be1e2c-b3dc-11ec-b909-0242ac120002",
|
||||
"type": "databaseSchema",
|
||||
"name": "sample_data.ecommerce_db.shopify",
|
||||
"description": "This **mock** Schema contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databaseSchemas/d7be1e2c-b3dc-11ec-b909-0242ac120002"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "update_dim_address_clean_from_dim_address",
|
||||
"description": "Procedure to update dim_address clean table",
|
||||
"version": 0.1,
|
||||
"updatedAt": 1654112579000,
|
||||
"updatedBy": "anonymous",
|
||||
"href": "http://localhost:8585/api/v1/tables/3cda8ecb-f4c6-4ed4-8506-abe965b54b86",
|
||||
"storedProcedureCode": {
|
||||
"langauge": "SQL",
|
||||
"code": "CREATE OR REPLACE PROCEDURE UpdateDimAddressCleanFromDimAddress()\nLANGUAGE plpgsql\nAS $$\nBEGIN\nUPDATE dim_address_clean AS dc\nSET\n street = da.street,\n city = da.city,\n state = da.state,\n postal_code = da.postal_code\nFROM dim_address AS da\nWHERE dc.address_id = da.address_id;\n\nCOMMIT;\nEND;\n$$;"
|
||||
},
|
||||
"database": {
|
||||
"id": "50da1ff8-4e1d-4967-8931-45edbf4dd908",
|
||||
"type": "database",
|
||||
"name": "sample_data.ecommerce_db",
|
||||
"description": "This **mock** database contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databases/50da1ff8-4e1d-4967-8931-45edbf4dd908"
|
||||
},
|
||||
"tags": [],
|
||||
"followers": [],
|
||||
"databaseSchema": {
|
||||
"id": "d7be1e2c-b3dc-11ec-b909-0242ac120002",
|
||||
"type": "databaseSchema",
|
||||
"name": "sample_data.ecommerce_db.shopify",
|
||||
"description": "This **mock** Schema contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databaseSchemas/d7be1e2c-b3dc-11ec-b909-0242ac120002"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "transform_and_load_data",
|
||||
"description": "Procedure to clean the customers data before loading",
|
||||
"version": 0.1,
|
||||
"updatedAt": 1656043991000,
|
||||
"updatedBy": "anonymous",
|
||||
"href": "http://localhost:8585/api/v1/tables/3cda8ecb-f4c6-4ed4-8506-abe965b54b86",
|
||||
"storedProcedureCode": {
|
||||
"langauge": "SQL",
|
||||
"code": "CREATE OR REPLACE FUNCTION TransformAndLoadData() RETURNS VOID AS $$ BEGIN\n DELETE FROM dim_customer;\n INSERT INTO dim_customer (dim_customer_name, dim_customer_email)\n SELECT\n TRIM(raw_customer_name),\n LOWER(raw_customer_email)\n FROM raw_customer;\n COMMIT;\n END; $$ LANGUAGE plpgsql;"
|
||||
},
|
||||
"database": {
|
||||
"id": "50da1ff8-4e1d-4967-8931-45edbf4dd908",
|
||||
"type": "database",
|
||||
"name": "sample_data.ecommerce_db",
|
||||
"description": "This **mock** database contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databases/50da1ff8-4e1d-4967-8931-45edbf4dd908"
|
||||
},
|
||||
"tags": [],
|
||||
"followers": [],
|
||||
"databaseSchema": {
|
||||
"id": "d7be1e2c-b3dc-11ec-b909-0242ac120002",
|
||||
"type": "databaseSchema",
|
||||
"name": "sample_data.ecommerce_db.shopify",
|
||||
"description": "This **mock** Schema contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databaseSchemas/d7be1e2c-b3dc-11ec-b909-0242ac120002"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "update_fact_order_from_raw_order",
|
||||
"description": "Procedure to update fact order from raw order table",
|
||||
"version": 0.1,
|
||||
"updatedAt": 1657845268000,
|
||||
"updatedBy": "anonymous",
|
||||
"href": "http://localhost:8585/api/v1/tables/3cda8ecb-f4c6-4ed4-8506-abe965b54b86",
|
||||
"storedProcedureCode": {
|
||||
"langauge": "SQL",
|
||||
"code": "CREATE OR REPLACE PROCEDURE UpdateFactOrderFromRawOrder()\nLANGUAGE plpgsql AS $$\nBEGIN\n TRUNCATE fact_order;\n INSERT INTO fact_order (Month, TotalQuantity)\n SELECT DATE_TRUNC('month', OrderDate) AS Month, SUM(Quantity) AS TotalQuantity\n FROM raw_order\n GROUP BY DATE_TRUNC('month', OrderDate);\nEND;\n$$;"
|
||||
},
|
||||
"database": {
|
||||
"id": "50da1ff8-4e1d-4967-8931-45edbf4dd908",
|
||||
"type": "database",
|
||||
"name": "sample_data.ecommerce_db",
|
||||
"description": "This **mock** database contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databases/50da1ff8-4e1d-4967-8931-45edbf4dd908"
|
||||
},
|
||||
"tags": [],
|
||||
"followers": [],
|
||||
"databaseSchema": {
|
||||
"id": "d7be1e2c-b3dc-11ec-b909-0242ac120002",
|
||||
"type": "databaseSchema",
|
||||
"name": "sample_data.ecommerce_db.shopify",
|
||||
"description": "This **mock** Schema contains tables related to shopify sales and orders with related dimension tables.",
|
||||
"href": "http://localhost:8585/api/v1/databaseSchemas/d7be1e2c-b3dc-11ec-b909-0242ac120002"
|
||||
}
|
||||
}
|
||||
],
|
||||
"lineage":[
|
||||
{
|
||||
"from_table_fqn": "sample_data.ecommerce_db.shopify.raw_order",
|
||||
"stored_procedure_fqn": "sample_data.ecommerce_db.shopify.update_fact_order_from_raw_order",
|
||||
"to_table_fqn": "sample_data.ecommerce_db.shopify.fact_order"
|
||||
},
|
||||
{
|
||||
"from_table_fqn": "sample_data.ecommerce_db.shopify.raw_customer",
|
||||
"stored_procedure_fqn": "sample_data.ecommerce_db.shopify.transform_and_load_data",
|
||||
"to_table_fqn": "sample_data.ecommerce_db.shopify.dim_customer"
|
||||
},
|
||||
{
|
||||
"from_table_fqn": "sample_data.ecommerce_db.shopify.dim_address",
|
||||
"stored_procedure_fqn": "sample_data.ecommerce_db.shopify.update_dim_address_clean_from_dim_address",
|
||||
"to_table_fqn": "sample_data.ecommerce_db.shopify.dim_address_clean"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,310 @@
|
||||
[
|
||||
{
|
||||
"table": "sample_data.ecommerce_db.shopify.dim_staff",
|
||||
"tableTests": [
|
||||
{
|
||||
"description": "Rows should always be 100 because of something",
|
||||
"testCase": {
|
||||
"config": {
|
||||
"value": "120"
|
||||
},
|
||||
"tableTestType": "tableRowCountToEqual"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646221199,
|
||||
"testCaseStatus": "Failed",
|
||||
"result": "Found 100.0 rows vs. the expected 120"
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Rows should always be 100 because of something",
|
||||
"testCase": {
|
||||
"config": {
|
||||
"value": "120"
|
||||
},
|
||||
"tableTestType": "tableRowCountToEqual"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646220190,
|
||||
"testCaseStatus": "Success",
|
||||
"result": "Found 120.0 rows vs. the expected 120"
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "We expect certain columns",
|
||||
"testCase": {
|
||||
"config": {
|
||||
"value": "5"
|
||||
},
|
||||
"tableTestType": "tableColumnCountToEqual"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646221199,
|
||||
"testCaseStatus": "Success",
|
||||
"result": "Found 5.0 columns vs. the expected 5"
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Rows should always be 100 because of something",
|
||||
"testCase": {
|
||||
"config": {
|
||||
"minValue": "100",
|
||||
"maxValue": "200"
|
||||
},
|
||||
"tableTestType": "tableRowCountToBeBetween"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646220190,
|
||||
"testCaseStatus": "Success",
|
||||
"result": "Found 120.0 rows vs. the expected range [100, 200]"
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Rows should always be 100 because of something",
|
||||
"testCase": {
|
||||
"config": {
|
||||
"minValue": "100",
|
||||
"maxValue": "200"
|
||||
},
|
||||
"tableTestType": "tableRowCountToBeBetween"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646221199,
|
||||
"testCaseStatus": "Success",
|
||||
"result": "Found 120.0 rows vs. the expected range [100, 200]"
|
||||
}
|
||||
}
|
||||
],
|
||||
"columnTests": [
|
||||
{
|
||||
"columnName": "user_id",
|
||||
"description": "user_id should be positive",
|
||||
"testCase": {
|
||||
"config": {
|
||||
"minValue": "0"
|
||||
},
|
||||
"columnTestType": "columnValuesToBeBetween"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646221199,
|
||||
"testCaseStatus": "Success",
|
||||
"result": "Found min=1.0 vs. the expected min=0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnName": "user_id",
|
||||
"description": "user_id should be positive",
|
||||
"testCase": {
|
||||
"config": {
|
||||
"minValue": "0"
|
||||
},
|
||||
"columnTestType": "columnValuesToBeBetween"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646220190,
|
||||
"testCaseStatus": "Success",
|
||||
"result": "Found min=1.0 vs. the expected min=0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnName": "email",
|
||||
"description": "emails should be unique",
|
||||
"testCase": {
|
||||
"config": {},
|
||||
"columnTestType": "columnValuesToBeUnique"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646220190,
|
||||
"testCaseStatus": "Success",
|
||||
"result": "Found uniqueCount=100.0 vs. valuesCount=100.0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnName": "email",
|
||||
"description": "emails should be unique",
|
||||
"testCase": {
|
||||
"config": {},
|
||||
"columnTestType": "columnValuesToBeUnique"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646221199,
|
||||
"testCaseStatus": "Success",
|
||||
"result": "Found uniqueCount=100.0 vs. valuesCount=100.0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnName": "user_id",
|
||||
"description": "user_id should be not null",
|
||||
"testCase": {
|
||||
"config": {},
|
||||
"columnTestType": "columnValuesToBeNotNull"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646220190,
|
||||
"testCaseStatus": "Success",
|
||||
"result": "Found nullCount=0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnName": "user_id",
|
||||
"description": "user_id should be not null",
|
||||
"testCase": {
|
||||
"config": {},
|
||||
"columnTestType": "columnValuesToBeNotNull"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646221199,
|
||||
"testCaseStatus": "Success",
|
||||
"result": "Found nullCount=0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnName": "last_name",
|
||||
"description": "last_name should match a regex",
|
||||
"testCase": {
|
||||
"config": {
|
||||
"regex": "%something%"
|
||||
},
|
||||
"columnTestType": "columnValuesToMatchRegex"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646220190,
|
||||
"testCaseStatus": "Failed",
|
||||
"result": "Found likeCount=0. Nothing matches %something%"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnName": "last_name",
|
||||
"description": "last_name should match a regex",
|
||||
"testCase": {
|
||||
"config": {
|
||||
"regex": "%something%"
|
||||
},
|
||||
"columnTestType": "columnValuesToMatchRegex"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646221199,
|
||||
"testCaseStatus": "Failed",
|
||||
"result": "Found likeCount=0. Nothing matches %something%"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnName": "first_name",
|
||||
"description": "Some description...",
|
||||
"testCase": {
|
||||
"config": {
|
||||
"missingCountValue": "10"
|
||||
},
|
||||
"columnTestType": "columnValuesMissingCountToBeEqual"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646220190,
|
||||
"testCaseStatus": "Failed",
|
||||
"result": "Found nullCount=0.0 vs. the expected nullCount=10"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnName": "first_name",
|
||||
"description": "Some description...",
|
||||
"testCase": {
|
||||
"config": {
|
||||
"missingCountValue": "10"
|
||||
},
|
||||
"columnTestType": "columnValuesMissingCountToBeEqual"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646221199,
|
||||
"testCaseStatus": "Failed",
|
||||
"result": "Found nullCount=0.0 vs. the expected nullCount=10"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnName": "email",
|
||||
"description": "email should have a fixed length",
|
||||
"testCase": {
|
||||
"config": {
|
||||
"minValue": "6",
|
||||
"maxValue": "30"
|
||||
},
|
||||
"columnTestType": "columnValuesToBeBetween"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646221199,
|
||||
"testCaseStatus": "Success",
|
||||
"result": "Found min=1.0 vs. the expected min=0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnName": "email",
|
||||
"description": "email should have a fixed length",
|
||||
"testCase": {
|
||||
"config": {
|
||||
"minValue": "6",
|
||||
"maxValue": "30"
|
||||
},
|
||||
"columnTestType": "columnValuesToBeBetween"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646220190,
|
||||
"testCaseStatus": "Success",
|
||||
"result": "Found min=1.0 vs. the expected min=0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnName": "last_name",
|
||||
"description": "We have reserved last names",
|
||||
"testCase": {
|
||||
"config": {
|
||||
"forbiddenValues": [
|
||||
"forbidden",
|
||||
"random"
|
||||
]
|
||||
},
|
||||
"columnTestType": "columnValuesToBeNotInSet"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646220190,
|
||||
"testCaseStatus": "Success",
|
||||
"result": "Found countInSet=0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnName": "last_name",
|
||||
"description": "We have reserved last names",
|
||||
"testCase": {
|
||||
"config": {
|
||||
"forbiddenValues": [
|
||||
"forbidden",
|
||||
"random"
|
||||
]
|
||||
},
|
||||
"columnTestType": "columnValuesToBeNotInSet"
|
||||
},
|
||||
"executionFrequency": "Daily",
|
||||
"result": {
|
||||
"timestamp": 1646221199,
|
||||
"testCaseStatus": "Success",
|
||||
"result": "Found countInSet=0"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,683 @@
|
||||
{
|
||||
"metadata": {
|
||||
"dbt_schema_version": "https://schemas.getdbt.com/dbt/catalog/v1.json",
|
||||
"dbt_version": "0.21.0",
|
||||
"generated_at": "2021-11-11T21:56:25.947085Z",
|
||||
"invocation_id": "f586e0cb-d473-4b0f-9da0-7e1b4db6b9df",
|
||||
"env": {}
|
||||
},
|
||||
"nodes": {
|
||||
"seed.jaffle_shop.raw_orders": {
|
||||
"metadata": {
|
||||
"type": "BASE TABLE",
|
||||
"schema": "dbt_alice",
|
||||
"name": "raw_orders",
|
||||
"database": "jaffle_shop",
|
||||
"comment": null,
|
||||
"owner": "awsuser"
|
||||
},
|
||||
"columns": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"index": 1,
|
||||
"name": "id",
|
||||
"comment": null
|
||||
},
|
||||
"user_id": {
|
||||
"type": "integer",
|
||||
"index": 2,
|
||||
"name": "user_id",
|
||||
"comment": null
|
||||
},
|
||||
"order_date": {
|
||||
"type": "date",
|
||||
"index": 3,
|
||||
"name": "order_date",
|
||||
"comment": null
|
||||
},
|
||||
"status": {
|
||||
"type": "character varying(14)",
|
||||
"index": 4,
|
||||
"name": "status",
|
||||
"comment": null
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"diststyle": {
|
||||
"id": "diststyle",
|
||||
"label": "Dist Style",
|
||||
"value": "AUTO(ALL)",
|
||||
"include": true,
|
||||
"description": "Distribution style or distribution key column, if key distribution is defined."
|
||||
},
|
||||
"max_varchar": {
|
||||
"id": "max_varchar",
|
||||
"label": "Max Varchar",
|
||||
"value": 14.0,
|
||||
"include": true,
|
||||
"description": "Size of the largest column that uses a VARCHAR data type."
|
||||
},
|
||||
"size": {
|
||||
"id": "size",
|
||||
"label": "Approximate Size",
|
||||
"value": 7000000.0,
|
||||
"include": true,
|
||||
"description": "Approximate size of the table, calculated from a count of 1MB blocks"
|
||||
},
|
||||
"rows": {
|
||||
"id": "rows",
|
||||
"label": "Approximate Row Count",
|
||||
"value": 99.0,
|
||||
"include": true,
|
||||
"description": "Approximate number of rows in the table. This value includes rows marked for deletion, but not yet vacuumed."
|
||||
},
|
||||
"encoded": {
|
||||
"id": "encoded",
|
||||
"label": "Encoded",
|
||||
"value": "Y, AUTO(ENCODE)",
|
||||
"include": true,
|
||||
"description": "Indicates whether any column in the table has compression encoding defined."
|
||||
},
|
||||
"pct_used": {
|
||||
"id": "pct_used",
|
||||
"label": "Disk Utilization",
|
||||
"value": 1.9e-05,
|
||||
"include": true,
|
||||
"description": "Percent of available space that is used by the table."
|
||||
},
|
||||
"sortkey1": {
|
||||
"id": "sortkey1",
|
||||
"label": "Sort Key 1",
|
||||
"value": "AUTO(SORTKEY)",
|
||||
"include": true,
|
||||
"description": "First column in the sort key."
|
||||
},
|
||||
"stats_off": {
|
||||
"id": "stats_off",
|
||||
"label": "Stats Off",
|
||||
"value": 100.0,
|
||||
"include": true,
|
||||
"description": "Number that indicates how stale the table statistics are; 0 is current, 100 is out of date."
|
||||
},
|
||||
"has_stats": {
|
||||
"id": "has_stats",
|
||||
"label": "Has Stats?",
|
||||
"value": true,
|
||||
"include": false,
|
||||
"description": "Indicates whether there are statistics for this table"
|
||||
}
|
||||
},
|
||||
"unique_id": "seed.jaffle_shop.raw_orders"
|
||||
},
|
||||
"seed.jaffle_shop.raw_payments": {
|
||||
"metadata": {
|
||||
"type": "BASE TABLE",
|
||||
"schema": "dbt_alice",
|
||||
"name": "raw_payments",
|
||||
"database": "jaffle_shop",
|
||||
"comment": null,
|
||||
"owner": "awsuser"
|
||||
},
|
||||
"columns": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"index": 1,
|
||||
"name": "id",
|
||||
"comment": null
|
||||
},
|
||||
"order_id": {
|
||||
"type": "integer",
|
||||
"index": 2,
|
||||
"name": "order_id",
|
||||
"comment": null
|
||||
},
|
||||
"payment_method": {
|
||||
"type": "character varying(13)",
|
||||
"index": 3,
|
||||
"name": "payment_method",
|
||||
"comment": null
|
||||
},
|
||||
"amount": {
|
||||
"type": "integer",
|
||||
"index": 4,
|
||||
"name": "amount",
|
||||
"comment": null
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"diststyle": {
|
||||
"id": "diststyle",
|
||||
"label": "Dist Style",
|
||||
"value": "AUTO(ALL)",
|
||||
"include": true,
|
||||
"description": "Distribution style or distribution key column, if key distribution is defined."
|
||||
},
|
||||
"max_varchar": {
|
||||
"id": "max_varchar",
|
||||
"label": "Max Varchar",
|
||||
"value": 13.0,
|
||||
"include": true,
|
||||
"description": "Size of the largest column that uses a VARCHAR data type."
|
||||
},
|
||||
"size": {
|
||||
"id": "size",
|
||||
"label": "Approximate Size",
|
||||
"value": 7000000.0,
|
||||
"include": true,
|
||||
"description": "Approximate size of the table, calculated from a count of 1MB blocks"
|
||||
},
|
||||
"rows": {
|
||||
"id": "rows",
|
||||
"label": "Approximate Row Count",
|
||||
"value": 113.0,
|
||||
"include": true,
|
||||
"description": "Approximate number of rows in the table. This value includes rows marked for deletion, but not yet vacuumed."
|
||||
},
|
||||
"encoded": {
|
||||
"id": "encoded",
|
||||
"label": "Encoded",
|
||||
"value": "Y, AUTO(ENCODE)",
|
||||
"include": true,
|
||||
"description": "Indicates whether any column in the table has compression encoding defined."
|
||||
},
|
||||
"pct_used": {
|
||||
"id": "pct_used",
|
||||
"label": "Disk Utilization",
|
||||
"value": 1.9e-05,
|
||||
"include": true,
|
||||
"description": "Percent of available space that is used by the table."
|
||||
},
|
||||
"sortkey1": {
|
||||
"id": "sortkey1",
|
||||
"label": "Sort Key 1",
|
||||
"value": "AUTO(SORTKEY)",
|
||||
"include": true,
|
||||
"description": "First column in the sort key."
|
||||
},
|
||||
"stats_off": {
|
||||
"id": "stats_off",
|
||||
"label": "Stats Off",
|
||||
"value": 100.0,
|
||||
"include": true,
|
||||
"description": "Number that indicates how stale the table statistics are; 0 is current, 100 is out of date."
|
||||
},
|
||||
"has_stats": {
|
||||
"id": "has_stats",
|
||||
"label": "Has Stats?",
|
||||
"value": true,
|
||||
"include": false,
|
||||
"description": "Indicates whether there are statistics for this table"
|
||||
}
|
||||
},
|
||||
"unique_id": "seed.jaffle_shop.raw_payments"
|
||||
},
|
||||
"seed.jaffle_shop.raw_customers": {
|
||||
"metadata": {
|
||||
"type": "BASE TABLE",
|
||||
"schema": "dbt_alice",
|
||||
"name": "raw_customers",
|
||||
"database": "jaffle_shop",
|
||||
"comment": null,
|
||||
"owner": "awsuser"
|
||||
},
|
||||
"columns": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"index": 1,
|
||||
"name": "id",
|
||||
"comment": null
|
||||
},
|
||||
"first_name": {
|
||||
"type": "character varying(10)",
|
||||
"index": 2,
|
||||
"name": "first_name",
|
||||
"comment": null
|
||||
},
|
||||
"last_name": {
|
||||
"type": "character varying(2)",
|
||||
"index": 3,
|
||||
"name": "last_name",
|
||||
"comment": null
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"diststyle": {
|
||||
"id": "diststyle",
|
||||
"label": "Dist Style",
|
||||
"value": "AUTO(ALL)",
|
||||
"include": true,
|
||||
"description": "Distribution style or distribution key column, if key distribution is defined."
|
||||
},
|
||||
"max_varchar": {
|
||||
"id": "max_varchar",
|
||||
"label": "Max Varchar",
|
||||
"value": 10.0,
|
||||
"include": true,
|
||||
"description": "Size of the largest column that uses a VARCHAR data type."
|
||||
},
|
||||
"size": {
|
||||
"id": "size",
|
||||
"label": "Approximate Size",
|
||||
"value": 6000000.0,
|
||||
"include": true,
|
||||
"description": "Approximate size of the table, calculated from a count of 1MB blocks"
|
||||
},
|
||||
"rows": {
|
||||
"id": "rows",
|
||||
"label": "Approximate Row Count",
|
||||
"value": 100.0,
|
||||
"include": true,
|
||||
"description": "Approximate number of rows in the table. This value includes rows marked for deletion, but not yet vacuumed."
|
||||
},
|
||||
"encoded": {
|
||||
"id": "encoded",
|
||||
"label": "Encoded",
|
||||
"value": "Y, AUTO(ENCODE)",
|
||||
"include": true,
|
||||
"description": "Indicates whether any column in the table has compression encoding defined."
|
||||
},
|
||||
"pct_used": {
|
||||
"id": "pct_used",
|
||||
"label": "Disk Utilization",
|
||||
"value": 1.6e-05,
|
||||
"include": true,
|
||||
"description": "Percent of available space that is used by the table."
|
||||
},
|
||||
"sortkey1": {
|
||||
"id": "sortkey1",
|
||||
"label": "Sort Key 1",
|
||||
"value": "AUTO(SORTKEY)",
|
||||
"include": true,
|
||||
"description": "First column in the sort key."
|
||||
},
|
||||
"stats_off": {
|
||||
"id": "stats_off",
|
||||
"label": "Stats Off",
|
||||
"value": 100.0,
|
||||
"include": true,
|
||||
"description": "Number that indicates how stale the table statistics are; 0 is current, 100 is out of date."
|
||||
},
|
||||
"has_stats": {
|
||||
"id": "has_stats",
|
||||
"label": "Has Stats?",
|
||||
"value": true,
|
||||
"include": false,
|
||||
"description": "Indicates whether there are statistics for this table"
|
||||
}
|
||||
},
|
||||
"unique_id": "seed.jaffle_shop.raw_customers"
|
||||
},
|
||||
"model.jaffle_shop.stg_customers": {
|
||||
"metadata": {
|
||||
"type": "VIEW",
|
||||
"schema": "dbt_alice",
|
||||
"name": "stg_customers",
|
||||
"database": "jaffle_shop",
|
||||
"comment": null,
|
||||
"owner": "awsuser"
|
||||
},
|
||||
"columns": {
|
||||
"customer_id": {
|
||||
"type": "integer",
|
||||
"index": 1,
|
||||
"name": "customer_id",
|
||||
"comment": null
|
||||
},
|
||||
"first_name": {
|
||||
"type": "character varying(10)",
|
||||
"index": 2,
|
||||
"name": "first_name",
|
||||
"comment": null
|
||||
},
|
||||
"last_name": {
|
||||
"type": "character varying(2)",
|
||||
"index": 3,
|
||||
"name": "last_name",
|
||||
"comment": null
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"has_stats": {
|
||||
"id": "has_stats",
|
||||
"label": "Has Stats?",
|
||||
"value": false,
|
||||
"include": false,
|
||||
"description": "Indicates whether there are statistics for this table"
|
||||
}
|
||||
},
|
||||
"unique_id": "model.jaffle_shop.stg_customers"
|
||||
},
|
||||
"model.jaffle_shop.stg_orders": {
|
||||
"metadata": {
|
||||
"type": "VIEW",
|
||||
"schema": "dbt_alice",
|
||||
"name": "stg_orders",
|
||||
"database": "jaffle_shop",
|
||||
"comment": null,
|
||||
"owner": "awsuser"
|
||||
},
|
||||
"columns": {
|
||||
"order_id": {
|
||||
"type": "integer",
|
||||
"index": 1,
|
||||
"name": "order_id",
|
||||
"comment": null
|
||||
},
|
||||
"customer_id": {
|
||||
"type": "integer",
|
||||
"index": 2,
|
||||
"name": "customer_id",
|
||||
"comment": null
|
||||
},
|
||||
"order_date": {
|
||||
"type": "date",
|
||||
"index": 3,
|
||||
"name": "order_date",
|
||||
"comment": null
|
||||
},
|
||||
"status": {
|
||||
"type": "character varying(14)",
|
||||
"index": 4,
|
||||
"name": "status",
|
||||
"comment": null
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"has_stats": {
|
||||
"id": "has_stats",
|
||||
"label": "Has Stats?",
|
||||
"value": false,
|
||||
"include": false,
|
||||
"description": "Indicates whether there are statistics for this table"
|
||||
}
|
||||
},
|
||||
"unique_id": "model.jaffle_shop.stg_orders"
|
||||
},
|
||||
"model.jaffle_shop.stg_payments": {
|
||||
"metadata": {
|
||||
"type": "VIEW",
|
||||
"schema": "dbt_alice",
|
||||
"name": "stg_payments",
|
||||
"database": "jaffle_shop",
|
||||
"comment": null,
|
||||
"owner": "awsuser"
|
||||
},
|
||||
"columns": {
|
||||
"payment_id": {
|
||||
"type": "integer",
|
||||
"index": 1,
|
||||
"name": "payment_id",
|
||||
"comment": null
|
||||
},
|
||||
"order_id": {
|
||||
"type": "integer",
|
||||
"index": 2,
|
||||
"name": "order_id",
|
||||
"comment": null
|
||||
},
|
||||
"payment_method": {
|
||||
"type": "character varying(13)",
|
||||
"index": 3,
|
||||
"name": "payment_method",
|
||||
"comment": null
|
||||
},
|
||||
"amount": {
|
||||
"type": "integer",
|
||||
"index": 4,
|
||||
"name": "amount",
|
||||
"comment": null
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"has_stats": {
|
||||
"id": "has_stats",
|
||||
"label": "Has Stats?",
|
||||
"value": false,
|
||||
"include": false,
|
||||
"description": "Indicates whether there are statistics for this table"
|
||||
}
|
||||
},
|
||||
"unique_id": "model.jaffle_shop.stg_payments"
|
||||
},
|
||||
"model.jaffle_shop.orders": {
|
||||
"metadata": {
|
||||
"type": "BASE TABLE",
|
||||
"schema": "dbt_alice",
|
||||
"name": "orders",
|
||||
"database": "jaffle_shop",
|
||||
"comment": null,
|
||||
"owner": "awsuser"
|
||||
},
|
||||
"columns": {
|
||||
"order_id": {
|
||||
"type": "integer",
|
||||
"index": 1,
|
||||
"name": "order_id",
|
||||
"comment": null
|
||||
},
|
||||
"customer_id": {
|
||||
"type": "integer",
|
||||
"index": 2,
|
||||
"name": "customer_id",
|
||||
"comment": null
|
||||
},
|
||||
"order_date": {
|
||||
"type": "date",
|
||||
"index": 3,
|
||||
"name": "order_date",
|
||||
"comment": null
|
||||
},
|
||||
"status": {
|
||||
"type": "character varying(14)",
|
||||
"index": 4,
|
||||
"name": "status",
|
||||
"comment": null
|
||||
},
|
||||
"credit_card_amount": {
|
||||
"type": "bigint",
|
||||
"index": 5,
|
||||
"name": "credit_card_amount",
|
||||
"comment": null
|
||||
},
|
||||
"coupon_amount": {
|
||||
"type": "bigint",
|
||||
"index": 6,
|
||||
"name": "coupon_amount",
|
||||
"comment": null
|
||||
},
|
||||
"bank_transfer_amount": {
|
||||
"type": "bigint",
|
||||
"index": 7,
|
||||
"name": "bank_transfer_amount",
|
||||
"comment": null
|
||||
},
|
||||
"gift_card_amount": {
|
||||
"type": "bigint",
|
||||
"index": 8,
|
||||
"name": "gift_card_amount",
|
||||
"comment": null
|
||||
},
|
||||
"amount": {
|
||||
"type": "bigint",
|
||||
"index": 9,
|
||||
"name": "amount",
|
||||
"comment": null
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"diststyle": {
|
||||
"id": "diststyle",
|
||||
"label": "Dist Style",
|
||||
"value": "EVEN",
|
||||
"include": true,
|
||||
"description": "Distribution style or distribution key column, if key distribution is defined."
|
||||
},
|
||||
"max_varchar": {
|
||||
"id": "max_varchar",
|
||||
"label": "Max Varchar",
|
||||
"value": 14.0,
|
||||
"include": true,
|
||||
"description": "Size of the largest column that uses a VARCHAR data type."
|
||||
},
|
||||
"size": {
|
||||
"id": "size",
|
||||
"label": "Approximate Size",
|
||||
"value": 24000000.0,
|
||||
"include": true,
|
||||
"description": "Approximate size of the table, calculated from a count of 1MB blocks"
|
||||
},
|
||||
"rows": {
|
||||
"id": "rows",
|
||||
"label": "Approximate Row Count",
|
||||
"value": 99.0,
|
||||
"include": true,
|
||||
"description": "Approximate number of rows in the table. This value includes rows marked for deletion, but not yet vacuumed."
|
||||
},
|
||||
"encoded": {
|
||||
"id": "encoded",
|
||||
"label": "Encoded",
|
||||
"value": "Y",
|
||||
"include": true,
|
||||
"description": "Indicates whether any column in the table has compression encoding defined."
|
||||
},
|
||||
"pct_used": {
|
||||
"id": "pct_used",
|
||||
"label": "Disk Utilization",
|
||||
"value": 6.6e-05,
|
||||
"include": true,
|
||||
"description": "Percent of available space that is used by the table."
|
||||
},
|
||||
"stats_off": {
|
||||
"id": "stats_off",
|
||||
"label": "Stats Off",
|
||||
"value": 0.0,
|
||||
"include": true,
|
||||
"description": "Number that indicates how stale the table statistics are; 0 is current, 100 is out of date."
|
||||
},
|
||||
"has_stats": {
|
||||
"id": "has_stats",
|
||||
"label": "Has Stats?",
|
||||
"value": true,
|
||||
"include": false,
|
||||
"description": "Indicates whether there are statistics for this table"
|
||||
}
|
||||
},
|
||||
"unique_id": "model.jaffle_shop.orders"
|
||||
},
|
||||
"model.jaffle_shop.customers": {
|
||||
"metadata": {
|
||||
"type": "BASE TABLE",
|
||||
"schema": "dbt_alice",
|
||||
"name": "customers",
|
||||
"database": "jaffle_shop",
|
||||
"comment": null,
|
||||
"owner": "awsuser"
|
||||
},
|
||||
"columns": {
|
||||
"customer_id": {
|
||||
"type": "integer",
|
||||
"index": 1,
|
||||
"name": "customer_id",
|
||||
"comment": null
|
||||
},
|
||||
"first_name": {
|
||||
"type": "character varying(10)",
|
||||
"index": 2,
|
||||
"name": "first_name",
|
||||
"comment": null
|
||||
},
|
||||
"last_name": {
|
||||
"type": "character varying(2)",
|
||||
"index": 3,
|
||||
"name": "last_name",
|
||||
"comment": null
|
||||
},
|
||||
"first_order": {
|
||||
"type": "date",
|
||||
"index": 4,
|
||||
"name": "first_order",
|
||||
"comment": null
|
||||
},
|
||||
"most_recent_order": {
|
||||
"type": "date",
|
||||
"index": 5,
|
||||
"name": "most_recent_order",
|
||||
"comment": null
|
||||
},
|
||||
"number_of_orders": {
|
||||
"type": "bigint",
|
||||
"index": 6,
|
||||
"name": "number_of_orders",
|
||||
"comment": null
|
||||
},
|
||||
"customer_lifetime_value": {
|
||||
"type": "bigint",
|
||||
"index": 7,
|
||||
"name": "customer_lifetime_value",
|
||||
"comment": null
|
||||
}
|
||||
},
|
||||
"stats": {
|
||||
"diststyle": {
|
||||
"id": "diststyle",
|
||||
"label": "Dist Style",
|
||||
"value": "EVEN",
|
||||
"include": true,
|
||||
"description": "Distribution style or distribution key column, if key distribution is defined."
|
||||
},
|
||||
"max_varchar": {
|
||||
"id": "max_varchar",
|
||||
"label": "Max Varchar",
|
||||
"value": 10.0,
|
||||
"include": true,
|
||||
"description": "Size of the largest column that uses a VARCHAR data type."
|
||||
},
|
||||
"size": {
|
||||
"id": "size",
|
||||
"label": "Approximate Size",
|
||||
"value": 20000000.0,
|
||||
"include": true,
|
||||
"description": "Approximate size of the table, calculated from a count of 1MB blocks"
|
||||
},
|
||||
"rows": {
|
||||
"id": "rows",
|
||||
"label": "Approximate Row Count",
|
||||
"value": 100.0,
|
||||
"include": true,
|
||||
"description": "Approximate number of rows in the table. This value includes rows marked for deletion, but not yet vacuumed."
|
||||
},
|
||||
"encoded": {
|
||||
"id": "encoded",
|
||||
"label": "Encoded",
|
||||
"value": "Y",
|
||||
"include": true,
|
||||
"description": "Indicates whether any column in the table has compression encoding defined."
|
||||
},
|
||||
"pct_used": {
|
||||
"id": "pct_used",
|
||||
"label": "Disk Utilization",
|
||||
"value": 5.5e-05,
|
||||
"include": true,
|
||||
"description": "Percent of available space that is used by the table."
|
||||
},
|
||||
"stats_off": {
|
||||
"id": "stats_off",
|
||||
"label": "Stats Off",
|
||||
"value": 0.0,
|
||||
"include": true,
|
||||
"description": "Number that indicates how stale the table statistics are; 0 is current, 100 is out of date."
|
||||
},
|
||||
"has_stats": {
|
||||
"id": "has_stats",
|
||||
"label": "Has Stats?",
|
||||
"value": true,
|
||||
"include": false,
|
||||
"description": "Indicates whether there are statistics for this table"
|
||||
}
|
||||
},
|
||||
"unique_id": "model.jaffle_shop.customers"
|
||||
}
|
||||
},
|
||||
"sources": {},
|
||||
"errors": null
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"name": "TestDataProduct",
|
||||
"fullyQualifiedName": "TestDomain.TestDataProduct",
|
||||
"displayName": "Test Data Product",
|
||||
"description": "A sample data product for testing purposes. This data product demonstrates how to organize and manage data assets within a domain.",
|
||||
"domains": ["TestDomain"],
|
||||
"style": {},
|
||||
"owners": [],
|
||||
"experts": [],
|
||||
"tags": []
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,65 @@
|
||||
[
|
||||
{
|
||||
"name": "Finance",
|
||||
"displayName": "Finance Department",
|
||||
"description": "Financial documents and reports",
|
||||
"path": "/Finance",
|
||||
"directoryType": "Folder",
|
||||
"isShared": true,
|
||||
"numberOfFiles": 342,
|
||||
"numberOfSubDirectories": 12,
|
||||
"totalSize": 524288000,
|
||||
"tags": [],
|
||||
"owners": []
|
||||
},
|
||||
{
|
||||
"name": "Marketing",
|
||||
"displayName": "Marketing Department",
|
||||
"description": "Marketing materials and campaigns",
|
||||
"path": "/Marketing",
|
||||
"directoryType": "Folder",
|
||||
"isShared": true,
|
||||
"numberOfFiles": 567,
|
||||
"numberOfSubDirectories": 23,
|
||||
"totalSize": 1073741824,
|
||||
"tags": [],
|
||||
"owners": []
|
||||
},
|
||||
{
|
||||
"name": "Q4_Reports",
|
||||
"displayName": "Q4 2024 Reports",
|
||||
"description": "Fourth quarter financial reports",
|
||||
"parent": "Finance",
|
||||
"path": "/Finance/Q4_Reports",
|
||||
"directoryType": "Folder",
|
||||
"isShared": false,
|
||||
"numberOfFiles": 45,
|
||||
"numberOfSubDirectories": 3,
|
||||
"totalSize": 524288000,
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "Campaigns_2024",
|
||||
"displayName": "2024 Marketing Campaigns",
|
||||
"description": "All marketing campaigns for 2024",
|
||||
"parent": "Marketing",
|
||||
"path": "/Marketing/Campaigns_2024",
|
||||
"directoryType": "Folder",
|
||||
"isShared": true,
|
||||
"numberOfFiles": 128,
|
||||
"numberOfSubDirectories": 8,
|
||||
"totalSize": 214748364
|
||||
},
|
||||
{
|
||||
"name": "Social_Media",
|
||||
"displayName": "Social Media Assets",
|
||||
"description": "Images and videos for social media",
|
||||
"parent": "Marketing.Campaigns_2024",
|
||||
"path": "/Marketing/Campaigns_2024/Social_Media",
|
||||
"directoryType": "Folder",
|
||||
"isShared": true,
|
||||
"numberOfFiles": 89,
|
||||
"numberOfSubDirectories": 0,
|
||||
"totalSize": 1073741824
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,416 @@
|
||||
[
|
||||
{
|
||||
"name": "annual_budget_2024.xlsx",
|
||||
"displayName": "Annual Budget 2024",
|
||||
"description": "Company-wide annual budget for fiscal year 2024",
|
||||
"directory": "Finance",
|
||||
"fileType": "Spreadsheet",
|
||||
"mimeType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
"fileExtension": "xlsx",
|
||||
"path": "/Finance/annual_budget_2024.xlsx",
|
||||
"size": 2097152,
|
||||
"checksum": "d41d8cd98f00b204e9800998ecf8427e",
|
||||
"webViewLink": "https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
|
||||
"isShared": false,
|
||||
"fileVersion": "42",
|
||||
"createdTime": 1704067200000,
|
||||
"modifiedTime": 1719878400000,
|
||||
"lastModifiedBy": {
|
||||
"id": "cfo123",
|
||||
"type": "user",
|
||||
"name": "finance_lead"
|
||||
},
|
||||
"tags": [],
|
||||
"owners": []
|
||||
},
|
||||
{
|
||||
"name": "marketing_strategy_2024.pdf",
|
||||
"displayName": "Marketing Strategy 2024",
|
||||
"description": "Comprehensive marketing strategy document for 2024",
|
||||
"directory": "Marketing",
|
||||
"fileType": "PDF",
|
||||
"mimeType": "application/pdf",
|
||||
"fileExtension": "pdf",
|
||||
"path": "/Marketing/marketing_strategy_2024.pdf",
|
||||
"size": 5242880,
|
||||
"checksum": "098f6bcd4621d373cade4e832627b4f6",
|
||||
"webViewLink": "https://drive.google.com/file/d/1aBcDeFgHiJkLmNoPqRsTuVwXyZ/view",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1aBcDeFgHiJkLmNoPqRsTuVwXyZ",
|
||||
"isShared": true,
|
||||
"fileVersion": "15",
|
||||
"createdTime": 1704067200000,
|
||||
"modifiedTime": 1717200000000,
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "employee_compensation_q4.xlsx",
|
||||
"displayName": "Employee Compensation Q4",
|
||||
"description": "Quarterly compensation report including bonuses",
|
||||
"directory": "Finance.Q4_Reports",
|
||||
"fileType": "Spreadsheet",
|
||||
"mimeType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
"fileExtension": "xlsx",
|
||||
"path": "/Finance/Q4_Reports/employee_compensation_q4.xlsx",
|
||||
"size": 1048576,
|
||||
"checksum": "5d41402abc4b2a76b9719d911017c592",
|
||||
"webViewLink": "https://docs.google.com/spreadsheets/d/2CxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=2CxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
|
||||
"isShared": false,
|
||||
"fileVersion": "8",
|
||||
"createdTime": 1719878400000,
|
||||
"modifiedTime": 1720483200000,
|
||||
"tags": [
|
||||
{
|
||||
"tagFQN": "PII.Sensitive",
|
||||
"description": "Contains employee PII and compensation data",
|
||||
"source": "Classification",
|
||||
"labelType": "Manual",
|
||||
"state": "Confirmed"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "campaign_performance_tracker.xlsx",
|
||||
"displayName": "Campaign Performance Tracker",
|
||||
"description": "Tracks performance metrics for all 2024 campaigns",
|
||||
"directory": "Marketing.Campaigns_2024",
|
||||
"fileType": "Spreadsheet",
|
||||
"mimeType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
"fileExtension": "xlsx",
|
||||
"path": "/Marketing/Campaigns_2024/campaign_performance_tracker.xlsx",
|
||||
"size": 3145728,
|
||||
"checksum": "hello5d41402abc4b2a76b9719d911017c592",
|
||||
"webViewLink": "https://docs.google.com/spreadsheets/d/3DxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=3DxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
|
||||
"isShared": true,
|
||||
"fileVersion": "127",
|
||||
"createdTime": 1704067200000,
|
||||
"modifiedTime": 1720569600000
|
||||
},
|
||||
{
|
||||
"name": "instagram_banner_black_friday.png",
|
||||
"displayName": "Instagram Black Friday Banner",
|
||||
"description": "Black Friday promotional banner for Instagram",
|
||||
"directory": "Marketing.Campaigns_2024.Social_Media",
|
||||
"fileType": "Image",
|
||||
"mimeType": "image/png",
|
||||
"fileExtension": "png",
|
||||
"path": "/Marketing/Campaigns_2024/Social_Media/instagram_banner_black_friday.png",
|
||||
"size": 524288,
|
||||
"checksum": "aello5d41402abc4b2a76b9719d911017c592",
|
||||
"webViewLink": "https://drive.google.com/file/d/4ExiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/view",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=4ExiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
|
||||
"isShared": true,
|
||||
"fileVersion": "3",
|
||||
"createdTime": 1719878400000,
|
||||
"modifiedTime": 1719964800000
|
||||
},
|
||||
{
|
||||
"name": "product_launch_video.mp4",
|
||||
"displayName": "Product Launch Video",
|
||||
"description": "Video showcasing new product features",
|
||||
"directory": "Marketing.Campaigns_2024.Social_Media",
|
||||
"fileType": "Video",
|
||||
"mimeType": "video/mp4",
|
||||
"fileExtension": "mp4",
|
||||
"path": "/Marketing/Campaigns_2024/Social_Media/product_launch_video.mp4",
|
||||
"size": 104857600,
|
||||
"checksum": "bello5d41402abc4b2a76b9719d911017c592",
|
||||
"webViewLink": "https://drive.google.com/file/d/5FxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/view",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=5FxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms",
|
||||
"isShared": true,
|
||||
"fileVersion": "1",
|
||||
"createdTime": 1720051200000,
|
||||
"modifiedTime": 1720051200000
|
||||
},
|
||||
{
|
||||
"name": "board_presentation_q4.pptx",
|
||||
"displayName": "Board Presentation Q4 2024",
|
||||
"description": "Quarterly board presentation with financial results",
|
||||
"directory": "Executive",
|
||||
"fileType": "Presentation",
|
||||
"mimeType": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
||||
"fileExtension": "pptx",
|
||||
"path": "/Executive/board_presentation_q4.pptx",
|
||||
"size": 8388608,
|
||||
"checksum": "7d793037a0760186574b0282f2f435e7",
|
||||
"webViewLink": "https://docs.google.com/presentation/d/1XYZ123456789/edit",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1XYZ123456789",
|
||||
"isShared": false,
|
||||
"fileVersion": "8",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "employee_handbook_2024.docx",
|
||||
"displayName": "Employee Handbook 2024",
|
||||
"description": "Updated employee handbook with company policies",
|
||||
"directory": "HR",
|
||||
"fileType": "Document",
|
||||
"mimeType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
||||
"fileExtension": "docx",
|
||||
"path": "/HR/employee_handbook_2024.docx",
|
||||
"size": 3145728,
|
||||
"checksum": "5d41402abc4b2a76b9719d911017c592",
|
||||
"webViewLink": "https://docs.google.com/document/d/1ABC987654321/edit",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1ABC987654321",
|
||||
"isShared": true,
|
||||
"fileVersion": "23",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "product_demo_video.mp4",
|
||||
"displayName": "Product Demo Video",
|
||||
"description": "Latest product demonstration video for sales team",
|
||||
"directory": "Marketing",
|
||||
"fileType": "Video",
|
||||
"mimeType": "video/mp4",
|
||||
"fileExtension": "mp4",
|
||||
"path": "/Marketing/product_demo_video.mp4",
|
||||
"size": 104857600,
|
||||
"checksum": "a87ff679a2f3e71d9181a67b7542122c",
|
||||
"webViewLink": "https://drive.google.com/file/d/1VID123456789/view",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1VID123456789",
|
||||
"isShared": true,
|
||||
"fileVersion": "3",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "company_logo_2024.png",
|
||||
"displayName": "Company Logo 2024",
|
||||
"description": "Updated company logo with new branding",
|
||||
"directory": "Marketing",
|
||||
"fileType": "Image",
|
||||
"mimeType": "image/png",
|
||||
"fileExtension": "png",
|
||||
"path": "/Marketing/company_logo_2024.png",
|
||||
"size": 524288,
|
||||
"checksum": "e4da3b7fbbce2345d7772b0674a318d5",
|
||||
"webViewLink": "https://drive.google.com/file/d/1IMG987654321/view",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1IMG987654321",
|
||||
"isShared": true,
|
||||
"fileVersion": "5",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "data_backup_2024.zip",
|
||||
"displayName": "Data Backup 2024",
|
||||
"description": "Compressed backup of critical business data",
|
||||
"directory": "IT",
|
||||
"fileType": "Archive",
|
||||
"mimeType": "application/zip",
|
||||
"fileExtension": "zip",
|
||||
"path": "/IT/data_backup_2024.zip",
|
||||
"size": 524288000,
|
||||
"checksum": "1679091c5a880faf6fb5e6087eb1b2dc",
|
||||
"webViewLink": "https://drive.google.com/file/d/1ZIP123456789/view",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1ZIP123456789",
|
||||
"isShared": false,
|
||||
"fileVersion": "1",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "contract_template.docx",
|
||||
"displayName": "Standard Contract Template",
|
||||
"description": "Legal contract template for vendor agreements",
|
||||
"directory": "Legal",
|
||||
"fileType": "Document",
|
||||
"mimeType": "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
|
||||
"fileExtension": "docx",
|
||||
"path": "/Legal/contract_template.docx",
|
||||
"size": 1048576,
|
||||
"checksum": "8f14e45fceea167a5a36dedd4bea2543",
|
||||
"webViewLink": "https://docs.google.com/document/d/1LEG456789012/edit",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1LEG456789012",
|
||||
"isShared": false,
|
||||
"fileVersion": "12",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "training_materials.pptx",
|
||||
"displayName": "New Employee Training",
|
||||
"description": "Onboarding presentation for new hires",
|
||||
"directory": "HR",
|
||||
"fileType": "Presentation",
|
||||
"mimeType": "application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
||||
"fileExtension": "pptx",
|
||||
"path": "/HR/training_materials.pptx",
|
||||
"size": 6291456,
|
||||
"checksum": "c9f0f895fb98ab9159f51fd0297e236d",
|
||||
"webViewLink": "https://docs.google.com/presentation/d/1TRN789012345/edit",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1TRN789012345",
|
||||
"isShared": true,
|
||||
"fileVersion": "18",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "office_floorplan.pdf",
|
||||
"displayName": "Office Floor Plan",
|
||||
"description": "Current office layout and seating arrangement",
|
||||
"directory": "Facilities",
|
||||
"fileType": "PDF",
|
||||
"mimeType": "application/pdf",
|
||||
"fileExtension": "pdf",
|
||||
"path": "/Facilities/office_floorplan.pdf",
|
||||
"size": 2621440,
|
||||
"checksum": "45c48cce2e2d7fbdea1afc51c7c6ad26",
|
||||
"webViewLink": "https://drive.google.com/file/d/1FLP234567890/view",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1FLP234567890",
|
||||
"isShared": true,
|
||||
"fileVersion": "4",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "compliance_audit_2024.xlsx",
|
||||
"displayName": "Compliance Audit 2024",
|
||||
"description": "Annual compliance audit results and findings",
|
||||
"directory": "Legal",
|
||||
"fileType": "Spreadsheet",
|
||||
"mimeType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
"fileExtension": "xlsx",
|
||||
"path": "/Legal/compliance_audit_2024.xlsx",
|
||||
"size": 4194304,
|
||||
"checksum": "d3d9446802a44259755d38e6d163e820",
|
||||
"webViewLink": "https://docs.google.com/spreadsheets/d/1CMP345678901/edit",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1CMP345678901",
|
||||
"isShared": false,
|
||||
"fileVersion": "7",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "customer_testimonials.mp4",
|
||||
"displayName": "Customer Testimonials",
|
||||
"description": "Video compilation of customer success stories",
|
||||
"directory": "Marketing",
|
||||
"fileType": "Video",
|
||||
"mimeType": "video/mp4",
|
||||
"fileExtension": "mp4",
|
||||
"path": "/Marketing/customer_testimonials.mp4",
|
||||
"size": 209715200,
|
||||
"checksum": "6512bd43d9caa6e02c990b0a82652dca",
|
||||
"webViewLink": "https://drive.google.com/file/d/1TST456789012/view",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1TST456789012",
|
||||
"isShared": true,
|
||||
"fileVersion": "2",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "security_policy.pdf",
|
||||
"displayName": "IT Security Policy",
|
||||
"description": "Company-wide information security policies",
|
||||
"directory": "IT",
|
||||
"fileType": "PDF",
|
||||
"mimeType": "application/pdf",
|
||||
"fileExtension": "pdf",
|
||||
"path": "/IT/security_policy.pdf",
|
||||
"size": 1572864,
|
||||
"checksum": "b6d767d2f8ed5d21a44b0e5886680cb9",
|
||||
"webViewLink": "https://drive.google.com/file/d/1SEC567890123/view",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1SEC567890123",
|
||||
"isShared": false,
|
||||
"fileVersion": "9",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "project_timeline.mpp",
|
||||
"displayName": "Master Project Timeline",
|
||||
"description": "Microsoft Project file with all active projects",
|
||||
"directory": "PMO",
|
||||
"fileType": "Document",
|
||||
"mimeType": "application/vnd.ms-project",
|
||||
"fileExtension": "mpp",
|
||||
"path": "/PMO/project_timeline.mpp",
|
||||
"size": 8388608,
|
||||
"checksum": "37693cfc748049e45d87b8c7d8b9aacd",
|
||||
"webViewLink": "https://drive.google.com/file/d/1PRJ678901234/view",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1PRJ678901234",
|
||||
"isShared": false,
|
||||
"fileVersion": "14",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "brand_guidelines.pdf",
|
||||
"displayName": "Brand Guidelines 2024",
|
||||
"description": "Complete brand identity and usage guidelines",
|
||||
"directory": "Marketing",
|
||||
"fileType": "PDF",
|
||||
"mimeType": "application/pdf",
|
||||
"fileExtension": "pdf",
|
||||
"path": "/Marketing/brand_guidelines.pdf",
|
||||
"size": 10485760,
|
||||
"checksum": "23a8a4371a925a89a0fa2ce8c33fd8dc",
|
||||
"webViewLink": "https://drive.google.com/file/d/1BRD789012345/view",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1BRD789012345",
|
||||
"isShared": true,
|
||||
"fileVersion": "6",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "architecture_diagram.vsdx",
|
||||
"displayName": "System Architecture Diagram",
|
||||
"description": "Technical architecture overview in Visio format",
|
||||
"directory": "IT",
|
||||
"fileType": "Document",
|
||||
"mimeType": "application/vnd.ms-visio.drawing",
|
||||
"fileExtension": "vsdx",
|
||||
"path": "/IT/architecture_diagram.vsdx",
|
||||
"size": 3670016,
|
||||
"checksum": "1ff1de774005f8da13f42943881c655f",
|
||||
"webViewLink": "https://drive.google.com/file/d/1ARC890123456/view",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1ARC890123456",
|
||||
"isShared": false,
|
||||
"fileVersion": "11",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "expense_report_template.xlsx",
|
||||
"displayName": "Expense Report Template",
|
||||
"description": "Standard template for employee expense reports",
|
||||
"directory": "Finance",
|
||||
"fileType": "Spreadsheet",
|
||||
"mimeType": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
"fileExtension": "xlsx",
|
||||
"path": "/Finance/expense_report_template.xlsx",
|
||||
"size": 524288,
|
||||
"checksum": "8e296a067a37563370ded05f5a3bf3ec",
|
||||
"webViewLink": "https://docs.google.com/spreadsheets/d/1EXP901234567/edit",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1EXP901234567",
|
||||
"isShared": true,
|
||||
"fileVersion": "20",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "newsletter_december.html",
|
||||
"displayName": "December Newsletter",
|
||||
"description": "Company newsletter HTML template",
|
||||
"directory": "Marketing",
|
||||
"fileType": "Document",
|
||||
"mimeType": "text/html",
|
||||
"fileExtension": "html",
|
||||
"path": "/Marketing/newsletter_december.html",
|
||||
"size": 262144,
|
||||
"checksum": "4e732ced3463d06de0ca9a15b6153677",
|
||||
"webViewLink": "https://drive.google.com/file/d/1NWS012345678/view",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1NWS012345678",
|
||||
"isShared": true,
|
||||
"fileVersion": "2",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "meeting_recording_2024Q4.mp4",
|
||||
"displayName": "Q4 All Hands Meeting",
|
||||
"description": "Recording of quarterly all-hands meeting",
|
||||
"directory": "Executive",
|
||||
"fileType": "Video",
|
||||
"mimeType": "video/mp4",
|
||||
"fileExtension": "mp4",
|
||||
"path": "/Executive/meeting_recording_2024Q4.mp4",
|
||||
"size": 1073741824,
|
||||
"checksum": "02e74f10e0327ad868d138f2b4fdd6f0",
|
||||
"webViewLink": "https://drive.google.com/file/d/1MTG123456789/view",
|
||||
"downloadLink": "https://drive.google.com/uc?export=download&id=1MTG123456789",
|
||||
"isShared": false,
|
||||
"fileVersion": "1",
|
||||
"tags": []
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,26 @@
|
||||
{
|
||||
"name": "sample_google_drive",
|
||||
"serviceType": "GoogleDrive",
|
||||
"connection": {
|
||||
"config": {
|
||||
"type": "GoogleDrive",
|
||||
"credentials": {
|
||||
"gcpConfig": {
|
||||
"type": "service_account",
|
||||
"projectId": "sample-project-id",
|
||||
"privateKeyId": "sample-private-key-id",
|
||||
"privateKey": "-----BEGIN RSA PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDN...\n-----END RSA PRIVATE KEY-----",
|
||||
"clientEmail": "sample-sa@sample-project.iam.gserviceaccount.com",
|
||||
"clientId": "123456789",
|
||||
"authUri": "https://accounts.google.com/o/oauth2/auth",
|
||||
"tokenUri": "https://oauth2.googleapis.com/token",
|
||||
"authProviderX509CertUrl": "https://www.googleapis.com/oauth2/v1/certs",
|
||||
"clientX509CertUrl": "https://www.googleapis.com/robot/v1/metadata/x509/sample-sa%40sample-project.iam.gserviceaccount.com"
|
||||
}
|
||||
},
|
||||
"driveId": "0APBVnJtQ-NLCUk9PVA",
|
||||
"includeTeamDrives": true,
|
||||
"includeGoogleSheets": true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"name": "sample_sharepoint_drive",
|
||||
"serviceType": "SharePoint",
|
||||
"connection": {
|
||||
"config": {
|
||||
"type": "SharePoint",
|
||||
"clientId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
|
||||
"clientSecret": "SuperSecretClientSecret123!",
|
||||
"tenantId": "12345678-1234-1234-1234-123456789012",
|
||||
"siteName": "CompanyIntranet",
|
||||
"siteUrl": "https://contoso.sharepoint.com/sites/CompanyIntranet",
|
||||
"driveId": "b!vP_zOj2KN0WyIQxEH8cWxe3Cim2BabtJnJDa1IZNrsFQ7rEwXGVRpvkSa4v3zBA"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,162 @@
|
||||
[
|
||||
{
|
||||
"name": "annual_budget_2024",
|
||||
"displayName": "Annual Budget 2024",
|
||||
"description": "Company-wide annual budget spreadsheet with department breakdowns",
|
||||
"directory": "Finance",
|
||||
"path": "/Finance/annual_budget_2024.xlsx",
|
||||
"size": 2097152,
|
||||
"numberOfWorksheets": 12,
|
||||
"sourceUrl": "https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit",
|
||||
"tags": [
|
||||
{
|
||||
"tagFQN": "PersonalData.SpecialCategory",
|
||||
"description": "Contains salary and budget allocations",
|
||||
"source": "Classification",
|
||||
"labelType": "Manual",
|
||||
"state": "Confirmed"
|
||||
}
|
||||
],
|
||||
"owners": []
|
||||
},
|
||||
{
|
||||
"name": "employee_compensation_q4",
|
||||
"displayName": "Employee Compensation Q4",
|
||||
"description": "Q4 compensation tracking including bonuses and adjustments",
|
||||
"directory": "Finance.Q4_Reports",
|
||||
"path": "/Finance/Q4_Reports/employee_compensation_q4.xlsx",
|
||||
"size": 1048576,
|
||||
"numberOfWorksheets": 5,
|
||||
"sourceUrl": "https://docs.google.com/spreadsheets/d/2CxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit",
|
||||
"tags": [
|
||||
{
|
||||
"tagFQN": "PII.Sensitive",
|
||||
"description": "Contains employee personal and compensation data",
|
||||
"source": "Classification",
|
||||
"labelType": "Manual",
|
||||
"state": "Confirmed"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "campaign_performance_tracker",
|
||||
"displayName": "Campaign Performance Tracker",
|
||||
"description": "Real-time tracking of marketing campaign metrics and ROI",
|
||||
"directory": "Marketing.Campaigns_2024",
|
||||
"path": "/Marketing/Campaigns_2024/campaign_performance_tracker.xlsx",
|
||||
"size": 3145728,
|
||||
"numberOfWorksheets": 8,
|
||||
"sourceUrl": "https://docs.google.com/spreadsheets/d/3DxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "sales_forecast_2024",
|
||||
"displayName": "Sales Forecast 2024",
|
||||
"description": "Annual sales projections and forecasting models",
|
||||
"directory": "Finance",
|
||||
"path": "/Finance/sales_forecast_2024.xlsx",
|
||||
"size": 4194304,
|
||||
"numberOfWorksheets": 15,
|
||||
"sourceUrl": "https://docs.google.com/spreadsheets/d/4ExiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "hr_headcount_tracker",
|
||||
"displayName": "HR Headcount Tracker",
|
||||
"description": "Real-time employee headcount and organizational structure",
|
||||
"directory": "HR",
|
||||
"path": "/HR/hr_headcount_tracker.xlsx",
|
||||
"size": 2621440,
|
||||
"numberOfWorksheets": 10,
|
||||
"sourceUrl": "https://docs.google.com/spreadsheets/d/5FxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "product_roadmap_2024",
|
||||
"displayName": "Product Roadmap 2024",
|
||||
"description": "Product development timeline and feature planning",
|
||||
"directory": "Product",
|
||||
"path": "/Product/product_roadmap_2024.xlsx",
|
||||
"size": 3670016,
|
||||
"numberOfWorksheets": 12,
|
||||
"sourceUrl": "https://docs.google.com/spreadsheets/d/6GxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "customer_analytics_dashboard",
|
||||
"displayName": "Customer Analytics Dashboard",
|
||||
"description": "Customer behavior analysis and segmentation data",
|
||||
"directory": "Marketing",
|
||||
"path": "/Marketing/customer_analytics_dashboard.xlsx",
|
||||
"size": 5242880,
|
||||
"numberOfWorksheets": 18,
|
||||
"sourceUrl": "https://docs.google.com/spreadsheets/d/7HxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "inventory_management",
|
||||
"displayName": "Inventory Management System",
|
||||
"description": "Real-time inventory tracking and supply chain management",
|
||||
"directory": "Operations",
|
||||
"path": "/Operations/inventory_management.xlsx",
|
||||
"size": 4718592,
|
||||
"numberOfWorksheets": 20,
|
||||
"sourceUrl": "https://docs.google.com/spreadsheets/d/8IxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "financial_statements_q4",
|
||||
"displayName": "Financial Statements Q4 2024",
|
||||
"description": "Quarterly financial statements including P&L, Balance Sheet, Cash Flow",
|
||||
"directory": "Finance.Q4_Reports",
|
||||
"path": "/Finance/Q4_Reports/financial_statements_q4.xlsx",
|
||||
"size": 3932160,
|
||||
"numberOfWorksheets": 14,
|
||||
"sourceUrl": "https://docs.google.com/spreadsheets/d/9JxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "vendor_contracts_tracker",
|
||||
"displayName": "Vendor Contracts Tracker",
|
||||
"description": "Active vendor contracts and renewal schedules",
|
||||
"directory": "Finance",
|
||||
"path": "/Finance/vendor_contracts_tracker.xlsx",
|
||||
"size": 2359296,
|
||||
"numberOfWorksheets": 8,
|
||||
"sourceUrl": "https://docs.google.com/spreadsheets/d/AKxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "social_media_calendar_2024",
|
||||
"displayName": "Social Media Calendar 2024",
|
||||
"description": "Content calendar for all social media platforms",
|
||||
"directory": "Marketing.Campaigns_2024.Social_Media",
|
||||
"path": "/Marketing/Campaigns_2024/Social_Media/social_media_calendar_2024.xlsx",
|
||||
"size": 1835008,
|
||||
"numberOfWorksheets": 6,
|
||||
"sourceUrl": "https://docs.google.com/spreadsheets/d/BLxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "project_portfolio_tracker",
|
||||
"displayName": "Project Portfolio Tracker",
|
||||
"description": "Enterprise project portfolio management dashboard",
|
||||
"directory": "PMO",
|
||||
"path": "/PMO/project_portfolio_tracker.xlsx",
|
||||
"size": 4456448,
|
||||
"numberOfWorksheets": 16,
|
||||
"sourceUrl": "https://docs.google.com/spreadsheets/d/CMxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "kpi_dashboard_2024",
|
||||
"displayName": "KPI Dashboard 2024",
|
||||
"description": "Company-wide key performance indicators tracking",
|
||||
"directory": "Executive",
|
||||
"path": "/Executive/kpi_dashboard_2024.xlsx",
|
||||
"size": 3407872,
|
||||
"numberOfWorksheets": 22,
|
||||
"sourceUrl": "https://docs.google.com/spreadsheets/d/DNxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit",
|
||||
"tags": []
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,833 @@
|
||||
[
|
||||
{
|
||||
"name": "Summary",
|
||||
"displayName": "Budget Summary",
|
||||
"description": "Executive summary of the annual budget",
|
||||
"spreadsheet": "annual_budget_2024",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "department",
|
||||
"displayName": "Department",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string",
|
||||
"description": "Department name"
|
||||
},
|
||||
{
|
||||
"name": "allocated_budget",
|
||||
"displayName": "Allocated Budget",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(12,2)",
|
||||
"description": "Total allocated budget in USD"
|
||||
},
|
||||
{
|
||||
"name": "spent_ytd",
|
||||
"displayName": "Spent YTD",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(12,2)",
|
||||
"description": "Amount spent year to date"
|
||||
},
|
||||
{
|
||||
"name": "remaining_budget",
|
||||
"displayName": "Remaining Budget",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(12,2)",
|
||||
"description": "Remaining budget for the year"
|
||||
},
|
||||
{
|
||||
"name": "utilization_percentage",
|
||||
"displayName": "Utilization %",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(5,2)",
|
||||
"description": "Budget utilization percentage"
|
||||
}
|
||||
],
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "IT_Department",
|
||||
"displayName": "IT Department Budget",
|
||||
"description": "Detailed IT department budget breakdown",
|
||||
"spreadsheet": "annual_budget_2024",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "category",
|
||||
"displayName": "Category",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string",
|
||||
"description": "Budget category"
|
||||
},
|
||||
{
|
||||
"name": "subcategory",
|
||||
"displayName": "Subcategory",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string",
|
||||
"description": "Budget subcategory"
|
||||
},
|
||||
{
|
||||
"name": "vendor",
|
||||
"displayName": "Vendor",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string",
|
||||
"description": "Vendor or service provider"
|
||||
},
|
||||
{
|
||||
"name": "monthly_cost",
|
||||
"displayName": "Monthly Cost",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(10,2)",
|
||||
"description": "Monthly recurring cost"
|
||||
},
|
||||
{
|
||||
"name": "annual_cost",
|
||||
"displayName": "Annual Cost",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(12,2)",
|
||||
"description": "Total annual cost"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Salaries",
|
||||
"displayName": "Employee Salaries",
|
||||
"description": "Salary information by employee",
|
||||
"spreadsheet": "employee_compensation_q4",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "employee_id",
|
||||
"displayName": "Employee ID",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string",
|
||||
"description": "Unique employee identifier",
|
||||
"tags": [
|
||||
{
|
||||
"tagFQN": "PII.Sensitive",
|
||||
"description": "Employee identifier",
|
||||
"source": "Classification",
|
||||
"labelType": "Manual",
|
||||
"state": "Confirmed"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "employee_name",
|
||||
"displayName": "Employee Name",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string",
|
||||
"description": "Full name of the employee",
|
||||
"tags": [
|
||||
{
|
||||
"tagFQN": "PII.Sensitive",
|
||||
"description": "Personal name",
|
||||
"source": "Classification",
|
||||
"labelType": "Manual",
|
||||
"state": "Confirmed"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "department",
|
||||
"displayName": "Department",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string",
|
||||
"description": "Employee department"
|
||||
},
|
||||
{
|
||||
"name": "base_salary",
|
||||
"displayName": "Base Salary",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(10,2)",
|
||||
"description": "Annual base salary",
|
||||
"tags": [
|
||||
{
|
||||
"tagFQN": "PersonalData.SpecialCategory",
|
||||
"description": "Salary information",
|
||||
"source": "Classification",
|
||||
"labelType": "Manual",
|
||||
"state": "Confirmed"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "q4_bonus",
|
||||
"displayName": "Q4 Bonus",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(10,2)",
|
||||
"description": "Q4 performance bonus",
|
||||
"tags": [
|
||||
{
|
||||
"tagFQN": "PersonalData.SpecialCategory",
|
||||
"description": "Bonus information",
|
||||
"source": "Classification",
|
||||
"labelType": "Manual",
|
||||
"state": "Confirmed"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Campaign_Overview",
|
||||
"displayName": "Campaign Overview",
|
||||
"description": "Overview of all marketing campaigns",
|
||||
"spreadsheet": "campaign_performance_tracker",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "campaign_id",
|
||||
"displayName": "Campaign ID",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string",
|
||||
"description": "Unique campaign identifier"
|
||||
},
|
||||
{
|
||||
"name": "campaign_name",
|
||||
"displayName": "Campaign Name",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string",
|
||||
"description": "Name of the marketing campaign"
|
||||
},
|
||||
{
|
||||
"name": "start_date",
|
||||
"displayName": "Start Date",
|
||||
"dataType": "DATE",
|
||||
"dataTypeDisplay": "date",
|
||||
"description": "Campaign start date"
|
||||
},
|
||||
{
|
||||
"name": "end_date",
|
||||
"displayName": "End Date",
|
||||
"dataType": "DATE",
|
||||
"dataTypeDisplay": "date",
|
||||
"description": "Campaign end date"
|
||||
},
|
||||
{
|
||||
"name": "budget",
|
||||
"displayName": "Budget",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(10,2)",
|
||||
"description": "Total campaign budget"
|
||||
},
|
||||
{
|
||||
"name": "impressions",
|
||||
"displayName": "Impressions",
|
||||
"dataType": "BIGINT",
|
||||
"dataTypeDisplay": "bigint",
|
||||
"description": "Total impressions"
|
||||
},
|
||||
{
|
||||
"name": "clicks",
|
||||
"displayName": "Clicks",
|
||||
"dataType": "BIGINT",
|
||||
"dataTypeDisplay": "bigint",
|
||||
"description": "Total clicks"
|
||||
},
|
||||
{
|
||||
"name": "conversions",
|
||||
"displayName": "Conversions",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "int",
|
||||
"description": "Total conversions"
|
||||
},
|
||||
{
|
||||
"name": "roi",
|
||||
"displayName": "ROI",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(5,2)",
|
||||
"description": "Return on investment percentage"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Social_Media_Metrics",
|
||||
"displayName": "Social Media Metrics",
|
||||
"description": "Detailed social media campaign performance",
|
||||
"spreadsheet": "campaign_performance_tracker",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "platform",
|
||||
"displayName": "Platform",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string",
|
||||
"description": "Social media platform"
|
||||
},
|
||||
{
|
||||
"name": "post_id",
|
||||
"displayName": "Post ID",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string",
|
||||
"description": "Unique post identifier"
|
||||
},
|
||||
{
|
||||
"name": "post_date",
|
||||
"displayName": "Post Date",
|
||||
"dataType": "TIMESTAMP",
|
||||
"dataTypeDisplay": "timestamp",
|
||||
"description": "Date and time of post"
|
||||
},
|
||||
{
|
||||
"name": "reach",
|
||||
"displayName": "Reach",
|
||||
"dataType": "BIGINT",
|
||||
"dataTypeDisplay": "bigint",
|
||||
"description": "Number of unique users reached"
|
||||
},
|
||||
{
|
||||
"name": "engagement_rate",
|
||||
"displayName": "Engagement Rate",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(5,2)",
|
||||
"description": "Engagement rate percentage"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "HR_Budget",
|
||||
"displayName": "HR Department Budget",
|
||||
"description": "Human Resources department budget allocation",
|
||||
"spreadsheet": "annual_budget_2024",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "expense_type",
|
||||
"displayName": "Expense Type",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "q1_budget",
|
||||
"displayName": "Q1 Budget",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(10,2)"
|
||||
},
|
||||
{
|
||||
"name": "q2_budget",
|
||||
"displayName": "Q2 Budget",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(10,2)"
|
||||
},
|
||||
{
|
||||
"name": "q3_budget",
|
||||
"displayName": "Q3 Budget",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(10,2)"
|
||||
},
|
||||
{
|
||||
"name": "q4_budget",
|
||||
"displayName": "Q4 Budget",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(10,2)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Marketing_Budget",
|
||||
"displayName": "Marketing Department Budget",
|
||||
"description": "Marketing initiatives and campaign budgets",
|
||||
"spreadsheet": "annual_budget_2024",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "campaign_name",
|
||||
"displayName": "Campaign Name",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "channel",
|
||||
"displayName": "Marketing Channel",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "budget_allocated",
|
||||
"displayName": "Budget Allocated",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(10,2)"
|
||||
},
|
||||
{
|
||||
"name": "spent_to_date",
|
||||
"displayName": "Spent to Date",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(10,2)"
|
||||
},
|
||||
{
|
||||
"name": "roi_percentage",
|
||||
"displayName": "ROI %",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(5,2)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Operations_Budget",
|
||||
"displayName": "Operations Budget",
|
||||
"description": "Operations and facilities budget tracking",
|
||||
"spreadsheet": "annual_budget_2024",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "facility",
|
||||
"displayName": "Facility",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "expense_category",
|
||||
"displayName": "Expense Category",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "monthly_budget",
|
||||
"displayName": "Monthly Budget",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(10,2)"
|
||||
},
|
||||
{
|
||||
"name": "ytd_actual",
|
||||
"displayName": "YTD Actual",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(12,2)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Capital_Expenditures",
|
||||
"displayName": "Capital Expenditures",
|
||||
"description": "CapEx planning and tracking",
|
||||
"spreadsheet": "annual_budget_2024",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "project_name",
|
||||
"displayName": "Project Name",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "department",
|
||||
"displayName": "Department",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "capex_amount",
|
||||
"displayName": "CapEx Amount",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(12,2)"
|
||||
},
|
||||
{
|
||||
"name": "approval_status",
|
||||
"displayName": "Approval Status",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "expected_roi_years",
|
||||
"displayName": "Expected ROI (Years)",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "int"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Revenue_Projections",
|
||||
"displayName": "Revenue Projections",
|
||||
"description": "Revenue forecasts by product line",
|
||||
"spreadsheet": "sales_forecast_2024",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "product_line",
|
||||
"displayName": "Product Line",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "region",
|
||||
"displayName": "Region",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "q1_forecast",
|
||||
"displayName": "Q1 Forecast",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(12,2)"
|
||||
},
|
||||
{
|
||||
"name": "q2_forecast",
|
||||
"displayName": "Q2 Forecast",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(12,2)"
|
||||
},
|
||||
{
|
||||
"name": "q3_forecast",
|
||||
"displayName": "Q3 Forecast",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(12,2)"
|
||||
},
|
||||
{
|
||||
"name": "q4_forecast",
|
||||
"displayName": "Q4 Forecast",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(12,2)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Sales_Pipeline",
|
||||
"displayName": "Sales Pipeline",
|
||||
"description": "Active sales opportunities tracking",
|
||||
"spreadsheet": "sales_forecast_2024",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "opportunity_id",
|
||||
"displayName": "Opportunity ID",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "customer_name",
|
||||
"displayName": "Customer Name",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "deal_size",
|
||||
"displayName": "Deal Size",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(12,2)"
|
||||
},
|
||||
{
|
||||
"name": "probability",
|
||||
"displayName": "Probability %",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "int"
|
||||
},
|
||||
{
|
||||
"name": "expected_close_date",
|
||||
"displayName": "Expected Close Date",
|
||||
"dataType": "DATE",
|
||||
"dataTypeDisplay": "date"
|
||||
},
|
||||
{
|
||||
"name": "sales_rep",
|
||||
"displayName": "Sales Rep",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Regional_Performance",
|
||||
"displayName": "Regional Performance",
|
||||
"description": "Sales performance by region",
|
||||
"spreadsheet": "sales_forecast_2024",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "region",
|
||||
"displayName": "Region",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "ytd_sales",
|
||||
"displayName": "YTD Sales",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(12,2)"
|
||||
},
|
||||
{
|
||||
"name": "ytd_target",
|
||||
"displayName": "YTD Target",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(12,2)"
|
||||
},
|
||||
{
|
||||
"name": "achievement_percentage",
|
||||
"displayName": "Achievement %",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(5,2)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Active_Employees",
|
||||
"displayName": "Active Employees",
|
||||
"description": "Current employee roster",
|
||||
"spreadsheet": "hr_headcount_tracker",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "employee_id",
|
||||
"displayName": "Employee ID",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "full_name",
|
||||
"displayName": "Full Name",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "department",
|
||||
"displayName": "Department",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "position",
|
||||
"displayName": "Position",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "hire_date",
|
||||
"displayName": "Hire Date",
|
||||
"dataType": "DATE",
|
||||
"dataTypeDisplay": "date"
|
||||
},
|
||||
{
|
||||
"name": "location",
|
||||
"displayName": "Location",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Department_Summary",
|
||||
"displayName": "Department Summary",
|
||||
"description": "Headcount by department",
|
||||
"spreadsheet": "hr_headcount_tracker",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "department",
|
||||
"displayName": "Department",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "total_headcount",
|
||||
"displayName": "Total Headcount",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "int"
|
||||
},
|
||||
{
|
||||
"name": "open_positions",
|
||||
"displayName": "Open Positions",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "int"
|
||||
},
|
||||
{
|
||||
"name": "average_tenure_years",
|
||||
"displayName": "Avg Tenure (Years)",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(5,2)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Feature_Roadmap",
|
||||
"displayName": "Feature Roadmap",
|
||||
"description": "Product feature development timeline",
|
||||
"spreadsheet": "product_roadmap_2024",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "feature_name",
|
||||
"displayName": "Feature Name",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "priority",
|
||||
"displayName": "Priority",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "target_quarter",
|
||||
"displayName": "Target Quarter",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "development_status",
|
||||
"displayName": "Development Status",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "assigned_team",
|
||||
"displayName": "Assigned Team",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Sprint_Planning",
|
||||
"displayName": "Sprint Planning",
|
||||
"description": "Agile sprint planning and tracking",
|
||||
"spreadsheet": "product_roadmap_2024",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "sprint_number",
|
||||
"displayName": "Sprint Number",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "int"
|
||||
},
|
||||
{
|
||||
"name": "start_date",
|
||||
"displayName": "Start Date",
|
||||
"dataType": "DATE",
|
||||
"dataTypeDisplay": "date"
|
||||
},
|
||||
{
|
||||
"name": "end_date",
|
||||
"displayName": "End Date",
|
||||
"dataType": "DATE",
|
||||
"dataTypeDisplay": "date"
|
||||
},
|
||||
{
|
||||
"name": "story_points",
|
||||
"displayName": "Story Points",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "int"
|
||||
},
|
||||
{
|
||||
"name": "velocity",
|
||||
"displayName": "Velocity",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(5,2)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Customer_Segments",
|
||||
"displayName": "Customer Segments",
|
||||
"description": "Customer segmentation analysis",
|
||||
"spreadsheet": "customer_analytics_dashboard",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "segment_name",
|
||||
"displayName": "Segment Name",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "customer_count",
|
||||
"displayName": "Customer Count",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "int"
|
||||
},
|
||||
{
|
||||
"name": "avg_revenue_per_customer",
|
||||
"displayName": "Avg Revenue per Customer",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(10,2)"
|
||||
},
|
||||
{
|
||||
"name": "churn_rate",
|
||||
"displayName": "Churn Rate %",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(5,2)"
|
||||
},
|
||||
{
|
||||
"name": "ltv",
|
||||
"displayName": "Lifetime Value",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(12,2)"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Revenue_KPIs",
|
||||
"displayName": "Revenue KPIs",
|
||||
"description": "Key revenue metrics",
|
||||
"spreadsheet": "kpi_dashboard_2024",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "metric_name",
|
||||
"displayName": "Metric Name",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "target_value",
|
||||
"displayName": "Target Value",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(12,2)"
|
||||
},
|
||||
{
|
||||
"name": "actual_value",
|
||||
"displayName": "Actual Value",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(12,2)"
|
||||
},
|
||||
{
|
||||
"name": "variance_percentage",
|
||||
"displayName": "Variance %",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(5,2)"
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"displayName": "Status",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Operational_KPIs",
|
||||
"displayName": "Operational KPIs",
|
||||
"description": "Operations performance metrics",
|
||||
"spreadsheet": "kpi_dashboard_2024",
|
||||
"isHidden": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "kpi_name",
|
||||
"displayName": "KPI Name",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "unit_of_measure",
|
||||
"displayName": "Unit of Measure",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
},
|
||||
{
|
||||
"name": "baseline",
|
||||
"displayName": "Baseline",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(10,2)"
|
||||
},
|
||||
{
|
||||
"name": "current_value",
|
||||
"displayName": "Current Value",
|
||||
"dataType": "DECIMAL",
|
||||
"dataTypeDisplay": "decimal(10,2)"
|
||||
},
|
||||
{
|
||||
"name": "trend",
|
||||
"displayName": "Trend",
|
||||
"dataType": "STRING",
|
||||
"dataTypeDisplay": "string"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"id": null,
|
||||
"name": "default",
|
||||
"description": "This **mock** database contains tables related to the Glue service",
|
||||
"service": {
|
||||
"id": "b946d870-03b2-4d33-a075-13665a7a76b9",
|
||||
"type": "GLUE"
|
||||
},
|
||||
"sourceUrl": "https://www.glue.com/default"
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"id": null,
|
||||
"name": "information_schema",
|
||||
"description": "This **mock** database contains tables related to the Glue service",
|
||||
"service": {
|
||||
"id": "b946d870-03b2-4d33-a075-13665a7a76b9",
|
||||
"type": "Glue"
|
||||
},
|
||||
"sourceUrl": "https://www.glue.com/information_schema"
|
||||
}
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"type": "glue",
|
||||
"serviceName": "Glue",
|
||||
"serviceConnection": {
|
||||
"config": {
|
||||
"type": "Glue",
|
||||
"awsConfig": {
|
||||
"awsAccessKeyId": "aws accessKey id",
|
||||
"awsSecretAccessKey": "aws secret access key",
|
||||
"awsRegion": "us-east-1",
|
||||
"endPointURL": "https://glue.region_name.amazonaws.com/"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceConfig": {
|
||||
"config": {
|
||||
"type": "DatabaseMetadata"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
query_text,database_name,schema_name
|
||||
"select * from sales",default,information_schema
|
||||
"select * from marketing",default,information_schema
|
||||
"insert into marketing select * from sales",default,information_schema
|
||||
|
@@ -0,0 +1,51 @@
|
||||
{
|
||||
"tables": [
|
||||
{
|
||||
"name": "sales",
|
||||
"description": "Sales data",
|
||||
"tableType": "Regular",
|
||||
"columns": [
|
||||
{
|
||||
"name": "SKU",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Article SKU",
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "Quantity",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Quantity of SKU",
|
||||
"ordinalPosition": 2
|
||||
}
|
||||
],
|
||||
"sourceUrl": "https://www.glue.com/sales"
|
||||
},
|
||||
{
|
||||
"name": "marketing",
|
||||
"description": "Marketing data",
|
||||
"tableType": "Iceberg",
|
||||
"columns": [
|
||||
{
|
||||
"name": "ad_id",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "bigint",
|
||||
"description": "Ad ID",
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "campaign_id",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "bigint",
|
||||
"description": "campaign ID",
|
||||
"ordinalPosition": 1
|
||||
}
|
||||
],
|
||||
"Parameters": {
|
||||
"table_type": "ICEBERG"
|
||||
},
|
||||
"sourceUrl": "https://www.glue.com/marketing"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,292 @@
|
||||
{
|
||||
"lifeCycleData": [
|
||||
{
|
||||
"fqn": "sample_data.ecommerce_db.shopify.dim_customer",
|
||||
"lifeCycle": {
|
||||
"created": {
|
||||
"days": 7,
|
||||
"accessedByAProcess": "Alice"
|
||||
},
|
||||
"updated": {
|
||||
"days": 6,
|
||||
"accessedByAProcess": "Bob"
|
||||
},
|
||||
"accessed": {
|
||||
"days": 6,
|
||||
"accessedByAProcess": "Charlie"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fqn": "sample_data.ecommerce_db.shopify.dim_location",
|
||||
"lifeCycle": {
|
||||
"created": {
|
||||
"days": 6,
|
||||
"accessedBy": {
|
||||
"id": "1cda9ecb-f4c6-4ed4-8506-abe965b64c87",
|
||||
"name": "aaron_johnson0",
|
||||
"type": "user"
|
||||
}
|
||||
},
|
||||
"updated": {
|
||||
"days": 6,
|
||||
"accessedBy": {
|
||||
"id": "1cda9ecb-f4c6-4ed4-8506-abe965b64c87",
|
||||
"name": "amber_green0",
|
||||
"type": "user"
|
||||
}
|
||||
},
|
||||
"accessed": {
|
||||
"days": 5,
|
||||
"accessedBy": {
|
||||
"id": "1cda9ecb-f4c6-4ed4-8506-abe965b64c87",
|
||||
"name": "alex_pollard9",
|
||||
"type": "user"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fqn": "sample_data.ecommerce_db.shopify.dim_location",
|
||||
"lifeCycle": {
|
||||
"created": {
|
||||
"days": 4,
|
||||
"accessedBy": {
|
||||
"id": "1cda9ecb-f4c6-4ed4-8506-abe965b64c87",
|
||||
"name": "anthony_wall4",
|
||||
"type": "user"
|
||||
}
|
||||
},
|
||||
"updated": {
|
||||
"days": 4,
|
||||
"accessedByAProcess": "Alice"
|
||||
},
|
||||
"accessed": {
|
||||
"days": 4,
|
||||
"accessedByAProcess": "David"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fqn": "sample_data.ecommerce_db.shopify.dim_staff",
|
||||
"lifeCycle": {
|
||||
"created": {
|
||||
"days": 2,
|
||||
"accessedByAProcess": "Alice"
|
||||
},
|
||||
"updated": {
|
||||
"days": 2,
|
||||
"accessedByAProcess": "Bob"
|
||||
},
|
||||
"accessed": {
|
||||
"days": 2,
|
||||
"accessedByAProcess": "Charlie"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fqn": "sample_data.ecommerce_db.shopify.\"dim.product.variant\"",
|
||||
"lifeCycle": {
|
||||
"created": {
|
||||
"days": 5,
|
||||
"accessedByAProcess": "Alice"
|
||||
},
|
||||
"updated": {
|
||||
"days": 4,
|
||||
"accessedByAProcess": "Bob"
|
||||
},
|
||||
"accessed": {
|
||||
"days": 3,
|
||||
"accessedByAProcess": "Charlie"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fqn": "sample_data.ecommerce_db.shopify.fact_order",
|
||||
"lifeCycle": {
|
||||
"created": {
|
||||
"days": 14,
|
||||
"accessedByAProcess": "Alice"
|
||||
},
|
||||
"updated": {
|
||||
"days": 14,
|
||||
"accessedByAProcess": "Bob"
|
||||
},
|
||||
"accessed": {
|
||||
"days": 13,
|
||||
"accessedByAProcess": "Charlie"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fqn": "sample_data.ecommerce_db.shopify.fact_sale",
|
||||
"lifeCycle": {
|
||||
"created": {
|
||||
"days": 11,
|
||||
"accessedByAProcess": "Alice"
|
||||
},
|
||||
"updated": {
|
||||
"days": 11,
|
||||
"accessedByAProcess": "Bob"
|
||||
},
|
||||
"accessed": {
|
||||
"days": 10,
|
||||
"accessedByAProcess": "Charlie"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fqn": "sample_data.ecommerce_db.shopify.fact_session",
|
||||
"lifeCycle": {
|
||||
"created": {
|
||||
"days": 14,
|
||||
"accessedByAProcess": "Alice"
|
||||
},
|
||||
"updated": {
|
||||
"days": 12,
|
||||
"accessedByAProcess": "Bob"
|
||||
},
|
||||
"accessed": {
|
||||
"days": 9,
|
||||
"accessedByAProcess": "Charlie"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fqn": "sample_data.ecommerce_db.shopify.marketing",
|
||||
"lifeCycle": {
|
||||
"created": {
|
||||
"days": 10,
|
||||
"accessedByAProcess": "Alice"
|
||||
},
|
||||
"updated": {
|
||||
"days": 10,
|
||||
"accessedByAProcess": "Bob"
|
||||
},
|
||||
"accessed": {
|
||||
"days": 8,
|
||||
"accessedByAProcess": "Charlie"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fqn": "sample_data.ecommerce_db.shopify.raw_order",
|
||||
"lifeCycle": {
|
||||
"created": {
|
||||
"days": 27,
|
||||
"accessedByAProcess": "Alice"
|
||||
},
|
||||
"updated": {
|
||||
"days": 26,
|
||||
"accessedByAProcess": "Bob"
|
||||
},
|
||||
"accessed": {
|
||||
"days": 25,
|
||||
"accessedByAProcess": "Charlie"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fqn": "sample_data.ecommerce_db.shopify.raw_product_catalog",
|
||||
"lifeCycle": {
|
||||
"created": {
|
||||
"days": 30,
|
||||
"accessedByAProcess": "Alice"
|
||||
},
|
||||
"updated": {
|
||||
"days": 30,
|
||||
"accessedByAProcess": "Bob"
|
||||
},
|
||||
"accessed": {
|
||||
"days": 29,
|
||||
"accessedByAProcess": "Charlie"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fqn": "sample_data.ecommerce_db.shopify.sales",
|
||||
"lifeCycle": {
|
||||
"created": {
|
||||
"days": 20,
|
||||
"accessedByAProcess": "Alice"
|
||||
},
|
||||
"updated": {
|
||||
"days": 19,
|
||||
"accessedByAProcess": "Bob"
|
||||
},
|
||||
"accessed": {
|
||||
"days": 17,
|
||||
"accessedByAProcess": "Charlie"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fqn": "sample_data.ecommerce_db.shopify.\"dim.product\"",
|
||||
"lifeCycle": {
|
||||
"created": {
|
||||
"days": 50,
|
||||
"accessedByAProcess": "Alice"
|
||||
},
|
||||
"updated": {
|
||||
"days": 50,
|
||||
"accessedByAProcess": "Bob"
|
||||
},
|
||||
"accessed": {
|
||||
"days": 49,
|
||||
"accessedByAProcess": "Charlie"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fqn": "sample_data.ecommerce_db.shopify.dim_address_clean",
|
||||
"lifeCycle": {
|
||||
"created": {
|
||||
"days": 60,
|
||||
"accessedByAProcess": "Alice"
|
||||
},
|
||||
"updated": {
|
||||
"days": 55,
|
||||
"accessedByAProcess": "Bob"
|
||||
},
|
||||
"accessed": {
|
||||
"days": 55,
|
||||
"accessedByAProcess": "Charlie"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fqn": "sample_data.ecommerce_db.shopify.dim(shop)",
|
||||
"lifeCycle": {
|
||||
"created": {
|
||||
"days": 25,
|
||||
"accessedByAProcess": "Alice"
|
||||
},
|
||||
"updated": {
|
||||
"days": 14,
|
||||
"accessedByAProcess": "Bob"
|
||||
},
|
||||
"accessed": {
|
||||
"days": 24,
|
||||
"accessedByAProcess": "Charlie"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"fqn": "sample_data.ecommerce_db.shopify.\"dim.shop\"",
|
||||
"lifeCycle": {
|
||||
"created": {
|
||||
"days": 70,
|
||||
"accessedByAProcess": "Alice"
|
||||
},
|
||||
"updated": {
|
||||
"days": 61,
|
||||
"accessedByAProcess": "Bob"
|
||||
},
|
||||
"accessed": {
|
||||
"days": 62,
|
||||
"accessedByAProcess": "Charlie"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,372 @@
|
||||
[
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.raw_customer",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.dim_address",
|
||||
"type": "table"
|
||||
},
|
||||
"sql_query": "select * from ecommerce_db.shopify.raw_customer",
|
||||
"edge_meta": { "fqn": "sample_airflow.dim_address_etl", "type": "pipeline" },
|
||||
"source": "PipelineLineage",
|
||||
"created_at_days_ago": 120,
|
||||
"updated_at_days_ago": 90
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.raw_order",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.\"dim.product\"",
|
||||
"type": "table"
|
||||
},
|
||||
"sql_query": "select * from sample_data.ecommerce_db.shopify.raw_order",
|
||||
"edge_meta": { "fqn": "sample_airflow.dim_product_etl", "type": "pipeline" },
|
||||
"source": "PipelineLineage",
|
||||
"created_at_days_ago": 120,
|
||||
"updated_at_days_ago": 75
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.raw_order",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.\"dim.product.variant\"",
|
||||
"type": "table"
|
||||
},
|
||||
"edge_meta": { "fqn": "sample_airflow.dim_product_etl", "type": "pipeline" },
|
||||
"sql_query": "select * from sample_data.ecommerce_db.shopify.raw_order",
|
||||
"source": "PipelineLineage",
|
||||
"created_at_days_ago": 120,
|
||||
"updated_at_days_ago": 75
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.raw_customer",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.\"dim.product\"",
|
||||
"type": "table"
|
||||
},
|
||||
"edge_meta": { "fqn": "sample_airflow.dim_product_etl", "type": "pipeline" },
|
||||
"sql_query": "insert into sample_data.ecommerce_db.shopify.\"dim.product\" as select * from sample_data.ecommerce_db.shopify.raw_customer",
|
||||
"source": "PipelineLineage",
|
||||
"created_at_days_ago": 120,
|
||||
"updated_at_days_ago": 75
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.raw_customer",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.\"dim.product.variant\"",
|
||||
"type": "table"
|
||||
},
|
||||
"edge_meta": { "fqn": "sample_airflow.dim_product_etl", "type": "pipeline" },
|
||||
"sql_query": "create ecommerce_db.shopify.\"dim.product.variant\" as select * from sample_data.ecommerce_db.shopify.raw_customer",
|
||||
"source": "PipelineLineage",
|
||||
"created_at_days_ago": 120,
|
||||
"updated_at_days_ago": 75
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_superset.model.103",
|
||||
"type": "dashboardDataModel"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "sample_superset.9",
|
||||
"type": "dashboard"
|
||||
},
|
||||
"edge_meta": { "fqn": "", "type": "" }
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_superset.model.73",
|
||||
"type": "dashboardDataModel"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "sample_superset.9",
|
||||
"type": "dashboard"
|
||||
},
|
||||
"edge_meta": { "fqn": "", "type": "" }
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.raw_customer",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "mysql_sample.default.posts_db.Tags",
|
||||
"type": "table"
|
||||
},
|
||||
"sql_query": "select * from mysql_sample.default.posts_db.Tags",
|
||||
"edge_meta": { "fqn": "sample_airflow.dim_address_etl", "type": "pipeline" }
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.raw_customer",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "mysql_sample.default.posts_db.Tags",
|
||||
"type": "table"
|
||||
},
|
||||
"sql_query": "select * from mysql_sample.default.posts_db.Tags",
|
||||
"edge_meta": { "fqn": "sample_airflow.dim_address_etl", "type": "pipeline" }
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.dim_address",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "mysql_sample.default.posts_db.Tags",
|
||||
"type": "table"
|
||||
},
|
||||
"sql_query": "select * from mysql_sample.default.posts_db.Tags",
|
||||
"edge_meta": { "fqn": "sample_airflow.dim_address_etl", "type": "pipeline" }
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.raw_customer",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.dim_customer",
|
||||
"type": "table"
|
||||
},
|
||||
"sql_query": "select customer_id, first_name, last_name, email from raw_customer",
|
||||
"edge_meta": { "fqn": "sample_dbtcloud.dbt_staging_shopify", "type": "pipeline" },
|
||||
"source": "DbtLineage",
|
||||
"created_at_days_ago": 45,
|
||||
"updated_at_days_ago": 20
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.raw_order",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.dim_address",
|
||||
"type": "table"
|
||||
},
|
||||
"sql_query": "select * from raw_order where order_status = 'completed'",
|
||||
"edge_meta": { "fqn": "sample_dbtcloud.dbt_staging_shopify", "type": "pipeline" },
|
||||
"source": "DbtLineage",
|
||||
"created_at_days_ago": 45,
|
||||
"updated_at_days_ago": 20
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.\"dim.product\"",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.fact_orders",
|
||||
"type": "table"
|
||||
},
|
||||
"sql_query": "select product_id, order_id, quantity, price from dim.product",
|
||||
"edge_meta": { "fqn": "sample_dbtcloud.dbt_transform_orders", "type": "pipeline" },
|
||||
"source": "DbtLineage",
|
||||
"created_at_days_ago": 30,
|
||||
"updated_at_days_ago": 12
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.dim_customer",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.fact_orders",
|
||||
"type": "table"
|
||||
},
|
||||
"sql_query": "select customer_id, order_date, total_amount from dim_customer join orders",
|
||||
"edge_meta": { "fqn": "sample_dbtcloud.dbt_transform_orders", "type": "pipeline" },
|
||||
"source": "DbtLineage",
|
||||
"created_at_days_ago": 20,
|
||||
"updated_at_days_ago": 8
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.\"dim.product\"",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.fact_orders",
|
||||
"type": "table"
|
||||
},
|
||||
"sql_query": "select product_id, order_id, quantity, price, discount from dim.product",
|
||||
"edge_meta": { "fqn": "sample_dbtcloud.dbt_transform_orders", "type": "pipeline" },
|
||||
"source": "DbtLineage",
|
||||
"created_at_days_ago": 12,
|
||||
"updated_at_days_ago": 6
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.dim_customer",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.fact_orders",
|
||||
"type": "table"
|
||||
},
|
||||
"sql_query": "select customer_id, order_date, total_amount, product_count from dim_customer",
|
||||
"edge_meta": { "fqn": "sample_dbtcloud.dbt_transform_orders", "type": "pipeline" },
|
||||
"source": "DbtLineage",
|
||||
"created_at_days_ago": 8,
|
||||
"updated_at_days_ago": 1
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.fact_orders",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.dim_customer",
|
||||
"type": "table"
|
||||
},
|
||||
"sql_query": "select customer_id, sum(total_amount) as lifetime_value from fact_orders group by customer_id",
|
||||
"edge_meta": { "fqn": "sample_dbtcloud.dbt_analytics_customers", "type": "pipeline" },
|
||||
"source": "DbtLineage",
|
||||
"created_at_days_ago": 7,
|
||||
"updated_at_days_ago": 2
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.fact_orders",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.customer_features",
|
||||
"type": "table"
|
||||
},
|
||||
"sql_query": "select customer_id, count(*) as total_orders, avg(total_amount) as avg_order_value from fact_orders group by customer_id",
|
||||
"edge_meta": { "fqn": "sample_dbtcloud.dbt_ml_features", "type": "pipeline" },
|
||||
"source": "DbtLineage",
|
||||
"created_at_days_ago": 5,
|
||||
"updated_at_days_ago": 1
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.dim_customer",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.customer_features",
|
||||
"type": "table"
|
||||
},
|
||||
"sql_query": "select customer_id, preferred_category, churn_probability from dim_customer",
|
||||
"edge_meta": { "fqn": "sample_dbtcloud.dbt_ml_features", "type": "pipeline" },
|
||||
"source": "DbtLineage",
|
||||
"created_at_days_ago": 5,
|
||||
"updated_at_days_ago": 1
|
||||
},
|
||||
{
|
||||
"from": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.fact_orders",
|
||||
"type": "table"
|
||||
},
|
||||
"to": {
|
||||
"fqn": "sample_data.ecommerce_db.shopify.customer_features",
|
||||
"type": "table"
|
||||
},
|
||||
"sql_query": "select customer_id, sum(total_amount) as total_spend from fact_orders group by customer_id",
|
||||
"edge_meta": { "fqn": "sample_airflow.ml_feature_pipeline", "type": "pipeline" },
|
||||
"source": "PipelineLineage",
|
||||
"created_at_days_ago": 2,
|
||||
"updated_at_days_ago": 0
|
||||
},
|
||||
{
|
||||
"from": { "fqn": "postgres_sample.jaffle_shop.public.raw_customers", "type": "table" },
|
||||
"to": { "fqn": "postgres_sample.jaffle_shop.public.stg_customers", "type": "table" },
|
||||
"sql_query": "SELECT id AS customer_id, first_name, last_name FROM jaffle_shop.public.raw_customers",
|
||||
"edge_meta": { "fqn": "", "type": "" }
|
||||
},
|
||||
{
|
||||
"from": { "fqn": "postgres_sample.jaffle_shop.public.raw_orders", "type": "table" },
|
||||
"to": { "fqn": "postgres_sample.jaffle_shop.public.stg_orders", "type": "table" },
|
||||
"sql_query": "SELECT id AS order_id, user_id AS customer_id, order_date, status FROM jaffle_shop.public.raw_orders",
|
||||
"edge_meta": { "fqn": "", "type": "" }
|
||||
},
|
||||
{
|
||||
"from": { "fqn": "postgres_sample.jaffle_shop.public.raw_payments", "type": "table" },
|
||||
"to": { "fqn": "postgres_sample.jaffle_shop.public.stg_payments", "type": "table" },
|
||||
"sql_query": "SELECT id AS payment_id, order_id, payment_method, amount / 100.0 AS amount FROM jaffle_shop.public.raw_payments",
|
||||
"edge_meta": { "fqn": "", "type": "" }
|
||||
},
|
||||
{
|
||||
"from": { "fqn": "postgres_sample.jaffle_shop.public.stg_customers", "type": "table" },
|
||||
"to": { "fqn": "postgres_sample.jaffle_shop.public.customers", "type": "table" },
|
||||
"sql_query": "SELECT customers.customer_id, customers.first_name, customers.last_name, customer_orders.first_order, customer_orders.most_recent_order, customer_orders.number_of_orders, customer_payments.total_amount AS customer_lifetime_value FROM stg_customers AS customers LEFT JOIN customer_orders ON customers.customer_id = customer_orders.customer_id LEFT JOIN customer_payments ON customers.customer_id = customer_payments.customer_id",
|
||||
"edge_meta": { "fqn": "", "type": "" }
|
||||
},
|
||||
{
|
||||
"from": { "fqn": "postgres_sample.jaffle_shop.public.stg_orders", "type": "table" },
|
||||
"to": { "fqn": "postgres_sample.jaffle_shop.public.customers", "type": "table" },
|
||||
"sql_query": "SELECT customer_id, MIN(order_date) AS first_order, MAX(order_date) AS most_recent_order, COUNT(order_id) AS number_of_orders FROM stg_orders GROUP BY customer_id",
|
||||
"edge_meta": { "fqn": "", "type": "" }
|
||||
},
|
||||
{
|
||||
"from": { "fqn": "postgres_sample.jaffle_shop.public.stg_payments", "type": "table" },
|
||||
"to": { "fqn": "postgres_sample.jaffle_shop.public.customers", "type": "table" },
|
||||
"sql_query": "SELECT orders.customer_id, SUM(amount) AS total_amount FROM stg_payments LEFT JOIN stg_orders ON stg_payments.order_id = stg_orders.order_id GROUP BY orders.customer_id",
|
||||
"edge_meta": { "fqn": "", "type": "" }
|
||||
},
|
||||
{
|
||||
"from": { "fqn": "postgres_sample.jaffle_shop.public.stg_orders", "type": "table" },
|
||||
"to": { "fqn": "postgres_sample.jaffle_shop.public.orders", "type": "table" },
|
||||
"sql_query": "SELECT orders.order_id, orders.customer_id, orders.order_date, orders.status, order_payments.credit_card_amount, order_payments.coupon_amount, order_payments.bank_transfer_amount, order_payments.gift_card_amount, order_payments.total_amount AS amount FROM stg_orders AS orders LEFT JOIN order_payments ON orders.order_id = order_payments.order_id",
|
||||
"edge_meta": { "fqn": "", "type": "" }
|
||||
},
|
||||
{
|
||||
"from": { "fqn": "postgres_sample.jaffle_shop.public.stg_payments", "type": "table" },
|
||||
"to": { "fqn": "postgres_sample.jaffle_shop.public.orders", "type": "table" },
|
||||
"sql_query": "SELECT order_id, SUM(CASE WHEN payment_method = 'credit_card' THEN amount ELSE 0 END) AS credit_card_amount, SUM(CASE WHEN payment_method = 'coupon' THEN amount ELSE 0 END) AS coupon_amount, SUM(CASE WHEN payment_method = 'bank_transfer' THEN amount ELSE 0 END) AS bank_transfer_amount, SUM(CASE WHEN payment_method = 'gift_card' THEN amount ELSE 0 END) AS gift_card_amount, SUM(amount) AS total_amount FROM stg_payments GROUP BY order_id",
|
||||
"edge_meta": { "fqn": "", "type": "" }
|
||||
},
|
||||
{
|
||||
"from": { "fqn": "sample_data.ecommerce_db.shopify.raw_order", "type": "table" },
|
||||
"to": { "fqn": "sample_data.ecommerce_db.shopify.fact_orders", "type": "table" },
|
||||
"edge_meta": { "fqn": "", "type": "" },
|
||||
"source": "QueryLineage",
|
||||
"created_at_days_ago": 75,
|
||||
"updated_at_days_ago": 40,
|
||||
"temp_lineage_tables": [
|
||||
{"fromEntity": "sample_data.ecommerce_db.shopify.raw_order", "toEntity": "tmp_order_staging"},
|
||||
{"fromEntity": "tmp_order_staging", "toEntity": "tmp_order_enriched"},
|
||||
{"fromEntity": "tmp_order_enriched", "toEntity": "sample_data.ecommerce_db.shopify.fact_orders"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"from": { "fqn": "sample_data.ecommerce_db.shopify.raw_customer", "type": "table" },
|
||||
"to": { "fqn": "sample_data.ecommerce_db.shopify.dim_customer", "type": "table" },
|
||||
"edge_meta": { "fqn": "", "type": "" },
|
||||
"source": "QueryLineage",
|
||||
"created_at_days_ago": 60,
|
||||
"updated_at_days_ago": 30,
|
||||
"temp_lineage_tables": [
|
||||
{"fromEntity": "sample_data.ecommerce_db.shopify.raw_customer", "toEntity": "tmp_customer_dedup"},
|
||||
{"fromEntity": "tmp_customer_dedup", "toEntity": "sample_data.ecommerce_db.shopify.dim_customer"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"from": { "fqn": "sample_data.ecommerce_db.shopify.raw_product_catalog", "type": "table" },
|
||||
"to": { "fqn": "sample_data.ecommerce_db.shopify.\"dim.product\"", "type": "table" },
|
||||
"edge_meta": { "fqn": "", "type": "" },
|
||||
"source": "QueryLineage",
|
||||
"created_at_days_ago": 45,
|
||||
"updated_at_days_ago": 15,
|
||||
"temp_lineage_tables": [
|
||||
{"fromEntity": "sample_data.ecommerce_db.shopify.raw_product_catalog", "toEntity": "tmp_product_cleaned"},
|
||||
{"fromEntity": "tmp_product_cleaned", "toEntity": "sample_data.ecommerce_db.shopify.\"dim.product\""},
|
||||
{"fromEntity": "sample_data.ecommerce_db.shopify.raw_product_catalog", "toEntity": "tmp_product_enriched"},
|
||||
{"fromEntity": "tmp_product_enriched", "toEntity": "sample_data.ecommerce_db.shopify.\"dim.product\""}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,30 @@
|
||||
[
|
||||
{
|
||||
"name": "chart_1",
|
||||
"displayName": "Chart 1",
|
||||
"description": "This is a sample Chart for Looker",
|
||||
"chartType": "Text",
|
||||
"sourceUrl": "http://localhost:8088/looker/explore/?form_data=%7B%22slice_id%22%3A%20114%7D"
|
||||
},
|
||||
{
|
||||
"name":"chart_2",
|
||||
"displayName": "Chart 2",
|
||||
"description": "This is a sample Chart for Looker",
|
||||
"chartType": "Bar",
|
||||
"sourceUrl": "http://localhost:8088/looker/explore/?form_data=%7B%22slice_id%22%3A%20166%7D"
|
||||
},
|
||||
{
|
||||
"name": "chart_3",
|
||||
"displayName": "✈️ Chart 3",
|
||||
"description": "This is a sample Chart for Looker",
|
||||
"chartType": "Other",
|
||||
"sourceUrl": "http://localhost:8088/looker/explore/?form_data=%7B%22slice_id%22%3A%2092%7D"
|
||||
},
|
||||
{
|
||||
"name": "chart_4",
|
||||
"displayName": "Chart 4",
|
||||
"description": "This is a sample Chart for Looker",
|
||||
"chartType": "Histogram",
|
||||
"sourceUrl": "http://localhost:8088/looker/explore/?form_data=%7B%22slice_id%22%3A%20117%7D"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,170 @@
|
||||
[
|
||||
{
|
||||
"name": "orders",
|
||||
"displayName": "Orders",
|
||||
"description": "Orders explore from Sample Data",
|
||||
"dataModelType": "LookMlExplore",
|
||||
"serviceType": "Looker",
|
||||
"sql": "view: orders {\n sql_table_name: orders ;;\n\n dimension: \"1. Phase I\" {\n type: string\n sql: ${TABLE}.status ;;\n }\n\n dimension: \"4. Authorized\" {\n type: int\n sql: ${TABLE}.amount ;;\n }\n}",
|
||||
"columns": [
|
||||
{
|
||||
"name": "0. Pre-clinical",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Vaccine Candidates in phase: 'Pre-clinical'",
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "2. Phase II or Combined I/II",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Vaccine Candidates in phase: 'Phase II or Combined I/II'",
|
||||
"ordinalPosition": 2
|
||||
},
|
||||
{
|
||||
"name": "1. Phase I",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Vaccine Candidates in phase: 'Phase I'",
|
||||
"ordinalPosition": 3
|
||||
},
|
||||
{
|
||||
"name": "3. Phase III",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Vaccine Candidates in phase: 'Phase III'",
|
||||
"ordinalPosition": 4
|
||||
},
|
||||
{
|
||||
"name": "4. Authorized",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Vaccine Candidates in phase: 'Authorize'",
|
||||
"ordinalPosition": 5
|
||||
},
|
||||
{
|
||||
"name": "5. \"Delivery\"",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Vaccine Candidates in phase: 'Delivery'",
|
||||
"ordinalPosition": 5
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "operations",
|
||||
"displayName": "Operations",
|
||||
"description": "Operations Explore from Sample Data",
|
||||
"dataModelType": "LookMlExplore",
|
||||
"serviceType": "Looker",
|
||||
"sql": "view: operations {\n sql_table_name: customers ;;\n\n dimension: \"country_name\" {\n type: string\n sql: ${TABLE}.country ;;\n }\n\n dimension: \"count\" {\n type: int\n sql: ${TABLE}.amount ;;\n }\n}",
|
||||
"columns": [
|
||||
{
|
||||
"name": "country_name",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "varchar",
|
||||
"dataLength": 256,
|
||||
"description": "Name of the country.",
|
||||
"tags": [],
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "count",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Total number of vaccine candidates per country.",
|
||||
"tags": [],
|
||||
"ordinalPosition": 2
|
||||
},
|
||||
{
|
||||
"name": "COUNT(Country_Name)",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Total number of vaccine candidates.",
|
||||
"tags": [],
|
||||
"ordinalPosition": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "operations_view",
|
||||
"displayName": "Operations View",
|
||||
"description": "Operations View from Sample Data",
|
||||
"dataModelType": "LookMlView",
|
||||
"serviceType": "Looker",
|
||||
"sql": "view: operations {\n sql_table_name: customers ;;\n\n dimension: \"country_name\" {\n type: string\n sql: ${TABLE}.country ;;\n }\n\n dimension: \"count\" {\n type: int\n sql: ${TABLE}.amount ;;\n }\n}",
|
||||
"columns": [
|
||||
{
|
||||
"name": "country_name",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "varchar",
|
||||
"dataLength": 256,
|
||||
"description": "Name of the country.",
|
||||
"tags": [],
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "count",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Total number of vaccine candidates per country.",
|
||||
"tags": [],
|
||||
"ordinalPosition": 2
|
||||
},
|
||||
{
|
||||
"name": "COUNT(Country_Name)",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Total number of vaccine candidates.",
|
||||
"tags": [],
|
||||
"ordinalPosition": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "orders_view",
|
||||
"displayName": "Orders View",
|
||||
"description": "Orders View from Sample Data",
|
||||
"dataModelType": "LookMlView",
|
||||
"serviceType": "Looker",
|
||||
"sql": "view: orders {\n sql_table_name: orders ;;\n\n dimension: \"1. Phase I\" {\n type: string\n sql: ${TABLE}.status ;;\n }\n\n dimension: \"4. Authorized\" {\n type: int\n sql: ${TABLE}.amount ;;\n }\n}",
|
||||
"columns": [
|
||||
{
|
||||
"name": "0. Pre-clinical",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Vaccine Candidates in phase: 'Pre-clinical'",
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "2. Phase II or Combined I/II",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Vaccine Candidates in phase: 'Phase II or Combined I/II'",
|
||||
"ordinalPosition": 2
|
||||
},
|
||||
{
|
||||
"name": "1. Phase I",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Vaccine Candidates in phase: 'Phase I'",
|
||||
"ordinalPosition": 3
|
||||
},
|
||||
{
|
||||
"name": "3. Phase III",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Vaccine Candidates in phase: 'Phase III'",
|
||||
"ordinalPosition": 4
|
||||
},
|
||||
{
|
||||
"name": "4. Authorized",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Vaccine Candidates in phase: 'Authorize'",
|
||||
"ordinalPosition": 5
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
[
|
||||
{
|
||||
"name": "customers",
|
||||
"displayName": "Customers dashboard",
|
||||
"description": "This is a sample Dashboard for Looker",
|
||||
"sourceUrl": "http://localhost:808/looker/dashboard/1/",
|
||||
"charts": ["sample_looker.chart_1", "sample_looker.chart_2"]
|
||||
},
|
||||
{
|
||||
"name": "orders",
|
||||
"displayName": "Orders Dashboard",
|
||||
"description": "This is a sample Dashboard for Looker",
|
||||
"sourceUrl": "http://localhost:808/looker/dashboard/8/",
|
||||
"charts": ["sample_looker.chart_3", "sample_looker.chart_4"],
|
||||
"dataModels": ["sample_looker.model.orders", "sample_looker.model.operations"]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"type": "looker",
|
||||
"serviceName": "sample_looker",
|
||||
"serviceConnection": {
|
||||
"config": {
|
||||
"type": "Looker",
|
||||
"hostPort": "https://looker.com",
|
||||
"clientId": "admin",
|
||||
"clientSecret": "admin"
|
||||
}
|
||||
},
|
||||
"sourceConfig": {
|
||||
"config": {}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,209 @@
|
||||
[
|
||||
{
|
||||
"name": "eta_predictions",
|
||||
"displayName": "ETA Predictions",
|
||||
"description": "Deep learning model for predicting estimated time of arrival using historical delivery data and real-time traffic patterns",
|
||||
"algorithm": "mlmodel",
|
||||
"dashboard": "sample_superset.eta_predictions_performance",
|
||||
"mlStore": {
|
||||
"storage": "mlflow-artifacts:/1/abc123def456/artifacts/model"
|
||||
},
|
||||
"sourceUrl": "http://localhost:8088/#/models/eta_predictions",
|
||||
"mlFeatures": [
|
||||
{
|
||||
"name": "distance",
|
||||
"dataType": "numerical"
|
||||
},
|
||||
{
|
||||
"name": "traffic_density",
|
||||
"dataType": "numerical"
|
||||
},
|
||||
{
|
||||
"name": "weather_condition",
|
||||
"dataType": "categorical"
|
||||
},
|
||||
{
|
||||
"name": "day_of_week",
|
||||
"dataType": "categorical"
|
||||
}
|
||||
],
|
||||
"mlHyperParameters": [
|
||||
{
|
||||
"name": "learning_rate",
|
||||
"value": "0.001"
|
||||
},
|
||||
{
|
||||
"name": "batch_size",
|
||||
"value": "32"
|
||||
},
|
||||
{
|
||||
"name": "epochs",
|
||||
"value": "100"
|
||||
},
|
||||
{
|
||||
"name": "dropout_rate",
|
||||
"value": "0.3"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "forecast_sales",
|
||||
"displayName": "Sales Forecast Predictions",
|
||||
"description": "Time series forecasting model for predicting future sales based on historical trends and seasonality patterns",
|
||||
"algorithm": "mlmodel",
|
||||
"dashboard": "sample_superset.forecast_sales_performance",
|
||||
"mlStore": {
|
||||
"storage": "mlflow-artifacts:/2/xyz789abc012/artifacts/model"
|
||||
},
|
||||
"sourceUrl": "http://localhost:8088/#/models/forecast_sales",
|
||||
"mlFeatures": [
|
||||
{
|
||||
"name": "historical_sales",
|
||||
"dataType": "numerical"
|
||||
},
|
||||
{
|
||||
"name": "month",
|
||||
"dataType": "categorical"
|
||||
},
|
||||
{
|
||||
"name": "promotion_flag",
|
||||
"dataType": "categorical"
|
||||
}
|
||||
],
|
||||
"mlHyperParameters": [
|
||||
{
|
||||
"name": "seasonality_mode",
|
||||
"value": "multiplicative"
|
||||
},
|
||||
{
|
||||
"name": "changepoint_prior_scale",
|
||||
"value": "0.05"
|
||||
},
|
||||
{
|
||||
"name": "seasonality_prior_scale",
|
||||
"value": "10.0"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "customer_segmentation",
|
||||
"displayName": "Customer Segmentation Model",
|
||||
"description": "Clustering model for customer segmentation based on purchase behavior and demographics",
|
||||
"algorithm": "mlmodel",
|
||||
"dashboard": "sample_superset.eta_predictions_performance",
|
||||
"mlStore": {
|
||||
"storage": "mlflow-artifacts:/3/seg456cluster/artifacts/model"
|
||||
},
|
||||
"sourceUrl": "http://localhost:8088/#/models/customer_segmentation",
|
||||
"mlFeatures": [
|
||||
{
|
||||
"name": "total_purchase_amount",
|
||||
"dataType": "numerical"
|
||||
},
|
||||
{
|
||||
"name": "purchase_frequency",
|
||||
"dataType": "numerical"
|
||||
},
|
||||
{
|
||||
"name": "avg_basket_size",
|
||||
"dataType": "numerical"
|
||||
},
|
||||
{
|
||||
"name": "customer_age_group",
|
||||
"dataType": "categorical"
|
||||
},
|
||||
{
|
||||
"name": "preferred_category",
|
||||
"dataType": "categorical"
|
||||
}
|
||||
],
|
||||
"mlHyperParameters": [
|
||||
{
|
||||
"name": "n_clusters",
|
||||
"value": "5"
|
||||
},
|
||||
{
|
||||
"name": "max_iter",
|
||||
"value": "300"
|
||||
},
|
||||
{
|
||||
"name": "init",
|
||||
"value": "k-means++"
|
||||
},
|
||||
{
|
||||
"name": "random_state",
|
||||
"value": "42"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "provider_address_texas_model",
|
||||
"displayName": "Provider Address Texas Model",
|
||||
"description": "Search relevancy fixture model for scoring provider address Texas coverage.",
|
||||
"algorithm": "mlmodel",
|
||||
"dashboard": "sample_superset.provider_address_texas_dashboard",
|
||||
"mlStore": {
|
||||
"storage": "mlflow-artifacts:/4/provider-address-texas/artifacts/model"
|
||||
},
|
||||
"sourceUrl": "http://localhost:8088/#/models/provider_address_texas_model",
|
||||
"mlFeatures": [
|
||||
{
|
||||
"name": "provider_address_quality",
|
||||
"dataType": "numerical"
|
||||
},
|
||||
{
|
||||
"name": "texas_region",
|
||||
"dataType": "categorical"
|
||||
},
|
||||
{
|
||||
"name": "network_status",
|
||||
"dataType": "categorical"
|
||||
}
|
||||
],
|
||||
"mlHyperParameters": [
|
||||
{
|
||||
"name": "max_depth",
|
||||
"value": "6"
|
||||
},
|
||||
{
|
||||
"name": "learning_rate",
|
||||
"value": "0.05"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "customer_profiles_model",
|
||||
"displayName": "Customer Profiles Model",
|
||||
"description": "Search relevancy fixture model for scoring customer profiles quality.",
|
||||
"algorithm": "mlmodel",
|
||||
"dashboard": "sample_superset.customer_profiles_dashboard",
|
||||
"mlStore": {
|
||||
"storage": "mlflow-artifacts:/5/customer-profiles/artifacts/model"
|
||||
},
|
||||
"sourceUrl": "http://localhost:8088/#/models/customer_profiles_model",
|
||||
"mlFeatures": [
|
||||
{
|
||||
"name": "customer_profile_score",
|
||||
"dataType": "numerical"
|
||||
},
|
||||
{
|
||||
"name": "profile_status",
|
||||
"dataType": "categorical"
|
||||
},
|
||||
{
|
||||
"name": "loyalty_segment",
|
||||
"dataType": "categorical"
|
||||
}
|
||||
],
|
||||
"mlHyperParameters": [
|
||||
{
|
||||
"name": "max_depth",
|
||||
"value": "6"
|
||||
},
|
||||
{
|
||||
"name": "learning_rate",
|
||||
"value": "0.05"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"type": "Mlflow",
|
||||
"serviceName": "mlflow_svc",
|
||||
"serviceConnection": {
|
||||
"config": {
|
||||
"type": "Mlflow",
|
||||
"trackingUri": "http://localhost:8088",
|
||||
"registryUri": "http://localhost:8088"
|
||||
}
|
||||
},
|
||||
"sourceConfig": {
|
||||
"config": {}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
[
|
||||
{
|
||||
"name": "fraud-detection-model",
|
||||
"algorithm": "mlmodel",
|
||||
"dashboard": "sample_superset.eta_predictions_performance",
|
||||
"mlStore": {
|
||||
"storage": "s3://sagemaker-us-east-1-123456789/fraud-detection-model/model.tar.gz",
|
||||
"imageRepository": "123456789.dkr.ecr.us-east-1.amazonaws.com/fraud-detection:v1.2.3"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "customer-churn-predictor",
|
||||
"algorithm": "mlmodel",
|
||||
"dashboard": "sample_superset.forecast_sales_performance",
|
||||
"mlStore": {
|
||||
"storage": "s3://sagemaker-us-east-1-123456789/churn-model/model-v2.tar.gz",
|
||||
"imageRepository": "123456789.dkr.ecr.us-east-1.amazonaws.com/churn-predictor:v2.0.1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "recommendation-engine",
|
||||
"algorithm": "mlmodel",
|
||||
"dashboard": "sample_superset.eta_predictions_performance",
|
||||
"mlStore": {
|
||||
"storage": "s3://sagemaker-us-east-1-123456789/recommendations/collaborative-filter.tar.gz",
|
||||
"imageRepository": "123456789.dkr.ecr.us-east-1.amazonaws.com/recommendation-engine:latest"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"type": "SageMaker",
|
||||
"serviceName": "sagemaker_svc",
|
||||
"serviceConnection": {
|
||||
"config": {
|
||||
"type": "SageMaker",
|
||||
"awsConfig": {
|
||||
"awsAccessKeyId": "aws_access_key_id",
|
||||
"awsSecretAccessKey": "aws_secret_access_key",
|
||||
"awsRegion": "us-east-1"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceConfig": {
|
||||
"config": {}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"id": null,
|
||||
"name": "default",
|
||||
"service": {
|
||||
"id": "b946d870-03b2-4d33-a075-13665a7a76b9",
|
||||
"type": "MYSQL"
|
||||
},
|
||||
"sourceUrl": "https://localhost:3306/posts_db"
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
{
|
||||
"id": null,
|
||||
"name": "posts_db",
|
||||
"service": {
|
||||
"id": "b946d870-03b2-4d33-a075-13665a7a76b9",
|
||||
"type": "MYSQL"
|
||||
},
|
||||
"sourceUrl": "https://localhost:3306/posts_db"
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"type": "mysql",
|
||||
"serviceName": "mysql_sample",
|
||||
"serviceConnection": {
|
||||
"config": {
|
||||
"type": "Mysql",
|
||||
"hostPort": "localhost:3306",
|
||||
"username": "openmetadata_user",
|
||||
"authType": {
|
||||
"password": "openmetadata_password"
|
||||
},
|
||||
"databaseSchema": "posts_db"
|
||||
}
|
||||
},
|
||||
"sourceConfig": {
|
||||
"config": {
|
||||
"type": "DatabaseMetadata"
|
||||
}
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"collections" : [
|
||||
{
|
||||
"name": "tables",
|
||||
"service": "ometa_api_service",
|
||||
"endpointURL": "https://docs.open-metadata.org/swagger.html#tag/Tables"
|
||||
},
|
||||
{
|
||||
"name": "users",
|
||||
"service": "ometa_api_service",
|
||||
"endpointURL": "https://docs.open-metadata.org/swagger.html#tag/Users"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,266 @@
|
||||
{
|
||||
"endpoints": [
|
||||
{
|
||||
"name": "listTables",
|
||||
"displayName": "List tables",
|
||||
"description": "Get a list of tables",
|
||||
"endpointURL": "https://docs.open-metadata.org/api/v1/tables",
|
||||
"apiCollection": "ometa_api_service.tables",
|
||||
"requestMethod": "GET",
|
||||
"responseSchema": {
|
||||
"schemaType": "JSON",
|
||||
"schemaFields": [
|
||||
{
|
||||
"name": "data",
|
||||
"dataType": "RECORD",
|
||||
"description": "list of tables",
|
||||
"children": [
|
||||
{
|
||||
"name": "id",
|
||||
"dataType": "STRING",
|
||||
"description": "ID of table"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "name of table"
|
||||
},
|
||||
{
|
||||
"name": "columns",
|
||||
"dataType": "RECORD",
|
||||
"description": "columns of table",
|
||||
"children": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "errors",
|
||||
"dataType": "RECORD",
|
||||
"description": "list of errors",
|
||||
"children": [
|
||||
{
|
||||
"name": "entity",
|
||||
"dataType": "RECORD",
|
||||
"description": "entity object",
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"name": "message",
|
||||
"dataType": "STRING",
|
||||
"description": "error message"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "paging",
|
||||
"dataType": "RECORD",
|
||||
"description": "paging",
|
||||
"children": [
|
||||
{
|
||||
"name": "total",
|
||||
"dataType": "INT",
|
||||
"description": "total pages"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "createTable",
|
||||
"displayName": "Create a table",
|
||||
"description": "Create a new table under an existing database",
|
||||
"endpointURL": "https://docs.open-metadata.org/api/v1/tables",
|
||||
"apiCollection": "ometa_api_service.tables",
|
||||
"requestMethod": "POST",
|
||||
"requestSchema": {
|
||||
"schemaType": "JSON",
|
||||
"schemaFields": [
|
||||
{
|
||||
"name": "databaseSchema",
|
||||
"dataType": "STRING",
|
||||
"description": "db schema of new table"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "name of table"
|
||||
},
|
||||
{
|
||||
"name": "columns",
|
||||
"dataType": "RECORD",
|
||||
"description": "list of columns",
|
||||
"children": [
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "name of column"
|
||||
},
|
||||
{
|
||||
"name": "datatype",
|
||||
"dataType": "STRING",
|
||||
"description": "datatype of column"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"responseSchema": {
|
||||
"schemaType": "JSON",
|
||||
"schemaFields": [
|
||||
{
|
||||
"name": "id",
|
||||
"dataType": "STRING",
|
||||
"description": "id of created table"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "name of created table"
|
||||
},
|
||||
{
|
||||
"name": "columns",
|
||||
"dataType": "RECORD",
|
||||
"description": "list of columns",
|
||||
"children": [
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "name of column"
|
||||
},
|
||||
{
|
||||
"name": "datatype",
|
||||
"dataType": "STRING",
|
||||
"description": "datatype of column"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "deleteTable",
|
||||
"apiCollection": "ometa_api_service.tables",
|
||||
"displayName": "Delete table by ID",
|
||||
"description": "Delete table by ID",
|
||||
"endpointURL": "https://docs.open-metadata.org/api/v1/tables/{id}",
|
||||
"requestMethod": "DELETE"
|
||||
},
|
||||
{
|
||||
"name": "listUsers",
|
||||
"displayName": "List users",
|
||||
"description": "Get a list of users",
|
||||
"endpointURL": "https://docs.open-metadata.org/api/v1/users",
|
||||
"apiCollection": "ometa_api_service.users",
|
||||
"requestMethod": "GET",
|
||||
"responseSchema": {
|
||||
"schemaType": "JSON",
|
||||
"schemaFields": [
|
||||
{
|
||||
"name": "data",
|
||||
"dataType": "RECORD",
|
||||
"description": "list of users",
|
||||
"children": [
|
||||
{
|
||||
"name": "id",
|
||||
"dataType": "STRING",
|
||||
"description": "ID of user"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "name of user"
|
||||
},
|
||||
{
|
||||
"name": "email",
|
||||
"dataType": "STRING",
|
||||
"description": "email id of user"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "errors",
|
||||
"dataType": "RECORD",
|
||||
"description": "list of errors",
|
||||
"children": [
|
||||
{
|
||||
"name": "entity",
|
||||
"dataType": "RECORD",
|
||||
"description": "entity object",
|
||||
"children": []
|
||||
},
|
||||
{
|
||||
"name": "message",
|
||||
"dataType": "STRING",
|
||||
"description": "error message"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "paging",
|
||||
"dataType": "RECORD",
|
||||
"description": "paging",
|
||||
"children": [
|
||||
{
|
||||
"name": "total",
|
||||
"dataType": "INT",
|
||||
"description": "total pages"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "createUser",
|
||||
"displayName": "Create a user",
|
||||
"description": "Create a new user",
|
||||
"endpointURL": "https://docs.open-metadata.org/api/v1/users",
|
||||
"apiCollection": "ometa_api_service.users",
|
||||
"requestMethod": "POST",
|
||||
"requestSchema": {
|
||||
"schemaType": "JSON",
|
||||
"schemaFields": [
|
||||
{
|
||||
"name": "email",
|
||||
"dataType": "STRING",
|
||||
"description": "email of new user"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "name of new user"
|
||||
}
|
||||
]
|
||||
},
|
||||
"responseSchema": {
|
||||
"schemaType": "JSON",
|
||||
"schemaFields": [
|
||||
{
|
||||
"name": "id",
|
||||
"dataType": "STRING",
|
||||
"description": "ID of user"
|
||||
},
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "STRING",
|
||||
"description": "name of user"
|
||||
},
|
||||
{
|
||||
"name": "email",
|
||||
"dataType": "STRING",
|
||||
"description": "email id of user"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "deleteUser",
|
||||
"apiCollection": "ometa_api_service.users",
|
||||
"displayName": "Delete user by ID",
|
||||
"description": "Delete user by ID",
|
||||
"endpointURL": "https://docs.open-metadata.org/api/v1/users/{id}",
|
||||
"requestMethod": "DELETE"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"type": "rest",
|
||||
"serviceName": "ometa_api_service",
|
||||
"serviceConnection": {
|
||||
"config": {
|
||||
"type": "Rest",
|
||||
"openAPISchemaConnection": {
|
||||
"openAPISchemaURL": "https://docs.open-metadata.org/swagger.html"
|
||||
},
|
||||
"token":"token"
|
||||
}
|
||||
},
|
||||
"sourceConfig": {
|
||||
"config": {}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"type": "dbtcloud",
|
||||
"serviceName": "sample_dbtcloud",
|
||||
"serviceConnection": {
|
||||
"config": {
|
||||
"type": "DBTCloud",
|
||||
"host": "https://cloud.getdbt.com",
|
||||
"discoveryAPI": "https://metadata.cloud.getdbt.com/graphql",
|
||||
"accountId": "123456",
|
||||
"jobIds": ["654321"],
|
||||
"token": "sample_dbt_token_12345"
|
||||
}
|
||||
},
|
||||
"sourceConfig": {
|
||||
"config": {
|
||||
"includeLineage": true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,209 @@
|
||||
[
|
||||
{
|
||||
"pipeline": "sample_airflow.dim_address_etl",
|
||||
"pipelineStatus": [
|
||||
{
|
||||
"executionId": "run_2024_001_a1b2c3",
|
||||
"timestamp": 1732608000000,
|
||||
"endTime": 1732608600000,
|
||||
"executionStatus": "Successful",
|
||||
"taskStatus": [
|
||||
{
|
||||
"executionStatus": "Successful",
|
||||
"name": "dim_address_task"
|
||||
},
|
||||
{
|
||||
"executionStatus": "Successful",
|
||||
"name": "assert_table_exists"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"executionId": "run_2024_002_d4e5f6",
|
||||
"timestamp": 1732521600000,
|
||||
"endTime": 1732529400000,
|
||||
"executionStatus": "Failed",
|
||||
"taskStatus": [
|
||||
{
|
||||
"executionStatus": "Successful",
|
||||
"name": "dim_address_task"
|
||||
},
|
||||
{
|
||||
"executionStatus": "Failed",
|
||||
"name": "assert_table_exists"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"executionId": "run_2024_003_g7h8i9",
|
||||
"timestamp": 1732435200000,
|
||||
"endTime": 1732449600000,
|
||||
"executionStatus": "Successful",
|
||||
"taskStatus": [
|
||||
{
|
||||
"executionStatus": "Successful",
|
||||
"name": "dim_address_task"
|
||||
},
|
||||
{
|
||||
"executionStatus": "Successful",
|
||||
"name": "assert_table_exists"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"executionId": "run_2024_004_j0k1l2",
|
||||
"timestamp": 1732348800000,
|
||||
"endTime": 1732348800000,
|
||||
"executionStatus": "Skipped",
|
||||
"taskStatus": [
|
||||
{
|
||||
"executionStatus": "Skipped",
|
||||
"name": "dim_address_task"
|
||||
},
|
||||
{
|
||||
"executionStatus": "Skipped",
|
||||
"name": "assert_table_exists"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"executionId": "run_2024_005_m3n4o5",
|
||||
"timestamp": 1732262400000,
|
||||
"endTime": 1732263300000,
|
||||
"executionStatus": "Failed",
|
||||
"taskStatus": [
|
||||
{
|
||||
"executionStatus": "Failed",
|
||||
"name": "dim_address_task"
|
||||
},
|
||||
{
|
||||
"executionStatus": "Pending",
|
||||
"name": "assert_table_exists"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"executionId": "run_2024_006_p6q7r8",
|
||||
"timestamp": 1732176000000,
|
||||
"endTime": 1732192200000,
|
||||
"executionStatus": "Successful",
|
||||
"taskStatus": [
|
||||
{
|
||||
"executionStatus": "Successful",
|
||||
"name": "dim_address_task"
|
||||
},
|
||||
{
|
||||
"executionStatus": "Successful",
|
||||
"name": "assert_table_exists"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"executionId": "run_2024_007_s9t0u1",
|
||||
"timestamp": 1732089600000,
|
||||
"executionStatus": "Pending",
|
||||
"taskStatus": [
|
||||
{
|
||||
"executionStatus": "Pending",
|
||||
"name": "dim_address_task"
|
||||
},
|
||||
{
|
||||
"executionStatus": "Pending",
|
||||
"name": "assert_table_exists"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pipeline": "sample_dbtcloud.dbt_staging_shopify",
|
||||
"pipelineStatus": [
|
||||
{
|
||||
"executionId": "dbt_run_101_abc",
|
||||
"timestamp": 1732608000000,
|
||||
"endTime": 1732615200000,
|
||||
"executionStatus": "Successful",
|
||||
"taskStatus": [
|
||||
{
|
||||
"executionStatus": "Successful",
|
||||
"name": "dbt_run_staging"
|
||||
},
|
||||
{
|
||||
"executionStatus": "Successful",
|
||||
"name": "dbt_test_staging"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"executionId": "dbt_run_102_def",
|
||||
"timestamp": 1732521600000,
|
||||
"endTime": 1732522500000,
|
||||
"executionStatus": "Failed",
|
||||
"taskStatus": [
|
||||
{
|
||||
"executionStatus": "Successful",
|
||||
"name": "dbt_run_staging"
|
||||
},
|
||||
{
|
||||
"executionStatus": "Failed",
|
||||
"name": "dbt_test_staging"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pipeline": "sample_dbtcloud.dbt_transform_orders",
|
||||
"pipelineStatus": [
|
||||
{
|
||||
"executionId": "orders_run_201",
|
||||
"timestamp": 1732608000000,
|
||||
"endTime": 1732611600000,
|
||||
"executionStatus": "Successful",
|
||||
"taskStatus": [
|
||||
{
|
||||
"executionStatus": "Successful",
|
||||
"name": "dbt_run_orders"
|
||||
},
|
||||
{
|
||||
"executionStatus": "Successful",
|
||||
"name": "dbt_test_orders"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"executionId": "orders_run_202",
|
||||
"timestamp": 1732521600000,
|
||||
"endTime": 1732537800000,
|
||||
"executionStatus": "Failed",
|
||||
"taskStatus": [
|
||||
{
|
||||
"executionStatus": "Failed",
|
||||
"name": "dbt_run_orders"
|
||||
},
|
||||
{
|
||||
"executionStatus": "Skipped",
|
||||
"name": "dbt_test_orders"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"pipeline": "sample_dbtcloud.dbt_analytics_customers",
|
||||
"pipelineStatus": [
|
||||
{
|
||||
"executionId": "analytics_run_301",
|
||||
"timestamp": 1732608000000,
|
||||
"endTime": 1732610400000,
|
||||
"executionStatus": "Successful",
|
||||
"taskStatus": [
|
||||
{
|
||||
"executionStatus": "Successful",
|
||||
"name": "dbt_build_analytics"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,388 @@
|
||||
{
|
||||
"pipelines": [{
|
||||
"name": "presto_etl",
|
||||
"displayName": "Presto ETL",
|
||||
"description": "Presto ETL pipeline",
|
||||
"sourceUrl": "http://localhost:8080/tree?dag_id=presto_etl",
|
||||
"scheduleInterval": "* * * * *",
|
||||
"tasks": [
|
||||
{
|
||||
"name": "presto_task",
|
||||
"displayName": "Presto Task",
|
||||
"description": "Airflow operator to perform ETL on presto tables",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "PrestoOperator"
|
||||
},
|
||||
{
|
||||
"name": "assert_table_exists",
|
||||
"displayName": "Assert Table Exists",
|
||||
"description": "Assert if a table exists",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "HiveOperator"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "dim_address_etl",
|
||||
"displayName": "dim_address etl",
|
||||
"description": "dim_address ETL pipeline",
|
||||
"sourceUrl": "http://localhost:8080/tree?dag_id=dim_address_etl",
|
||||
"scheduleInterval": "5 * * * *",
|
||||
"tasks": [{
|
||||
"name": "dim_address_task",
|
||||
"displayName": "dim_address Task",
|
||||
"description": "Airflow operator to perform ETL and generate dim_address table",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=dim_address_task",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "PrestoOperator"
|
||||
},
|
||||
{
|
||||
"name": "assert_table_exists",
|
||||
"displayName": "Assert Table Exists",
|
||||
"description": "Assert if a table exists",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "HiveOperator"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "dim_user_etl",
|
||||
"displayName": "dim_user etl",
|
||||
"description": "dim_user ETL pipeline",
|
||||
"sourceUrl": "http://localhost:8080/tree?dag_id=dim_user_etl",
|
||||
"tasks": [{
|
||||
"name": "dim_user_task",
|
||||
"displayName": "dim_user Task",
|
||||
"description": "Airflow operator to perform ETL and generate dim_user table",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=dim_user_task",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "PrestoOperator"
|
||||
},
|
||||
{
|
||||
"name": "assert_table_exists",
|
||||
"displayName": "Assert Table Exists",
|
||||
"description": "Assert if a table exists",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "HiveOperator"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "dim_location_etl",
|
||||
"displayName": "dim_location etl",
|
||||
"description": "diim_location ETL pipeline",
|
||||
"sourceUrl": "http://localhost:8080/tree?dag_id=dim_address_etl",
|
||||
"tasks": [{
|
||||
"name": "dim_location_task",
|
||||
"displayName": "dim_location Task",
|
||||
"description": "Airflow operator to perform ETL and generate dim_location table",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=dim_location_task",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "PrestoOperator"
|
||||
},
|
||||
{
|
||||
"name": "assert_table_exists",
|
||||
"displayName": "Assert Table Exists",
|
||||
"description": "Assert if a table exists",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "HiveOperator"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "dim_product_etl",
|
||||
"displayName": "dim_product etl",
|
||||
"description": "diim_product ETL pipeline",
|
||||
"sourceUrl": "http://localhost:8080/tree?dag_id=dim_address_etl",
|
||||
"tasks": [{
|
||||
"name": "dim_product_task",
|
||||
"displayName": "dim_product Task",
|
||||
"description": "Airflow operator to perform ETL and generate dim_product table",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=dim_product_task",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "PrestoOperator"
|
||||
},
|
||||
{
|
||||
"name": "assert_table_exists",
|
||||
"displayName": "Assert Table Exists",
|
||||
"description": "Assert if a table exists",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "HiveOperator"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "trino_etl",
|
||||
"displayName": "Trino ETL",
|
||||
"description": "Trino ETL pipeline",
|
||||
"sourceUrl": "http://localhost:8080/tree?dag_id=trino_etl",
|
||||
"scheduleInterval": "@once",
|
||||
"tasks": [{
|
||||
"name": "trino_task",
|
||||
"displayName": "Trino Task",
|
||||
"description": "Airflow operator to perform ETL on trino tables",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "TrinoOperator"
|
||||
},
|
||||
{
|
||||
"name": "assert_table_exists",
|
||||
"displayName": "Assert Table Exists",
|
||||
"description": "Assert if a table exists",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "HiveOperator"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "hive_etl",
|
||||
"displayName": "Hive ETL",
|
||||
"description": "Hive ETL pipeline",
|
||||
"sourceUrl": "http://localhost:8080/tree?dag_id=hive_etl",
|
||||
"tasks": [{
|
||||
"name": "hive_create_table",
|
||||
"displayName": "Hive Create Table",
|
||||
"description": "Hive Create Table Task",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=hive_create_table",
|
||||
"downstreamTasks": ["assert_table_exits"],
|
||||
"taskType": "HiveOperator"
|
||||
},
|
||||
{
|
||||
"name": "assert_table_exists",
|
||||
"displayName": "Assert Table Exists",
|
||||
"description": "Assert if a table exists",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "HiveOperator"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "snowflake_etl",
|
||||
"displayName": "Snowflake ETL",
|
||||
"description": "Snowflake ETL pipeline",
|
||||
"sourceUrl": "http://localhost:8080/tree?dag_id=snowflake_etl",
|
||||
"tasks": [{
|
||||
"name": "snowflake_task",
|
||||
"displayName": "Snowflake Task",
|
||||
"description": "Airflow operator to perform ETL on snowflake tables",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "SnowflakeOperator"
|
||||
},
|
||||
{
|
||||
"name": "assert_table_exists",
|
||||
"displayName": "Assert Table Exists",
|
||||
"description": "Assert if a table exists",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "HiveOperator"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name": "real_time_metrics",
|
||||
"displayName": "Real-time Metrics Aggregation",
|
||||
"description": "Real-time metrics aggregation pipeline running every 15 minutes",
|
||||
"sourceUrl": "http://localhost:8080/tree?dag_id=real_time_metrics",
|
||||
"scheduleInterval": "*/15 * * * *",
|
||||
"tasks": [{
|
||||
"name": "metrics_aggregation_task",
|
||||
"displayName": "Metrics Aggregation Task",
|
||||
"description": "Airflow operator to aggregate streaming metrics",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=metrics_aggregation_task",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "PythonOperator"
|
||||
},
|
||||
{
|
||||
"name": "assert_table_exists",
|
||||
"displayName": "Assert Table Exists",
|
||||
"description": "Assert if a table exists",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "HiveOperator"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name": "ml_feature_pipeline",
|
||||
"displayName": "ML Feature Engineering Pipeline",
|
||||
"description": "Machine learning feature engineering pipeline running twice daily",
|
||||
"sourceUrl": "http://localhost:8080/tree?dag_id=ml_feature_pipeline",
|
||||
"scheduleInterval": "0 2,14 * * *",
|
||||
"tasks": [{
|
||||
"name": "feature_engineering_task",
|
||||
"displayName": "Feature Engineering Task",
|
||||
"description": "Airflow operator to generate ML features from order data",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=feature_engineering_task",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "PythonOperator"
|
||||
},
|
||||
{
|
||||
"name": "assert_table_exists",
|
||||
"displayName": "Assert Table Exists",
|
||||
"description": "Assert if a table exists",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "HiveOperator"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name": "dbt_staging_shopify",
|
||||
"displayName": "DBT Staging Shopify",
|
||||
"description": "DBT pipeline for staging shopify raw data - runs daily",
|
||||
"sourceUrl": "https://cloud.getdbt.com/deploy/123456/projects/654321/runs/dbt_staging_shopify",
|
||||
"scheduleInterval": "0 1 * * *",
|
||||
"service": "sample_dbtcloud",
|
||||
"tasks": [{
|
||||
"name": "dbt_run_staging",
|
||||
"displayName": "DBT Run Staging Models",
|
||||
"description": "Execute dbt run for staging models",
|
||||
"sourceUrl": "https://cloud.getdbt.com/deploy/123456/projects/654321/runs/dbt_staging_shopify",
|
||||
"downstreamTasks": ["dbt_test_staging"],
|
||||
"taskType": "dbtRunTask"
|
||||
},
|
||||
{
|
||||
"name": "dbt_test_staging",
|
||||
"displayName": "DBT Test Staging Models",
|
||||
"description": "Execute dbt tests for staging models",
|
||||
"sourceUrl": "https://cloud.getdbt.com/deploy/123456/projects/654321/runs/dbt_staging_shopify",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "dbtTestTask"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name": "dbt_transform_orders",
|
||||
"displayName": "DBT Transform Orders",
|
||||
"description": "DBT pipeline for transforming order data into fact tables - runs daily",
|
||||
"sourceUrl": "https://cloud.getdbt.com/deploy/123456/projects/654321/runs/dbt_transform_orders",
|
||||
"scheduleInterval": "0 3 * * *",
|
||||
"service": "sample_dbtcloud",
|
||||
"tasks": [{
|
||||
"name": "dbt_run_orders",
|
||||
"displayName": "DBT Run Order Transformations",
|
||||
"description": "Execute dbt run for order fact tables",
|
||||
"sourceUrl": "https://cloud.getdbt.com/deploy/123456/projects/654321/runs/dbt_transform_orders",
|
||||
"downstreamTasks": ["dbt_test_orders"],
|
||||
"taskType": "dbtRunTask"
|
||||
},
|
||||
{
|
||||
"name": "dbt_test_orders",
|
||||
"displayName": "DBT Test Order Models",
|
||||
"description": "Execute dbt tests for order models",
|
||||
"sourceUrl": "https://cloud.getdbt.com/deploy/123456/projects/654321/runs/dbt_transform_orders",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "dbtTestTask"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name": "dbt_analytics_customers",
|
||||
"displayName": "DBT Customer Analytics",
|
||||
"description": "DBT pipeline for customer analytics and aggregations - runs daily",
|
||||
"sourceUrl": "https://cloud.getdbt.com/deploy/123456/projects/654321/runs/dbt_analytics_customers",
|
||||
"scheduleInterval": "0 4 * * *",
|
||||
"service": "sample_dbtcloud",
|
||||
"tasks": [{
|
||||
"name": "dbt_build_analytics",
|
||||
"displayName": "DBT Build Customer Analytics",
|
||||
"description": "Execute dbt build for customer analytics models",
|
||||
"sourceUrl": "https://cloud.getdbt.com/deploy/123456/projects/654321/runs/dbt_analytics_customers",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "dbtBuildTask"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name": "dbt_snapshot_inventory",
|
||||
"displayName": "DBT Snapshot Inventory",
|
||||
"description": "DBT snapshot pipeline for tracking inventory changes - runs hourly",
|
||||
"sourceUrl": "https://cloud.getdbt.com/deploy/123456/projects/654321/runs/dbt_snapshot_inventory",
|
||||
"scheduleInterval": "0 * * * *",
|
||||
"service": "sample_dbtcloud",
|
||||
"tasks": [{
|
||||
"name": "dbt_snapshot_task",
|
||||
"displayName": "DBT Snapshot",
|
||||
"description": "Execute dbt snapshot for inventory tracking",
|
||||
"sourceUrl": "https://cloud.getdbt.com/deploy/123456/projects/654321/runs/dbt_snapshot_inventory",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "dbtSnapshotTask"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name": "dbt_test_data_quality",
|
||||
"displayName": "DBT Data Quality Tests",
|
||||
"description": "DBT data quality testing pipeline - runs 4 times daily",
|
||||
"sourceUrl": "https://cloud.getdbt.com/deploy/123456/projects/654321/runs/dbt_test_data_quality",
|
||||
"scheduleInterval": "0 */6 * * *",
|
||||
"service": "sample_dbtcloud",
|
||||
"tasks": [{
|
||||
"name": "dbt_test_all",
|
||||
"displayName": "DBT Test All Models",
|
||||
"description": "Execute comprehensive dbt tests across all models",
|
||||
"sourceUrl": "https://cloud.getdbt.com/deploy/123456/projects/654321/runs/dbt_test_data_quality",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "dbtTestTask"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name": "dbt_ml_features",
|
||||
"displayName": "DBT ML Feature Generation",
|
||||
"description": "DBT pipeline for generating ML features - runs twice daily",
|
||||
"sourceUrl": "https://cloud.getdbt.com/deploy/123456/projects/654321/runs/dbt_ml_features",
|
||||
"scheduleInterval": "0 2,14 * * *",
|
||||
"service": "sample_dbtcloud",
|
||||
"tasks": [{
|
||||
"name": "dbt_run_ml_features",
|
||||
"displayName": "DBT Run ML Features",
|
||||
"description": "Execute dbt run for ML feature generation",
|
||||
"sourceUrl": "https://cloud.getdbt.com/deploy/123456/projects/654321/runs/dbt_ml_features",
|
||||
"downstreamTasks": ["dbt_test_ml_features"],
|
||||
"taskType": "dbtRunTask"
|
||||
},
|
||||
{
|
||||
"name": "dbt_test_ml_features",
|
||||
"displayName": "DBT Test ML Features",
|
||||
"description": "Execute dbt tests for ML feature models",
|
||||
"sourceUrl": "https://cloud.getdbt.com/deploy/123456/projects/654321/runs/dbt_ml_features",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "dbtTestTask"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name": "provider_address_texas_pipeline",
|
||||
"displayName": "Provider Address Texas Pipeline",
|
||||
"description": "Search relevancy fixture pipeline for loading provider address Texas reference data.",
|
||||
"sourceUrl": "https://airflow.example.com/dags/provider_address_texas_pipeline",
|
||||
"scheduleInterval": "0 3 * * *",
|
||||
"service": "sample_airflow",
|
||||
"tasks": [{
|
||||
"name": "load_provider_address_texas",
|
||||
"displayName": "Load Provider Address Texas",
|
||||
"description": "Load the provider address Texas fixture table.",
|
||||
"sourceUrl": "https://airflow.example.com/dags/provider_address_texas_pipeline/tasks/load_provider_address_texas",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "PythonOperator"
|
||||
}]
|
||||
},
|
||||
{
|
||||
"name": "customer_profiles_pipeline",
|
||||
"displayName": "Customer Profiles Pipeline",
|
||||
"description": "Search relevancy fixture pipeline for loading customer profiles reference data.",
|
||||
"sourceUrl": "https://airflow.example.com/dags/customer_profiles_pipeline",
|
||||
"scheduleInterval": "0 3 * * *",
|
||||
"service": "sample_airflow",
|
||||
"tasks": [{
|
||||
"name": "load_customer_profiles",
|
||||
"displayName": "Load Customer Profiles",
|
||||
"description": "Load the customer profiles fixture table.",
|
||||
"sourceUrl": "https://airflow.example.com/dags/customer_profiles_pipeline/tasks/load_customer_profiles",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "PythonOperator"
|
||||
}]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"type": "airflow",
|
||||
"serviceName": "sample_airflow",
|
||||
"serviceConnection": {
|
||||
"config": {
|
||||
"type": "Airflow",
|
||||
"hostPort": "http://localhost:8080",
|
||||
"connection": {
|
||||
"type": "Backend"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceConfig": {
|
||||
"config": {
|
||||
"includeLineage": true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,238 @@
|
||||
{
|
||||
"tables": [
|
||||
{
|
||||
"tableFqn": "sample_data.ecommerce_db.shopify.dim_address",
|
||||
"pipelineObservability": [
|
||||
{
|
||||
"pipeline": "sample_airflow.dim_address_etl",
|
||||
"scheduleInterval": "0 10 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763402163120,
|
||||
"lastRunStatus": "Successful"
|
||||
},
|
||||
{
|
||||
"pipeline": "sample_dbtcloud.dbt_staging_shopify",
|
||||
"scheduleInterval": "0 1 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763402163120,
|
||||
"lastRunStatus": "Successful"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableFqn": "sample_data.ecommerce_db.shopify.dim_product",
|
||||
"pipelineObservability": [
|
||||
{
|
||||
"pipeline": "sample_airflow.dim_product_etl",
|
||||
"scheduleInterval": "0 10 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763636163120,
|
||||
"lastRunStatus": "Successful"
|
||||
},
|
||||
{
|
||||
"pipeline": "sample_dbtcloud.dbt_transform_orders",
|
||||
"scheduleInterval": "0 3 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763636163120,
|
||||
"lastRunStatus": "Successful"
|
||||
},
|
||||
{
|
||||
"pipeline": "sample_dbtcloud.dbt_snapshot_inventory",
|
||||
"scheduleInterval": "0 * * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763733363120,
|
||||
"lastRunStatus": "Successful"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableFqn": "sample_data.ecommerce_db.shopify.dim_customer",
|
||||
"pipelineObservability": [
|
||||
{
|
||||
"pipeline": "sample_dbtcloud.dbt_staging_shopify",
|
||||
"scheduleInterval": "0 1 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763402163120,
|
||||
"lastRunStatus": "Successful"
|
||||
},
|
||||
{
|
||||
"pipeline": "sample_dbtcloud.dbt_transform_orders",
|
||||
"scheduleInterval": "0 3 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763636163120,
|
||||
"lastRunStatus": "Successful"
|
||||
},
|
||||
{
|
||||
"pipeline": "sample_dbtcloud.dbt_analytics_customers",
|
||||
"scheduleInterval": "0 4 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763640163120,
|
||||
"lastRunStatus": "Successful"
|
||||
},
|
||||
{
|
||||
"pipeline": "sample_dbtcloud.dbt_ml_features",
|
||||
"scheduleInterval": "0 2,14 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763711763120,
|
||||
"lastRunStatus": "Successful"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableFqn": "sample_data.ecommerce_db.shopify.fact_orders",
|
||||
"pipelineObservability": [
|
||||
{
|
||||
"pipeline": "sample_airflow.presto_etl",
|
||||
"scheduleInterval": "0 */4 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763729763120,
|
||||
"lastRunStatus": "Failed"
|
||||
},
|
||||
{
|
||||
"pipeline": "sample_dbtcloud.dbt_transform_orders",
|
||||
"scheduleInterval": "0 3 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763636163120,
|
||||
"lastRunStatus": "Successful"
|
||||
},
|
||||
{
|
||||
"pipeline": "sample_dbtcloud.dbt_test_data_quality",
|
||||
"scheduleInterval": "0 */6 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763720163120,
|
||||
"lastRunStatus": "Successful"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableFqn": "sample_data.ecommerce_db.shopify.fact_orders",
|
||||
"pipelineObservability": [
|
||||
{
|
||||
"pipeline": "sample_airflow.snowflake_etl",
|
||||
"scheduleInterval": "0 */6 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763420163120,
|
||||
"lastRunStatus": "Successful"
|
||||
},
|
||||
{
|
||||
"pipeline": "sample_airflow.ml_feature_pipeline",
|
||||
"scheduleInterval": "0 2,14 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763711763120,
|
||||
"lastRunStatus": "Successful"
|
||||
},
|
||||
{
|
||||
"pipeline": "sample_dbtcloud.dbt_transform_orders",
|
||||
"scheduleInterval": "0 3 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763636163120,
|
||||
"lastRunStatus": "Successful"
|
||||
},
|
||||
{
|
||||
"pipeline": "sample_dbtcloud.dbt_analytics_customers",
|
||||
"scheduleInterval": "0 4 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763640163120,
|
||||
"lastRunStatus": "Successful"
|
||||
},
|
||||
{
|
||||
"pipeline": "sample_dbtcloud.dbt_ml_features",
|
||||
"scheduleInterval": "0 2,14 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763711763120,
|
||||
"lastRunStatus": "Successful"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableFqn": "sample_data.ecommerce_db.shopify.fact_transactions",
|
||||
"pipelineObservability": [
|
||||
{
|
||||
"pipeline": "sample_airflow.hive_etl",
|
||||
"scheduleInterval": "0 3 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1762736163120,
|
||||
"lastRunStatus": "Successful"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableFqn": "sample_data.ecommerce_db.shopify.dim_location",
|
||||
"pipelineObservability": [
|
||||
{
|
||||
"pipeline": "sample_airflow.dim_location_etl",
|
||||
"scheduleInterval": "0 10 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1762793763120,
|
||||
"lastRunStatus": "Failed"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableFqn": "sample_data.ecommerce_db.shopify.fact_events",
|
||||
"pipelineObservability": [
|
||||
{
|
||||
"pipeline": "sample_airflow.trino_etl",
|
||||
"scheduleInterval": "0 * * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763445363120,
|
||||
"lastRunStatus": "Successful"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableFqn": "sample_data.ecommerce_db.shopify.metrics_aggregated",
|
||||
"pipelineObservability": [
|
||||
{
|
||||
"pipeline": "sample_airflow.real_time_metrics",
|
||||
"scheduleInterval": "*/15 * * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763733363120,
|
||||
"lastRunStatus": "Successful"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableFqn": "sample_data.ecommerce_db.shopify.customer_features",
|
||||
"pipelineObservability": [
|
||||
{
|
||||
"pipeline": "sample_airflow.ml_feature_pipeline",
|
||||
"scheduleInterval": "0 2,14 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1762592163120,
|
||||
"lastRunStatus": "Successful"
|
||||
},
|
||||
{
|
||||
"pipeline": "sample_dbtcloud.dbt_ml_features",
|
||||
"scheduleInterval": "0 2,14 * * *",
|
||||
"startTime": 1756050963120,
|
||||
"endTime": 1764050963120,
|
||||
"lastRunTime": 1763711763120,
|
||||
"lastRunStatus": "Successful"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,100 @@
|
||||
{
|
||||
"tasks": [{
|
||||
"name": "hive_create_table",
|
||||
"displayName": "Hive Create Table",
|
||||
"description": "Hive Create Table Task",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=hive_create_table",
|
||||
"downstreamTasks": ["assert_table_exits"],
|
||||
"taskType": "HiveOperator"
|
||||
},
|
||||
{
|
||||
"name": "assert_table_exists",
|
||||
"displayName": "Assert Table Exists",
|
||||
"description": "Assert if a table exists",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": [],
|
||||
"taskType": "HiveOperator"
|
||||
},
|
||||
{
|
||||
"name": "snowflake_task",
|
||||
"displayName": "Snowflake Task",
|
||||
"description": "Airflow operator to perform ETL on snowflake tables",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "SnowflakeOperator"
|
||||
},
|
||||
{
|
||||
"name": "presto_task",
|
||||
"displayName": "Presto Task",
|
||||
"description": "Airflow operator to perform ETL on presto tables",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "PrestoOperator"
|
||||
},
|
||||
{
|
||||
"name": "dim_address_task",
|
||||
"displayName": "dim_address Task",
|
||||
"description": "Airflow operator to perform ETL and generate dim_address table",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=dim_address_task",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "PrestoOperator"
|
||||
},
|
||||
{
|
||||
"name": "dim_user_task",
|
||||
"displayName": "dim_user Task",
|
||||
"description": "Airflow operator to perform ETL and generate dim_user table",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=dim_user_task",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "PrestoOperator"
|
||||
},
|
||||
{
|
||||
"name": "dim_location_task",
|
||||
"displayName": "dim_location Task",
|
||||
"description": "Airflow operator to perform ETL and generate dim_location table",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=dim_location_task",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "PrestoOperator"
|
||||
},
|
||||
{
|
||||
"name": "trino_task",
|
||||
"displayName": "Trino Task",
|
||||
"description": "Airflow operator to perform ETL on trino tables",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "TrinoOperator"
|
||||
},
|
||||
{
|
||||
"name": "dim_location_etl",
|
||||
"displayName": "dim_location etl",
|
||||
"description": "dim_location ETL pipeline",
|
||||
"sourceUrl": "http://localhost:8080/tree?dag_id=dim_address_etl",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=assert_table_exists",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "TrinoOperator"
|
||||
},
|
||||
{
|
||||
"name": "metrics_aggregation_task",
|
||||
"displayName": "Metrics Aggregation Task",
|
||||
"description": "Airflow operator to aggregate streaming metrics in real-time",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=metrics_aggregation_task",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "PythonOperator"
|
||||
},
|
||||
{
|
||||
"name": "feature_engineering_task",
|
||||
"displayName": "Feature Engineering Task",
|
||||
"description": "Airflow operator to generate ML features from warehouse data",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=feature_engineering_task",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "PythonOperator"
|
||||
},
|
||||
{
|
||||
"name": "dim_product_task",
|
||||
"displayName": "dim_product Task",
|
||||
"description": "Airflow operator to perform ETL and generate dim_product table",
|
||||
"sourceUrl": "http://localhost:8080/taskinstance/list/?_flt_3_dag_id=dim_product_task",
|
||||
"downstreamTasks": ["assert_table_exists"],
|
||||
"taskType": "PrestoOperator"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"id": null,
|
||||
"name": "jaffle_shop",
|
||||
"description": "Sample dbt jaffle_shop project database demonstrating dbt metadata integration with raw, staging, and final data layers"
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"id": null,
|
||||
"name": "public",
|
||||
"description": "Default public schema for the jaffle_shop dbt project"
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"type": "postgres",
|
||||
"serviceName": "postgres_sample",
|
||||
"serviceConnection": {
|
||||
"config": {
|
||||
"type": "Postgres",
|
||||
"hostPort": "localhost:5432",
|
||||
"username": "openmetadata_user",
|
||||
"authType": {
|
||||
"password": "openmetadata_password"
|
||||
},
|
||||
"database": "jaffle_shop"
|
||||
}
|
||||
},
|
||||
"sourceConfig": {
|
||||
"config": {
|
||||
"type": "DatabaseMetadata"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,153 @@
|
||||
{
|
||||
"dataModels": [
|
||||
{
|
||||
"tableFqn": "postgres_sample.jaffle_shop.public.raw_customers",
|
||||
"modelType": "DBT",
|
||||
"resourceType": "seed",
|
||||
"description": "Raw customer data loaded from CSV seed file",
|
||||
"path": "seeds/raw_customers.csv",
|
||||
"rawSql": "",
|
||||
"sql": "",
|
||||
"dbtSourceProject": "jaffle_shop",
|
||||
"upstream": [],
|
||||
"columns": [
|
||||
{"name": "id", "dataType": "INT", "description": "Primary key for customers"},
|
||||
{"name": "first_name", "dataType": "VARCHAR", "dataLength": 256, "description": "Customer first name"},
|
||||
{"name": "last_name", "dataType": "VARCHAR", "dataLength": 256, "description": "Customer last name"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableFqn": "postgres_sample.jaffle_shop.public.raw_orders",
|
||||
"modelType": "DBT",
|
||||
"resourceType": "seed",
|
||||
"description": "Raw order data loaded from CSV seed file",
|
||||
"path": "seeds/raw_orders.csv",
|
||||
"rawSql": "",
|
||||
"sql": "",
|
||||
"dbtSourceProject": "jaffle_shop",
|
||||
"upstream": [],
|
||||
"columns": [
|
||||
{"name": "id", "dataType": "INT", "description": "Primary key for orders"},
|
||||
{"name": "user_id", "dataType": "INT", "description": "Foreign key to customers"},
|
||||
{"name": "order_date", "dataType": "DATE", "description": "Date the order was placed"},
|
||||
{"name": "status", "dataType": "VARCHAR", "dataLength": 64, "description": "Order status"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableFqn": "postgres_sample.jaffle_shop.public.raw_payments",
|
||||
"modelType": "DBT",
|
||||
"resourceType": "seed",
|
||||
"description": "Raw payment data loaded from CSV seed file",
|
||||
"path": "seeds/raw_payments.csv",
|
||||
"rawSql": "",
|
||||
"sql": "",
|
||||
"dbtSourceProject": "jaffle_shop",
|
||||
"upstream": [],
|
||||
"columns": [
|
||||
{"name": "id", "dataType": "INT", "description": "Primary key for payments"},
|
||||
{"name": "order_id", "dataType": "INT", "description": "Foreign key to orders"},
|
||||
{"name": "payment_method", "dataType": "VARCHAR", "dataLength": 64, "description": "Payment method used"},
|
||||
{"name": "amount", "dataType": "INT", "description": "Payment amount in cents"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableFqn": "postgres_sample.jaffle_shop.public.stg_customers",
|
||||
"modelType": "DBT",
|
||||
"resourceType": "model",
|
||||
"description": "Staged customer data with renamed columns",
|
||||
"path": "models/staging/stg_customers.sql",
|
||||
"rawSql": "WITH source AS (\n SELECT * FROM {{ ref('raw_customers') }}\n)\n\nSELECT\n id AS customer_id,\n first_name,\n last_name\nFROM source",
|
||||
"sql": "WITH source AS (\n SELECT * FROM jaffle_shop.public.raw_customers\n)\n\nSELECT\n id AS customer_id,\n first_name,\n last_name\nFROM source",
|
||||
"dbtSourceProject": "jaffle_shop",
|
||||
"upstream": ["postgres_sample.jaffle_shop.public.raw_customers"],
|
||||
"columns": [
|
||||
{"name": "customer_id", "dataType": "INT", "description": "Unique identifier for a customer"},
|
||||
{"name": "first_name", "dataType": "VARCHAR", "dataLength": 256, "description": "Customer first name"},
|
||||
{"name": "last_name", "dataType": "VARCHAR", "dataLength": 256, "description": "Customer last name"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableFqn": "postgres_sample.jaffle_shop.public.stg_orders",
|
||||
"modelType": "DBT",
|
||||
"resourceType": "model",
|
||||
"description": "Staged order data with renamed columns",
|
||||
"path": "models/staging/stg_orders.sql",
|
||||
"rawSql": "WITH source AS (\n SELECT * FROM {{ ref('raw_orders') }}\n)\n\nSELECT\n id AS order_id,\n user_id AS customer_id,\n order_date,\n status\nFROM source",
|
||||
"sql": "WITH source AS (\n SELECT * FROM jaffle_shop.public.raw_orders\n)\n\nSELECT\n id AS order_id,\n user_id AS customer_id,\n order_date,\n status\nFROM source",
|
||||
"dbtSourceProject": "jaffle_shop",
|
||||
"upstream": ["postgres_sample.jaffle_shop.public.raw_orders"],
|
||||
"columns": [
|
||||
{"name": "order_id", "dataType": "INT", "description": "Unique identifier for an order"},
|
||||
{"name": "customer_id", "dataType": "INT", "description": "Foreign key to customers"},
|
||||
{"name": "order_date", "dataType": "DATE", "description": "Date the order was placed"},
|
||||
{"name": "status", "dataType": "VARCHAR", "dataLength": 64, "description": "Order status"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableFqn": "postgres_sample.jaffle_shop.public.stg_payments",
|
||||
"modelType": "DBT",
|
||||
"resourceType": "model",
|
||||
"description": "Staged payment data with renamed columns and converted amount from cents to dollars",
|
||||
"path": "models/staging/stg_payments.sql",
|
||||
"rawSql": "WITH source AS (\n SELECT * FROM {{ ref('raw_payments') }}\n)\n\nSELECT\n id AS payment_id,\n order_id,\n payment_method,\n amount / 100.0 AS amount\nFROM source",
|
||||
"sql": "WITH source AS (\n SELECT * FROM jaffle_shop.public.raw_payments\n)\n\nSELECT\n id AS payment_id,\n order_id,\n payment_method,\n amount / 100.0 AS amount\nFROM source",
|
||||
"dbtSourceProject": "jaffle_shop",
|
||||
"upstream": ["postgres_sample.jaffle_shop.public.raw_payments"],
|
||||
"columns": [
|
||||
{"name": "payment_id", "dataType": "INT", "description": "Unique identifier for a payment"},
|
||||
{"name": "order_id", "dataType": "INT", "description": "Foreign key to orders"},
|
||||
{"name": "payment_method", "dataType": "VARCHAR", "dataLength": 64, "description": "Payment method used"},
|
||||
{"name": "amount", "dataType": "NUMERIC", "description": "Payment amount in dollars"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableFqn": "postgres_sample.jaffle_shop.public.customers",
|
||||
"modelType": "DBT",
|
||||
"resourceType": "model",
|
||||
"description": "This table has basic information about a customer, as well as some derived facts based on a customer's orders",
|
||||
"path": "models/customers.sql",
|
||||
"rawSql": "WITH customers AS (\n SELECT * FROM {{ ref('stg_customers') }}\n),\n\norders AS (\n SELECT * FROM {{ ref('stg_orders') }}\n),\n\npayments AS (\n SELECT * FROM {{ ref('stg_payments') }}\n),\n\ncustomer_orders AS (\n SELECT\n customer_id,\n MIN(order_date) AS first_order,\n MAX(order_date) AS most_recent_order,\n COUNT(order_id) AS number_of_orders\n FROM orders\n GROUP BY customer_id\n),\n\ncustomer_payments AS (\n SELECT\n orders.customer_id,\n SUM(amount) AS total_amount\n FROM payments\n LEFT JOIN orders ON payments.order_id = orders.order_id\n GROUP BY orders.customer_id\n),\n\nfinal AS (\n SELECT\n customers.customer_id,\n customers.first_name,\n customers.last_name,\n customer_orders.first_order,\n customer_orders.most_recent_order,\n customer_orders.number_of_orders,\n customer_payments.total_amount AS customer_lifetime_value\n FROM customers\n LEFT JOIN customer_orders ON customers.customer_id = customer_orders.customer_id\n LEFT JOIN customer_payments ON customers.customer_id = customer_payments.customer_id\n)\n\nSELECT * FROM final",
|
||||
"sql": "WITH customers AS (\n SELECT * FROM jaffle_shop.public.stg_customers\n),\n\norders AS (\n SELECT * FROM jaffle_shop.public.stg_orders\n),\n\npayments AS (\n SELECT * FROM jaffle_shop.public.stg_payments\n),\n\ncustomer_orders AS (\n SELECT\n customer_id,\n MIN(order_date) AS first_order,\n MAX(order_date) AS most_recent_order,\n COUNT(order_id) AS number_of_orders\n FROM orders\n GROUP BY customer_id\n),\n\ncustomer_payments AS (\n SELECT\n orders.customer_id,\n SUM(amount) AS total_amount\n FROM payments\n LEFT JOIN orders ON payments.order_id = orders.order_id\n GROUP BY orders.customer_id\n),\n\nfinal AS (\n SELECT\n customers.customer_id,\n customers.first_name,\n customers.last_name,\n customer_orders.first_order,\n customer_orders.most_recent_order,\n customer_orders.number_of_orders,\n customer_payments.total_amount AS customer_lifetime_value\n FROM customers\n LEFT JOIN customer_orders ON customers.customer_id = customer_orders.customer_id\n LEFT JOIN customer_payments ON customers.customer_id = customer_payments.customer_id\n)\n\nSELECT * FROM final",
|
||||
"dbtSourceProject": "jaffle_shop",
|
||||
"upstream": [
|
||||
"postgres_sample.jaffle_shop.public.stg_customers",
|
||||
"postgres_sample.jaffle_shop.public.stg_orders",
|
||||
"postgres_sample.jaffle_shop.public.stg_payments"
|
||||
],
|
||||
"columns": [
|
||||
{"name": "customer_id", "dataType": "INT", "description": "Unique identifier for a customer"},
|
||||
{"name": "first_name", "dataType": "VARCHAR", "dataLength": 256, "description": "Customer first name. PII."},
|
||||
{"name": "last_name", "dataType": "VARCHAR", "dataLength": 256, "description": "Customer last name. PII."},
|
||||
{"name": "first_order", "dataType": "DATE", "description": "Date of the customer's first order"},
|
||||
{"name": "most_recent_order", "dataType": "DATE", "description": "Date of the customer's most recent order"},
|
||||
{"name": "number_of_orders", "dataType": "INT", "description": "Total number of orders placed by the customer"},
|
||||
{"name": "customer_lifetime_value", "dataType": "NUMERIC", "description": "Total amount spent by the customer across all orders"}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableFqn": "postgres_sample.jaffle_shop.public.orders",
|
||||
"modelType": "DBT",
|
||||
"resourceType": "model",
|
||||
"description": "This table has one row per order with order details and payment amounts broken down by payment method",
|
||||
"path": "models/orders.sql",
|
||||
"rawSql": "WITH orders AS (\n SELECT * FROM {{ ref('stg_orders') }}\n),\n\npayments AS (\n SELECT * FROM {{ ref('stg_payments') }}\n),\n\norder_payments AS (\n SELECT\n order_id,\n SUM(CASE WHEN payment_method = 'credit_card' THEN amount ELSE 0 END) AS credit_card_amount,\n SUM(CASE WHEN payment_method = 'coupon' THEN amount ELSE 0 END) AS coupon_amount,\n SUM(CASE WHEN payment_method = 'bank_transfer' THEN amount ELSE 0 END) AS bank_transfer_amount,\n SUM(CASE WHEN payment_method = 'gift_card' THEN amount ELSE 0 END) AS gift_card_amount,\n SUM(amount) AS total_amount\n FROM payments\n GROUP BY order_id\n),\n\nfinal AS (\n SELECT\n orders.order_id,\n orders.customer_id,\n orders.order_date,\n orders.status,\n order_payments.credit_card_amount,\n order_payments.coupon_amount,\n order_payments.bank_transfer_amount,\n order_payments.gift_card_amount,\n order_payments.total_amount AS amount\n FROM orders\n LEFT JOIN order_payments ON orders.order_id = order_payments.order_id\n)\n\nSELECT * FROM final",
|
||||
"sql": "WITH orders AS (\n SELECT * FROM jaffle_shop.public.stg_orders\n),\n\npayments AS (\n SELECT * FROM jaffle_shop.public.stg_payments\n),\n\norder_payments AS (\n SELECT\n order_id,\n SUM(CASE WHEN payment_method = 'credit_card' THEN amount ELSE 0 END) AS credit_card_amount,\n SUM(CASE WHEN payment_method = 'coupon' THEN amount ELSE 0 END) AS coupon_amount,\n SUM(CASE WHEN payment_method = 'bank_transfer' THEN amount ELSE 0 END) AS bank_transfer_amount,\n SUM(CASE WHEN payment_method = 'gift_card' THEN amount ELSE 0 END) AS gift_card_amount,\n SUM(amount) AS total_amount\n FROM payments\n GROUP BY order_id\n),\n\nfinal AS (\n SELECT\n orders.order_id,\n orders.customer_id,\n orders.order_date,\n orders.status,\n order_payments.credit_card_amount,\n order_payments.coupon_amount,\n order_payments.bank_transfer_amount,\n order_payments.gift_card_amount,\n order_payments.total_amount AS amount\n FROM orders\n LEFT JOIN order_payments ON orders.order_id = order_payments.order_id\n)\n\nSELECT * FROM final",
|
||||
"dbtSourceProject": "jaffle_shop",
|
||||
"upstream": [
|
||||
"postgres_sample.jaffle_shop.public.stg_orders",
|
||||
"postgres_sample.jaffle_shop.public.stg_payments"
|
||||
],
|
||||
"columns": [
|
||||
{"name": "order_id", "dataType": "INT", "description": "Unique identifier for an order"},
|
||||
{"name": "customer_id", "dataType": "INT", "description": "Foreign key to the customers table"},
|
||||
{"name": "order_date", "dataType": "DATE", "description": "Date the order was placed"},
|
||||
{"name": "status", "dataType": "VARCHAR", "dataLength": 64, "description": "Order status: placed, shipped, completed, return_pending, or returned"},
|
||||
{"name": "credit_card_amount", "dataType": "NUMERIC", "description": "Amount paid by credit card"},
|
||||
{"name": "coupon_amount", "dataType": "NUMERIC", "description": "Amount paid by coupon"},
|
||||
{"name": "bank_transfer_amount", "dataType": "NUMERIC", "description": "Amount paid by bank transfer"},
|
||||
{"name": "gift_card_amount", "dataType": "NUMERIC", "description": "Amount paid by gift card"},
|
||||
{"name": "amount", "dataType": "NUMERIC", "description": "Total order amount across all payment methods"}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,337 @@
|
||||
{
|
||||
"tables": [
|
||||
{
|
||||
"name": "raw_customers",
|
||||
"description": "Raw customer data loaded from CSV seed file in the jaffle_shop dbt project",
|
||||
"tableType": "Regular",
|
||||
"columns": [
|
||||
{
|
||||
"name": "id",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "integer",
|
||||
"description": "Primary key for customers",
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "first_name",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "character varying(256)",
|
||||
"dataLength": 256,
|
||||
"description": "Customer first name",
|
||||
"ordinalPosition": 2
|
||||
},
|
||||
{
|
||||
"name": "last_name",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "character varying(256)",
|
||||
"dataLength": 256,
|
||||
"description": "Customer last name",
|
||||
"ordinalPosition": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "raw_orders",
|
||||
"description": "Raw order data loaded from CSV seed file in the jaffle_shop dbt project",
|
||||
"tableType": "Regular",
|
||||
"columns": [
|
||||
{
|
||||
"name": "id",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "integer",
|
||||
"description": "Primary key for orders",
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "user_id",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "integer",
|
||||
"description": "Foreign key to customers",
|
||||
"ordinalPosition": 2
|
||||
},
|
||||
{
|
||||
"name": "order_date",
|
||||
"dataType": "DATE",
|
||||
"dataTypeDisplay": "date",
|
||||
"description": "Date the order was placed",
|
||||
"ordinalPosition": 3
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "character varying(64)",
|
||||
"dataLength": 64,
|
||||
"description": "Order status: placed, shipped, completed, return_pending, or returned",
|
||||
"ordinalPosition": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "raw_payments",
|
||||
"description": "Raw payment data loaded from CSV seed file in the jaffle_shop dbt project",
|
||||
"tableType": "Regular",
|
||||
"columns": [
|
||||
{
|
||||
"name": "id",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "integer",
|
||||
"description": "Primary key for payments",
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "order_id",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "integer",
|
||||
"description": "Foreign key to orders",
|
||||
"ordinalPosition": 2
|
||||
},
|
||||
{
|
||||
"name": "payment_method",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "character varying(64)",
|
||||
"dataLength": 64,
|
||||
"description": "Payment method: credit_card, coupon, bank_transfer, or gift_card",
|
||||
"ordinalPosition": 3
|
||||
},
|
||||
{
|
||||
"name": "amount",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "integer",
|
||||
"description": "Payment amount in cents",
|
||||
"ordinalPosition": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stg_customers",
|
||||
"description": "Staged customer data with renamed columns from raw_customers",
|
||||
"tableType": "View",
|
||||
"columns": [
|
||||
{
|
||||
"name": "customer_id",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "integer",
|
||||
"description": "Unique identifier for a customer, renamed from id",
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "first_name",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "character varying(256)",
|
||||
"dataLength": 256,
|
||||
"description": "Customer first name",
|
||||
"ordinalPosition": 2
|
||||
},
|
||||
{
|
||||
"name": "last_name",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "character varying(256)",
|
||||
"dataLength": 256,
|
||||
"description": "Customer last name",
|
||||
"ordinalPosition": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stg_orders",
|
||||
"description": "Staged order data with renamed columns from raw_orders",
|
||||
"tableType": "View",
|
||||
"columns": [
|
||||
{
|
||||
"name": "order_id",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "integer",
|
||||
"description": "Unique identifier for an order, renamed from id",
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "customer_id",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "integer",
|
||||
"description": "Foreign key to customers, renamed from user_id",
|
||||
"ordinalPosition": 2
|
||||
},
|
||||
{
|
||||
"name": "order_date",
|
||||
"dataType": "DATE",
|
||||
"dataTypeDisplay": "date",
|
||||
"description": "Date the order was placed",
|
||||
"ordinalPosition": 3
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "character varying(64)",
|
||||
"dataLength": 64,
|
||||
"description": "Order status",
|
||||
"ordinalPosition": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "stg_payments",
|
||||
"description": "Staged payment data with renamed columns and converted amount from raw_payments",
|
||||
"tableType": "View",
|
||||
"columns": [
|
||||
{
|
||||
"name": "payment_id",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "integer",
|
||||
"description": "Unique identifier for a payment, renamed from id",
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "order_id",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "integer",
|
||||
"description": "Foreign key to orders",
|
||||
"ordinalPosition": 2
|
||||
},
|
||||
{
|
||||
"name": "payment_method",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "character varying(64)",
|
||||
"dataLength": 64,
|
||||
"description": "Payment method used",
|
||||
"ordinalPosition": 3
|
||||
},
|
||||
{
|
||||
"name": "amount",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric(16,2)",
|
||||
"description": "Payment amount in dollars (converted from cents)",
|
||||
"ordinalPosition": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "customers",
|
||||
"description": "Customer table with basic information and derived facts based on orders",
|
||||
"tableType": "Regular",
|
||||
"columns": [
|
||||
{
|
||||
"name": "customer_id",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "integer",
|
||||
"description": "Unique identifier for a customer",
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "first_name",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "character varying(256)",
|
||||
"dataLength": 256,
|
||||
"description": "Customer first name",
|
||||
"ordinalPosition": 2
|
||||
},
|
||||
{
|
||||
"name": "last_name",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "character varying(256)",
|
||||
"dataLength": 256,
|
||||
"description": "Customer last name",
|
||||
"ordinalPosition": 3
|
||||
},
|
||||
{
|
||||
"name": "first_order",
|
||||
"dataType": "DATE",
|
||||
"dataTypeDisplay": "date",
|
||||
"description": "Date of the customer's first order",
|
||||
"ordinalPosition": 4
|
||||
},
|
||||
{
|
||||
"name": "most_recent_order",
|
||||
"dataType": "DATE",
|
||||
"dataTypeDisplay": "date",
|
||||
"description": "Date of the customer's most recent order",
|
||||
"ordinalPosition": 5
|
||||
},
|
||||
{
|
||||
"name": "number_of_orders",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "integer",
|
||||
"description": "Total number of orders placed by the customer",
|
||||
"ordinalPosition": 6
|
||||
},
|
||||
{
|
||||
"name": "customer_lifetime_value",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric(16,2)",
|
||||
"description": "Total amount spent by the customer across all orders",
|
||||
"ordinalPosition": 7
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "orders",
|
||||
"description": "Order table with order details and payment amounts broken down by payment method",
|
||||
"tableType": "Regular",
|
||||
"columns": [
|
||||
{
|
||||
"name": "order_id",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "integer",
|
||||
"description": "Unique identifier for an order",
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "customer_id",
|
||||
"dataType": "INT",
|
||||
"dataTypeDisplay": "integer",
|
||||
"description": "Foreign key to the customers table",
|
||||
"ordinalPosition": 2
|
||||
},
|
||||
{
|
||||
"name": "order_date",
|
||||
"dataType": "DATE",
|
||||
"dataTypeDisplay": "date",
|
||||
"description": "Date the order was placed",
|
||||
"ordinalPosition": 3
|
||||
},
|
||||
{
|
||||
"name": "status",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "character varying(64)",
|
||||
"dataLength": 64,
|
||||
"description": "Order status: placed, shipped, completed, return_pending, or returned",
|
||||
"ordinalPosition": 4
|
||||
},
|
||||
{
|
||||
"name": "credit_card_amount",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric(16,2)",
|
||||
"description": "Amount paid by credit card",
|
||||
"ordinalPosition": 5
|
||||
},
|
||||
{
|
||||
"name": "coupon_amount",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric(16,2)",
|
||||
"description": "Amount paid by coupon",
|
||||
"ordinalPosition": 6
|
||||
},
|
||||
{
|
||||
"name": "bank_transfer_amount",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric(16,2)",
|
||||
"description": "Amount paid by bank transfer",
|
||||
"ordinalPosition": 7
|
||||
},
|
||||
{
|
||||
"name": "gift_card_amount",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric(16,2)",
|
||||
"description": "Amount paid by gift card",
|
||||
"ordinalPosition": 8
|
||||
},
|
||||
{
|
||||
"name": "amount",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric(16,2)",
|
||||
"description": "Total order amount across all payment methods",
|
||||
"ordinalPosition": 9
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,144 @@
|
||||
{
|
||||
"searchIndexes": [
|
||||
{
|
||||
"id": "e093dd27-390e-4360-8efd-e4d63ec167a9",
|
||||
"name": "table_search_index",
|
||||
"displayName": "TableSearchIndex",
|
||||
"fullyQualifiedName": "elasticsearch_sample.table_search_index",
|
||||
"description": "Table Search Index",
|
||||
"version": 0.1,
|
||||
"updatedAt": 1638354087591,
|
||||
"serviceType": "ElasticSearch",
|
||||
"fields": [
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "TEXT",
|
||||
"dataTypeDisplay": "text",
|
||||
"description": "Table Entity Name.",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "displayName",
|
||||
"dataType": "TEXT",
|
||||
"dataTypeDisplay": "text",
|
||||
"description": "Table Entity DisplayName.",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "description",
|
||||
"dataType": "TEXT",
|
||||
"dataTypeDisplay": "text",
|
||||
"description": "Table Entity Description.",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "columns",
|
||||
"dataType": "NESTED",
|
||||
"dataTypeDisplay": "nested",
|
||||
"description": "Table Columns.",
|
||||
"tags": [],
|
||||
"children": [
|
||||
{
|
||||
"name": "name",
|
||||
"dataType": "TEXT",
|
||||
"dataTypeDisplay": "text",
|
||||
"description": "Column Name.",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "displayName",
|
||||
"dataType": "TEXT",
|
||||
"dataTypeDisplay": "text",
|
||||
"description": "Column DisplayName.",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "description",
|
||||
"dataType": "TEXT",
|
||||
"dataTypeDisplay": "text",
|
||||
"description": "Column Description.",
|
||||
"tags": []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "databaseSchema",
|
||||
"dataType": "TEXT",
|
||||
"dataTypeDisplay": "text",
|
||||
"description": "Database Schema that this table belongs to.",
|
||||
"tags": []
|
||||
}
|
||||
],
|
||||
"tags": [],
|
||||
"followers": []
|
||||
},
|
||||
{
|
||||
"name": "provider_address_texas_index",
|
||||
"displayName": "Provider Address Texas Index",
|
||||
"fullyQualifiedName": "elasticsearch_sample.provider_address_texas_index",
|
||||
"description": "Search relevancy fixture index for provider address Texas documents.",
|
||||
"version": 0.1,
|
||||
"updatedAt": 1638354087591,
|
||||
"serviceType": "ElasticSearch",
|
||||
"fields": [
|
||||
{
|
||||
"name": "provider_id",
|
||||
"dataType": "TEXT",
|
||||
"dataTypeDisplay": "text",
|
||||
"description": "Provider identifier.",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "provider_address",
|
||||
"dataType": "TEXT",
|
||||
"dataTypeDisplay": "text",
|
||||
"description": "Provider address search field.",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "texas_region",
|
||||
"dataType": "TEXT",
|
||||
"dataTypeDisplay": "text",
|
||||
"description": "Texas region search field.",
|
||||
"tags": []
|
||||
}
|
||||
],
|
||||
"tags": [],
|
||||
"followers": []
|
||||
},
|
||||
{
|
||||
"name": "customer_profiles_index",
|
||||
"displayName": "Customer Profiles Index",
|
||||
"fullyQualifiedName": "elasticsearch_sample.customer_profiles_index",
|
||||
"description": "Search relevancy fixture index for customer profiles documents.",
|
||||
"version": 0.1,
|
||||
"updatedAt": 1638354087591,
|
||||
"serviceType": "ElasticSearch",
|
||||
"fields": [
|
||||
{
|
||||
"name": "customer_id",
|
||||
"dataType": "TEXT",
|
||||
"dataTypeDisplay": "text",
|
||||
"description": "Customer identifier.",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "customer_profile_id",
|
||||
"dataType": "TEXT",
|
||||
"dataTypeDisplay": "text",
|
||||
"description": "Customer profile search field.",
|
||||
"tags": []
|
||||
},
|
||||
{
|
||||
"name": "profile_status",
|
||||
"dataType": "TEXT",
|
||||
"dataTypeDisplay": "text",
|
||||
"description": "Customer profile status search field.",
|
||||
"tags": []
|
||||
}
|
||||
],
|
||||
"tags": [],
|
||||
"followers": []
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"type": "elasticsearch",
|
||||
"serviceName": "elasticsearch_sample",
|
||||
"serviceConnection": {
|
||||
"config": {
|
||||
"type": "ElasticSearch",
|
||||
"hostPort": "http://localhost:9200"
|
||||
}
|
||||
},
|
||||
"sourceConfig": {
|
||||
"config": {
|
||||
"type": "SearchMetadata"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,284 @@
|
||||
[
|
||||
{
|
||||
"name": "transactions",
|
||||
"displayName": "Company Transactions",
|
||||
"description": "Bucket containing all the company's transactions",
|
||||
"parent": null,
|
||||
"prefix": "/transactions/",
|
||||
"dataModel": {
|
||||
"isPartitioned": true,
|
||||
"columns": [
|
||||
{
|
||||
"name": "transaction_id",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "The ID of the executed transaction. This column is the primary key for this table.",
|
||||
"tags": [],
|
||||
"constraint": "PRIMARY_KEY",
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "merchant",
|
||||
"dataType": "VARCHAR",
|
||||
"dataLength": 100,
|
||||
"dataTypeDisplay": "varchar",
|
||||
"description": "The merchant for this transaction.",
|
||||
"tags": [],
|
||||
"ordinalPosition": 2
|
||||
},
|
||||
{
|
||||
"name": "transaction_time",
|
||||
"dataType": "TIMESTAMP",
|
||||
"dataTypeDisplay": "timestamp",
|
||||
"description": "The time the transaction took place.",
|
||||
"tags": [],
|
||||
"ordinalPosition": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
"numberOfObjects": "1.7661858297E10",
|
||||
"size": "102400",
|
||||
"fileFormats": [
|
||||
"parquet"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "departments",
|
||||
"displayName": "Company departments",
|
||||
"description": "Bucket containing company department information",
|
||||
"parent": null,
|
||||
"prefix": "/departments/",
|
||||
"dataModel": null,
|
||||
"numberOfObjects": "2",
|
||||
"size": "2048",
|
||||
"fileFormats": [
|
||||
"csv"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "engineering",
|
||||
"displayName": "Engineering department",
|
||||
"description": "Bucket containing engineering department information",
|
||||
"parent": "s3_storage_sample.departments",
|
||||
"prefix": "/departments/engineering/",
|
||||
"dataModel": null,
|
||||
"numberOfObjects": "5",
|
||||
"size": "14336",
|
||||
"fileFormats": [
|
||||
"zip"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "finance",
|
||||
"displayName": "Finance department",
|
||||
"description": "Bucket containing finance department information",
|
||||
"parent": "s3_storage_sample.departments",
|
||||
"prefix": "/departments/finance/",
|
||||
"dataModel": {
|
||||
"isPartitioned": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "department_id",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "The ID of the department. This column is the primary key for this table.",
|
||||
"tags": [],
|
||||
"constraint": "PRIMARY_KEY",
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "budget_total_value",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "The department's budget for the current year.",
|
||||
"tags": [],
|
||||
"ordinalPosition": 2
|
||||
},
|
||||
{
|
||||
"name": "notes",
|
||||
"dataType": "VARCHAR",
|
||||
"dataLength": 100,
|
||||
"dataTypeDisplay": "varchar",
|
||||
"description": "Notes concerning sustainability for the budget.",
|
||||
"tags": [],
|
||||
"ordinalPosition": 3
|
||||
},
|
||||
{
|
||||
"name": "budget_executor",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "varchar",
|
||||
"description": "The responsible finance lead for the budget execution",
|
||||
"tags": [],
|
||||
"ordinalPosition": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"numberOfObjects": "75",
|
||||
"size": "286720",
|
||||
"fileFormats": [
|
||||
"zip",
|
||||
"csv"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "media",
|
||||
"displayName": "Media department",
|
||||
"description": "Bucket containing media department information",
|
||||
"parent": "s3_storage_sample.departments",
|
||||
"prefix": "/departments/media/",
|
||||
"dataModel": null,
|
||||
"numberOfObjects": "123",
|
||||
"size": "243712",
|
||||
"fileFormats": null
|
||||
},
|
||||
{
|
||||
"name": "movies",
|
||||
"displayName": "Company official footage",
|
||||
"description": "Bucket containing movies about the company",
|
||||
"parent": "s3_storage_sample.departments.media",
|
||||
"prefix": "/departments/media/media2020/",
|
||||
"dataModel": null,
|
||||
"numberOfObjects": "500",
|
||||
"size": "15360000",
|
||||
"fileFormats": [
|
||||
"gz"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "expenditures",
|
||||
"displayName": "Expenditures for the current year",
|
||||
"description": "Bucket containing finance expenditures information",
|
||||
"parent": "s3_storage_sample.departments.finance",
|
||||
"prefix": "/departments/finance/expenditures-2023",
|
||||
"dataModel": {
|
||||
"isPartitioned": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "department_id",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "The ID of the department. This column is the primary key for this table.",
|
||||
"tags": [],
|
||||
"constraint": "PRIMARY_KEY",
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "approved",
|
||||
"dataType": "BOOLEAN",
|
||||
"dataTypeDisplay": "boolean",
|
||||
"description": "Whether this was already approved by upper management",
|
||||
"tags": [],
|
||||
"ordinalPosition": 2
|
||||
},
|
||||
{
|
||||
"name": "fraudulent_claims",
|
||||
"dataType": "BOOLEAN",
|
||||
"dataTypeDisplay": "boolean",
|
||||
"description": "Whether any claims were made for the expenditure at any point",
|
||||
"tags": [],
|
||||
"ordinalPosition": 3
|
||||
},
|
||||
{
|
||||
"name": "total_value_for_current_month",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "The current total value spent for the expenditure as of beginning of the current month",
|
||||
"tags": [],
|
||||
"ordinalPosition": 4
|
||||
}
|
||||
]
|
||||
},
|
||||
"numberOfObjects": "10",
|
||||
"size": "65536",
|
||||
"fileFormats": [
|
||||
"zstd",
|
||||
"tsv"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "provider_address_texas_exports",
|
||||
"displayName": "Provider Address Texas Exports",
|
||||
"description": "Search relevancy fixture container for provider address Texas export files.",
|
||||
"parent": "s3_storage_sample.departments",
|
||||
"prefix": "/departments/provider-address-texas/",
|
||||
"dataModel": {
|
||||
"isPartitioned": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "provider_id",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Unique identifier for the provider.",
|
||||
"tags": [],
|
||||
"constraint": "PRIMARY_KEY",
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "provider_address",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "varchar",
|
||||
"description": "Provider address exported for downstream systems.",
|
||||
"tags": [],
|
||||
"ordinalPosition": 2
|
||||
},
|
||||
{
|
||||
"name": "texas_region",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "varchar",
|
||||
"description": "Texas region partition.",
|
||||
"tags": [],
|
||||
"ordinalPosition": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
"numberOfObjects": "12",
|
||||
"size": "98304",
|
||||
"fileFormats": [
|
||||
"csv",
|
||||
"parquet"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "customer_profiles_exports",
|
||||
"displayName": "Customer Profiles Exports",
|
||||
"description": "Search relevancy fixture container for customer profiles export files.",
|
||||
"parent": "s3_storage_sample.departments",
|
||||
"prefix": "/departments/customer-profiles/",
|
||||
"dataModel": {
|
||||
"isPartitioned": false,
|
||||
"columns": [
|
||||
{
|
||||
"name": "customer_id",
|
||||
"dataType": "NUMERIC",
|
||||
"dataTypeDisplay": "numeric",
|
||||
"description": "Unique identifier for the customer.",
|
||||
"tags": [],
|
||||
"constraint": "PRIMARY_KEY",
|
||||
"ordinalPosition": 1
|
||||
},
|
||||
{
|
||||
"name": "customer_profile_id",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "varchar",
|
||||
"description": "Customer profile identifier exported for downstream systems.",
|
||||
"tags": [],
|
||||
"ordinalPosition": 2
|
||||
},
|
||||
{
|
||||
"name": "profile_status",
|
||||
"dataType": "VARCHAR",
|
||||
"dataTypeDisplay": "varchar",
|
||||
"description": "Customer profile status.",
|
||||
"tags": [],
|
||||
"ordinalPosition": 3
|
||||
}
|
||||
]
|
||||
},
|
||||
"numberOfObjects": "12",
|
||||
"size": "98304",
|
||||
"fileFormats": [
|
||||
"csv",
|
||||
"parquet"
|
||||
]
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"type": "s3",
|
||||
"serviceName": "s3_storage_sample",
|
||||
"serviceConnection": {
|
||||
"config": {
|
||||
"type": "S3",
|
||||
"awsConfig": {
|
||||
"awsAccessKeyId": "aws_access_key_id",
|
||||
"awsSecretAccessKey": "aws_secret_access_key",
|
||||
"awsRegion": "awsRegion",
|
||||
"endPointURL": "https://endpoint.com/"
|
||||
}
|
||||
}
|
||||
},
|
||||
"sourceConfig": {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,94 @@
|
||||
{
|
||||
"teams": [
|
||||
{
|
||||
"name": "Engineering",
|
||||
"teamType": "BusinessUnit",
|
||||
"parent": null,
|
||||
"children": ["Infrastructure", "Applications", "Marketplace", "Payments"]
|
||||
},
|
||||
{
|
||||
"name": "Infrastructure",
|
||||
"teamType": "BusinessUnit",
|
||||
"parent": ["Engineering"],
|
||||
"children": ["Compute", "Data","DevOps"]
|
||||
},
|
||||
{
|
||||
"name": "Compute",
|
||||
"teamType": "Group",
|
||||
"parent": ["Infrastructure"],
|
||||
"children": null
|
||||
},
|
||||
{
|
||||
"name": "Data",
|
||||
"teamType": "Group",
|
||||
"parent": ["Infrastructure"],
|
||||
"children": null
|
||||
},
|
||||
{
|
||||
"name": "DevOps",
|
||||
"teamType": "Group",
|
||||
"parent": ["Infrastructure"],
|
||||
"children": null
|
||||
},
|
||||
{
|
||||
"name": "Applications",
|
||||
"teamType": "Group",
|
||||
"parent": ["Engineering"],
|
||||
"children": null
|
||||
},
|
||||
{
|
||||
"name": "Marketplace",
|
||||
"teamType": "Group",
|
||||
"parent": ["Engineering"],
|
||||
"children": null
|
||||
},
|
||||
{
|
||||
"name": "Payments",
|
||||
"teamType": "Group",
|
||||
"parent": ["Engineering"],
|
||||
"children": null
|
||||
},
|
||||
{
|
||||
"name": "Finance",
|
||||
"teamType":"BusinessUnit",
|
||||
"parent": null,
|
||||
"children": ["Marketing", "Sales", "Accounting"]
|
||||
},
|
||||
{
|
||||
"name": "Marketing",
|
||||
"teamType": "Group",
|
||||
"parent": ["Finance"],
|
||||
"children": null
|
||||
},
|
||||
{
|
||||
"name": "Accounting",
|
||||
"teamType": "Group",
|
||||
"parent": ["Finance"],
|
||||
"children": null
|
||||
},
|
||||
{
|
||||
"name": "Sales",
|
||||
"teamType": "Group",
|
||||
"parent": ["Finance"],
|
||||
"children": null
|
||||
},
|
||||
{
|
||||
"name": "Legal",
|
||||
"teamType": "BusinessUnit",
|
||||
"parent": null,
|
||||
"children": ["Merger & Acquisitions", "Legal Admin"]
|
||||
},
|
||||
{
|
||||
"name": "Merger & Acquisitions",
|
||||
"teamType": "Group",
|
||||
"parent": ["Legal"],
|
||||
"children": null
|
||||
},
|
||||
{
|
||||
"name": "Legal Admin",
|
||||
"teamType": "Group",
|
||||
"parent": ["Legal"],
|
||||
"children": null
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"tests": [
|
||||
{
|
||||
"testSuiteName": "myLogicalTestSuite",
|
||||
"testSuiteDescription": "This is a logical test suite linked to an entity",
|
||||
"testCases": [
|
||||
{"fqn":"sample_data.ecommerce_db.shopify.dim_address.last_name.column_values_to_match_regex"},
|
||||
{"fqn":"sample_data.ecommerce_db.shopify.dim_address.shop_id.column_value_max_to_be_between"}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,932 @@
|
||||
{
|
||||
"testCaseResults": [
|
||||
{
|
||||
"name": "table_column_count_equals",
|
||||
"results": [
|
||||
{
|
||||
"result": "Found 10 columns vs. the expected 10",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found 10 columns vs. the expected 10",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found 10 columns vs. the expected 10",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found 10 columns vs. the expected 10",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found 10 columns vs. the expected 10",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found 8 columns vs. the expected 10",
|
||||
"testCaseStatus": "Failed",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "8"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found 8 columns vs. the expected 10",
|
||||
"testCaseStatus": "Failed",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "8"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "columnCount should not be None for tableColumnCountToEqual",
|
||||
"testCaseStatus": "Aborted",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "None"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found 10 columns vs. the expected 10",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found 10 columns vs. the expected 10",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "10"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found 10 columns vs. the expected 10",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "10"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "table_column_count_between",
|
||||
"results": [
|
||||
{
|
||||
"result": "Found 9 column vs. the expected range [1, 10].",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "9"
|
||||
}
|
||||
],
|
||||
"maxBound": 10,
|
||||
"minBound": 1
|
||||
},
|
||||
{
|
||||
"result": "Found 9 column vs. the expected range [1, 10].",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "9"
|
||||
}
|
||||
],
|
||||
"maxBound": 10,
|
||||
"minBound": 7
|
||||
},
|
||||
{
|
||||
"result": "Found 9 column vs. the expected range [1, 10].",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "9"
|
||||
}
|
||||
],
|
||||
"maxBound": 10,
|
||||
"minBound": 1
|
||||
},
|
||||
{
|
||||
"result": "columnCount should not be None for TableColumnCountToBeBetween",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "9"
|
||||
}
|
||||
],
|
||||
"maxBound": 10,
|
||||
"minBound": 1
|
||||
},
|
||||
{
|
||||
"result": "Found 9 column vs. the expected range [1, 10].",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "9"
|
||||
}
|
||||
],
|
||||
"maxBound": 10,
|
||||
"minBound": 1
|
||||
},
|
||||
{
|
||||
"result": "Found 8 column vs. the expected range [1, 10].",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "8"
|
||||
}
|
||||
],
|
||||
"maxBound": 10,
|
||||
"minBound": 1
|
||||
},
|
||||
{
|
||||
"result": "Found 8 column vs. the expected range [1, 10].",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "8"
|
||||
}
|
||||
],
|
||||
"maxBound": 10,
|
||||
"minBound": 1
|
||||
},
|
||||
{
|
||||
"result": "Found 14 column vs. the expected range [1, 10].",
|
||||
"testCaseStatus": "Failed",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "14"
|
||||
}
|
||||
],
|
||||
"maxBound": 31,
|
||||
"minBound": 20
|
||||
},
|
||||
{
|
||||
"result": "Found 8 column vs. the expected range [1, 10].",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "8"
|
||||
}
|
||||
],
|
||||
"maxBound": 150,
|
||||
"minBound": 7
|
||||
},
|
||||
{
|
||||
"result": "Found 8 column vs. the expected range [1, 10].",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "8"
|
||||
}
|
||||
],
|
||||
"maxBound": 150,
|
||||
"minBound": 7
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "shop_id.column_value_max_to_be_between",
|
||||
"results": [
|
||||
{
|
||||
"result": "Found max=65 vs. the expected min=50, max=100.",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "65"
|
||||
}
|
||||
],
|
||||
"maxBound": 100,
|
||||
"minBound": 50
|
||||
},
|
||||
{
|
||||
"result": "Found max=25 vs. the expected min=50, max=100.",
|
||||
"testCaseStatus": "Failed",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "25"
|
||||
}
|
||||
],
|
||||
"maxBound": 100,
|
||||
"minBound": 50
|
||||
},
|
||||
{
|
||||
"result": "Found max=56 vs. the expected min=50, max=100.",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "56"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found max=99 vs. the expected min=50, max=100.",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "99"
|
||||
}
|
||||
],
|
||||
"maxBound": 100,
|
||||
"minBound": 50
|
||||
},
|
||||
{
|
||||
"result": "Found max=190 vs. the expected min=50, max=100.",
|
||||
"testCaseStatus": "Failed",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "190"
|
||||
}
|
||||
],
|
||||
"maxBound": 170,
|
||||
"minBound": 50
|
||||
},
|
||||
{
|
||||
"result": "Found max=66 vs. the expected min=50, max=100.",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "66"
|
||||
}
|
||||
],
|
||||
"maxBound": 100,
|
||||
"minBound": 10
|
||||
},
|
||||
{
|
||||
"result": "Found max=76 vs. the expected min=50, max=100.",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "76"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found max=46 vs. the expected min=50, max=100.",
|
||||
"testCaseStatus": "Failed",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "46"
|
||||
}
|
||||
],
|
||||
"maxBound": 100,
|
||||
"minBound": 51
|
||||
},
|
||||
{
|
||||
"result": "Found max=100 vs. the expected min=50, max=100.",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "100"
|
||||
}
|
||||
],
|
||||
"maxBound": 100
|
||||
},
|
||||
{
|
||||
"result": "We expect `max` to be informed on the profiler for ColumnValueMaxToBeBetween max=None.",
|
||||
"testCaseStatus": "Aborted",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "None"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "last_name.column_values_to_match_regex",
|
||||
"results": [
|
||||
{
|
||||
"result": "Found 99 value(s) matching regex pattern vs 99 value(s) in the column.",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "likeCount",
|
||||
"value": "65"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found 0 value(s) matching regex pattern vs 99 value(s) in the column.",
|
||||
"testCaseStatus": "Failed",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "likeCount",
|
||||
"value": "0"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Cannot find the configured column last_name for ColumnValuesToBeNotInSet",
|
||||
"testCaseStatus": "Aborted",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "likeCount",
|
||||
"value": "None"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found 99 value(s) matching regex pattern vs 99 value(s) in the column.",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "likeCount",
|
||||
"value": "99"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found 5 value(s) matching regex pattern vs 99 value(s) in the column.",
|
||||
"testCaseStatus": "Failed",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "likeCount",
|
||||
"value": "5"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found 2 value(s) matching regex pattern vs 99 value(s) in the column.",
|
||||
"testCaseStatus": "Failed",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "likeCount",
|
||||
"value": "2"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found 99 value(s) matching regex pattern vs 99 value(s) in the column.",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "likeCount",
|
||||
"value": "99"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Error computing ColumnValuesToMatchRegex for last_name - database error",
|
||||
"testCaseStatus": "Aborted",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "likeCount",
|
||||
"value": "None"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found 99 value(s) matching regex pattern vs 99 value(s) in the column.",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "likeCount",
|
||||
"value": "99"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found 99 value(s) matching regex pattern vs 99 value(s) in the column.",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "likeCount",
|
||||
"value": "99"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "zip.column_values_to_be_between",
|
||||
"results": [
|
||||
{
|
||||
"result": "We expect `min` & `max` to be informed on the profiler for ColumnValuesToBeBetween but got min=None, max=None.",
|
||||
"testCaseStatus": "Aborted",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "minValue",
|
||||
"value": "None"
|
||||
},
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "None"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found min=35005, max=92808 vs. the expected min=90001, max=96162.",
|
||||
"testCaseStatus": "Failed",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "minValue",
|
||||
"value": "35005"
|
||||
},
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "92808"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found min=90006, max=92808 vs. the expected min=90001, max=96162.",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "minValue",
|
||||
"value": "90006"
|
||||
},
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "92808"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found min=90002, max=95640 vs. the expected min=90001, max=96162.",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "minValue",
|
||||
"value": "90002"
|
||||
},
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "95640"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found min=90004, max=99001 vs. the expected min=90001, max=96162.",
|
||||
"testCaseStatus": "Failed",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "minValue",
|
||||
"value": "90004"
|
||||
},
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "99001"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found min=1001, max=2789 vs. the expected min=90001, max=96162.",
|
||||
"testCaseStatus": "Failed",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "minValue",
|
||||
"value": "1001"
|
||||
},
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "2789"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found min=91009, max=92808 vs. the expected min=90001, max=96162.",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "minValue",
|
||||
"value": "91009"
|
||||
},
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "92808"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found min=90008, max=92808 vs. the expected min=90001, max=96162.",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "minValue",
|
||||
"value": "90008"
|
||||
},
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "92808"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found min=92000, max=92808 vs. the expected min=90001, max=96162.",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "minValue",
|
||||
"value": "92000"
|
||||
},
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "92808"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"result": "Found min=90001, max=96612 vs. the expected min=90001, max=96162.",
|
||||
"testCaseStatus": "Success",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "minValue",
|
||||
"value": "90001"
|
||||
},
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "96612"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "zip.column_values_to_be_between_with_sample_rows",
|
||||
"results": [
|
||||
{
|
||||
"result": "Found min=1001, max=2789 vs. the expected min=90001, max=96162.",
|
||||
"testCaseStatus": "Failed",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "minValue",
|
||||
"value": "1001"
|
||||
},
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "2789"
|
||||
}
|
||||
],
|
||||
"maxBound": 96162,
|
||||
"minBound": 90001
|
||||
}
|
||||
],
|
||||
"failedRowsSample": {
|
||||
"columns": [
|
||||
"address_id",
|
||||
"shop_id",
|
||||
"first_name",
|
||||
"last_name",
|
||||
"address1",
|
||||
"address2",
|
||||
"company",
|
||||
"city",
|
||||
"region",
|
||||
"zip",
|
||||
"country",
|
||||
"phone"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"bc35100e-2da5-48bb-bfc8-667dafe66532",
|
||||
"70424951-bc97-4b20-9ce7-be37c4619361",
|
||||
"Zachary",
|
||||
"Brett",
|
||||
"9054 Maria Circle Apt. 296",
|
||||
"48348 Victoria Valleys Suite 144",
|
||||
"Robinson Inc",
|
||||
"Stephanieport",
|
||||
"048 Moore Turnpike Apt. 061",
|
||||
"1001",
|
||||
"Latvia",
|
||||
"(381)575-6692"
|
||||
],
|
||||
[
|
||||
"facf92d7-05ea-43d2-ba2a-067d63dee60c",
|
||||
"a8d30187-1409-4606-9259-322a4f6caf74",
|
||||
"Amber",
|
||||
"Albert",
|
||||
"3170 Warren Orchard Apt. 834",
|
||||
"3204 Brewer Shoal Suite 324",
|
||||
"Davila-Snyder",
|
||||
"Nicoleland",
|
||||
"023 Paul Course",
|
||||
"1002",
|
||||
"Sweden",
|
||||
"438-959-1151"
|
||||
],
|
||||
[
|
||||
"bab9a506-e23d-4c53-9402-d070e7704376",
|
||||
"e02e1fac-b650-4db8-8c9d-5fa5edf5d863",
|
||||
"Heidi",
|
||||
"Kelly",
|
||||
"30942 Gonzalez Stravenue",
|
||||
"3158 Watts Green",
|
||||
"Moore PLC",
|
||||
"West Erica",
|
||||
"6294 Elliott Ville",
|
||||
"2789",
|
||||
"Saint Martin",
|
||||
"(830)112-9566x8681"
|
||||
]
|
||||
]
|
||||
},
|
||||
"inspectionQuery": "SELECT * FROM ecommerce_db.shopify.dim_address\nWHERE zip NOT BETWEEN 90001 AND 96162\nLIMIT 50;"
|
||||
},
|
||||
{
|
||||
"name": "diff_with_production",
|
||||
"results": [
|
||||
{
|
||||
"result": "Found 3 different rows which is more than the threshold of 0",
|
||||
"testCaseStatus": "Failed",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "changedRows",
|
||||
"value": "1"
|
||||
},
|
||||
{
|
||||
"name": "removedRows",
|
||||
"value": "10"
|
||||
},
|
||||
{
|
||||
"name": "addedRows",
|
||||
"value": "2234"
|
||||
},
|
||||
{
|
||||
"name": "addedColumns",
|
||||
"value": "2"
|
||||
},
|
||||
{
|
||||
"name": "removedColumns",
|
||||
"value": "1"
|
||||
},
|
||||
{
|
||||
"name": "changedColumns",
|
||||
"value": "1"
|
||||
},
|
||||
{
|
||||
"name": "schemaTable1",
|
||||
"value": "serviceType='BigQuery' fullyQualifiedTableName='ecommerce_db.shopify.dim_address' schema={'order_id': Integer(_notes=[], precision=0, python_type=<class 'int'>), 'quantity': Integer(_notes=[], precision=0, python_type=<class 'int'>), 'product_id': Integer(_notes=[], precision=0, python_type=<class 'int'>), 'customer_id': Integer(_notes=[], precision=0, python_type=<class 'int'>), 'status': String_VaryingAlphanum(_notes=[], collation=None), 'order_date': Date(_notes=[], precision=6, rounds=True), 'price': Decimal(_notes=[], precision=2)}"
|
||||
},
|
||||
{
|
||||
"name": "schemaTable2",
|
||||
"value": "serviceType='BigQuery' fullyQualifiedTableName='shopify.production_dim_address' schema={'user_id': Integer(_notes=[], precision=0, python_type=<class 'int'>), 'id': Integer(_notes=[], precision=0, python_type=<class 'int'>), 'cycle_name': String_VaryingAlphanum(_notes=[], collation=None), 'status': String_VaryingAlphanum(_notes=[], collation=None), 'order_date': Date(_notes=[], precision=6, rounds=True)}"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"failedRowsSample": {
|
||||
"validate": false,
|
||||
"columns": [
|
||||
"diffType",
|
||||
"address_id",
|
||||
"shop_id",
|
||||
"first_name",
|
||||
"last_name",
|
||||
"address1",
|
||||
"address2",
|
||||
"company",
|
||||
"city",
|
||||
"region",
|
||||
"zip",
|
||||
"country",
|
||||
"phone"
|
||||
],
|
||||
"rows": [
|
||||
[
|
||||
"+",
|
||||
"bc35100e-2da5-48bb-bfc8-667dafe66532",
|
||||
"70424951-bc97-4b20-9ce7-be37c4619361",
|
||||
"Zachary",
|
||||
"Brett",
|
||||
"9054 Maria Circle Apt. 296",
|
||||
"48348 Victoria Valleys Suite 144",
|
||||
"Robinson Inc",
|
||||
"Stephanieport",
|
||||
"048 Moore Turnpike Apt. 061",
|
||||
"1001",
|
||||
"Latvia",
|
||||
"(381)575-6692"
|
||||
],
|
||||
[
|
||||
"+",
|
||||
"facf92d7-05ea-43d2-ba2a-067d63dee60c",
|
||||
"e02e1fac-b650-4db8-8c9d-5fa5edf5d863",
|
||||
"Amber",
|
||||
"Albert",
|
||||
"3170 Warren Orchard Apt. 834",
|
||||
"3204 Brewer Shoal Suite 324",
|
||||
"Davila-Snyder",
|
||||
"Nicoleland",
|
||||
"023 Paul Course",
|
||||
"1002",
|
||||
"Sweden",
|
||||
"438-959-1151"
|
||||
],
|
||||
[
|
||||
"-",
|
||||
"bab9a506-e23d-4c53-9402-d070e7704376",
|
||||
"e02e1fac-b650-4db8-8c9d-5fa5edf5d863",
|
||||
"Heidi",
|
||||
"Kelly",
|
||||
"30942 Gonzalez Stravenue",
|
||||
"3158 Watts Green",
|
||||
"Moore PLC",
|
||||
"West Erica",
|
||||
"6294 Elliott Ville",
|
||||
"2789",
|
||||
"Saint Martin",
|
||||
"(830)112-9566x8681"
|
||||
]
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "diff_columns",
|
||||
"results": [
|
||||
{
|
||||
"result": "Tables have 4 different columns:\n Removed columns: removed_id\n Added columns: added_column,my_other_value\n Changed columns:\n first_name: VARCHAR -> INT",
|
||||
"testCaseStatus": "Failed",
|
||||
"testResultValues": [
|
||||
{
|
||||
"name": "addedColumns",
|
||||
"value": "2"
|
||||
},
|
||||
{
|
||||
"name": "removedColumns",
|
||||
"value": "1"
|
||||
},
|
||||
{
|
||||
"name": "changedColumns",
|
||||
"value": "1"
|
||||
},
|
||||
{
|
||||
"name": "schemaTable1",
|
||||
"value": "serviceType='BigQuery' fullyQualifiedTableName='ecommerce_db.shopify.dim_address' schema={'order_id': Integer(_notes=[], precision=0, python_type=<class 'int'>), 'quantity': Integer(_notes=[], precision=0, python_type=<class 'int'>), 'product_id': Integer(_notes=[], precision=0, python_type=<class 'int'>), 'customer_id': Integer(_notes=[], precision=0, python_type=<class 'int'>), 'status': String_VaryingAlphanum(_notes=[], collation=None), 'order_date': Date(_notes=[], precision=6, rounds=True), 'price': Decimal(_notes=[], precision=2)}"
|
||||
},
|
||||
{
|
||||
"name": "schemaTable2",
|
||||
"value": "serviceType='BigQuery' fullyQualifiedTableName='shopify.production_dim_address' schema={'user_id': Integer(_notes=[], precision=0, python_type=<class 'int'>), 'id': Integer(_notes=[], precision=0, python_type=<class 'int'>), 'cycle_name': String_VaryingAlphanum(_notes=[], collation=None), 'status': String_VaryingAlphanum(_notes=[], collation=None), 'order_date': Date(_notes=[], precision=6, rounds=True)}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "not_null_customers_customer_id",
|
||||
"tableFqn": "postgres_sample.jaffle_shop.public.customers",
|
||||
"results": [
|
||||
{ "result": "0 null values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] },
|
||||
{ "result": "0 null values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] },
|
||||
{ "result": "0 null values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] },
|
||||
{ "result": "0 null values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] },
|
||||
{ "result": "0 null values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "unique_customers_customer_id",
|
||||
"tableFqn": "postgres_sample.jaffle_shop.public.customers",
|
||||
"results": [
|
||||
{ "result": "0 duplicate values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "duplicateCount", "value": "0" }] },
|
||||
{ "result": "0 duplicate values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "duplicateCount", "value": "0" }] },
|
||||
{ "result": "0 duplicate values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "duplicateCount", "value": "0" }] },
|
||||
{ "result": "0 duplicate values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "duplicateCount", "value": "0" }] },
|
||||
{ "result": "0 duplicate values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "duplicateCount", "value": "0" }] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "accepted_values_customers_status",
|
||||
"tableFqn": "postgres_sample.jaffle_shop.public.customers",
|
||||
"results": [
|
||||
{ "result": "Found 100 rows, expected between 1 and 10000", "testCaseStatus": "Success", "testResultValues": [{ "name": "rowCount", "value": "100" }] },
|
||||
{ "result": "Found 100 rows, expected between 1 and 10000", "testCaseStatus": "Success", "testResultValues": [{ "name": "rowCount", "value": "100" }] },
|
||||
{ "result": "Found 0 rows, expected between 1 and 10000", "testCaseStatus": "Failed", "testResultValues": [{ "name": "rowCount", "value": "0" }] },
|
||||
{ "result": "Found 100 rows, expected between 1 and 10000", "testCaseStatus": "Success", "testResultValues": [{ "name": "rowCount", "value": "100" }] },
|
||||
{ "result": "Found 0 rows, expected between 1 and 10000", "testCaseStatus": "Failed", "testResultValues": [{ "name": "rowCount", "value": "0" }] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "not_null_orders_order_id",
|
||||
"tableFqn": "postgres_sample.jaffle_shop.public.orders",
|
||||
"results": [
|
||||
{ "result": "0 null values found in column order_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] },
|
||||
{ "result": "0 null values found in column order_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] },
|
||||
{ "result": "0 null values found in column order_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] },
|
||||
{ "result": "0 null values found in column order_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] },
|
||||
{ "result": "0 null values found in column order_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "unique_orders_order_id",
|
||||
"tableFqn": "postgres_sample.jaffle_shop.public.orders",
|
||||
"results": [
|
||||
{ "result": "0 duplicate values found in column order_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "duplicateCount", "value": "0" }] },
|
||||
{ "result": "0 duplicate values found in column order_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "duplicateCount", "value": "0" }] },
|
||||
{ "result": "0 duplicate values found in column order_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "duplicateCount", "value": "0" }] },
|
||||
{ "result": "0 duplicate values found in column order_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "duplicateCount", "value": "0" }] },
|
||||
{ "result": "0 duplicate values found in column order_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "duplicateCount", "value": "0" }] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "accepted_values_orders_status",
|
||||
"tableFqn": "postgres_sample.jaffle_shop.public.orders",
|
||||
"results": [
|
||||
{ "result": "Found 5 values not in set: [placed, shipped, completed, return_pending, returned]", "testCaseStatus": "Failed", "testResultValues": [{ "name": "forbiddenCount", "value": "5" }] },
|
||||
{ "result": "Found 3 values not in set: [placed, shipped, completed, return_pending, returned]", "testCaseStatus": "Failed", "testResultValues": [{ "name": "forbiddenCount", "value": "3" }] },
|
||||
{ "result": "0 forbidden values found in column status", "testCaseStatus": "Success", "testResultValues": [{ "name": "forbiddenCount", "value": "0" }] },
|
||||
{ "result": "Found 2 values not in set: [placed, shipped, completed, return_pending, returned]", "testCaseStatus": "Failed", "testResultValues": [{ "name": "forbiddenCount", "value": "2" }] },
|
||||
{ "result": "0 forbidden values found in column status", "testCaseStatus": "Success", "testResultValues": [{ "name": "forbiddenCount", "value": "0" }] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "relationships_orders_customer_id",
|
||||
"tableFqn": "postgres_sample.jaffle_shop.public.orders",
|
||||
"results": [
|
||||
{ "result": "0 null values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] },
|
||||
{ "result": "Found 2 null values in column customer_id", "testCaseStatus": "Failed", "testResultValues": [{ "name": "nullCount", "value": "2" }] },
|
||||
{ "result": "0 null values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] },
|
||||
{ "result": "Found 1 null value in column customer_id", "testCaseStatus": "Failed", "testResultValues": [{ "name": "nullCount", "value": "1" }] },
|
||||
{ "result": "0 null values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "not_null_stg_customers_customer_id",
|
||||
"tableFqn": "postgres_sample.jaffle_shop.public.stg_customers",
|
||||
"results": [
|
||||
{ "result": "0 null values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] },
|
||||
{ "result": "0 null values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] },
|
||||
{ "result": "0 null values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] },
|
||||
{ "result": "0 null values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] },
|
||||
{ "result": "0 null values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "nullCount", "value": "0" }] }
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "unique_stg_customers_customer_id",
|
||||
"tableFqn": "postgres_sample.jaffle_shop.public.stg_customers",
|
||||
"results": [
|
||||
{ "result": "0 duplicate values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "duplicateCount", "value": "0" }] },
|
||||
{ "result": "0 duplicate values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "duplicateCount", "value": "0" }] },
|
||||
{ "result": "0 duplicate values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "duplicateCount", "value": "0" }] },
|
||||
{ "result": "0 duplicate values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "duplicateCount", "value": "0" }] },
|
||||
{ "result": "0 duplicate values found in column customer_id", "testCaseStatus": "Success", "testResultValues": [{ "name": "duplicateCount", "value": "0" }] }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,574 @@
|
||||
{
|
||||
"tests": [
|
||||
{
|
||||
"testSuiteName": "sample_data.ecommerce_db.shopify.dim_address.testSuite",
|
||||
"executableEntityReference": "sample_data.ecommerce_db.shopify.dim_address",
|
||||
"testSuiteDescription": "This is an executable test suite linked to an entity",
|
||||
"scheduleInterval": "0 0 * * MON",
|
||||
"testCases": [
|
||||
{
|
||||
"name": "table_column_count_equals",
|
||||
"description": "test the number of column in table",
|
||||
"entityLink": "<#E::table::sample_data.ecommerce_db.shopify.dim_address>",
|
||||
"testDefinitionName": "tableColumnCountToEqual",
|
||||
"parameterValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "10"
|
||||
}
|
||||
],
|
||||
"resolutions": {
|
||||
"sequenceOne": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "Ack",
|
||||
"severity": "Severity1"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity1",
|
||||
"assignee": "aaron_johnson0"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Resolved",
|
||||
"severity": "Severity1",
|
||||
"resolver": "aaron_johnson0"
|
||||
}
|
||||
],
|
||||
"sequenceTwo": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "New",
|
||||
"severity": "Severity1"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Ack",
|
||||
"severity": "Severity1"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity1",
|
||||
"assignee": "christopher_campbell7"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Resolved",
|
||||
"severity": "Severity1",
|
||||
"resolver": "christopher_campbell7"
|
||||
}
|
||||
],
|
||||
"sequenceThree": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "New",
|
||||
"severity": "Severity3"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Ack",
|
||||
"severity": "Severity3"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity3",
|
||||
"assignee": "christopher_campbell7"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity3",
|
||||
"assignee": "aaron_johnson0"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Resolved",
|
||||
"severity": "Severity3",
|
||||
"resolver": "aaron_johnson0"
|
||||
}
|
||||
],
|
||||
"sequenceFour": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "New",
|
||||
"severity": "Severity5"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "table_column_count_equals",
|
||||
"description": "test the number of column in table",
|
||||
"entityLink": "<#E::table::sample_data.ecommerce_db.shopify.dim___reserved__colon____reserved__arrow__address>",
|
||||
"testDefinitionName": "tableColumnCountToEqual",
|
||||
"parameterValues": [
|
||||
{
|
||||
"name": "columnCount",
|
||||
"value": "10"
|
||||
}
|
||||
],
|
||||
"resolutions": {
|
||||
"sequenceOne": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "Ack",
|
||||
"severity": "Severity1"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity1",
|
||||
"assignee": "aaron_johnson0"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Resolved",
|
||||
"severity": "Severity1",
|
||||
"resolver": "aaron_johnson0"
|
||||
}
|
||||
],
|
||||
"sequenceTwo": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "New",
|
||||
"severity": "Severity1"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Ack",
|
||||
"severity": "Severity1"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity1",
|
||||
"assignee": "christopher_campbell7"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Resolved",
|
||||
"severity": "Severity1",
|
||||
"resolver": "christopher_campbell7"
|
||||
}
|
||||
],
|
||||
"sequenceThree": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "New",
|
||||
"severity": "Severity3"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Ack",
|
||||
"severity": "Severity3"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity3",
|
||||
"assignee": "christopher_campbell7"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity3",
|
||||
"assignee": "aaron_johnson0"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Resolved",
|
||||
"severity": "Severity3",
|
||||
"resolver": "aaron_johnson0"
|
||||
}
|
||||
],
|
||||
"sequenceFour": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "New",
|
||||
"severity": "Severity5"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "table_column_count_between",
|
||||
"description": "test the number of column in table is between x and y",
|
||||
"entityLink": "<#E::table::sample_data.ecommerce_db.shopify.dim_address>",
|
||||
"testDefinitionName": "tableColumnCountToBeBetween",
|
||||
"parameterValues": [
|
||||
{
|
||||
"name": "minColValue",
|
||||
"value": "1"
|
||||
},
|
||||
{
|
||||
"name": "maxColValue",
|
||||
"value": "10"
|
||||
}
|
||||
],
|
||||
"resolutions": {
|
||||
"sequenceOne": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity1",
|
||||
"assignee": "aaron_johnson0"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Resolved",
|
||||
"severity": "Severity1",
|
||||
"resolver": "christine_day7"
|
||||
}
|
||||
],
|
||||
"sequenceTwo": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "New",
|
||||
"severity": "Severity1"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Ack",
|
||||
"severity": "Severity1"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity1",
|
||||
"assignee": "christopher_campbell7"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Resolved",
|
||||
"severity": "Severity1",
|
||||
"resolver": "christopher_campbell7"
|
||||
}
|
||||
],
|
||||
"sequenceThree": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "New",
|
||||
"severity": "Severity3"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Ack",
|
||||
"severity": "Severity3"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity3",
|
||||
"assignee": "christopher_campbell7"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity3",
|
||||
"assignee": "aaron_johnson0"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "column_value_max_to_be_between",
|
||||
"description": "test the value of a column is between x and y",
|
||||
"entityLink": "<#E::table::sample_data.ecommerce_db.shopify.dim_address::columns::shop_id>",
|
||||
"testDefinitionName": "columnValueMaxToBeBetween",
|
||||
"parameterValues": [
|
||||
{
|
||||
"name": "minValueForMaxInCol",
|
||||
"value": "50"
|
||||
},
|
||||
{
|
||||
"name": "maxValueForMaxInCol",
|
||||
"value": "100"
|
||||
}
|
||||
],
|
||||
"resolutions": {
|
||||
"sequenceOne": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "Ack",
|
||||
"severity": "Severity1"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity1",
|
||||
"assignee": "aaron_johnson0"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Resolved",
|
||||
"severity": "Severity1",
|
||||
"resolver": "aaron_johnson0"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "column_values_to_match_regex",
|
||||
"description": "test value of a column match regex",
|
||||
"entityLink": "<#E::table::sample_data.ecommerce_db.shopify.dim_address::columns::last_name>",
|
||||
"testDefinitionName": "columnValuesToMatchRegex",
|
||||
"parameterValues": [
|
||||
{
|
||||
"name": "regex",
|
||||
"value": "Doe.*"
|
||||
}
|
||||
],
|
||||
"resolutions": {
|
||||
"sequenceOne": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "New",
|
||||
"severity": "Severity5"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Ack",
|
||||
"severity": "Severity5"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity5",
|
||||
"assignee": "aaron_johnson0"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Resolved",
|
||||
"severity": "Severity5",
|
||||
"resolver": "aaron_johnson0"
|
||||
}
|
||||
],
|
||||
"sequenceFour": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "New",
|
||||
"severity": "Severity5"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "column_values_to_be_between",
|
||||
"description": "test the number of column in table is between x and y",
|
||||
"entityLink": "<#E::table::sample_data.ecommerce_db.shopify.dim_address::columns::zip>",
|
||||
"testDefinitionName": "columnValuesToBeBetween",
|
||||
"parameterValues": [],
|
||||
"useDynamicAssertion": true,
|
||||
"resolutions": {
|
||||
"sequenceOne": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "Ack",
|
||||
"severity": "Severity1"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity1",
|
||||
"assignee": "aaron_johnson0"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Resolved",
|
||||
"severity": "Severity1",
|
||||
"resolver": "aaron_johnson0"
|
||||
}
|
||||
],
|
||||
"sequenceTwo": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "New",
|
||||
"severity": "Severity1"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Ack",
|
||||
"severity": "Severity1"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity1",
|
||||
"assignee": "christopher_campbell7"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Resolved",
|
||||
"severity": "Severity1",
|
||||
"resolver": "christopher_campbell7"
|
||||
}
|
||||
],
|
||||
"sequenceThree": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "New",
|
||||
"severity": "Severity3"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Ack",
|
||||
"severity": "Severity3"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity3",
|
||||
"assignee": "christopher_campbell7"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Assigned",
|
||||
"severity": "Severity3",
|
||||
"assignee": "aaron_johnson0"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Resolved",
|
||||
"severity": "Severity3",
|
||||
"resolver": "aaron_johnson0"
|
||||
}
|
||||
],
|
||||
"sequenceFour": [
|
||||
{
|
||||
"testCaseResolutionStatusType": "New",
|
||||
"severity": "Severity5"
|
||||
},
|
||||
{
|
||||
"testCaseResolutionStatusType": "Ack",
|
||||
"severity": "Severity5"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "column_values_to_be_between_with_sample_rows",
|
||||
"description": "example of failing test with sample rows",
|
||||
"entityLink": "<#E::table::sample_data.ecommerce_db.shopify.dim_address::columns::zip>",
|
||||
"testDefinitionName": "columnValuesToBeBetween",
|
||||
"parameterValues": [
|
||||
{
|
||||
"name": "minValue",
|
||||
"value": "90001"
|
||||
},
|
||||
{
|
||||
"name": "maxValue",
|
||||
"value": "96162"
|
||||
}
|
||||
],
|
||||
"resolutions": {}
|
||||
},
|
||||
{
|
||||
"name": "diff_with_production",
|
||||
"description": "compare with production data",
|
||||
"entityLink": "<#E::table::sample_data.ecommerce_db.shopify.dim_address>",
|
||||
"testDefinitionName": "tableDiff",
|
||||
"parameterValues": [
|
||||
{
|
||||
"name": "table2",
|
||||
"value": "sample_data.ecommerce_db.shopify.production_dim_address"
|
||||
},
|
||||
{
|
||||
"name": "keyColumns",
|
||||
"value": "[\"address_id\"]"
|
||||
}
|
||||
],
|
||||
"resolutions": {}
|
||||
},
|
||||
{
|
||||
"name": "diff_columns",
|
||||
"description": "compare with a table with different columns",
|
||||
"entityLink": "<#E::table::sample_data.ecommerce_db.shopify.dim_address>",
|
||||
"testDefinitionName": "tableDiff",
|
||||
"parameterValues": [
|
||||
{
|
||||
"name": "table2",
|
||||
"value": "sample_data.ecommerce_db.shopify.production_dim_address"
|
||||
}
|
||||
],
|
||||
"resolutions": {}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"testSuiteName": "postgres_sample.jaffle_shop.public.customers.testSuite",
|
||||
"executableEntityReference": "postgres_sample.jaffle_shop.public.customers",
|
||||
"testSuiteDescription": "dbt data quality tests for the customers final model in the jaffle_shop project",
|
||||
"scheduleInterval": "0 6 * * *",
|
||||
"testCases": [
|
||||
{
|
||||
"name": "not_null_customers_customer_id",
|
||||
"description": "customer_id must not be null",
|
||||
"entityLink": "<#E::table::postgres_sample.jaffle_shop.public.customers::columns::customer_id>",
|
||||
"testDefinitionName": "columnValuesToBeNotNull",
|
||||
"parameterValues": [],
|
||||
"resolutions": {}
|
||||
},
|
||||
{
|
||||
"name": "unique_customers_customer_id",
|
||||
"description": "customer_id must be unique across all customers",
|
||||
"entityLink": "<#E::table::postgres_sample.jaffle_shop.public.customers::columns::customer_id>",
|
||||
"testDefinitionName": "columnValuesToBeUnique",
|
||||
"parameterValues": [],
|
||||
"resolutions": {}
|
||||
},
|
||||
{
|
||||
"name": "accepted_values_customers_status",
|
||||
"description": "Orders referenced by customers must have valid statuses",
|
||||
"entityLink": "<#E::table::postgres_sample.jaffle_shop.public.customers>",
|
||||
"testDefinitionName": "tableRowCountToBeBetween",
|
||||
"parameterValues": [
|
||||
{ "name": "minValue", "value": "1" },
|
||||
{ "name": "maxValue", "value": "10000" }
|
||||
],
|
||||
"resolutions": {
|
||||
"sequenceOne": [
|
||||
{ "testCaseResolutionStatusType": "Ack", "severity": "Severity2" },
|
||||
{ "testCaseResolutionStatusType": "Assigned", "severity": "Severity2", "assignee": "aaron_johnson0" },
|
||||
{ "testCaseResolutionStatusType": "Resolved", "severity": "Severity2", "resolver": "aaron_johnson0" }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"testSuiteName": "postgres_sample.jaffle_shop.public.orders.testSuite",
|
||||
"executableEntityReference": "postgres_sample.jaffle_shop.public.orders",
|
||||
"testSuiteDescription": "dbt data quality tests for the orders final model in the jaffle_shop project",
|
||||
"scheduleInterval": "0 6 * * *",
|
||||
"testCases": [
|
||||
{
|
||||
"name": "not_null_orders_order_id",
|
||||
"description": "order_id must not be null",
|
||||
"entityLink": "<#E::table::postgres_sample.jaffle_shop.public.orders::columns::order_id>",
|
||||
"testDefinitionName": "columnValuesToBeNotNull",
|
||||
"parameterValues": [],
|
||||
"resolutions": {}
|
||||
},
|
||||
{
|
||||
"name": "unique_orders_order_id",
|
||||
"description": "order_id must be unique across all orders",
|
||||
"entityLink": "<#E::table::postgres_sample.jaffle_shop.public.orders::columns::order_id>",
|
||||
"testDefinitionName": "columnValuesToBeUnique",
|
||||
"parameterValues": [],
|
||||
"resolutions": {}
|
||||
},
|
||||
{
|
||||
"name": "accepted_values_orders_status",
|
||||
"description": "Order status must be one of: placed, shipped, completed, return_pending, returned",
|
||||
"entityLink": "<#E::table::postgres_sample.jaffle_shop.public.orders::columns::status>",
|
||||
"testDefinitionName": "columnValuesToBeInSet",
|
||||
"parameterValues": [
|
||||
{
|
||||
"name": "allowedValues",
|
||||
"value": "[\"placed\", \"shipped\", \"completed\", \"return_pending\", \"returned\"]"
|
||||
}
|
||||
],
|
||||
"resolutions": {
|
||||
"sequenceOne": [
|
||||
{ "testCaseResolutionStatusType": "Ack", "severity": "Severity1" },
|
||||
{ "testCaseResolutionStatusType": "Assigned", "severity": "Severity1", "assignee": "aaron_johnson0" },
|
||||
{ "testCaseResolutionStatusType": "Resolved", "severity": "Severity1", "resolver": "aaron_johnson0" }
|
||||
],
|
||||
"sequenceTwo": [
|
||||
{ "testCaseResolutionStatusType": "New", "severity": "Severity1" },
|
||||
{ "testCaseResolutionStatusType": "Ack", "severity": "Severity1" },
|
||||
{ "testCaseResolutionStatusType": "Assigned", "severity": "Severity1", "assignee": "christopher_campbell7" },
|
||||
{ "testCaseResolutionStatusType": "Resolved", "severity": "Severity1", "resolver": "christopher_campbell7" }
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "relationships_orders_customer_id",
|
||||
"description": "Every order must reference a valid customer",
|
||||
"entityLink": "<#E::table::postgres_sample.jaffle_shop.public.orders::columns::customer_id>",
|
||||
"testDefinitionName": "columnValuesToBeNotNull",
|
||||
"parameterValues": [],
|
||||
"resolutions": {
|
||||
"sequenceOne": [
|
||||
{ "testCaseResolutionStatusType": "Ack", "severity": "Severity2" },
|
||||
{ "testCaseResolutionStatusType": "Assigned", "severity": "Severity2", "assignee": "christopher_campbell7" },
|
||||
{ "testCaseResolutionStatusType": "Resolved", "severity": "Severity2", "resolver": "christopher_campbell7" }
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"testSuiteName": "postgres_sample.jaffle_shop.public.stg_customers.testSuite",
|
||||
"executableEntityReference": "postgres_sample.jaffle_shop.public.stg_customers",
|
||||
"testSuiteDescription": "dbt data quality tests for the stg_customers staging model in the jaffle_shop project",
|
||||
"scheduleInterval": "0 5 * * *",
|
||||
"testCases": [
|
||||
{
|
||||
"name": "not_null_stg_customers_customer_id",
|
||||
"description": "customer_id must not be null in the staging layer",
|
||||
"entityLink": "<#E::table::postgres_sample.jaffle_shop.public.stg_customers::columns::customer_id>",
|
||||
"testDefinitionName": "columnValuesToBeNotNull",
|
||||
"parameterValues": [],
|
||||
"resolutions": {}
|
||||
},
|
||||
{
|
||||
"name": "unique_stg_customers_customer_id",
|
||||
"description": "customer_id must be unique in the staging layer",
|
||||
"entityLink": "<#E::table::postgres_sample.jaffle_shop.public.stg_customers::columns::customer_id>",
|
||||
"testDefinitionName": "columnValuesToBeUnique",
|
||||
"parameterValues": [],
|
||||
"resolutions": {}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"type": "kafka",
|
||||
"serviceName": "sample_kafka",
|
||||
"serviceConnection": {
|
||||
"config": {
|
||||
"type": "Kafka",
|
||||
"bootstrapServers": "localhost:9092"
|
||||
}
|
||||
},
|
||||
"sourceConfig": {
|
||||
"config": {}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,134 @@
|
||||
{
|
||||
"topics": [
|
||||
{
|
||||
"name": "customer_events",
|
||||
"description": "Kafka topic to capture the customer events such as location updates or profile updates",
|
||||
"partitions": 56,
|
||||
"retentionSize": 455858109,
|
||||
"replicationFactor":2,
|
||||
"maximumMessageSize":167,
|
||||
"cleanupPolicies": ["delete"],
|
||||
"schemaType": "Avro",
|
||||
"schemaText": "{\"namespace\":\"openmetadata.kafka\",\"name\":\"Customer\",\"type\":\"record\",\"fields\":[{\"name\":\"id\",\"type\":\"string\"},{\"name\":\"first_name\",\"type\":\"string\"},{\"name\":\"last_name\",\"type\":\"string\"},{\"name\":\"email\",\"type\":\"string\"},{\"name\":\"address_line_1\",\"type\":\"string\"},{\"name\":\"address_line_2\",\"type\":\"string\"},{\"name\":\"post_code\",\"type\":\"string\"},{\"name\":\"country\",\"type\":\"string\"}]}",
|
||||
"sampleData": [
|
||||
"{\"id\": 1, \"first_name\": \"Lévy\", \"country\": \"ES\"}",
|
||||
"{\"id\": 2, \"first_name\": \"Lima\", \"country\": \"ES\"}"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "product_events",
|
||||
"description": "Kafka topic to capture the product events. This topic will get updates on products decription, price etc.",
|
||||
"partitions": 128,
|
||||
"retentionSize": 1068320655,
|
||||
"replicationFactor":4,
|
||||
"maximumMessageSize":208,
|
||||
"cleanupPolicies": ["delete"],
|
||||
"schemaType": "Avro",
|
||||
"schemaText": "{\"namespace\":\"openmetadata.kafka\",\"type\":\"record\",\"name\":\"Product\",\"fields\":[{\"name\":\"product_id\",\"type\":\"int\"},{\"name\":\"title\",\"type\":\"string\"},{\"name\":\"price\",\"type\":\"double\"},{\"name\":\"sku\",\"type\":\"string\"},{\"name\":\"barcode\",\"type\":\"string\"},{\"name\":\"shop_id\",\"type\":\"int\"}]}"
|
||||
},
|
||||
{
|
||||
"name": "shop_updates",
|
||||
"description": "Kafka topic to get any shop updates such as new products, location",
|
||||
"partitions": 16,
|
||||
"retentionSize": 213590548,
|
||||
"replicationFactor":3,
|
||||
"maximumMessageSize":226,
|
||||
"cleanupPolicies": ["delete"],
|
||||
"schemaType": "Avro",
|
||||
"schemaText": "{\"namespace\":\"openmetadata.kafka\",\"type\":\"record\",\"name\":\"Shop\",\"fields\":[{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"domain\",\"type\":\"string\"},{\"name\":\"user_id\",\"type\":\"int\"},{\"name\":\"first_name\",\"type\":\"string\"},{\"name\":\"last_name\",\"type\":\"string\"},{\"name\":\"email\",\"type\":\"string\"}]}"
|
||||
},
|
||||
{
|
||||
"name": "shop_products",
|
||||
"description": "Kafka topic to get products in a shop. This is constantly updating",
|
||||
"partitions": 128,
|
||||
"retentionSize": 1475079463,
|
||||
"replicationFactor":2,
|
||||
"maximumMessageSize":244,
|
||||
"cleanupPolicies": ["compact","delete"],
|
||||
"schemaType": "Avro",
|
||||
"schemaText": "{\"namespace\":\"openmetadata.kafka\",\"type\":\"record\",\"name\":\"Shop\",\"fields\":[{\"name\":\"prodcut_id\",\"type\":\"int\"},{\"name\":\"product_variant_id\",\"type\":\"int\"},{\"name\":\"shop_id\",\"type\":\"int\"},{\"name\":\"name\",\"type\":\"string\"},{\"name\":\"product_title\",\"type\":\"string\"},{\"name\":\"price\",\"type\":\"double\"},{\"name\":\"quantity\",\"type\":\"int\"},{\"name\":\"product_vendor\",\"type\":\"int\"},{\"name\":\"fulfillable_quantity\",\"type\":\"int\"},{\"name\":\"fulfilment_service\",\"type\":\"string\"}]}"
|
||||
},
|
||||
{
|
||||
"name": "orders",
|
||||
"description": "All the order events on our online store",
|
||||
"partitions": 128,
|
||||
"retentionSize": 291959935,
|
||||
"replicationFactor":3,
|
||||
"maximumMessageSize":61,
|
||||
"cleanupPolicies": ["compact"],
|
||||
"schemaType": "Avro",
|
||||
"schemaText": "{\"namespace\":\"openmetadata.kafka\",\"type\":\"record\",\"name\":\"Order\",\"fields\":[{\"name\":\"order_id\",\"type\":\"int\"},{\"name\":\"api_client_id\",\"type\":\"int\"},{\"name\":\"billing_address_id\",\"type\":\"int\"},{\"name\":\"customer_id\",\"type\":\"int\"},{\"name\":\"location_id\",\"type\":\"int\"},{\"name\":\"shipping_address_id\",\"type\":\"int\"},{\"name\":\"user_id\",\"type\":\"int\"},{\"name\":\"total_price\",\"type\":\"double\"},{\"name\":\"discount_code\",\"type\":\"string\"},{\"name\":\"processed_at\",\"type\":\"int\"}]}"
|
||||
},
|
||||
{
|
||||
"name": "sales",
|
||||
"description": "All sales related events gets captured in this topic",
|
||||
"partitions": 128,
|
||||
"retentionSize": 1931232624,
|
||||
"replicationFactor":4,
|
||||
"maximumMessageSize":249,
|
||||
"cleanupPolicies": ["compact","delete"],
|
||||
"schemaType": "Avro",
|
||||
"schemaText": "{\"namespace\":\"openmetadata.kafka\",\"type\":\"record\",\"name\":\"Order\",\"fields\":[{\"name\":\"sale_id\",\"type\":\"int\"},{\"name\":\"billing_address_id\",\"type\":\"int\"},{\"name\":\"billing_address_id_2\",\"type\":\"int\"},{\"name\":\"api_client_id\",\"type\":\"int\"},{\"name\":\"customer_id\",\"type\":\"int\"},{\"name\":\"product_id\",\"type\":\"int\"},{\"name\":\"location_id\",\"type\":\"int\"},{\"name\":\"order_id\",\"type\":\"double\"}]}"
|
||||
},
|
||||
{
|
||||
"name": "avro_record",
|
||||
"description": "All Avro record related events gets captured in this topic",
|
||||
"partitions": 128,
|
||||
"retentionSize": 1931232624,
|
||||
"replicationFactor":4,
|
||||
"maximumMessageSize":249,
|
||||
"cleanupPolicies": ["compact","delete"],
|
||||
"schemaType": "Avro",
|
||||
"schemaText": "{\n \"namespace\": \"openmetadata.kafka\",\n \"name\": \"level\",\n \"type\": \"record\",\n \"doc\": \"This is a first level record\",\n \"fields\": [\n {\n \"name\": \"uid\",\n \"type\": \"int\",\n \"doc\": \"The field represents unique id\"\n },\n {\n \"name\": \"somefield\",\n \"type\": \"string\"\n },\n {\n \"name\": \"options\",\n \"doc\": \"The field represents options array\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"record\",\n \"name\": \"lvl2_record\",\n \"doc\": \"The field represents a level 2 record\",\n \"fields\": [\n {\n \"name\": \"item1_lvl2\",\n \"type\": \"string\"\n },\n {\n \"name\": \"item2_lvl2\",\n \"type\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"record\",\n \"name\": \"lvl3_record\",\n \"fields\": [\n {\n \"name\": \"item1_lvl3\",\n \"type\": \"string\",\n \"doc\": \"The field represents level3 item\"\n },\n {\n \"name\": \"item2_lvl3\",\n \"type\": \"string\"\n }\n ]\n }\n }\n }\n ]\n }\n }\n }\n ]\n}"
|
||||
},
|
||||
{
|
||||
"name": "json_schema_record",
|
||||
"description": "All Json Schema record related events gets captured in this topic",
|
||||
"partitions": 128,
|
||||
"retentionSize": 1931232624,
|
||||
"replicationFactor":4,
|
||||
"maximumMessageSize":249,
|
||||
"cleanupPolicies": ["compact","delete"],
|
||||
"schemaType": "JSON",
|
||||
"schemaText": "{\"type\":\"object\",\"required\":[\"name\",\"age\",\"club_name\"],\"properties\":{\"name\":{\"type\":\"object\",\"required\":[\"first_name\",\"last_name\"],\"properties\":{\"first_name\":{\"type\":\"string\"},\"last_name\":{\"type\":\"string\"}}},\"age\":{\"type\":\"integer\"},\"club_name\":{\"type\":\"string\"}}}"
|
||||
},
|
||||
{
|
||||
"name": "address_book",
|
||||
"description": "All Protobuf record related events gets captured in this topic",
|
||||
"partitions": 128,
|
||||
"retentionSize": 1931232624,
|
||||
"replicationFactor":4,
|
||||
"maximumMessageSize":249,
|
||||
"cleanupPolicies": ["compact","delete"],
|
||||
"schemaType": "Protobuf",
|
||||
"schemaText": "syntax = \"proto2\";\n\npackage tutorial;\n\nmessage Person {\n optional string name = 1;\n optional int32 id = 2;\n optional string email = 3;\n\n enum PhoneType {\n MOBILE = 0;\n HOME = 1;\n WORK = 2;\n }\n\n message PhoneNumber {\n optional string number = 1;\n optional PhoneType type = 2 [default = HOME];\n }\n\n repeated PhoneNumber phones = 4;\n}\n\nmessage AddressBook {\n repeated Person people = 1;\n}"
|
||||
},
|
||||
{
|
||||
"name": "customer_contacts",
|
||||
"description": "Kafka topic to capture the customer contacts such as email, phone",
|
||||
"partitions": 56,
|
||||
"retentionSize": 455858109,
|
||||
"replicationFactor":2,
|
||||
"maximumMessageSize":167,
|
||||
"cleanupPolicies": ["delete"]
|
||||
},
|
||||
{
|
||||
"name": "provider_address_texas_events",
|
||||
"description": "Search relevancy fixture topic for provider address Texas events.",
|
||||
"partitions": 24,
|
||||
"retentionSize": 455858109,
|
||||
"replicationFactor":2,
|
||||
"maximumMessageSize":167,
|
||||
"cleanupPolicies": ["delete"]
|
||||
},
|
||||
{
|
||||
"name": "customer_profiles_events",
|
||||
"description": "Search relevancy fixture topic for customer profiles events.",
|
||||
"partitions": 24,
|
||||
"retentionSize": 455858109,
|
||||
"replicationFactor":2,
|
||||
"maximumMessageSize":167,
|
||||
"cleanupPolicies": ["delete"]
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
query_text,database_name,schema_name
|
||||
"SELECT * FROM sales.order_items oi INNER JOIN sales.orders o ON oi.order_id=o.order_id",postgres,sales
|
||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user