openmetadata-ingestion 1.5.0.0rc2__py3-none-any.whl → 1.5.2.0__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/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 +1 -1
- metadata/generated/schema/api/classification/createTag.py +1 -1
- 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/createAPICollection.py +1 -1
- metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
- metadata/generated/schema/api/data/createChart.py +1 -1
- metadata/generated/schema/api/data/createContainer.py +1 -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 +1 -1
- 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/custom/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.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 +8 -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/createApiService.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 +1 -1
- 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 +1 -1
- metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
- metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
- 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 +1 -1
- metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
- metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
- metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -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/limitsConfiguration.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 +1 -1
- 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 +1 -1
- metadata/generated/schema/configuration/uiThemePreference.py +1 -1
- metadata/generated/schema/dataInsight/__init__.py +1 -1
- metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
- metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
- metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
- metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
- metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
- metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
- metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
- metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
- metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -21
- 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/unusedAssets.py +1 -1
- metadata/generated/schema/email/__init__.py +1 -1
- metadata/generated/schema/email/emailRequest.py +1 -1
- metadata/generated/schema/email/emailTemplate.py +1 -1
- metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
- metadata/generated/schema/email/smtpSettings.py +1 -1
- metadata/generated/schema/email/templateValidationReponse.py +1 -1
- 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 +1 -1
- metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
- 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 +1 -1
- metadata/generated/schema/entity/classification/tag.py +1 -1
- metadata/generated/schema/entity/data/__init__.py +1 -1
- metadata/generated/schema/entity/data/apiCollection.py +1 -1
- metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
- metadata/generated/schema/entity/data/chart.py +1 -1
- metadata/generated/schema/entity/data/container.py +1 -1
- metadata/generated/schema/entity/data/dashboard.py +1 -1
- metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
- 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 +1 -1
- metadata/generated/schema/entity/data/metrics.py +1 -1
- metadata/generated/schema/entity/data/mlmodel.py +1 -1
- 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 +2 -1
- 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 +8 -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 +1 -1
- metadata/generated/schema/entity/feed/customProperty.py +1 -1
- metadata/generated/schema/entity/feed/description.py +1 -1
- metadata/generated/schema/entity/feed/domain.py +1 -1
- metadata/generated/schema/entity/feed/entityInfo.py +1 -1
- metadata/generated/schema/entity/feed/owner.py +1 -1
- metadata/generated/schema/entity/feed/suggestion.py +1 -1
- metadata/generated/schema/entity/feed/tag.py +1 -1
- metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
- metadata/generated/schema/entity/feed/thread.py +1 -1
- 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 +1 -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 +1 -1
- metadata/generated/schema/entity/policies/policy.py +1 -1
- metadata/generated/schema/entity/services/__init__.py +1 -1
- metadata/generated/schema/entity/services/apiService.py +1 -1
- metadata/generated/schema/entity/services/connections/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/apiService/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/apiService/restConnection.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 +1 -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 +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
- 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 +1 -1
- metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -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 +1 -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 +1 -1
- metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -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 +1 -1
- metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapErpConnection.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 +4 -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 +1 -1
- metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
- 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 +1 -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 +1 -1
- metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
- 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/dbtCloudConnection.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/flinkConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
- 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 +1 -1
- 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 +1 -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 +1 -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 +1 -1
- 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/api/testEventSubscriptionDestination.py +1 -1
- metadata/generated/schema/events/emailAlertConfig.py +1 -1
- metadata/generated/schema/events/eventFilterRule.py +1 -1
- metadata/generated/schema/events/eventSubscription.py +1 -1
- 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 +1 -1
- metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
- 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 +1 -1
- 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/credentials/gitlabCredentials.py +1 -1
- metadata/generated/schema/security/sasl/__init__.py +1 -1
- metadata/generated/schema/security/sasl/saslClientConfig.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 +1 -1
- metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
- metadata/generated/schema/settings/__init__.py +1 -1
- metadata/generated/schema/settings/settings.py +1 -1
- 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/limitsResponse.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 +1 -1
- metadata/generated/schema/tests/customMetric.py +1 -1
- metadata/generated/schema/tests/dataQualityReport.py +1 -1
- metadata/generated/schema/tests/resolved.py +1 -1
- metadata/generated/schema/tests/testCase.py +1 -1
- metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
- metadata/generated/schema/tests/testDefinition.py +1 -1
- metadata/generated/schema/tests/testSuite.py +1 -1
- metadata/generated/schema/type/__init__.py +1 -1
- metadata/generated/schema/type/apiSchema.py +1 -1
- metadata/generated/schema/type/auditLog.py +1 -1
- metadata/generated/schema/type/basic.py +1 -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 +1 -1
- metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
- metadata/generated/schema/type/customProperty.py +1 -1
- metadata/generated/schema/type/dailyCount.py +1 -1
- metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
- metadata/generated/schema/type/entityHierarchy.py +1 -1
- metadata/generated/schema/type/entityHistory.py +1 -1
- metadata/generated/schema/type/entityLineage.py +1 -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 +1 -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/ingestion/connections/builders.py +6 -0
- metadata/ingestion/source/dashboard/tableau/metadata.py +10 -7
- metadata/ingestion/source/database/athena/models.py +4 -4
- metadata/ingestion/source/database/column_type_parser.py +1 -1
- metadata/ingestion/source/database/dbt/metadata.py +1 -1
- metadata/ingestion/source/database/postgres/converter_orm.py +52 -0
- metadata/ingestion/source/database/postgres/metadata.py +6 -0
- metadata/ingestion/source/database/postgres/metrics.py +42 -0
- metadata/ingestion/source/database/postgres/types/money.py +37 -0
- metadata/ingestion/source/database/redshift/connection.py +37 -9
- metadata/ingestion/source/database/redshift/queries.py +4 -5
- metadata/ingestion/source/database/saphana/cdata_parser.py +772 -0
- metadata/ingestion/source/database/saphana/lineage.py +159 -0
- metadata/ingestion/source/database/saphana/models.py +66 -0
- metadata/ingestion/source/database/saphana/queries.py +23 -0
- metadata/profiler/interface/sqlalchemy/profiler_interface.py +22 -9
- metadata/profiler/metrics/static/mean.py +8 -9
- metadata/profiler/orm/functions/median.py +11 -4
- metadata/profiler/orm/registry.py +3 -1
- metadata/utils/importer.py +26 -0
- {openmetadata_ingestion-1.5.0.0rc2.dist-info → openmetadata_ingestion-1.5.2.0.dist-info}/METADATA +339 -339
- {openmetadata_ingestion-1.5.0.0rc2.dist-info → openmetadata_ingestion-1.5.2.0.dist-info}/RECORD +605 -604
- metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithDescriptionByType.py +0 -48
- metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +0 -44
- metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +0 -46
- metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +0 -44
- metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +0 -39
- metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +0 -40
- {openmetadata_ingestion-1.5.0.0rc2.dist-info → openmetadata_ingestion-1.5.2.0.dist-info}/LICENSE +0 -0
- {openmetadata_ingestion-1.5.0.0rc2.dist-info → openmetadata_ingestion-1.5.2.0.dist-info}/WHEEL +0 -0
- {openmetadata_ingestion-1.5.0.0rc2.dist-info → openmetadata_ingestion-1.5.2.0.dist-info}/entry_points.txt +0 -0
- {openmetadata_ingestion-1.5.0.0rc2.dist-info → openmetadata_ingestion-1.5.2.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,159 @@
|
|
|
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
|
+
SAP Hana lineage module
|
|
13
|
+
"""
|
|
14
|
+
import traceback
|
|
15
|
+
from typing import Iterable, Optional
|
|
16
|
+
|
|
17
|
+
from sqlalchemy import text
|
|
18
|
+
|
|
19
|
+
from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
|
|
20
|
+
from metadata.generated.schema.entity.data.table import Table
|
|
21
|
+
from metadata.generated.schema.entity.services.connections.database.sapHanaConnection import (
|
|
22
|
+
SapHanaConnection,
|
|
23
|
+
)
|
|
24
|
+
from metadata.generated.schema.entity.services.ingestionPipelines.status import (
|
|
25
|
+
StackTraceError,
|
|
26
|
+
)
|
|
27
|
+
from metadata.generated.schema.metadataIngestion.workflow import (
|
|
28
|
+
Source as WorkflowSource,
|
|
29
|
+
)
|
|
30
|
+
from metadata.ingestion.api.models import Either
|
|
31
|
+
from metadata.ingestion.api.steps import InvalidSourceException, Source
|
|
32
|
+
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
33
|
+
from metadata.ingestion.source.connections import get_test_connection_fn
|
|
34
|
+
from metadata.ingestion.source.database.saphana.cdata_parser import (
|
|
35
|
+
ParsedLineage,
|
|
36
|
+
parse_registry,
|
|
37
|
+
)
|
|
38
|
+
from metadata.ingestion.source.database.saphana.models import SapHanaLineageModel
|
|
39
|
+
from metadata.ingestion.source.database.saphana.queries import SAPHANA_LINEAGE
|
|
40
|
+
from metadata.utils.logger import ingestion_logger
|
|
41
|
+
from metadata.utils.ssl_manager import get_ssl_connection
|
|
42
|
+
|
|
43
|
+
logger = ingestion_logger()
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class SaphanaLineageSource(Source):
|
|
47
|
+
"""
|
|
48
|
+
Get the lineage information of:
|
|
49
|
+
- calculationview
|
|
50
|
+
- analyticview
|
|
51
|
+
- attributeview
|
|
52
|
+
|
|
53
|
+
We support the following relationships:
|
|
54
|
+
- Analytic View and Attribute View based on a Table
|
|
55
|
+
- Calculation View based on an Analytic View, Attribute View, Calculation View or Table
|
|
56
|
+
|
|
57
|
+
Parse the CDATA XML definition from _SYS_REPO.ACTIVE_OBJECT
|
|
58
|
+
"""
|
|
59
|
+
|
|
60
|
+
def __init__(
|
|
61
|
+
self,
|
|
62
|
+
config: WorkflowSource,
|
|
63
|
+
metadata: OpenMetadata,
|
|
64
|
+
get_engine: bool = True,
|
|
65
|
+
):
|
|
66
|
+
super().__init__()
|
|
67
|
+
self.config = config
|
|
68
|
+
self.metadata = metadata
|
|
69
|
+
self.service_connection = self.config.serviceConnection.root.config
|
|
70
|
+
self.source_config = self.config.sourceConfig.config
|
|
71
|
+
self.engine = (
|
|
72
|
+
get_ssl_connection(self.service_connection) if get_engine else None
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
logger.info(
|
|
76
|
+
"Initializing SAP Hana Lineage Source. Note that we'll parse the lineage from CDATA XML definition "
|
|
77
|
+
+ "from _SYS_REPO.ACTIVE_OBJECT and we won't use the time-specific input parameters."
|
|
78
|
+
)
|
|
79
|
+
|
|
80
|
+
def prepare(self):
|
|
81
|
+
"""By default, there's nothing to prepare"""
|
|
82
|
+
|
|
83
|
+
@classmethod
|
|
84
|
+
def create(
|
|
85
|
+
cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
|
|
86
|
+
):
|
|
87
|
+
config: WorkflowSource = WorkflowSource.model_validate(config_dict)
|
|
88
|
+
connection: SapHanaConnection = config.serviceConnection.root.config
|
|
89
|
+
if not isinstance(connection, SapHanaConnection):
|
|
90
|
+
raise InvalidSourceException(
|
|
91
|
+
f"Expected SapHanaConnection, but got {connection}"
|
|
92
|
+
)
|
|
93
|
+
return cls(config, metadata)
|
|
94
|
+
|
|
95
|
+
def close(self) -> None:
|
|
96
|
+
self.engine.dispose()
|
|
97
|
+
|
|
98
|
+
def _iter(self, *_, **__) -> Iterable[Either[AddLineageRequest]]:
|
|
99
|
+
"""
|
|
100
|
+
Based on the query logs, prepare the lineage
|
|
101
|
+
and send it to the sink
|
|
102
|
+
"""
|
|
103
|
+
with self.engine.connect() as conn:
|
|
104
|
+
result = conn.execution_options(
|
|
105
|
+
stream_results=True, max_row_buffer=100
|
|
106
|
+
).execute(text(SAPHANA_LINEAGE))
|
|
107
|
+
for row in result:
|
|
108
|
+
try:
|
|
109
|
+
lineage_model = SapHanaLineageModel.validate(dict(row))
|
|
110
|
+
|
|
111
|
+
yield from self.parse_cdata(
|
|
112
|
+
metadata=self.metadata, lineage_model=lineage_model
|
|
113
|
+
)
|
|
114
|
+
except Exception as exc:
|
|
115
|
+
self.status.failed(
|
|
116
|
+
error=StackTraceError(
|
|
117
|
+
name=row["OBJECT_NAME"],
|
|
118
|
+
error=f"Error validating lineage model due to [{exc}]",
|
|
119
|
+
stackTrace=traceback.format_exc(),
|
|
120
|
+
)
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
def parse_cdata(
|
|
124
|
+
self, metadata: OpenMetadata, lineage_model: SapHanaLineageModel
|
|
125
|
+
) -> Iterable[Either[AddLineageRequest]]:
|
|
126
|
+
"""Parse the CDATA XML definition from _SYS_REPO.ACTIVE_OBJECT"""
|
|
127
|
+
parse_fn = parse_registry.registry.get(lineage_model.object_suffix.value)
|
|
128
|
+
try:
|
|
129
|
+
parsed_lineage: ParsedLineage = parse_fn(lineage_model.cdata)
|
|
130
|
+
to_entity: Table = metadata.get_by_name(
|
|
131
|
+
entity=Table,
|
|
132
|
+
fqn=lineage_model.get_fqn(
|
|
133
|
+
metadata=metadata,
|
|
134
|
+
service_name=self.config.serviceName,
|
|
135
|
+
),
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
if to_entity:
|
|
139
|
+
yield from parsed_lineage.to_request(
|
|
140
|
+
metadata=metadata,
|
|
141
|
+
service_name=self.config.serviceName,
|
|
142
|
+
to_entity=to_entity,
|
|
143
|
+
)
|
|
144
|
+
except Exception as exc:
|
|
145
|
+
error = (
|
|
146
|
+
f"Error parsing CDATA XML for {lineage_model.object_suffix} at "
|
|
147
|
+
+ f"{lineage_model.package_id}/{lineage_model.object_name} due to [{exc}]"
|
|
148
|
+
)
|
|
149
|
+
self.status.failed(
|
|
150
|
+
error=StackTraceError(
|
|
151
|
+
name=lineage_model.object_name,
|
|
152
|
+
error=error,
|
|
153
|
+
stackTrace=traceback.format_exc(),
|
|
154
|
+
)
|
|
155
|
+
)
|
|
156
|
+
|
|
157
|
+
def test_connection(self) -> None:
|
|
158
|
+
test_connection_fn = get_test_connection_fn(self.service_connection)
|
|
159
|
+
test_connection_fn(self.engine)
|
|
@@ -0,0 +1,66 @@
|
|
|
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
|
+
SAP Hana lineage module
|
|
13
|
+
"""
|
|
14
|
+
from enum import Enum
|
|
15
|
+
|
|
16
|
+
from pydantic import Field, computed_field
|
|
17
|
+
from typing_extensions import Annotated
|
|
18
|
+
|
|
19
|
+
from metadata.generated.schema.entity.data.table import Table
|
|
20
|
+
from metadata.ingestion.models.custom_pydantic import BaseModel
|
|
21
|
+
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
22
|
+
from metadata.utils import fqn
|
|
23
|
+
|
|
24
|
+
SYS_BIC_SCHEMA_NAME = "_SYS_BIC"
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class ViewType(Enum):
|
|
28
|
+
"""Supported SAP Hana Views"""
|
|
29
|
+
|
|
30
|
+
CALCULATION_VIEW = "calculationview"
|
|
31
|
+
ANALYTIC_VIEW = "analyticview"
|
|
32
|
+
ATTRIBUTE_VIEW = "attributeview"
|
|
33
|
+
# Artificially set to define calculationView internal models. This won't come from the ACTIVE_OBJECT table
|
|
34
|
+
LOGICAL = "logical"
|
|
35
|
+
DATA_BASE_TABLE = "table"
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
class SapHanaLineageModel(BaseModel):
|
|
39
|
+
"""SAP Hana Lineage model from _SYS_REPO.ACTIVE_OBJECT"""
|
|
40
|
+
|
|
41
|
+
package_id: Annotated[
|
|
42
|
+
str, Field(..., description="Package ID that hosts the model code")
|
|
43
|
+
]
|
|
44
|
+
object_name: Annotated[str, Field(..., description="View Name")]
|
|
45
|
+
object_suffix: Annotated[ViewType, Field(..., description="View Type")]
|
|
46
|
+
cdata: Annotated[str, Field(..., description="XML representation of the model")]
|
|
47
|
+
|
|
48
|
+
@computed_field
|
|
49
|
+
@property
|
|
50
|
+
def name(self) -> str:
|
|
51
|
+
"""
|
|
52
|
+
Actual name representation of the view in _SYS_BIC.VIEWS.
|
|
53
|
+
This is the name in OpenMetadata
|
|
54
|
+
"""
|
|
55
|
+
return f"{self.package_id}/{self.object_name}"
|
|
56
|
+
|
|
57
|
+
def get_fqn(self, metadata: OpenMetadata, service_name: str) -> str:
|
|
58
|
+
"""Build OM's FQN with the static schema name from _SYS_BIC"""
|
|
59
|
+
return fqn.build(
|
|
60
|
+
metadata,
|
|
61
|
+
entity_type=Table,
|
|
62
|
+
service_name=service_name,
|
|
63
|
+
database_name=None,
|
|
64
|
+
schema_name=SYS_BIC_SCHEMA_NAME,
|
|
65
|
+
table_name=self.name,
|
|
66
|
+
)
|
|
@@ -0,0 +1,23 @@
|
|
|
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
|
+
SAP Hana DB queries for metadata extraction
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
SAPHANA_LINEAGE = """
|
|
16
|
+
SELECT
|
|
17
|
+
PACKAGE_ID,
|
|
18
|
+
OBJECT_NAME,
|
|
19
|
+
OBJECT_SUFFIX,
|
|
20
|
+
CDATA
|
|
21
|
+
FROM _SYS_REPO.ACTIVE_OBJECT
|
|
22
|
+
WHERE OBJECT_SUFFIX IN ('analyticview', 'attributeview', 'calculationview');
|
|
23
|
+
"""
|
|
@@ -21,7 +21,7 @@ import threading
|
|
|
21
21
|
import traceback
|
|
22
22
|
from collections import defaultdict
|
|
23
23
|
from datetime import datetime
|
|
24
|
-
from typing import Dict, List, Optional
|
|
24
|
+
from typing import Any, Dict, List, Optional
|
|
25
25
|
|
|
26
26
|
from sqlalchemy import Column, inspect, text
|
|
27
27
|
from sqlalchemy.exc import DBAPIError, ProgrammingError, ResourceClosedError
|
|
@@ -451,14 +451,16 @@ class SQAProfilerInterface(ProfilerInterface, SQAInterfaceMixin):
|
|
|
451
451
|
column=metric_func.column,
|
|
452
452
|
sample=sample,
|
|
453
453
|
)
|
|
454
|
-
if row:
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
454
|
+
if row and isinstance(row, dict):
|
|
455
|
+
row = self._validate_nulls(row)
|
|
456
|
+
|
|
457
|
+
# System metrics return a list of dictionaries, with UPDATE, INSERT or DELETE ops results
|
|
458
|
+
if row and metric_func.metric_type == MetricTypes.System:
|
|
459
|
+
row = [
|
|
460
|
+
self._validate_nulls(r) if isinstance(r, dict) else r
|
|
461
|
+
for r in row
|
|
462
|
+
]
|
|
463
|
+
|
|
462
464
|
except Exception as exc:
|
|
463
465
|
error = (
|
|
464
466
|
f"{metric_func.column if metric_func.column is not None else metric_func.table.__tablename__} "
|
|
@@ -476,6 +478,17 @@ class SQAProfilerInterface(ProfilerInterface, SQAInterfaceMixin):
|
|
|
476
478
|
|
|
477
479
|
return row, column, metric_func.metric_type.value
|
|
478
480
|
|
|
481
|
+
@staticmethod
|
|
482
|
+
def _validate_nulls(row: Dict[str, Any]) -> Dict[str, Any]:
|
|
483
|
+
"""Detect if we are computing NaNs and replace them with None"""
|
|
484
|
+
for k, v in row.items():
|
|
485
|
+
if isinstance(v, float) and math.isnan(v):
|
|
486
|
+
logger.warning(
|
|
487
|
+
"NaN data detected and will be cast to null in OpenMetadata to maintain database parity"
|
|
488
|
+
)
|
|
489
|
+
row[k] = None
|
|
490
|
+
return row
|
|
491
|
+
|
|
479
492
|
# pylint: disable=use-dict-literal
|
|
480
493
|
def get_all_metrics(
|
|
481
494
|
self,
|
|
@@ -15,7 +15,7 @@ AVG Metric definition
|
|
|
15
15
|
from functools import partial
|
|
16
16
|
from typing import Callable, List, Optional, cast
|
|
17
17
|
|
|
18
|
-
from sqlalchemy import column
|
|
18
|
+
from sqlalchemy import column
|
|
19
19
|
from sqlalchemy.ext.compiler import compiles
|
|
20
20
|
from sqlalchemy.sql.functions import GenericFunction
|
|
21
21
|
|
|
@@ -39,20 +39,19 @@ from metadata.utils.logger import profiler_logger
|
|
|
39
39
|
logger = profiler_logger()
|
|
40
40
|
|
|
41
41
|
|
|
42
|
-
|
|
43
|
-
class avg(GenericFunction):
|
|
42
|
+
class AvgFn(GenericFunction):
|
|
44
43
|
name = "avg"
|
|
45
44
|
inherit_cache = CACHE
|
|
46
45
|
|
|
47
46
|
|
|
48
|
-
@compiles(
|
|
47
|
+
@compiles(AvgFn, Dialects.ClickHouse)
|
|
49
48
|
def _(element, compiler, **kw):
|
|
50
49
|
"""Handle case for empty table. If empty, clickhouse returns NaN"""
|
|
51
50
|
proc = compiler.process(element.clauses, **kw)
|
|
52
51
|
return f"if(isNaN(avg({proc})), null, avg({proc}))"
|
|
53
52
|
|
|
54
53
|
|
|
55
|
-
@compiles(
|
|
54
|
+
@compiles(AvgFn, Dialects.Redshift)
|
|
56
55
|
def _(element, compiler, **kw):
|
|
57
56
|
"""
|
|
58
57
|
Cast to decimal to get around potential integer overflow error
|
|
@@ -61,7 +60,7 @@ def _(element, compiler, **kw):
|
|
|
61
60
|
return f"avg(CAST({proc} AS DECIMAL(38,0)))"
|
|
62
61
|
|
|
63
62
|
|
|
64
|
-
@compiles(
|
|
63
|
+
@compiles(AvgFn, Dialects.MSSQL)
|
|
65
64
|
def _(element, compiler, **kw):
|
|
66
65
|
"""
|
|
67
66
|
Cast to decimal to get around potential integer overflow error -
|
|
@@ -71,7 +70,7 @@ def _(element, compiler, **kw):
|
|
|
71
70
|
return f"avg(cast({proc} as decimal))"
|
|
72
71
|
|
|
73
72
|
|
|
74
|
-
@compiles(
|
|
73
|
+
@compiles(AvgFn, Dialects.Trino)
|
|
75
74
|
def _(element, compiler, **kw):
|
|
76
75
|
proc = compiler.process(element.clauses, **kw)
|
|
77
76
|
first_clause = element.clauses.clauses[0]
|
|
@@ -108,10 +107,10 @@ class Mean(StaticMetric):
|
|
|
108
107
|
def fn(self):
|
|
109
108
|
"""sqlalchemy function"""
|
|
110
109
|
if is_quantifiable(self.col.type):
|
|
111
|
-
return
|
|
110
|
+
return AvgFn(column(self.col.name, self.col.type))
|
|
112
111
|
|
|
113
112
|
if is_concatenable(self.col.type):
|
|
114
|
-
return
|
|
113
|
+
return AvgFn(LenFn(column(self.col.name, self.col.type)))
|
|
115
114
|
|
|
116
115
|
logger.debug(
|
|
117
116
|
f"Don't know how to process type {self.col.type} when computing MEAN"
|
|
@@ -28,12 +28,19 @@ logger = profiler_logger()
|
|
|
28
28
|
class MedianFn(FunctionElement):
|
|
29
29
|
inherit_cache = CACHE
|
|
30
30
|
|
|
31
|
+
@staticmethod
|
|
32
|
+
def default_fn(elements, compiler, **kwargs): # pylint: disable=unused-argument
|
|
33
|
+
col = compiler.process(elements.clauses.clauses[0])
|
|
34
|
+
percentile = elements.clauses.clauses[2].value
|
|
35
|
+
return "percentile_cont(%.2f) WITHIN GROUP (ORDER BY %s ASC)" % (
|
|
36
|
+
percentile,
|
|
37
|
+
col,
|
|
38
|
+
)
|
|
39
|
+
|
|
31
40
|
|
|
32
41
|
@compiles(MedianFn)
|
|
33
|
-
def _(elements, compiler, **kwargs):
|
|
34
|
-
|
|
35
|
-
percentile = elements.clauses.clauses[2].value
|
|
36
|
-
return "percentile_cont(%.2f) WITHIN GROUP (ORDER BY %s ASC)" % (percentile, col)
|
|
42
|
+
def _(elements, compiler, **kwargs):
|
|
43
|
+
return MedianFn.default_fn(elements, compiler, **kwargs)
|
|
37
44
|
|
|
38
45
|
|
|
39
46
|
@compiles(MedianFn, Dialects.BigQuery)
|
|
@@ -162,7 +162,9 @@ def is_quantifiable(_type) -> bool:
|
|
|
162
162
|
"""
|
|
163
163
|
if isinstance(_type, DataType):
|
|
164
164
|
return _type.value in QUANTIFIABLE_SET
|
|
165
|
-
return
|
|
165
|
+
return (
|
|
166
|
+
is_numeric(_type) or is_integer(_type) or getattr(_type, "quantifiable", False)
|
|
167
|
+
)
|
|
166
168
|
|
|
167
169
|
|
|
168
170
|
def is_concatenable(_type) -> bool:
|
metadata/utils/importer.py
CHANGED
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
Helpers to import python classes and modules dynamically
|
|
13
13
|
"""
|
|
14
14
|
import importlib
|
|
15
|
+
import sys
|
|
15
16
|
import traceback
|
|
16
17
|
from enum import Enum
|
|
17
18
|
from typing import Any, Callable, Optional, Type, TypeVar
|
|
@@ -27,6 +28,7 @@ from metadata.generated.schema.metadataIngestion.workflow import Sink as Workflo
|
|
|
27
28
|
from metadata.ingestion.api.steps import BulkSink, Processor, Sink, Source, Stage
|
|
28
29
|
from metadata.utils.class_helper import get_service_type_from_source_type
|
|
29
30
|
from metadata.utils.logger import utils_logger
|
|
31
|
+
from metadata.utils.singleton import Singleton
|
|
30
32
|
|
|
31
33
|
logger = utils_logger()
|
|
32
34
|
|
|
@@ -244,3 +246,27 @@ def import_test_case_class(
|
|
|
244
246
|
test_definition_class,
|
|
245
247
|
)
|
|
246
248
|
)
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
class SideEffectsLoader(metaclass=Singleton):
|
|
252
|
+
modules = set(sys.modules.keys())
|
|
253
|
+
|
|
254
|
+
def import_side_effects(self, *modules):
|
|
255
|
+
"""Handles loading of side effects and caches modules that have already been imported.
|
|
256
|
+
Requires full module name."""
|
|
257
|
+
for module in modules:
|
|
258
|
+
if module not in self.modules:
|
|
259
|
+
try:
|
|
260
|
+
module = importlib.import_module(module)
|
|
261
|
+
SideEffectsLoader.modules.add(module.__name__)
|
|
262
|
+
except Exception as err:
|
|
263
|
+
logger.debug(traceback.format_exc())
|
|
264
|
+
raise DynamicImportException(
|
|
265
|
+
f"Cannot load object from {module} due to {err}"
|
|
266
|
+
)
|
|
267
|
+
else:
|
|
268
|
+
logger.debug(f"Module {module} already imported")
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
def import_side_effects(*modules):
|
|
272
|
+
SideEffectsLoader().import_side_effects(*modules)
|