openmetadata-ingestion 1.3.4.0__py3-none-any.whl → 1.4.0.0rc2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of openmetadata-ingestion might be problematic. Click here for more details.
- metadata/__version__.py +13 -0
- metadata/automations/runner.py +9 -0
- metadata/cli/app.py +0 -1
- metadata/cli/lineage.py +5 -1
- metadata/cli/restore.py +7 -0
- metadata/cmd.py +2 -345
- metadata/data_insight/processor/reports/cost_analysis_report_data_processor.py +0 -1
- metadata/data_quality/api/models.py +1 -0
- metadata/data_quality/processor/test_case_runner.py +9 -2
- metadata/data_quality/source/test_suite.py +14 -3
- metadata/data_quality/validations/base_test_handler.py +1 -1
- metadata/data_quality/validations/column/base/columnValuesMissingCount.py +4 -1
- metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeUnique.py +28 -17
- metadata/data_quality/validations/mixins/sqa_validator_mixin.py +4 -1
- metadata/data_quality/validations/table/base/tableCustomSQLQuery.py +1 -1
- metadata/examples/workflows/airbyte.yaml +1 -0
- metadata/examples/workflows/airflow.yaml +1 -1
- metadata/examples/workflows/airflow_backend.yaml +1 -1
- metadata/examples/workflows/airflow_postgres.yaml +1 -1
- metadata/examples/workflows/amundsen.yaml +1 -0
- metadata/examples/workflows/athena.yaml +1 -0
- metadata/examples/workflows/athena_lineage.yaml +1 -1
- metadata/examples/workflows/athena_usage.yaml +1 -0
- metadata/examples/workflows/atlas.yaml +1 -0
- metadata/examples/workflows/azuresql.yaml +1 -0
- metadata/examples/workflows/azuresql_lineage.yaml +1 -0
- metadata/examples/workflows/azuresql_usage.yaml +1 -0
- metadata/examples/workflows/bigquery.yaml +1 -0
- metadata/examples/workflows/bigquery_lineage.yaml +1 -0
- metadata/examples/workflows/bigquery_profiler.yaml +1 -0
- metadata/examples/workflows/bigquery_usage.yaml +1 -0
- metadata/examples/workflows/bigtable.yaml +1 -1
- metadata/examples/workflows/clickhouse.yaml +1 -0
- metadata/examples/workflows/clickhouse_lineage.yaml +1 -0
- metadata/examples/workflows/clickhouse_usage.yaml +1 -0
- metadata/examples/workflows/couchbase.yaml +1 -1
- metadata/examples/workflows/dagster.yaml +1 -0
- metadata/examples/workflows/data_insight.yaml +1 -1
- metadata/examples/workflows/databricks.yaml +1 -0
- metadata/examples/workflows/databricks_lineage.yaml +1 -0
- metadata/examples/workflows/databricks_pipeline.yaml +1 -0
- metadata/examples/workflows/databricks_usage.yaml +1 -0
- metadata/examples/workflows/datalake_azure_client_secret.yaml +1 -0
- metadata/examples/workflows/datalake_gcs.yaml +1 -0
- metadata/examples/workflows/datalake_profiler.yaml +1 -0
- metadata/examples/workflows/datalake_s3.yaml +1 -0
- metadata/examples/workflows/db2.yaml +1 -0
- metadata/examples/workflows/db2_profiler.yaml +1 -0
- metadata/examples/workflows/dbt.yaml +2 -0
- metadata/examples/workflows/deltalake.yaml +1 -0
- metadata/examples/workflows/domodashboard.yaml +1 -0
- metadata/examples/workflows/dynamodb.yaml +1 -0
- metadata/examples/workflows/elasticsearch.yaml +1 -1
- metadata/examples/workflows/fivetran.yaml +1 -0
- metadata/examples/workflows/glue.yaml +1 -0
- metadata/examples/workflows/gluepipeline.yaml +1 -0
- metadata/examples/workflows/hive.yaml +1 -0
- metadata/examples/workflows/impala.yaml +1 -0
- metadata/examples/workflows/kafka.yaml +1 -1
- metadata/examples/workflows/kafka_connect.yaml +30 -0
- metadata/examples/workflows/kinesis.yaml +1 -1
- metadata/examples/workflows/lightdash.yaml +1 -0
- metadata/examples/workflows/looker.yaml +1 -0
- metadata/examples/workflows/mariadb.yaml +1 -0
- metadata/examples/workflows/metabase.yaml +1 -0
- metadata/examples/workflows/mlflow.yaml +1 -0
- metadata/examples/workflows/mode.yaml +3 -1
- metadata/examples/workflows/mongodb.yaml +1 -0
- metadata/examples/workflows/mssql.yaml +1 -0
- metadata/examples/workflows/mssql_lineage.yaml +1 -0
- metadata/examples/workflows/mssql_usage.yaml +1 -0
- metadata/examples/workflows/mstr.yaml +1 -0
- metadata/examples/workflows/mysql.yaml +1 -0
- metadata/examples/workflows/mysql_profiler.yaml +1 -0
- metadata/examples/workflows/openmetadata.yaml +1 -0
- metadata/examples/workflows/oracle.yaml +1 -0
- metadata/examples/workflows/oracle_lineage.yaml +1 -1
- metadata/examples/workflows/oracle_usage.yaml +1 -0
- metadata/examples/workflows/pinotdb.yaml +1 -0
- metadata/examples/workflows/postgres.yaml +1 -0
- metadata/examples/workflows/postgres_lineage.yaml +1 -1
- metadata/examples/workflows/postgres_usage.yaml +1 -1
- metadata/examples/workflows/powerbi.yaml +52 -0
- metadata/examples/workflows/presto.yaml +1 -0
- metadata/examples/workflows/qlik_sense.yaml +6 -4
- metadata/examples/workflows/qlikcloud.yaml +31 -0
- metadata/examples/workflows/query_log_usage.yaml +1 -0
- metadata/examples/workflows/quicksight.yaml +1 -0
- metadata/examples/workflows/redash.yaml +1 -0
- metadata/examples/workflows/redpanda.yaml +1 -0
- metadata/examples/workflows/redshift.yaml +1 -0
- metadata/examples/workflows/redshift_lineage.yaml +1 -0
- metadata/examples/workflows/redshift_profiler.yaml +1 -0
- metadata/examples/workflows/redshift_usage.yaml +1 -0
- metadata/examples/workflows/sagemaker.yaml +1 -1
- metadata/examples/workflows/salesforce.yaml +1 -0
- metadata/examples/workflows/sas.yaml +1 -1
- metadata/examples/workflows/singlestore.yaml +1 -0
- metadata/examples/workflows/snowflake.yaml +1 -0
- metadata/examples/workflows/snowflake_lineage.yaml +1 -0
- metadata/examples/workflows/snowflake_usage.yaml +1 -0
- metadata/examples/workflows/spline.yaml +5 -4
- metadata/examples/workflows/sqlite.yaml +1 -0
- metadata/examples/workflows/superset.yaml +1 -0
- metadata/examples/workflows/tableau.yaml +1 -0
- metadata/examples/workflows/test_suite.yaml +13 -16
- metadata/examples/workflows/trino.yaml +1 -0
- metadata/examples/workflows/trino_lineage.yaml +1 -0
- metadata/examples/workflows/trino_usage.yaml +1 -0
- metadata/examples/workflows/unity_catalog.yaml +1 -1
- metadata/examples/workflows/unity_catalog_lineage.yaml +1 -1
- metadata/examples/workflows/unity_catalog_usage.yaml +1 -1
- metadata/examples/workflows/vertica.yaml +1 -0
- metadata/generated/antlr/EntityLinkLexer.py +354 -349
- metadata/generated/schema/analytics/__init__.py +1 -1
- metadata/generated/schema/analytics/basic.py +1 -1
- metadata/generated/schema/analytics/reportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
- metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
- metadata/generated/schema/api/__init__.py +1 -1
- metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
- metadata/generated/schema/api/analytics/__init__.py +1 -1
- metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
- metadata/generated/schema/api/automations/__init__.py +1 -1
- metadata/generated/schema/api/automations/createWorkflow.py +1 -1
- metadata/generated/schema/api/bulkAssets.py +1 -1
- metadata/generated/schema/api/classification/__init__.py +1 -1
- metadata/generated/schema/api/classification/createClassification.py +2 -3
- metadata/generated/schema/api/classification/createTag.py +2 -3
- metadata/generated/schema/api/classification/loadTags.py +1 -1
- metadata/generated/schema/api/createBot.py +1 -1
- metadata/generated/schema/api/createEventPublisherJob.py +1 -1
- metadata/generated/schema/api/createType.py +1 -1
- metadata/generated/schema/api/data/__init__.py +1 -1
- metadata/generated/schema/api/data/createChart.py +1 -1
- metadata/generated/schema/api/data/createContainer.py +4 -1
- metadata/generated/schema/api/data/createCustomProperty.py +1 -1
- metadata/generated/schema/api/data/createDashboard.py +1 -1
- metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
- metadata/generated/schema/api/data/createDatabase.py +1 -1
- metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
- metadata/generated/schema/api/data/createGlossary.py +1 -1
- metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
- metadata/generated/schema/api/data/createMlModel.py +1 -1
- metadata/generated/schema/api/data/createPipeline.py +1 -1
- metadata/generated/schema/api/data/createQuery.py +1 -1
- metadata/generated/schema/api/data/createSearchIndex.py +1 -1
- metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
- metadata/generated/schema/api/data/createTable.py +4 -3
- metadata/generated/schema/api/data/createTableProfile.py +1 -1
- metadata/generated/schema/api/data/createTopic.py +1 -1
- metadata/generated/schema/api/data/loadGlossary.py +1 -1
- metadata/generated/schema/api/data/restoreEntity.py +1 -1
- metadata/generated/schema/api/dataInsight/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
- metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
- metadata/generated/schema/api/docStore/__init__.py +1 -1
- metadata/generated/schema/api/docStore/createDocument.py +1 -1
- metadata/generated/schema/api/domains/__init__.py +1 -1
- metadata/generated/schema/api/domains/createDataProduct.py +1 -1
- metadata/generated/schema/api/domains/createDomain.py +1 -1
- metadata/generated/schema/api/feed/__init__.py +1 -1
- metadata/generated/schema/api/feed/closeTask.py +1 -1
- metadata/generated/schema/api/feed/createPost.py +1 -1
- metadata/generated/schema/api/feed/createSuggestion.py +1 -1
- metadata/generated/schema/api/feed/createThread.py +1 -1
- metadata/generated/schema/api/feed/resolveTask.py +1 -1
- metadata/generated/schema/api/feed/threadCount.py +1 -1
- metadata/generated/schema/api/lineage/__init__.py +1 -1
- metadata/generated/schema/api/lineage/addLineage.py +1 -1
- metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
- metadata/generated/schema/api/policies/__init__.py +1 -1
- metadata/generated/schema/api/policies/createPolicy.py +1 -1
- metadata/generated/schema/api/services/__init__.py +1 -1
- metadata/generated/schema/api/services/createDashboardService.py +1 -1
- metadata/generated/schema/api/services/createDatabaseService.py +1 -1
- metadata/generated/schema/api/services/createMessagingService.py +1 -1
- metadata/generated/schema/api/services/createMetadataService.py +1 -1
- metadata/generated/schema/api/services/createMlModelService.py +1 -1
- metadata/generated/schema/api/services/createPipelineService.py +1 -1
- metadata/generated/schema/api/services/createSearchService.py +1 -1
- metadata/generated/schema/api/services/createStorageService.py +1 -1
- metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
- metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
- metadata/generated/schema/api/setOwner.py +1 -1
- metadata/generated/schema/api/teams/__init__.py +1 -1
- metadata/generated/schema/api/teams/createPersona.py +1 -1
- metadata/generated/schema/api/teams/createRole.py +1 -1
- metadata/generated/schema/api/teams/createTeam.py +1 -1
- metadata/generated/schema/api/teams/createUser.py +2 -2
- metadata/generated/schema/api/tests/__init__.py +1 -1
- metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
- metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
- metadata/generated/schema/api/tests/createTestCase.py +2 -2
- metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
- metadata/generated/schema/api/tests/createTestDefinition.py +2 -2
- metadata/generated/schema/api/tests/createTestSuite.py +1 -1
- metadata/generated/schema/api/voteRequest.py +1 -1
- metadata/generated/schema/auth/__init__.py +1 -1
- metadata/generated/schema/auth/basicAuth.py +1 -1
- metadata/generated/schema/auth/basicLoginRequest.py +1 -1
- metadata/generated/schema/auth/changePasswordRequest.py +1 -1
- metadata/generated/schema/auth/createPersonalToken.py +1 -1
- metadata/generated/schema/auth/emailRequest.py +1 -1
- metadata/generated/schema/auth/emailVerificationToken.py +1 -1
- metadata/generated/schema/auth/generateToken.py +1 -1
- metadata/generated/schema/auth/jwtAuth.py +1 -1
- metadata/generated/schema/auth/loginRequest.py +1 -1
- metadata/generated/schema/auth/logoutRequest.py +1 -1
- metadata/generated/schema/auth/passwordResetRequest.py +1 -1
- metadata/generated/schema/auth/passwordResetToken.py +1 -1
- metadata/generated/schema/auth/personalAccessToken.py +1 -1
- metadata/generated/schema/auth/refreshToken.py +1 -1
- metadata/generated/schema/auth/registrationRequest.py +1 -1
- metadata/generated/schema/auth/revokePersonalToken.py +1 -1
- metadata/generated/schema/auth/revokeToken.py +1 -1
- metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
- metadata/generated/schema/auth/ssoAuth.py +1 -1
- metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
- metadata/generated/schema/configuration/__init__.py +1 -1
- metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
- metadata/generated/schema/configuration/authConfig.py +1 -1
- metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
- metadata/generated/schema/configuration/authorizerConfiguration.py +4 -1
- metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
- metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
- metadata/generated/schema/configuration/elasticSearchConfiguration.py +4 -1
- metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
- metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
- metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
- metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
- metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
- metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
- metadata/generated/schema/configuration/loginConfiguration.py +1 -1
- metadata/generated/schema/configuration/logoConfiguration.py +1 -1
- metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
- metadata/generated/schema/configuration/profilerConfiguration.py +66 -0
- metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
- metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
- metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
- metadata/generated/schema/configuration/themeConfiguration.py +32 -0
- metadata/generated/schema/configuration/uiThemePreference.py +23 -0
- metadata/generated/schema/dataInsight/__init__.py +1 -1
- metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
- metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
- metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
- metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
- metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
- metadata/generated/schema/dataInsight/type/__init__.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
- metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
- metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
- metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
- metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
- metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithDescriptionByType.py +1 -1
- metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +1 -1
- metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +1 -1
- metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +1 -1
- metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +1 -1
- metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +1 -1
- metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
- metadata/generated/schema/email/__init__.py +1 -1
- metadata/generated/schema/email/emailRequest.py +1 -1
- metadata/generated/schema/email/smtpSettings.py +3 -3
- metadata/generated/schema/entity/__init__.py +1 -1
- metadata/generated/schema/entity/applications/__init__.py +1 -1
- metadata/generated/schema/entity/applications/app.py +1 -1
- metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
- metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/applicationConfig.py +3 -3
- metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +5 -0
- metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +36 -0
- metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +31 -0
- metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +31 -0
- metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +36 -0
- metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +31 -0
- metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +28 -0
- metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +22 -0
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +30 -0
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +22 -0
- metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +22 -0
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +31 -0
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +22 -0
- metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +75 -0
- metadata/generated/schema/entity/applications/configuration/external/metaPilotAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/external/metaPilotAppPrivateConfig.py +1 -1
- metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
- metadata/generated/schema/entity/applications/jobStatus.py +1 -1
- metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
- metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
- metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
- metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
- metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
- metadata/generated/schema/entity/automations/__init__.py +1 -1
- metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
- metadata/generated/schema/entity/automations/workflow.py +1 -1
- metadata/generated/schema/entity/bot.py +1 -1
- metadata/generated/schema/entity/classification/__init__.py +1 -1
- metadata/generated/schema/entity/classification/classification.py +2 -3
- metadata/generated/schema/entity/classification/tag.py +3 -9
- metadata/generated/schema/entity/data/__init__.py +1 -1
- metadata/generated/schema/entity/data/chart.py +1 -1
- metadata/generated/schema/entity/data/container.py +4 -1
- metadata/generated/schema/entity/data/dashboard.py +1 -1
- metadata/generated/schema/entity/data/dashboardDataModel.py +2 -2
- metadata/generated/schema/entity/data/database.py +1 -1
- metadata/generated/schema/entity/data/databaseSchema.py +1 -1
- metadata/generated/schema/entity/data/glossary.py +1 -1
- metadata/generated/schema/entity/data/glossaryTerm.py +4 -1
- metadata/generated/schema/entity/data/metrics.py +1 -1
- metadata/generated/schema/entity/data/mlmodel.py +2 -2
- metadata/generated/schema/entity/data/pipeline.py +1 -1
- metadata/generated/schema/entity/data/query.py +1 -1
- metadata/generated/schema/entity/data/report.py +1 -1
- metadata/generated/schema/entity/data/searchIndex.py +1 -1
- metadata/generated/schema/entity/data/storedProcedure.py +1 -1
- metadata/generated/schema/entity/data/table.py +26 -24
- metadata/generated/schema/entity/data/topic.py +1 -1
- metadata/generated/schema/entity/docStore/__init__.py +1 -1
- metadata/generated/schema/entity/docStore/document.py +1 -1
- metadata/generated/schema/entity/domains/__init__.py +1 -1
- metadata/generated/schema/entity/domains/dataProduct.py +1 -1
- metadata/generated/schema/entity/domains/domain.py +1 -1
- metadata/generated/schema/entity/events/__init__.py +1 -1
- metadata/generated/schema/entity/events/webhook.py +1 -1
- metadata/generated/schema/entity/feed/__init__.py +1 -1
- metadata/generated/schema/entity/feed/assets.py +18 -0
- metadata/generated/schema/entity/feed/customProperty.py +17 -0
- metadata/generated/schema/entity/feed/description.py +24 -0
- metadata/generated/schema/entity/feed/domain.py +23 -0
- metadata/generated/schema/entity/feed/entityInfo.py +19 -0
- metadata/generated/schema/entity/feed/owner.py +23 -0
- metadata/generated/schema/entity/feed/suggestion.py +1 -1
- metadata/generated/schema/entity/feed/tag.py +23 -0
- metadata/generated/schema/entity/feed/testCaseResult.py +23 -0
- metadata/generated/schema/entity/feed/thread.py +81 -2
- metadata/generated/schema/entity/policies/__init__.py +1 -1
- metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
- metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +3 -1
- metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
- metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
- metadata/generated/schema/entity/policies/filters.py +3 -3
- metadata/generated/schema/entity/policies/policy.py +1 -1
- metadata/generated/schema/entity/services/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
- metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
- metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/connectionBasicType.py +5 -1
- metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +33 -2
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +3 -0
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +37 -0
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +25 -0
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +37 -0
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +37 -0
- metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +38 -0
- metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +6 -15
- metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/databricksConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +2 -2
- metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/dorisConnection.py +4 -13
- metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +2 -15
- metadata/generated/schema/entity/services/connections/database/hiveConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +7 -13
- metadata/generated/schema/entity/services/connections/database/oracleConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/postgresConnection.py +5 -15
- metadata/generated/schema/entity/services/connections/database/prestoConnection.py +11 -1
- metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +5 -15
- metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/trinoConnection.py +12 -3
- metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +7 -1
- metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +7 -3
- metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +61 -0
- metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +73 -0
- metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/s3Connection.py +5 -2
- metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
- metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
- metadata/generated/schema/entity/services/dashboardService.py +4 -1
- metadata/generated/schema/entity/services/databaseService.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
- metadata/generated/schema/entity/services/messagingService.py +1 -1
- metadata/generated/schema/entity/services/metadataService.py +1 -1
- metadata/generated/schema/entity/services/mlmodelService.py +1 -1
- metadata/generated/schema/entity/services/pipelineService.py +7 -1
- metadata/generated/schema/entity/services/searchService.py +1 -1
- metadata/generated/schema/entity/services/serviceType.py +1 -1
- metadata/generated/schema/entity/services/storageService.py +1 -1
- metadata/generated/schema/entity/teams/__init__.py +1 -1
- metadata/generated/schema/entity/teams/persona.py +1 -1
- metadata/generated/schema/entity/teams/role.py +1 -1
- metadata/generated/schema/entity/teams/team.py +1 -1
- metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
- metadata/generated/schema/entity/teams/user.py +2 -2
- metadata/generated/schema/entity/type.py +1 -1
- metadata/generated/schema/entity/utils/__init__.py +1 -1
- metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
- metadata/generated/schema/entity/utils/servicesCount.py +1 -1
- metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
- metadata/generated/schema/events/__init__.py +1 -1
- metadata/generated/schema/events/alertMetrics.py +1 -1
- metadata/generated/schema/events/api/__init__.py +1 -1
- metadata/generated/schema/events/api/createEventSubscription.py +1 -1
- metadata/generated/schema/events/emailAlertConfig.py +1 -1
- metadata/generated/schema/events/eventFilterRule.py +10 -1
- metadata/generated/schema/events/eventSubscription.py +6 -2
- metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
- metadata/generated/schema/events/failedEvent.py +1 -1
- metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
- metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
- metadata/generated/schema/metadataIngestion/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/application.py +1 -1
- metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +19 -6
- metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +37 -1
- metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +23 -23
- metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
- metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +22 -4
- metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
- metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/workflow.py +1 -1
- metadata/generated/schema/monitoring/__init__.py +1 -1
- metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
- metadata/generated/schema/security/__init__.py +1 -1
- metadata/generated/schema/security/client/__init__.py +1 -1
- metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
- metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
- metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
- metadata/generated/schema/security/credentials/__init__.py +1 -1
- metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
- metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
- metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
- metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
- metadata/generated/schema/security/credentials/basicAuth.py +1 -1
- metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
- metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
- metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
- metadata/generated/schema/security/credentials/gcpValues.py +1 -1
- metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
- metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
- metadata/generated/schema/security/secrets/__init__.py +1 -1
- metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
- metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
- metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
- metadata/generated/schema/security/securityConfiguration.py +1 -1
- metadata/generated/schema/security/ssl/__init__.py +1 -1
- metadata/generated/schema/security/ssl/validateSSLClientConfig.py +16 -4
- metadata/generated/schema/security/ssl/verifySSLConfig.py +10 -1
- metadata/generated/schema/settings/__init__.py +1 -1
- metadata/generated/schema/settings/settings.py +5 -2
- metadata/generated/schema/system/__init__.py +1 -1
- metadata/generated/schema/system/entityError.py +1 -1
- metadata/generated/schema/system/eventPublisherJob.py +1 -1
- metadata/generated/schema/system/indexingError.py +1 -1
- metadata/generated/schema/system/ui/__init__.py +1 -1
- metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
- metadata/generated/schema/system/ui/page.py +1 -1
- metadata/generated/schema/system/validationResponse.py +1 -1
- metadata/generated/schema/tests/__init__.py +1 -1
- metadata/generated/schema/tests/assigned.py +1 -1
- metadata/generated/schema/tests/basic.py +31 -15
- metadata/generated/schema/tests/customMetric.py +1 -1
- metadata/generated/schema/tests/resolved.py +1 -1
- metadata/generated/schema/tests/testCase.py +13 -2
- metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
- metadata/generated/schema/tests/testDefinition.py +22 -2
- metadata/generated/schema/tests/testSuite.py +1 -1
- metadata/generated/schema/type/__init__.py +1 -1
- metadata/generated/schema/type/auditLog.py +1 -1
- metadata/generated/schema/type/basic.py +7 -1
- metadata/generated/schema/type/bulkOperationResult.py +1 -1
- metadata/generated/schema/type/changeEvent.py +1 -1
- metadata/generated/schema/type/changeEventType.py +1 -1
- metadata/generated/schema/type/collectionDescriptor.py +1 -1
- metadata/generated/schema/type/csvDocumentation.py +1 -1
- metadata/generated/schema/type/csvErrorType.py +1 -1
- metadata/generated/schema/type/csvFile.py +1 -1
- metadata/generated/schema/type/csvImportResult.py +1 -1
- metadata/generated/schema/type/customProperties/__init__.py +1 -1
- metadata/generated/schema/type/customProperties/complexTypes.py +86 -0
- metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
- metadata/generated/schema/type/customProperty.py +3 -3
- metadata/generated/schema/type/dailyCount.py +1 -1
- metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
- metadata/generated/schema/type/entityHierarchy.py +39 -0
- metadata/generated/schema/type/entityHistory.py +1 -1
- metadata/generated/schema/type/entityLineage.py +3 -1
- metadata/generated/schema/type/entityReference.py +1 -1
- metadata/generated/schema/type/entityReferenceList.py +1 -1
- metadata/generated/schema/type/entityRelationship.py +1 -1
- metadata/generated/schema/type/entityUsage.py +1 -1
- metadata/generated/schema/type/filterPattern.py +1 -1
- metadata/generated/schema/type/function.py +1 -1
- metadata/generated/schema/type/include.py +1 -1
- metadata/generated/schema/type/jdbcConnection.py +1 -1
- metadata/generated/schema/type/lifeCycle.py +1 -1
- metadata/generated/schema/type/paging.py +4 -1
- metadata/generated/schema/type/profile.py +1 -1
- metadata/generated/schema/type/queryParserData.py +1 -1
- metadata/generated/schema/type/reaction.py +1 -1
- metadata/generated/schema/type/schedule.py +1 -1
- metadata/generated/schema/type/schema.py +1 -1
- metadata/generated/schema/type/tableQuery.py +1 -1
- metadata/generated/schema/type/tableUsageCount.py +1 -1
- metadata/generated/schema/type/tagLabel.py +1 -1
- metadata/generated/schema/type/usageDetails.py +1 -1
- metadata/generated/schema/type/usageRequest.py +1 -1
- metadata/generated/schema/type/votes.py +1 -1
- metadata/great_expectations/action.py +0 -1
- metadata/ingestion/api/delete.py +33 -1
- metadata/ingestion/api/step.py +6 -1
- metadata/ingestion/api/topology_runner.py +122 -25
- metadata/ingestion/bulksink/metadata_usage.py +6 -1
- metadata/ingestion/lineage/models.py +34 -1
- metadata/ingestion/lineage/parser.py +15 -8
- metadata/ingestion/lineage/sql_lineage.py +21 -3
- metadata/ingestion/models/custom_properties.py +3 -0
- metadata/ingestion/models/life_cycle.py +4 -1
- metadata/ingestion/models/patch_request.py +177 -35
- metadata/ingestion/models/topology.py +81 -1
- metadata/ingestion/ometa/client.py +3 -0
- metadata/ingestion/ometa/mixins/es_mixin.py +95 -42
- metadata/ingestion/ometa/mixins/lineage_mixin.py +169 -4
- metadata/ingestion/ometa/mixins/patch_mixin.py +9 -4
- metadata/ingestion/ometa/mixins/server_mixin.py +50 -5
- metadata/ingestion/ometa/mixins/tests_mixin.py +55 -1
- metadata/ingestion/ometa/mixins/user_mixin.py +18 -6
- metadata/ingestion/ometa/ometa_api.py +6 -1
- metadata/ingestion/ometa/routes.py +3 -0
- metadata/ingestion/ometa/utils.py +2 -0
- metadata/ingestion/processor/query_parser.py +36 -26
- metadata/ingestion/sink/file.py +4 -1
- metadata/ingestion/sink/metadata_rest.py +19 -5
- metadata/ingestion/source/dashboard/dashboard_service.py +75 -16
- metadata/ingestion/source/dashboard/domodashboard/metadata.py +7 -5
- metadata/ingestion/source/dashboard/lightdash/metadata.py +7 -5
- metadata/ingestion/source/dashboard/looker/metadata.py +25 -18
- metadata/ingestion/source/dashboard/metabase/client.py +39 -8
- metadata/ingestion/source/dashboard/metabase/connection.py +2 -1
- metadata/ingestion/source/dashboard/metabase/metadata.py +9 -7
- metadata/ingestion/source/dashboard/metabase/models.py +1 -1
- metadata/ingestion/source/dashboard/mode/metadata.py +7 -5
- metadata/ingestion/source/dashboard/mstr/metadata.py +10 -5
- metadata/ingestion/source/dashboard/powerbi/client.py +13 -3
- metadata/ingestion/source/dashboard/powerbi/connection.py +13 -5
- metadata/ingestion/source/dashboard/powerbi/file_client.py +327 -0
- metadata/ingestion/source/dashboard/powerbi/metadata.py +156 -53
- metadata/ingestion/source/dashboard/powerbi/models.py +26 -0
- metadata/ingestion/source/dashboard/qlikcloud/__init__.py +0 -0
- metadata/ingestion/source/dashboard/qlikcloud/client.py +167 -0
- metadata/ingestion/source/dashboard/qlikcloud/connection.py +56 -0
- metadata/ingestion/source/dashboard/qlikcloud/constants.py +66 -0
- metadata/ingestion/source/dashboard/qlikcloud/metadata.py +249 -0
- metadata/ingestion/source/dashboard/qlikcloud/models.py +33 -0
- metadata/ingestion/source/dashboard/qliksense/client.py +9 -26
- metadata/ingestion/source/dashboard/qliksense/metadata.py +30 -17
- metadata/ingestion/source/dashboard/qliksense/models.py +1 -0
- metadata/ingestion/source/dashboard/quicksight/metadata.py +7 -5
- metadata/ingestion/source/dashboard/redash/metadata.py +10 -5
- metadata/ingestion/source/dashboard/superset/api_source.py +10 -5
- metadata/ingestion/source/dashboard/superset/db_source.py +12 -6
- metadata/ingestion/source/dashboard/superset/metadata.py +8 -1
- metadata/ingestion/source/dashboard/superset/mixin.py +20 -3
- metadata/ingestion/source/dashboard/superset/models.py +2 -0
- metadata/ingestion/source/dashboard/superset/queries.py +23 -6
- metadata/ingestion/source/dashboard/tableau/metadata.py +71 -10
- metadata/ingestion/source/database/athena/client.py +1 -1
- metadata/ingestion/source/database/athena/lineage.py +2 -0
- metadata/ingestion/source/database/athena/metadata.py +83 -15
- metadata/ingestion/source/database/athena/models.py +1 -1
- metadata/ingestion/source/database/athena/query_parser.py +6 -1
- metadata/ingestion/source/database/athena/usage.py +2 -0
- metadata/ingestion/source/database/azuresql/metadata.py +4 -2
- metadata/ingestion/source/database/azuresql/query_parser.py +4 -1
- metadata/ingestion/source/database/bigquery/helper.py +23 -12
- metadata/ingestion/source/database/bigquery/incremental_table_processor.py +86 -0
- metadata/ingestion/source/database/bigquery/metadata.py +224 -52
- metadata/ingestion/source/database/bigquery/models.py +35 -1
- metadata/ingestion/source/database/bigquery/queries.py +25 -12
- metadata/ingestion/source/database/bigquery/query_parser.py +3 -1
- metadata/ingestion/source/database/bigtable/metadata.py +6 -4
- metadata/ingestion/source/database/clickhouse/metadata.py +27 -17
- metadata/ingestion/source/database/clickhouse/query_parser.py +4 -2
- metadata/ingestion/source/database/common_db_source.py +117 -65
- metadata/ingestion/source/database/common_nosql_source.py +15 -15
- metadata/ingestion/source/database/couchbase/metadata.py +8 -6
- metadata/ingestion/source/database/database_service.py +43 -27
- metadata/ingestion/source/database/databricks/metadata.py +80 -34
- metadata/ingestion/source/database/databricks/queries.py +0 -1
- metadata/ingestion/source/database/databricks/query_parser.py +9 -2
- metadata/ingestion/source/database/datalake/connection.py +1 -2
- metadata/ingestion/source/database/datalake/metadata.py +21 -19
- metadata/ingestion/source/database/db2/metadata.py +4 -1
- metadata/ingestion/source/database/dbt/dbt_service.py +13 -11
- metadata/ingestion/source/database/dbt/metadata.py +97 -33
- metadata/ingestion/source/database/dbt/models.py +10 -1
- metadata/ingestion/source/database/deltalake/connection.py +2 -2
- metadata/ingestion/source/database/deltalake/metadata.py +19 -17
- metadata/ingestion/source/database/domodatabase/metadata.py +16 -11
- metadata/ingestion/source/database/doris/connection.py +0 -10
- metadata/ingestion/source/database/doris/metadata.py +23 -4
- metadata/ingestion/source/database/druid/metadata.py +5 -1
- metadata/ingestion/source/database/dynamodb/metadata.py +3 -1
- metadata/ingestion/source/database/extended_sample_data.py +4 -2
- metadata/ingestion/source/database/external_table_lineage_mixin.py +82 -0
- metadata/ingestion/source/database/glue/metadata.py +23 -21
- metadata/ingestion/source/database/greenplum/connection.py +0 -10
- metadata/ingestion/source/database/greenplum/metadata.py +26 -11
- metadata/ingestion/source/database/hive/metadata.py +29 -4
- metadata/ingestion/source/database/iceberg/helper.py +42 -5
- metadata/ingestion/source/database/iceberg/metadata.py +18 -16
- metadata/ingestion/source/database/iceberg/models.py +12 -4
- metadata/ingestion/source/database/impala/metadata.py +4 -1
- metadata/ingestion/source/database/incremental_metadata_extraction.py +144 -0
- metadata/ingestion/source/database/life_cycle_query_mixin.py +39 -36
- metadata/ingestion/source/database/mariadb/metadata.py +5 -1
- metadata/ingestion/source/database/mongodb/metadata.py +4 -2
- metadata/ingestion/source/database/mssql/metadata.py +15 -7
- metadata/ingestion/source/database/mssql/queries.py +18 -16
- metadata/ingestion/source/database/mssql/query_parser.py +4 -1
- metadata/ingestion/source/database/mssql/utils.py +3 -0
- metadata/ingestion/source/database/mysql/connection.py +0 -11
- metadata/ingestion/source/database/mysql/metadata.py +9 -2
- metadata/ingestion/source/database/oracle/connection.py +2 -2
- metadata/ingestion/source/database/oracle/metadata.py +33 -17
- metadata/ingestion/source/database/oracle/queries.py +13 -13
- metadata/ingestion/source/database/oracle/query_parser.py +4 -1
- metadata/ingestion/source/database/pinotdb/metadata.py +4 -1
- metadata/ingestion/source/database/postgres/connection.py +0 -10
- metadata/ingestion/source/database/postgres/metadata.py +38 -15
- metadata/ingestion/source/database/postgres/queries.py +17 -1
- metadata/ingestion/source/database/postgres/query_parser.py +4 -2
- metadata/ingestion/source/database/postgres/utils.py +98 -0
- metadata/ingestion/source/database/presto/connection.py +14 -0
- metadata/ingestion/source/database/presto/metadata.py +8 -5
- metadata/ingestion/source/database/query/lineage.py +5 -1
- metadata/ingestion/source/database/query/usage.py +4 -1
- metadata/ingestion/source/database/redshift/connection.py +0 -10
- metadata/ingestion/source/database/redshift/incremental_table_processor.py +192 -0
- metadata/ingestion/source/database/redshift/metadata.py +175 -26
- metadata/ingestion/source/database/redshift/models.py +74 -1
- metadata/ingestion/source/database/redshift/queries.py +17 -2
- metadata/ingestion/source/database/redshift/query_parser.py +3 -1
- metadata/ingestion/source/database/redshift/utils.py +13 -7
- metadata/ingestion/source/database/salesforce/metadata.py +13 -11
- metadata/ingestion/source/database/sample_data.py +56 -13
- metadata/ingestion/source/database/sample_usage.py +3 -1
- metadata/ingestion/source/database/saphana/metadata.py +6 -5
- metadata/ingestion/source/database/sas/metadata.py +8 -3
- metadata/ingestion/source/database/singlestore/metadata.py +5 -1
- metadata/ingestion/source/database/snowflake/metadata.py +193 -59
- metadata/ingestion/source/database/snowflake/models.py +24 -1
- metadata/ingestion/source/database/snowflake/queries.py +147 -25
- metadata/ingestion/source/database/snowflake/query_parser.py +3 -1
- metadata/ingestion/source/database/snowflake/utils.py +187 -11
- metadata/ingestion/source/database/sql_column_handler.py +2 -0
- metadata/ingestion/source/database/sqlalchemy_source.py +4 -4
- metadata/ingestion/source/database/sqlite/metadata.py +5 -1
- metadata/ingestion/source/database/stored_procedures_mixin.py +11 -9
- metadata/ingestion/source/database/trino/connection.py +20 -0
- metadata/ingestion/source/database/trino/metadata.py +7 -4
- metadata/ingestion/source/database/trino/query_parser.py +4 -1
- metadata/ingestion/source/database/unitycatalog/lineage.py +3 -1
- metadata/ingestion/source/database/unitycatalog/metadata.py +43 -32
- metadata/ingestion/source/database/unitycatalog/query_parser.py +4 -1
- metadata/ingestion/source/database/vertica/metadata.py +4 -2
- metadata/ingestion/source/database/vertica/query_parser.py +4 -2
- metadata/ingestion/source/messaging/common_broker_source.py +45 -6
- metadata/ingestion/source/messaging/kafka/metadata.py +21 -1
- metadata/ingestion/source/messaging/kinesis/metadata.py +11 -5
- metadata/ingestion/source/messaging/messaging_service.py +3 -3
- metadata/ingestion/source/messaging/redpanda/metadata.py +5 -1
- metadata/ingestion/source/metadata/amundsen/metadata.py +3 -1
- metadata/ingestion/source/metadata/atlas/metadata.py +3 -1
- metadata/ingestion/source/mlmodel/mlflow/metadata.py +4 -2
- metadata/ingestion/source/mlmodel/mlmodel_service.py +3 -3
- metadata/ingestion/source/mlmodel/sagemaker/metadata.py +8 -3
- metadata/ingestion/source/pipeline/airbyte/metadata.py +9 -7
- metadata/ingestion/source/pipeline/airflow/metadata.py +30 -14
- metadata/ingestion/source/pipeline/dagster/metadata.py +17 -15
- metadata/ingestion/source/pipeline/dagster/queries.py +53 -82
- metadata/ingestion/source/pipeline/databrickspipeline/metadata.py +10 -8
- metadata/ingestion/source/pipeline/domopipeline/metadata.py +6 -4
- metadata/ingestion/source/pipeline/fivetran/metadata.py +6 -4
- metadata/ingestion/source/pipeline/gluepipeline/metadata.py +7 -5
- metadata/ingestion/source/pipeline/kafkaconnect/__init__.py +0 -0
- metadata/ingestion/source/pipeline/kafkaconnect/client.py +278 -0
- metadata/ingestion/source/pipeline/kafkaconnect/connection.py +58 -0
- metadata/ingestion/source/pipeline/kafkaconnect/metadata.py +319 -0
- metadata/ingestion/source/pipeline/kafkaconnect/models.py +62 -0
- metadata/ingestion/source/pipeline/nifi/metadata.py +4 -2
- metadata/ingestion/source/pipeline/openlineage/__init__.py +0 -0
- metadata/ingestion/source/pipeline/openlineage/connection.py +88 -0
- metadata/ingestion/source/pipeline/openlineage/metadata.py +520 -0
- metadata/ingestion/source/pipeline/openlineage/models.py +88 -0
- metadata/ingestion/source/pipeline/openlineage/utils.py +59 -0
- metadata/ingestion/source/pipeline/pipeline_service.py +13 -3
- metadata/ingestion/source/pipeline/spline/metadata.py +8 -6
- metadata/ingestion/source/search/elasticsearch/metadata.py +8 -6
- metadata/ingestion/source/search/search_service.py +3 -3
- metadata/ingestion/source/sqa_types.py +20 -1
- metadata/ingestion/source/storage/s3/connection.py +10 -1
- metadata/ingestion/source/storage/s3/metadata.py +45 -30
- metadata/ingestion/source/storage/s3/models.py +8 -4
- metadata/ingestion/source/storage/storage_service.py +4 -4
- metadata/ingestion/stage/table_usage.py +6 -1
- metadata/mixins/pandas/pandas_mixin.py +3 -3
- metadata/pii/processor.py +6 -1
- metadata/profiler/__init__.py +0 -0
- metadata/profiler/adaptors/__init__.py +0 -0
- metadata/profiler/adaptors/adaptor_factory.py +43 -0
- metadata/profiler/adaptors/dynamodb.py +40 -0
- metadata/profiler/adaptors/factory.py +76 -0
- metadata/profiler/adaptors/mongodb.py +178 -0
- metadata/profiler/adaptors/nosql_adaptor.py +65 -0
- metadata/profiler/api/models.py +1 -1
- metadata/profiler/factory.py +41 -0
- metadata/profiler/interface/nosql/profiler_interface.py +236 -0
- metadata/profiler/interface/pandas/profiler_interface.py +51 -30
- metadata/profiler/interface/profiler_interface.py +6 -2
- metadata/profiler/interface/profiler_interface_factory.py +11 -22
- metadata/profiler/interface/sqlalchemy/databricks/profiler_interface.py +77 -0
- metadata/profiler/interface/sqlalchemy/profiler_interface.py +2 -1
- metadata/profiler/interface/sqlalchemy/unity_catalog/profiler_interface.py +3 -6
- metadata/profiler/metrics/composed/distinct_ratio.py +2 -1
- metadata/profiler/metrics/composed/duplicate_count.py +2 -1
- metadata/profiler/metrics/composed/ilike_ratio.py +2 -1
- metadata/profiler/metrics/composed/iqr.py +2 -1
- metadata/profiler/metrics/composed/like_ratio.py +2 -1
- metadata/profiler/metrics/composed/non_parametric_skew.py +2 -1
- metadata/profiler/metrics/composed/null_ratio.py +7 -4
- metadata/profiler/metrics/composed/unique_ratio.py +2 -1
- metadata/profiler/metrics/core.py +14 -1
- metadata/profiler/metrics/hybrid/histogram.py +2 -1
- metadata/profiler/metrics/registry.py +4 -0
- metadata/profiler/metrics/static/column_count.py +2 -1
- metadata/profiler/metrics/static/column_names.py +2 -1
- metadata/profiler/metrics/static/count.py +2 -1
- metadata/profiler/metrics/static/count_in_set.py +2 -1
- metadata/profiler/metrics/static/distinct_count.py +11 -2
- metadata/profiler/metrics/static/ilike_count.py +2 -1
- metadata/profiler/metrics/static/like_count.py +2 -1
- metadata/profiler/metrics/static/max.py +26 -7
- metadata/profiler/metrics/static/max_length.py +3 -2
- metadata/profiler/metrics/static/mean.py +30 -22
- metadata/profiler/metrics/static/min.py +25 -6
- metadata/profiler/metrics/static/min_length.py +3 -2
- metadata/profiler/metrics/static/not_like_count.py +2 -1
- metadata/profiler/metrics/static/not_regexp_match_count.py +2 -1
- metadata/profiler/metrics/static/null_count.py +2 -1
- metadata/profiler/metrics/static/null_missing_count.py +73 -0
- metadata/profiler/metrics/static/regexp_match_count.py +2 -1
- metadata/profiler/metrics/static/row_count.py +9 -3
- metadata/profiler/metrics/static/stddev.py +2 -1
- metadata/profiler/metrics/static/sum.py +22 -4
- metadata/profiler/metrics/static/unique_count.py +13 -4
- metadata/profiler/metrics/system/system.py +2 -1
- metadata/profiler/metrics/window/first_quartile.py +2 -1
- metadata/profiler/metrics/window/median.py +8 -2
- metadata/profiler/metrics/window/third_quartile.py +2 -1
- metadata/profiler/orm/converter/base.py +4 -1
- metadata/profiler/orm/converter/bigquery/converter.py +11 -0
- metadata/profiler/orm/converter/common.py +47 -0
- metadata/profiler/orm/converter/converter_registry.py +2 -0
- metadata/profiler/orm/converter/redshift/converter.py +48 -0
- metadata/profiler/orm/converter/snowflake/converter.py +13 -0
- metadata/profiler/orm/functions/conn_test.py +1 -1
- metadata/profiler/orm/functions/sum.py +4 -2
- metadata/profiler/orm/functions/table_metric_computer.py +1 -1
- metadata/profiler/orm/registry.py +6 -3
- metadata/profiler/processor/core.py +58 -97
- metadata/profiler/processor/default.py +5 -0
- metadata/profiler/processor/handle_partition.py +3 -3
- metadata/profiler/processor/metric_filter.py +267 -0
- metadata/profiler/processor/processor.py +4 -2
- metadata/profiler/processor/sampler/nosql/sampler.py +72 -0
- metadata/profiler/processor/sampler/pandas/sampler.py +5 -6
- metadata/profiler/processor/sampler/sampler_factory.py +9 -0
- metadata/profiler/processor/sampler/sampler_interface.py +2 -2
- metadata/profiler/processor/sampler/sqlalchemy/sampler.py +3 -3
- metadata/profiler/source/base/profiler_source.py +11 -3
- metadata/profiler/source/databricks/profiler_source.py +5 -1
- metadata/profiler/source/metadata.py +8 -1
- metadata/profiler/source/metadata_ext.py +2 -0
- metadata/readers/dataframe/avro.py +5 -5
- metadata/readers/dataframe/json.py +1 -1
- metadata/readers/file/adls.py +20 -0
- metadata/readers/file/base.py +6 -0
- metadata/readers/file/config_source_factory.py +12 -0
- metadata/readers/file/gcs.py +18 -0
- metadata/readers/file/local.py +12 -0
- metadata/readers/file/s3.py +16 -0
- metadata/utils/constants.py +32 -24
- metadata/utils/datalake/datalake_utils.py +40 -4
- metadata/utils/elasticsearch.py +8 -0
- metadata/utils/execution_time_tracker.py +69 -28
- metadata/utils/fqn.py +61 -7
- metadata/utils/helpers.py +2 -0
- metadata/utils/importer.py +15 -6
- metadata/utils/logger.py +1 -1
- metadata/utils/lru_cache.py +2 -0
- metadata/utils/messaging_utils.py +43 -0
- metadata/utils/partition.py +93 -28
- metadata/utils/sqlalchemy_utils.py +60 -1
- metadata/utils/ssl_manager.py +181 -0
- metadata/utils/tag_utils.py +30 -13
- metadata/utils/test_utils.py +65 -0
- metadata/workflow/application.py +6 -1
- metadata/workflow/base.py +1 -1
- metadata/workflow/ingestion.py +19 -0
- metadata/workflow/metadata.py +9 -1
- metadata/workflow/output_handler.py +24 -2
- metadata/workflow/workflow_output_handler.py +2 -0
- {openmetadata_ingestion-1.3.4.0.dist-info → openmetadata_ingestion-1.4.0.0rc2.dist-info}/METADATA +325 -326
- openmetadata_ingestion-1.4.0.0rc2.dist-info/RECORD +1501 -0
- metadata/applications/auto_tagger.py +0 -212
- metadata/cli/backup.py +0 -202
- metadata/cli/db_dump.py +0 -239
- metadata/cli/docker.py +0 -382
- metadata/cli/openmetadata_dag_config_migration.py +0 -109
- metadata/cli/openmetadata_imports_migration.py +0 -71
- metadata/cli/utils.py +0 -56
- metadata/generated/schema/entity/applications/configuration/external/autoTaggerAppConfig.py +0 -28
- openmetadata_ingestion-1.3.4.0.dist-info/RECORD +0 -1435
- {openmetadata_ingestion-1.3.4.0.dist-info → openmetadata_ingestion-1.4.0.0rc2.dist-info}/LICENSE +0 -0
- {openmetadata_ingestion-1.3.4.0.dist-info → openmetadata_ingestion-1.4.0.0rc2.dist-info}/WHEEL +0 -0
- {openmetadata_ingestion-1.3.4.0.dist-info → openmetadata_ingestion-1.4.0.0rc2.dist-info}/entry_points.txt +0 -0
- {openmetadata_ingestion-1.3.4.0.dist-info → openmetadata_ingestion-1.4.0.0rc2.dist-info}/top_level.txt +0 -0
|
@@ -14,9 +14,11 @@ Distinct Count Metric definition
|
|
|
14
14
|
"""
|
|
15
15
|
# pylint: disable=duplicate-code
|
|
16
16
|
|
|
17
|
+
import json
|
|
17
18
|
|
|
18
19
|
from sqlalchemy import column, distinct, func
|
|
19
20
|
|
|
21
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
20
22
|
from metadata.profiler.metrics.core import StaticMetric, _label
|
|
21
23
|
from metadata.profiler.orm.functions.count import CountFn
|
|
22
24
|
from metadata.utils.logger import profiler_logger
|
|
@@ -33,7 +35,7 @@ class DistinctCount(StaticMetric):
|
|
|
33
35
|
|
|
34
36
|
@classmethod
|
|
35
37
|
def name(cls):
|
|
36
|
-
return
|
|
38
|
+
return MetricType.distinctCount.value
|
|
37
39
|
|
|
38
40
|
@property
|
|
39
41
|
def metric_type(self):
|
|
@@ -57,7 +59,14 @@ class DistinctCount(StaticMetric):
|
|
|
57
59
|
counter = Counter()
|
|
58
60
|
for df in dfs:
|
|
59
61
|
df_col_value = df[self.col.name].dropna().to_list()
|
|
60
|
-
|
|
62
|
+
try:
|
|
63
|
+
counter.update(df_col_value)
|
|
64
|
+
except TypeError as err:
|
|
65
|
+
if isinstance(df_col_value, list):
|
|
66
|
+
for value in df_col_value:
|
|
67
|
+
counter.update([json.dumps(value)])
|
|
68
|
+
else:
|
|
69
|
+
raise err
|
|
61
70
|
return len(counter.keys())
|
|
62
71
|
except Exception as err:
|
|
63
72
|
logger.debug(
|
|
@@ -16,6 +16,7 @@ ILIKE Count Metric definition
|
|
|
16
16
|
|
|
17
17
|
from sqlalchemy import case, column
|
|
18
18
|
|
|
19
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
19
20
|
from metadata.profiler.metrics.core import StaticMetric, _label
|
|
20
21
|
from metadata.profiler.orm.functions.sum import SumFn
|
|
21
22
|
|
|
@@ -35,7 +36,7 @@ class ILikeCount(StaticMetric):
|
|
|
35
36
|
|
|
36
37
|
@classmethod
|
|
37
38
|
def name(cls):
|
|
38
|
-
return
|
|
39
|
+
return MetricType.iLikeCount.value
|
|
39
40
|
|
|
40
41
|
@property
|
|
41
42
|
def metric_type(self):
|
|
@@ -16,6 +16,7 @@ Like Count Metric definition
|
|
|
16
16
|
|
|
17
17
|
from sqlalchemy import case, column
|
|
18
18
|
|
|
19
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
19
20
|
from metadata.profiler.metrics.core import StaticMetric, _label
|
|
20
21
|
from metadata.profiler.orm.functions.sum import SumFn
|
|
21
22
|
|
|
@@ -35,7 +36,7 @@ class LikeCount(StaticMetric):
|
|
|
35
36
|
|
|
36
37
|
@classmethod
|
|
37
38
|
def name(cls):
|
|
38
|
-
return
|
|
39
|
+
return MetricType.likeCount.value
|
|
39
40
|
|
|
40
41
|
@property
|
|
41
42
|
def metric_type(self):
|
|
@@ -12,14 +12,17 @@
|
|
|
12
12
|
"""
|
|
13
13
|
Max Metric definition
|
|
14
14
|
"""
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
from functools import partial
|
|
16
|
+
from typing import Callable, Optional
|
|
17
17
|
|
|
18
18
|
from sqlalchemy import TIME, column
|
|
19
19
|
from sqlalchemy.ext.compiler import compiles
|
|
20
20
|
from sqlalchemy.sql.functions import GenericFunction
|
|
21
21
|
|
|
22
|
-
from metadata.
|
|
22
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
23
|
+
from metadata.generated.schema.entity.data.table import DataType, Table
|
|
24
|
+
from metadata.profiler.adaptors.nosql_adaptor import NoSQLAdaptor
|
|
25
|
+
from metadata.profiler.metrics.core import CACHE, StaticMetric, T, _label
|
|
23
26
|
from metadata.profiler.orm.functions.length import LenFn
|
|
24
27
|
from metadata.profiler.orm.registry import (
|
|
25
28
|
FLOAT_SET,
|
|
@@ -29,6 +32,8 @@ from metadata.profiler.orm.registry import (
|
|
|
29
32
|
is_quantifiable,
|
|
30
33
|
)
|
|
31
34
|
|
|
35
|
+
# pylint: disable=duplicate-code
|
|
36
|
+
|
|
32
37
|
|
|
33
38
|
class MaxFn(GenericFunction):
|
|
34
39
|
name = __qualname__
|
|
@@ -77,7 +82,7 @@ class Max(StaticMetric):
|
|
|
77
82
|
|
|
78
83
|
@classmethod
|
|
79
84
|
def name(cls):
|
|
80
|
-
return
|
|
85
|
+
return MetricType.max.value
|
|
81
86
|
|
|
82
87
|
@_label
|
|
83
88
|
def fn(self):
|
|
@@ -90,9 +95,23 @@ class Max(StaticMetric):
|
|
|
90
95
|
|
|
91
96
|
def df_fn(self, dfs=None):
|
|
92
97
|
"""pandas function"""
|
|
98
|
+
import pandas as pd
|
|
99
|
+
|
|
93
100
|
if is_quantifiable(self.col.type):
|
|
94
101
|
return max((df[self.col.name].max() for df in dfs))
|
|
102
|
+
|
|
95
103
|
if is_date_time(self.col.type):
|
|
96
|
-
max_ =
|
|
97
|
-
|
|
98
|
-
|
|
104
|
+
max_ = None
|
|
105
|
+
if self.col.type in {DataType.DATETIME, DataType.DATE}:
|
|
106
|
+
max_ = max((pd.to_datetime(df[self.col.name]).max() for df in dfs))
|
|
107
|
+
return None if pd.isnull(max_) else int(max_.timestamp() * 1000)
|
|
108
|
+
elif self.col.type == DataType.TIME:
|
|
109
|
+
max_ = max((pd.to_timedelta(df[self.col.name]).max() for df in dfs))
|
|
110
|
+
return None if pd.isnull(max_) else max_.seconds
|
|
111
|
+
return None
|
|
112
|
+
|
|
113
|
+
def nosql_fn(self, adaptor: NoSQLAdaptor) -> Callable[[Table], Optional[T]]:
|
|
114
|
+
"""nosql function"""
|
|
115
|
+
if is_quantifiable(self.col.type):
|
|
116
|
+
return partial(adaptor.max, column=self.col)
|
|
117
|
+
return lambda table: None
|
|
@@ -17,6 +17,7 @@ MAX_LENGTH Metric definition
|
|
|
17
17
|
|
|
18
18
|
from sqlalchemy import column, func
|
|
19
19
|
|
|
20
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
20
21
|
from metadata.profiler.metrics.core import StaticMetric, _label
|
|
21
22
|
from metadata.profiler.orm.functions.length import LenFn
|
|
22
23
|
from metadata.profiler.orm.registry import is_concatenable
|
|
@@ -36,7 +37,7 @@ class MaxLength(StaticMetric):
|
|
|
36
37
|
|
|
37
38
|
@classmethod
|
|
38
39
|
def name(cls):
|
|
39
|
-
return
|
|
40
|
+
return MetricType.maxLength.value
|
|
40
41
|
|
|
41
42
|
@property
|
|
42
43
|
def metric_type(self):
|
|
@@ -66,7 +67,7 @@ class MaxLength(StaticMetric):
|
|
|
66
67
|
max_length_list = []
|
|
67
68
|
|
|
68
69
|
for df in dfs:
|
|
69
|
-
if any(df[self.col.name]):
|
|
70
|
+
if any(df[self.col.name].dropna()):
|
|
70
71
|
max_length_list.append(
|
|
71
72
|
length_vectorize_func(
|
|
72
73
|
df[self.col.name].dropna().astype(str)
|
|
@@ -12,16 +12,17 @@
|
|
|
12
12
|
"""
|
|
13
13
|
AVG Metric definition
|
|
14
14
|
"""
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
from typing import List, cast
|
|
15
|
+
from functools import partial
|
|
16
|
+
from typing import Callable, List, Optional, cast
|
|
19
17
|
|
|
20
18
|
from sqlalchemy import column, func
|
|
21
19
|
from sqlalchemy.ext.compiler import compiles
|
|
22
20
|
from sqlalchemy.sql.functions import GenericFunction
|
|
23
21
|
|
|
24
|
-
from metadata.
|
|
22
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
23
|
+
from metadata.generated.schema.entity.data.table import Table
|
|
24
|
+
from metadata.profiler.adaptors.nosql_adaptor import NoSQLAdaptor
|
|
25
|
+
from metadata.profiler.metrics.core import CACHE, StaticMetric, T, _label
|
|
25
26
|
from metadata.profiler.orm.functions.length import LenFn
|
|
26
27
|
from metadata.profiler.orm.registry import (
|
|
27
28
|
FLOAT_SET,
|
|
@@ -32,6 +33,9 @@ from metadata.profiler.orm.registry import (
|
|
|
32
33
|
)
|
|
33
34
|
from metadata.utils.logger import profiler_logger
|
|
34
35
|
|
|
36
|
+
# pylint: disable=duplicate-code
|
|
37
|
+
|
|
38
|
+
|
|
35
39
|
logger = profiler_logger()
|
|
36
40
|
|
|
37
41
|
|
|
@@ -85,7 +89,7 @@ class Mean(StaticMetric):
|
|
|
85
89
|
|
|
86
90
|
@classmethod
|
|
87
91
|
def name(cls):
|
|
88
|
-
return
|
|
92
|
+
return MetricType.mean.value
|
|
89
93
|
|
|
90
94
|
@property
|
|
91
95
|
def metric_type(self):
|
|
@@ -115,25 +119,23 @@ class Mean(StaticMetric):
|
|
|
115
119
|
|
|
116
120
|
means = []
|
|
117
121
|
weights = []
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
if not pd.isnull(mean):
|
|
123
|
-
means.append(mean)
|
|
124
|
-
weights.append(df[self.col.name].count())
|
|
125
|
-
|
|
126
|
-
if is_concatenable(self.col.type):
|
|
127
|
-
length_vectorize_func = vectorize(len)
|
|
128
|
-
for df in dfs:
|
|
122
|
+
length_vectorize_func = vectorize(len)
|
|
123
|
+
for df in dfs:
|
|
124
|
+
processed_df = df[self.col.name].dropna()
|
|
125
|
+
try:
|
|
129
126
|
mean = None
|
|
130
|
-
if
|
|
131
|
-
mean =
|
|
132
|
-
|
|
133
|
-
).mean()
|
|
127
|
+
if is_quantifiable(self.col.type):
|
|
128
|
+
mean = processed_df.mean()
|
|
129
|
+
if is_concatenable(self.col.type):
|
|
130
|
+
mean = length_vectorize_func(processed_df.astype(str)).mean()
|
|
134
131
|
if not pd.isnull(mean):
|
|
135
132
|
means.append(mean)
|
|
136
|
-
weights.append(
|
|
133
|
+
weights.append(processed_df.count())
|
|
134
|
+
except Exception as err:
|
|
135
|
+
logger.debug(
|
|
136
|
+
f"Error while computing mean for column {self.col.name}: {err}"
|
|
137
|
+
)
|
|
138
|
+
return None
|
|
137
139
|
|
|
138
140
|
if means:
|
|
139
141
|
return average(means, weights=weights)
|
|
@@ -142,3 +144,9 @@ class Mean(StaticMetric):
|
|
|
142
144
|
f"Don't know how to process type {self.col.type} when computing MEAN"
|
|
143
145
|
)
|
|
144
146
|
return None
|
|
147
|
+
|
|
148
|
+
def nosql_fn(self, adaptor: NoSQLAdaptor) -> Callable[[Table], Optional[T]]:
|
|
149
|
+
"""nosql function"""
|
|
150
|
+
if is_quantifiable(self.col.type):
|
|
151
|
+
return partial(adaptor.mean, column=self.col)
|
|
152
|
+
return lambda table: None
|
|
@@ -12,13 +12,17 @@
|
|
|
12
12
|
"""
|
|
13
13
|
Min Metric definition
|
|
14
14
|
"""
|
|
15
|
-
|
|
15
|
+
from functools import partial
|
|
16
|
+
from typing import Callable, Optional
|
|
16
17
|
|
|
17
18
|
from sqlalchemy import TIME, column
|
|
18
19
|
from sqlalchemy.ext.compiler import compiles
|
|
19
20
|
from sqlalchemy.sql.functions import GenericFunction
|
|
20
21
|
|
|
21
|
-
from metadata.
|
|
22
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
23
|
+
from metadata.generated.schema.entity.data.table import DataType, Table
|
|
24
|
+
from metadata.profiler.adaptors.nosql_adaptor import NoSQLAdaptor
|
|
25
|
+
from metadata.profiler.metrics.core import CACHE, StaticMetric, T, _label
|
|
22
26
|
from metadata.profiler.orm.functions.length import LenFn
|
|
23
27
|
from metadata.profiler.orm.registry import (
|
|
24
28
|
FLOAT_SET,
|
|
@@ -28,6 +32,8 @@ from metadata.profiler.orm.registry import (
|
|
|
28
32
|
is_quantifiable,
|
|
29
33
|
)
|
|
30
34
|
|
|
35
|
+
# pylint: disable=duplicate-code
|
|
36
|
+
|
|
31
37
|
|
|
32
38
|
class MinFn(GenericFunction):
|
|
33
39
|
name = __qualname__
|
|
@@ -76,7 +82,7 @@ class Min(StaticMetric):
|
|
|
76
82
|
|
|
77
83
|
@classmethod
|
|
78
84
|
def name(cls):
|
|
79
|
-
return
|
|
85
|
+
return MetricType.min.value
|
|
80
86
|
|
|
81
87
|
@_label
|
|
82
88
|
def fn(self):
|
|
@@ -90,9 +96,22 @@ class Min(StaticMetric):
|
|
|
90
96
|
|
|
91
97
|
def df_fn(self, dfs=None):
|
|
92
98
|
"""pandas function"""
|
|
99
|
+
import pandas as pd
|
|
100
|
+
|
|
93
101
|
if is_quantifiable(self.col.type):
|
|
94
102
|
return min((df[self.col.name].min() for df in dfs))
|
|
95
103
|
if is_date_time(self.col.type):
|
|
96
|
-
min_ =
|
|
97
|
-
|
|
98
|
-
|
|
104
|
+
min_ = None
|
|
105
|
+
if self.col.type in {DataType.DATETIME, DataType.DATE}:
|
|
106
|
+
min_ = min((pd.to_datetime(df[self.col.name]).min() for df in dfs))
|
|
107
|
+
return None if pd.isnull(min_) else int(min_.timestamp() * 1000)
|
|
108
|
+
elif self.col.type == DataType.TIME:
|
|
109
|
+
min_ = min((pd.to_timedelta(df[self.col.name]).min() for df in dfs))
|
|
110
|
+
return None if pd.isnull(min_) else min_.seconds
|
|
111
|
+
return None
|
|
112
|
+
|
|
113
|
+
def nosql_fn(self, adaptor: NoSQLAdaptor) -> Callable[[Table], Optional[T]]:
|
|
114
|
+
"""nosql function"""
|
|
115
|
+
if is_quantifiable(self.col.type):
|
|
116
|
+
return partial(adaptor.min, column=self.col)
|
|
117
|
+
return lambda table: None
|
|
@@ -17,6 +17,7 @@ MIN_LENGTH Metric definition
|
|
|
17
17
|
|
|
18
18
|
from sqlalchemy import column, func
|
|
19
19
|
|
|
20
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
20
21
|
from metadata.profiler.metrics.core import StaticMetric, _label
|
|
21
22
|
from metadata.profiler.orm.functions.length import LenFn
|
|
22
23
|
from metadata.profiler.orm.registry import is_concatenable
|
|
@@ -36,7 +37,7 @@ class MinLength(StaticMetric):
|
|
|
36
37
|
|
|
37
38
|
@classmethod
|
|
38
39
|
def name(cls):
|
|
39
|
-
return
|
|
40
|
+
return MetricType.minLength.value
|
|
40
41
|
|
|
41
42
|
@property
|
|
42
43
|
def metric_type(self):
|
|
@@ -67,7 +68,7 @@ class MinLength(StaticMetric):
|
|
|
67
68
|
min_length_list = []
|
|
68
69
|
|
|
69
70
|
for df in dfs:
|
|
70
|
-
if any(df[self.col.name]):
|
|
71
|
+
if any(df[self.col.name].dropna()):
|
|
71
72
|
min_length_list.append(
|
|
72
73
|
length_vectorize_func(
|
|
73
74
|
df[self.col.name].dropna().astype(str)
|
|
@@ -16,6 +16,7 @@ Like Count Metric definition
|
|
|
16
16
|
|
|
17
17
|
from sqlalchemy import case, column
|
|
18
18
|
|
|
19
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
19
20
|
from metadata.profiler.metrics.core import StaticMetric, _label
|
|
20
21
|
from metadata.profiler.orm.functions.sum import SumFn
|
|
21
22
|
|
|
@@ -35,7 +36,7 @@ class NotLikeCount(StaticMetric):
|
|
|
35
36
|
|
|
36
37
|
@classmethod
|
|
37
38
|
def name(cls):
|
|
38
|
-
return
|
|
39
|
+
return MetricType.notLikeCount.value
|
|
39
40
|
|
|
40
41
|
@property
|
|
41
42
|
def metric_type(self):
|
|
@@ -16,6 +16,7 @@ Regex Count Metric definition
|
|
|
16
16
|
|
|
17
17
|
from sqlalchemy import case, column, not_
|
|
18
18
|
|
|
19
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
19
20
|
from metadata.profiler.metrics.core import StaticMetric, _label
|
|
20
21
|
from metadata.profiler.orm.functions.sum import SumFn
|
|
21
22
|
from metadata.profiler.orm.registry import is_concatenable
|
|
@@ -36,7 +37,7 @@ class NotRegexCount(StaticMetric):
|
|
|
36
37
|
|
|
37
38
|
@classmethod
|
|
38
39
|
def name(cls):
|
|
39
|
-
return
|
|
40
|
+
return MetricType.notRegexCount.value
|
|
40
41
|
|
|
41
42
|
@property
|
|
42
43
|
def metric_type(self):
|
|
@@ -17,6 +17,7 @@ Null Count Metric definition
|
|
|
17
17
|
|
|
18
18
|
from sqlalchemy import case, column
|
|
19
19
|
|
|
20
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
20
21
|
from metadata.profiler.metrics.core import StaticMetric, _label
|
|
21
22
|
from metadata.profiler.orm.functions.sum import SumFn
|
|
22
23
|
|
|
@@ -38,7 +39,7 @@ class NullCount(StaticMetric):
|
|
|
38
39
|
|
|
39
40
|
@classmethod
|
|
40
41
|
def name(cls):
|
|
41
|
-
return
|
|
42
|
+
return MetricType.nullCount.value
|
|
42
43
|
|
|
43
44
|
@property
|
|
44
45
|
def metric_type(self):
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# Copyright 2021 Collate
|
|
2
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
3
|
+
# you may not use this file except in compliance with the License.
|
|
4
|
+
# You may obtain a copy of the License at
|
|
5
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
6
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
7
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
8
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
9
|
+
# See the License for the specific language governing permissions and
|
|
10
|
+
# limitations under the License.
|
|
11
|
+
|
|
12
|
+
"""
|
|
13
|
+
Null Count Metric definition
|
|
14
|
+
"""
|
|
15
|
+
# pylint: disable=duplicate-code
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
from sqlalchemy import case, column
|
|
19
|
+
|
|
20
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
21
|
+
from metadata.profiler.metrics.core import StaticMetric, _label
|
|
22
|
+
from metadata.profiler.orm.functions.sum import SumFn
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class NullMissingCount(StaticMetric):
|
|
26
|
+
"""
|
|
27
|
+
NULL + Empty COUNT Metric
|
|
28
|
+
|
|
29
|
+
Given a column, return the null count.
|
|
30
|
+
|
|
31
|
+
We are building a CASE WHEN structure:
|
|
32
|
+
```
|
|
33
|
+
SUM(
|
|
34
|
+
CASE is not null THEN 1
|
|
35
|
+
ELSE 0
|
|
36
|
+
)
|
|
37
|
+
```
|
|
38
|
+
"""
|
|
39
|
+
|
|
40
|
+
@classmethod
|
|
41
|
+
def name(cls):
|
|
42
|
+
"""
|
|
43
|
+
Returns the name of the metric.
|
|
44
|
+
"""
|
|
45
|
+
return MetricType.nullCount.value
|
|
46
|
+
|
|
47
|
+
@property
|
|
48
|
+
def metric_type(self):
|
|
49
|
+
"""
|
|
50
|
+
Returns the type of the metric.
|
|
51
|
+
"""
|
|
52
|
+
return int
|
|
53
|
+
|
|
54
|
+
@_label
|
|
55
|
+
def fn(self):
|
|
56
|
+
"""
|
|
57
|
+
Returns the SQLAlchemy function for calculating the metric.
|
|
58
|
+
"""
|
|
59
|
+
return SumFn(
|
|
60
|
+
case(
|
|
61
|
+
[
|
|
62
|
+
(column(self.col.name, self.col.type).is_(None), 1),
|
|
63
|
+
(column(self.col.name, self.col.type).__eq__(""), 1),
|
|
64
|
+
],
|
|
65
|
+
else_=0,
|
|
66
|
+
)
|
|
67
|
+
)
|
|
68
|
+
|
|
69
|
+
def df_fn(self, dfs=None):
|
|
70
|
+
"""
|
|
71
|
+
Returns the pandas function for calculating the metric.
|
|
72
|
+
"""
|
|
73
|
+
return sum(df[self.col.name].isnull().sum() for df in dfs)
|
|
@@ -16,6 +16,7 @@ Regex Count Metric definition
|
|
|
16
16
|
|
|
17
17
|
from sqlalchemy import case, column
|
|
18
18
|
|
|
19
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
19
20
|
from metadata.profiler.metrics.core import StaticMetric, _label
|
|
20
21
|
from metadata.profiler.orm.functions.sum import SumFn
|
|
21
22
|
from metadata.profiler.orm.registry import is_concatenable
|
|
@@ -36,7 +37,7 @@ class RegexCount(StaticMetric):
|
|
|
36
37
|
|
|
37
38
|
@classmethod
|
|
38
39
|
def name(cls):
|
|
39
|
-
return
|
|
40
|
+
return MetricType.regexCount.value
|
|
40
41
|
|
|
41
42
|
@property
|
|
42
43
|
def metric_type(self):
|
|
@@ -12,11 +12,13 @@
|
|
|
12
12
|
"""
|
|
13
13
|
Table Count Metric definition
|
|
14
14
|
"""
|
|
15
|
-
|
|
16
|
-
|
|
15
|
+
from typing import Callable
|
|
17
16
|
|
|
18
17
|
from sqlalchemy import func
|
|
19
18
|
|
|
19
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
20
|
+
from metadata.generated.schema.entity.data.table import Table
|
|
21
|
+
from metadata.profiler.adaptors.nosql_adaptor import NoSQLAdaptor
|
|
20
22
|
from metadata.profiler.metrics.core import StaticMetric, _label
|
|
21
23
|
|
|
22
24
|
|
|
@@ -29,7 +31,7 @@ class RowCount(StaticMetric):
|
|
|
29
31
|
|
|
30
32
|
@classmethod
|
|
31
33
|
def name(cls):
|
|
32
|
-
return
|
|
34
|
+
return MetricType.rowCount.value
|
|
33
35
|
|
|
34
36
|
@classmethod
|
|
35
37
|
def is_col_metric(cls) -> bool:
|
|
@@ -50,3 +52,7 @@ class RowCount(StaticMetric):
|
|
|
50
52
|
def df_fn(self, dfs=None):
|
|
51
53
|
"""pandas function"""
|
|
52
54
|
return sum(len(df.index) for df in dfs)
|
|
55
|
+
|
|
56
|
+
@classmethod
|
|
57
|
+
def nosql_fn(cls, client: NoSQLAdaptor) -> Callable[[Table], int]:
|
|
58
|
+
return client.item_count
|
|
@@ -21,6 +21,7 @@ from sqlalchemy import column
|
|
|
21
21
|
from sqlalchemy.ext.compiler import compiles
|
|
22
22
|
from sqlalchemy.sql.functions import FunctionElement
|
|
23
23
|
|
|
24
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
24
25
|
from metadata.profiler.metrics.core import CACHE, StaticMetric, _label
|
|
25
26
|
from metadata.profiler.orm.functions.length import LenFn
|
|
26
27
|
from metadata.profiler.orm.registry import (
|
|
@@ -103,7 +104,7 @@ class StdDev(StaticMetric):
|
|
|
103
104
|
|
|
104
105
|
@classmethod
|
|
105
106
|
def name(cls):
|
|
106
|
-
return
|
|
107
|
+
return MetricType.stddev.value
|
|
107
108
|
|
|
108
109
|
@property
|
|
109
110
|
def metric_type(self):
|
|
@@ -12,15 +12,21 @@
|
|
|
12
12
|
"""
|
|
13
13
|
SUM Metric definition
|
|
14
14
|
"""
|
|
15
|
-
|
|
15
|
+
from functools import partial
|
|
16
|
+
from typing import Callable, Optional
|
|
16
17
|
|
|
17
18
|
from sqlalchemy import column
|
|
18
19
|
|
|
19
|
-
from metadata.
|
|
20
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
21
|
+
from metadata.generated.schema.entity.data.table import Table
|
|
22
|
+
from metadata.profiler.adaptors.nosql_adaptor import NoSQLAdaptor
|
|
23
|
+
from metadata.profiler.metrics.core import StaticMetric, T, _label
|
|
20
24
|
from metadata.profiler.orm.functions.length import LenFn
|
|
21
25
|
from metadata.profiler.orm.functions.sum import SumFn
|
|
22
26
|
from metadata.profiler.orm.registry import is_concatenable, is_quantifiable
|
|
23
27
|
|
|
28
|
+
# pylint: disable=duplicate-code
|
|
29
|
+
|
|
24
30
|
|
|
25
31
|
class Sum(StaticMetric):
|
|
26
32
|
"""
|
|
@@ -33,7 +39,7 @@ class Sum(StaticMetric):
|
|
|
33
39
|
|
|
34
40
|
@classmethod
|
|
35
41
|
def name(cls):
|
|
36
|
-
return
|
|
42
|
+
return MetricType.sum.value
|
|
37
43
|
|
|
38
44
|
@_label
|
|
39
45
|
def fn(self):
|
|
@@ -50,5 +56,17 @@ class Sum(StaticMetric):
|
|
|
50
56
|
"""pandas function"""
|
|
51
57
|
|
|
52
58
|
if is_quantifiable(self.col.type):
|
|
53
|
-
|
|
59
|
+
try:
|
|
60
|
+
return sum(df[self.col.name].sum() for df in dfs)
|
|
61
|
+
except (TypeError, ValueError):
|
|
62
|
+
try:
|
|
63
|
+
return sum(df[self.col.name].astype(float).sum() for df in dfs)
|
|
64
|
+
except Exception:
|
|
65
|
+
return None
|
|
54
66
|
return None
|
|
67
|
+
|
|
68
|
+
def nosql_fn(self, adaptor: NoSQLAdaptor) -> Callable[[Table], Optional[T]]:
|
|
69
|
+
"""nosql function"""
|
|
70
|
+
if is_quantifiable(self.col.type):
|
|
71
|
+
return partial(adaptor.sum, column=self.col)
|
|
72
|
+
return lambda table: None
|
|
@@ -12,11 +12,13 @@
|
|
|
12
12
|
"""
|
|
13
13
|
Unique Count Metric definition
|
|
14
14
|
"""
|
|
15
|
+
import json
|
|
15
16
|
from typing import Optional
|
|
16
17
|
|
|
17
18
|
from sqlalchemy import column, func
|
|
18
19
|
from sqlalchemy.orm import DeclarativeMeta, Session
|
|
19
20
|
|
|
21
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
20
22
|
from metadata.profiler.metrics.core import QueryMetric
|
|
21
23
|
from metadata.profiler.orm.functions.unique_count import _unique_count_query_mapper
|
|
22
24
|
from metadata.profiler.orm.registry import NOT_COMPUTE
|
|
@@ -34,7 +36,7 @@ class UniqueCount(QueryMetric):
|
|
|
34
36
|
|
|
35
37
|
@classmethod
|
|
36
38
|
def name(cls):
|
|
37
|
-
return
|
|
39
|
+
return MetricType.uniqueCount.value
|
|
38
40
|
|
|
39
41
|
@property
|
|
40
42
|
def metric_type(self):
|
|
@@ -59,8 +61,8 @@ class UniqueCount(QueryMetric):
|
|
|
59
61
|
unique_count_query = _unique_count_query_mapper[session.bind.dialect.name](
|
|
60
62
|
col, session, sample
|
|
61
63
|
)
|
|
62
|
-
|
|
63
|
-
return session.query(func.count().label(self.name())).select_from(
|
|
64
|
+
only_once_sub = unique_count_query.subquery("only_once")
|
|
65
|
+
return session.query(func.count().label(self.name())).select_from(only_once_sub)
|
|
64
66
|
|
|
65
67
|
def df_fn(self, dfs=None):
|
|
66
68
|
"""
|
|
@@ -72,7 +74,14 @@ class UniqueCount(QueryMetric):
|
|
|
72
74
|
counter = Counter()
|
|
73
75
|
for df in dfs:
|
|
74
76
|
df_col_value = df[self.col.name].dropna().to_list()
|
|
75
|
-
|
|
77
|
+
try:
|
|
78
|
+
counter.update(df_col_value)
|
|
79
|
+
except TypeError as err:
|
|
80
|
+
if isinstance(df_col_value, list):
|
|
81
|
+
for value in df_col_value:
|
|
82
|
+
counter.update([json.dumps(value)])
|
|
83
|
+
else:
|
|
84
|
+
raise err
|
|
76
85
|
return len([key for key, value in counter.items() if value == 1])
|
|
77
86
|
except Exception as err:
|
|
78
87
|
logger.debug(
|
|
@@ -20,6 +20,7 @@ from typing import Dict, List, Optional
|
|
|
20
20
|
from sqlalchemy import text
|
|
21
21
|
from sqlalchemy.orm import DeclarativeMeta, Session
|
|
22
22
|
|
|
23
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
23
24
|
from metadata.generated.schema.entity.services.connections.database.bigQueryConnection import (
|
|
24
25
|
BigQueryConnection,
|
|
25
26
|
)
|
|
@@ -430,7 +431,7 @@ class System(SystemMetric):
|
|
|
430
431
|
|
|
431
432
|
@classmethod
|
|
432
433
|
def name(cls):
|
|
433
|
-
return
|
|
434
|
+
return MetricType.system.value
|
|
434
435
|
|
|
435
436
|
def _manage_cache(self, max_size_in_bytes: int = MAX_SIZE_IN_BYTES) -> None:
|
|
436
437
|
"""manage cache and clears it if it exceeds the max size
|
|
@@ -18,6 +18,7 @@ from typing import List, cast
|
|
|
18
18
|
|
|
19
19
|
from sqlalchemy import column
|
|
20
20
|
|
|
21
|
+
from metadata.generated.schema.configuration.profilerConfiguration import MetricType
|
|
21
22
|
from metadata.profiler.metrics.core import StaticMetric, _label
|
|
22
23
|
from metadata.profiler.metrics.window.percentille_mixin import PercentilMixin
|
|
23
24
|
from metadata.profiler.orm.functions.length import LenFn
|
|
@@ -38,7 +39,7 @@ class FirstQuartile(StaticMetric, PercentilMixin):
|
|
|
38
39
|
|
|
39
40
|
@classmethod
|
|
40
41
|
def name(cls):
|
|
41
|
-
return
|
|
42
|
+
return MetricType.firstQuartile.value
|
|
42
43
|
|
|
43
44
|
@classmethod
|
|
44
45
|
def is_window_metric(cls):
|