openmetadata-ingestion 1.6.3.2.dev0__py3-none-any.whl → 1.6.4.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/addTagToAssetsRequest.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/createMetric.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 +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/governance/__init__.py +1 -1
- metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
- metadata/generated/schema/api/governance/createWorkflowInstanceState.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/createTestCaseResult.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 +2 -4
- 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/assetCertificationSettings.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/lineageSettings.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/searchSettings.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/configuration/workflowSettings.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 -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/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/appExtension.py +1 -1
- metadata/generated/schema/entity/applications/appRunRecord.py +3 -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/addCustomProperties.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/removeCustomPropertiesAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +10 -2
- 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 +23 -3
- 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/collateAIAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.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/dataRetentionConfiguration.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/collateAIAppPrivateConfig.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/metric.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 +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 +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/api/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/api/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/microStrategyConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.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/sigmaConnection.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/common/noConfigAuthenticationTypes.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 +9 -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/exasolConnection.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 +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 +9 -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/mlmodel/vertexaiConnection.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/datafactoryConnection.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/matillion/__init__.py +3 -0
- metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +39 -0
- metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +4 -25
- metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +3 -0
- metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +40 -0
- metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +38 -0
- metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +3 -2
- 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/pipeline/stitchConnection.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 +7 -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/eventSubscriptionDiagnosticInfo.py +1 -1
- metadata/generated/schema/events/api/eventsRecord.py +1 -1
- metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
- metadata/generated/schema/events/api/typedEvent.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/failedEventResponse.py +1 -1
- metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
- metadata/generated/schema/events/statusContext.py +1 -1
- metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
- metadata/generated/schema/events/subscriptionStatus.py +1 -1
- metadata/generated/schema/events/testDestinationStatus.py +1 -1
- metadata/generated/schema/governance/workflows/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
- metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
- metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +1 -1
- metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
- metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
- metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
- metadata/generated/schema/governance/workflows/workflowInstanceState.py +1 -1
- metadata/generated/schema/jobs/__init__.py +1 -1
- metadata/generated/schema/jobs/backgroundJob.py +1 -1
- metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
- metadata/generated/schema/metadataIngestion/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.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/databaseServiceAutoClassificationPipeline.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 +9 -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 +2 -2
- 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 +20 -20
- 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/assetCertification.py +1 -1
- metadata/generated/schema/type/auditLog.py +1 -1
- metadata/generated/schema/type/basic.py +8 -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/customProperties/tableConfig.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/lineage/masker.py +1 -1
- metadata/ingestion/lineage/models.py +1 -2
- metadata/ingestion/lineage/parser.py +2 -2
- metadata/ingestion/lineage/sql_lineage.py +111 -5
- metadata/ingestion/ometa/mixins/query_mixin.py +2 -0
- metadata/ingestion/ometa/routes.py +4 -0
- metadata/ingestion/source/api/rest/metadata.py +33 -24
- metadata/ingestion/source/dashboard/looker/metadata.py +115 -13
- metadata/ingestion/source/dashboard/powerbi/client.py +150 -35
- metadata/ingestion/source/database/bigquery/metadata.py +67 -2
- metadata/ingestion/source/database/databricks/connection.py +8 -3
- metadata/ingestion/source/database/databricks/lineage.py +12 -24
- metadata/ingestion/source/database/databricks/queries.py +24 -0
- metadata/ingestion/source/database/databricks/query_parser.py +11 -15
- metadata/ingestion/source/database/databricks/usage.py +7 -37
- metadata/ingestion/source/database/db2/connection.py +1 -1
- metadata/ingestion/source/database/db2/service_spec.py +1 -4
- metadata/ingestion/source/database/dbt/metadata.py +3 -1
- metadata/ingestion/source/database/druid/service_spec.py +1 -5
- metadata/ingestion/source/database/greenplum/service_spec.py +1 -5
- metadata/ingestion/source/database/hive/service_spec.py +1 -5
- metadata/ingestion/source/database/impala/service_spec.py +1 -5
- metadata/ingestion/source/database/lineage_source.py +12 -1
- metadata/ingestion/source/database/mariadb/service_spec.py +1 -9
- metadata/ingestion/source/database/pinotdb/service_spec.py +1 -5
- metadata/ingestion/source/database/postgres/usage.py +15 -0
- metadata/ingestion/source/database/query_parser_source.py +1 -0
- metadata/ingestion/source/database/redshift/metadata.py +31 -11
- metadata/ingestion/source/database/redshift/queries.py +5 -0
- metadata/ingestion/source/database/singlestore/service_spec.py +1 -6
- metadata/ingestion/source/database/snowflake/connection.py +10 -2
- metadata/ingestion/source/database/snowflake/lineage.py +3 -0
- metadata/ingestion/source/database/snowflake/metadata.py +3 -0
- metadata/ingestion/source/database/snowflake/queries.py +8 -8
- metadata/ingestion/source/database/snowflake/query_parser.py +1 -0
- metadata/ingestion/source/database/sqlite/service_spec.py +1 -5
- metadata/ingestion/source/database/teradata/service_spec.py +1 -5
- metadata/ingestion/source/database/trino/connection.py +13 -0
- metadata/ingestion/source/database/unitycatalog/lineage.py +56 -32
- metadata/ingestion/source/database/unitycatalog/query_parser.py +7 -0
- metadata/ingestion/source/database/unitycatalog/service_spec.py +4 -0
- metadata/ingestion/source/database/unitycatalog/usage.py +41 -2
- metadata/ingestion/source/database/usage_source.py +1 -1
- metadata/ingestion/source/pipeline/nifi/connection.py +4 -2
- metadata/profiler/interface/sqlalchemy/unity_catalog/sampler_interface.py +29 -0
- metadata/profiler/source/fetcher/config.py +4 -0
- metadata/profiler/source/fetcher/fetcher_strategy.py +19 -2
- metadata/sampler/sampler_interface.py +0 -3
- metadata/sampler/sqlalchemy/bigquery/sampler.py +1 -2
- metadata/sampler/sqlalchemy/sampler.py +22 -9
- {openmetadata_ingestion-1.6.3.2.dev0.dist-info → openmetadata_ingestion-1.6.4.0.dist-info}/METADATA +378 -359
- {openmetadata_ingestion-1.6.3.2.dev0.dist-info → openmetadata_ingestion-1.6.4.0.dist-info}/RECORD +699 -693
- {openmetadata_ingestion-1.6.3.2.dev0.dist-info → openmetadata_ingestion-1.6.4.0.dist-info}/LICENSE +0 -0
- {openmetadata_ingestion-1.6.3.2.dev0.dist-info → openmetadata_ingestion-1.6.4.0.dist-info}/WHEEL +0 -0
- {openmetadata_ingestion-1.6.3.2.dev0.dist-info → openmetadata_ingestion-1.6.4.0.dist-info}/entry_points.txt +0 -0
- {openmetadata_ingestion-1.6.3.2.dev0.dist-info → openmetadata_ingestion-1.6.4.0.dist-info}/top_level.txt +0 -0
|
@@ -47,6 +47,8 @@ class SnowflakeLineageSource(
|
|
|
47
47
|
AND (
|
|
48
48
|
QUERY_TYPE IN ('MERGE', 'UPDATE','CREATE_TABLE_AS_SELECT')
|
|
49
49
|
OR (QUERY_TYPE = 'INSERT' and query_text ILIKE '%%insert%%into%%select%%')
|
|
50
|
+
OR (QUERY_TYPE = 'ALTER' and query_text ILIKE '%%alter%%table%%swap%%')
|
|
51
|
+
OR (QUERY_TYPE = 'CREATE_TABLE' and query_text ILIKE '%%clone%%')
|
|
50
52
|
)
|
|
51
53
|
"""
|
|
52
54
|
|
|
@@ -60,6 +62,7 @@ class SnowflakeLineageSource(
|
|
|
60
62
|
start, _ = get_start_and_end(self.source_config.queryLogDuration)
|
|
61
63
|
query = self.stored_procedure_query.format(
|
|
62
64
|
start_date=start,
|
|
65
|
+
account_usage=self.service_connection.accountUsageSchema,
|
|
63
66
|
)
|
|
64
67
|
queries_dict = self.procedure_queries_dict(
|
|
65
68
|
query=query,
|
|
@@ -418,6 +418,7 @@ class SnowflakeSource(
|
|
|
418
418
|
SNOWFLAKE_FETCH_ALL_TAGS.format(
|
|
419
419
|
database_name=self.context.get().database,
|
|
420
420
|
schema_name=schema_name,
|
|
421
|
+
account_usage=self.service_connection.accountUsageSchema,
|
|
421
422
|
)
|
|
422
423
|
)
|
|
423
424
|
|
|
@@ -431,6 +432,7 @@ class SnowflakeSource(
|
|
|
431
432
|
SNOWFLAKE_FETCH_ALL_TAGS.format(
|
|
432
433
|
database_name=f'"{self.context.get().database}"',
|
|
433
434
|
schema_name=f'"{self.context.get().database_schema}"',
|
|
435
|
+
account_usage=self.service_connection.accountUsageSchema,
|
|
434
436
|
)
|
|
435
437
|
)
|
|
436
438
|
except Exception as inner_exc:
|
|
@@ -635,6 +637,7 @@ class SnowflakeSource(
|
|
|
635
637
|
query.format(
|
|
636
638
|
database_name=self.context.get().database,
|
|
637
639
|
schema_name=self.context.get().database_schema,
|
|
640
|
+
account_usage=self.service_connection.accountUsageSchema,
|
|
638
641
|
)
|
|
639
642
|
).all()
|
|
640
643
|
for row in results:
|
|
@@ -25,7 +25,7 @@ SNOWFLAKE_SQL_STATEMENT = textwrap.dedent(
|
|
|
25
25
|
start_time "start_time",
|
|
26
26
|
end_time "end_time",
|
|
27
27
|
total_elapsed_time "duration"
|
|
28
|
-
from
|
|
28
|
+
from {account_usage}.query_history
|
|
29
29
|
WHERE query_text NOT LIKE '/* {{"app": "OpenMetadata", %%}} */%%'
|
|
30
30
|
AND query_text NOT LIKE '/* {{"app": "dbt", %%}} */%%'
|
|
31
31
|
AND start_time between to_timestamp_ltz('{start_time}') and to_timestamp_ltz('{end_time}')
|
|
@@ -39,7 +39,7 @@ SNOWFLAKE_SESSION_TAG_QUERY = 'ALTER SESSION SET QUERY_TAG="{query_tag}"'
|
|
|
39
39
|
SNOWFLAKE_FETCH_ALL_TAGS = textwrap.dedent(
|
|
40
40
|
"""
|
|
41
41
|
select TAG_NAME, TAG_VALUE, OBJECT_DATABASE, OBJECT_SCHEMA, OBJECT_NAME, COLUMN_NAME
|
|
42
|
-
from
|
|
42
|
+
from {account_usage}.tag_references
|
|
43
43
|
where OBJECT_DATABASE = '{database_name}'
|
|
44
44
|
and OBJECT_SCHEMA = '{schema_name}'
|
|
45
45
|
"""
|
|
@@ -234,11 +234,11 @@ SHOW EXTERNAL TABLES IN DATABASE "{database_name}"
|
|
|
234
234
|
"""
|
|
235
235
|
|
|
236
236
|
SNOWFLAKE_TEST_FETCH_TAG = """
|
|
237
|
-
select TAG_NAME from
|
|
237
|
+
select TAG_NAME from {account_usage}.tag_references limit 1
|
|
238
238
|
"""
|
|
239
239
|
|
|
240
240
|
SNOWFLAKE_TEST_GET_QUERIES = """
|
|
241
|
-
SELECT query_text from
|
|
241
|
+
SELECT query_text from {account_usage}.query_history limit 1
|
|
242
242
|
"""
|
|
243
243
|
|
|
244
244
|
SNOWFLAKE_TEST_GET_TABLES = """
|
|
@@ -296,7 +296,7 @@ SELECT
|
|
|
296
296
|
ARGUMENT_SIGNATURE AS signature,
|
|
297
297
|
COMMENT as comment,
|
|
298
298
|
'StoredProcedure' as procedure_type
|
|
299
|
-
FROM
|
|
299
|
+
FROM {account_usage}.PROCEDURES
|
|
300
300
|
WHERE PROCEDURE_CATALOG = '{database_name}'
|
|
301
301
|
AND PROCEDURE_SCHEMA = '{schema_name}'
|
|
302
302
|
AND DELETED IS NULL
|
|
@@ -313,7 +313,7 @@ SELECT
|
|
|
313
313
|
ARGUMENT_SIGNATURE AS signature,
|
|
314
314
|
COMMENT as comment,
|
|
315
315
|
'UDF' as procedure_type
|
|
316
|
-
FROM
|
|
316
|
+
FROM {account_usage}.FUNCTIONS
|
|
317
317
|
WHERE FUNCTION_CATALOG = '{database_name}'
|
|
318
318
|
AND FUNCTION_SCHEMA = '{schema_name}'
|
|
319
319
|
AND DELETED IS NULL
|
|
@@ -336,7 +336,7 @@ WITH SP_HISTORY AS (
|
|
|
336
336
|
SESSION_ID,
|
|
337
337
|
START_TIME,
|
|
338
338
|
END_TIME
|
|
339
|
-
FROM
|
|
339
|
+
FROM {account_usage}.QUERY_HISTORY SP
|
|
340
340
|
WHERE QUERY_TYPE = 'CALL'
|
|
341
341
|
AND START_TIME >= '{start_date}'
|
|
342
342
|
AND QUERY_TEXT <> ''
|
|
@@ -353,7 +353,7 @@ Q_HISTORY AS (
|
|
|
353
353
|
USER_NAME,
|
|
354
354
|
SCHEMA_NAME,
|
|
355
355
|
DATABASE_NAME
|
|
356
|
-
FROM
|
|
356
|
+
FROM {account_usage}.QUERY_HISTORY SP
|
|
357
357
|
WHERE QUERY_TYPE <> 'CALL'
|
|
358
358
|
AND QUERY_TEXT NOT LIKE '/* {{"app": "OpenMetadata", %%}} */%%'
|
|
359
359
|
AND QUERY_TEXT NOT LIKE '/* {{"app": "dbt", %%}} */%%'
|
|
@@ -60,6 +60,7 @@ class SnowflakeQueryParserSource(QueryParserSource, ABC):
|
|
|
60
60
|
end_time=end_time,
|
|
61
61
|
result_limit=self.config.sourceConfig.config.resultLimit,
|
|
62
62
|
filters=self.get_filters(),
|
|
63
|
+
account_usage=self.service_connection.accountUsageSchema,
|
|
63
64
|
)
|
|
64
65
|
|
|
65
66
|
def check_life_cycle_query(
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
from metadata.ingestion.source.database.sqlite.lineage import SqliteLineageSource
|
|
2
1
|
from metadata.ingestion.source.database.sqlite.metadata import SqliteSource
|
|
3
2
|
from metadata.utils.service_spec.default import DefaultDatabaseSpec
|
|
4
3
|
|
|
5
|
-
ServiceSpec = DefaultDatabaseSpec(
|
|
6
|
-
metadata_source_class=SqliteSource,
|
|
7
|
-
lineage_source_class=SqliteLineageSource,
|
|
8
|
-
)
|
|
4
|
+
ServiceSpec = DefaultDatabaseSpec(metadata_source_class=SqliteSource)
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
from metadata.ingestion.source.database.teradata.lineage import TeradataLineageSource
|
|
2
1
|
from metadata.ingestion.source.database.teradata.metadata import TeradataSource
|
|
3
2
|
from metadata.utils.service_spec.default import DefaultDatabaseSpec
|
|
4
3
|
|
|
5
|
-
ServiceSpec = DefaultDatabaseSpec(
|
|
6
|
-
metadata_source_class=TeradataSource,
|
|
7
|
-
lineage_source_class=TeradataLineageSource,
|
|
8
|
-
)
|
|
4
|
+
ServiceSpec = DefaultDatabaseSpec(metadata_source_class=TeradataSource)
|
|
@@ -39,6 +39,7 @@ from metadata.ingestion.connections.builders import (
|
|
|
39
39
|
create_generic_db_connection,
|
|
40
40
|
get_connection_args_common,
|
|
41
41
|
init_empty_connection_arguments,
|
|
42
|
+
init_empty_connection_options,
|
|
42
43
|
)
|
|
43
44
|
from metadata.ingestion.connections.secrets import connection_with_options_secrets
|
|
44
45
|
from metadata.ingestion.connections.test_connections import (
|
|
@@ -135,6 +136,10 @@ def get_connection(connection: TrinoConnection) -> Engine:
|
|
|
135
136
|
# here we are creating a copy of connection, because we need to dynamically
|
|
136
137
|
# add auth params to connectionArguments, which we do no intend to store
|
|
137
138
|
# in original connection object and in OpenMetadata database
|
|
139
|
+
from trino.sqlalchemy.dialect import TrinoDialect
|
|
140
|
+
|
|
141
|
+
TrinoDialect.is_disconnect = _is_disconnect
|
|
142
|
+
|
|
138
143
|
connection_copy = deepcopy(connection)
|
|
139
144
|
if connection_copy.verify:
|
|
140
145
|
connection_copy.connectionArguments = (
|
|
@@ -183,3 +188,11 @@ def test_connection(
|
|
|
183
188
|
queries=queries,
|
|
184
189
|
timeout_seconds=timeout_seconds,
|
|
185
190
|
)
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
# pylint: disable=unused-argument
|
|
194
|
+
def _is_disconnect(self, e, connection, cursor):
|
|
195
|
+
"""is_disconnect method for the Databricks dialect"""
|
|
196
|
+
if "JWT expired" in str(e):
|
|
197
|
+
return True
|
|
198
|
+
return False
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
"""
|
|
12
12
|
Databricks Unity Catalog Lineage Source Module
|
|
13
13
|
"""
|
|
14
|
+
import traceback
|
|
14
15
|
from typing import Iterable, Optional
|
|
15
16
|
|
|
16
17
|
from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
|
|
@@ -27,6 +28,7 @@ from metadata.generated.schema.type.entityLineage import (
|
|
|
27
28
|
EntitiesEdge,
|
|
28
29
|
LineageDetails,
|
|
29
30
|
)
|
|
31
|
+
from metadata.generated.schema.type.entityLineage import Source as LineageSource
|
|
30
32
|
from metadata.generated.schema.type.entityReference import EntityReference
|
|
31
33
|
from metadata.ingestion.api.models import Either
|
|
32
34
|
from metadata.ingestion.api.steps import InvalidSourceException, Source
|
|
@@ -109,9 +111,59 @@ class UnitycatalogLineageSource(Source):
|
|
|
109
111
|
)
|
|
110
112
|
)
|
|
111
113
|
if col_lineage:
|
|
112
|
-
return LineageDetails(
|
|
114
|
+
return LineageDetails(
|
|
115
|
+
columnsLineage=col_lineage, source=LineageSource.QueryLineage
|
|
116
|
+
)
|
|
113
117
|
return None
|
|
114
118
|
|
|
119
|
+
def _handle_upstream_table(
|
|
120
|
+
self,
|
|
121
|
+
table_streams: LineageTableStreams,
|
|
122
|
+
table: Table,
|
|
123
|
+
databricks_table_fqn: str,
|
|
124
|
+
) -> Iterable[Either[AddLineageRequest]]:
|
|
125
|
+
for upstream_table in table_streams.upstream_tables:
|
|
126
|
+
try:
|
|
127
|
+
if not upstream_table.name:
|
|
128
|
+
continue
|
|
129
|
+
from_entity_fqn = fqn.build(
|
|
130
|
+
metadata=self.metadata,
|
|
131
|
+
entity_type=Table,
|
|
132
|
+
database_name=upstream_table.catalog_name,
|
|
133
|
+
schema_name=upstream_table.schema_name,
|
|
134
|
+
table_name=upstream_table.name,
|
|
135
|
+
service_name=self.config.serviceName,
|
|
136
|
+
)
|
|
137
|
+
|
|
138
|
+
from_entity = self.metadata.get_by_name(
|
|
139
|
+
entity=Table, fqn=from_entity_fqn
|
|
140
|
+
)
|
|
141
|
+
if from_entity:
|
|
142
|
+
lineage_details = self._get_lineage_details(
|
|
143
|
+
from_table=from_entity,
|
|
144
|
+
to_table=table,
|
|
145
|
+
databricks_table_fqn=databricks_table_fqn,
|
|
146
|
+
)
|
|
147
|
+
yield Either(
|
|
148
|
+
left=None,
|
|
149
|
+
right=AddLineageRequest(
|
|
150
|
+
edge=EntitiesEdge(
|
|
151
|
+
toEntity=EntityReference(id=table.id, type="table"),
|
|
152
|
+
fromEntity=EntityReference(
|
|
153
|
+
id=from_entity.id, type="table"
|
|
154
|
+
),
|
|
155
|
+
lineageDetails=lineage_details,
|
|
156
|
+
)
|
|
157
|
+
),
|
|
158
|
+
)
|
|
159
|
+
except Exception:
|
|
160
|
+
logger.debug(
|
|
161
|
+
"Error while processing lineage for "
|
|
162
|
+
f"{upstream_table.catalog_name}.{upstream_table.schema_name}.{upstream_table.name}"
|
|
163
|
+
f" -> {databricks_table_fqn}"
|
|
164
|
+
)
|
|
165
|
+
logger.debug(traceback.format_exc())
|
|
166
|
+
|
|
115
167
|
def _iter(self, *_, **__) -> Iterable[Either[AddLineageRequest]]:
|
|
116
168
|
"""
|
|
117
169
|
Based on the query logs, prepare the lineage
|
|
@@ -128,37 +180,9 @@ class UnitycatalogLineageSource(Source):
|
|
|
128
180
|
table_streams: LineageTableStreams = self.client.get_table_lineage(
|
|
129
181
|
databricks_table_fqn
|
|
130
182
|
)
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
entity_type=Table,
|
|
135
|
-
database_name=upstream_table.catalog_name,
|
|
136
|
-
schema_name=upstream_table.schema_name,
|
|
137
|
-
table_name=upstream_table.name,
|
|
138
|
-
service_name=self.config.serviceName,
|
|
139
|
-
)
|
|
140
|
-
|
|
141
|
-
from_entity = self.metadata.get_by_name(
|
|
142
|
-
entity=Table, fqn=from_entity_fqn
|
|
143
|
-
)
|
|
144
|
-
if from_entity:
|
|
145
|
-
lineage_details = self._get_lineage_details(
|
|
146
|
-
from_table=from_entity,
|
|
147
|
-
to_table=table,
|
|
148
|
-
databricks_table_fqn=databricks_table_fqn,
|
|
149
|
-
)
|
|
150
|
-
yield Either(
|
|
151
|
-
left=None,
|
|
152
|
-
right=AddLineageRequest(
|
|
153
|
-
edge=EntitiesEdge(
|
|
154
|
-
toEntity=EntityReference(id=table.id, type="table"),
|
|
155
|
-
fromEntity=EntityReference(
|
|
156
|
-
id=from_entity.id, type="table"
|
|
157
|
-
),
|
|
158
|
-
lineageDetails=lineage_details,
|
|
159
|
-
)
|
|
160
|
-
),
|
|
161
|
-
)
|
|
183
|
+
yield from self._handle_upstream_table(
|
|
184
|
+
table_streams, table, databricks_table_fqn
|
|
185
|
+
)
|
|
162
186
|
|
|
163
187
|
def test_connection(self) -> None:
|
|
164
188
|
test_connection_fn = get_test_connection_fn(self.service_connection)
|
|
@@ -44,6 +44,13 @@ class UnityCatalogQueryParserSource(
|
|
|
44
44
|
|
|
45
45
|
filters: str
|
|
46
46
|
|
|
47
|
+
def _init_super(
|
|
48
|
+
self,
|
|
49
|
+
config: WorkflowSource,
|
|
50
|
+
metadata: OpenMetadata,
|
|
51
|
+
):
|
|
52
|
+
super().__init__(config, metadata, False)
|
|
53
|
+
|
|
47
54
|
# pylint: disable=super-init-not-called
|
|
48
55
|
def __init__(self, config: WorkflowSource, metadata: OpenMetadata):
|
|
49
56
|
self._init_super(config=config, metadata=metadata)
|
|
@@ -11,6 +11,9 @@ from metadata.ingestion.source.database.unitycatalog.usage import (
|
|
|
11
11
|
from metadata.profiler.interface.sqlalchemy.unity_catalog.profiler_interface import (
|
|
12
12
|
UnityCatalogProfilerInterface,
|
|
13
13
|
)
|
|
14
|
+
from metadata.profiler.interface.sqlalchemy.unity_catalog.sampler_interface import (
|
|
15
|
+
UnityCatalogSamplerInterface,
|
|
16
|
+
)
|
|
14
17
|
from metadata.utils.service_spec.default import DefaultDatabaseSpec
|
|
15
18
|
|
|
16
19
|
ServiceSpec = DefaultDatabaseSpec(
|
|
@@ -19,4 +22,5 @@ ServiceSpec = DefaultDatabaseSpec(
|
|
|
19
22
|
usage_source_class=UnitycatalogUsageSource,
|
|
20
23
|
profiler_class=UnityCatalogProfilerInterface,
|
|
21
24
|
test_suite_class=UnityCatalogTestSuiteInterface,
|
|
25
|
+
sampler_class=UnityCatalogSamplerInterface,
|
|
22
26
|
)
|
|
@@ -11,17 +11,22 @@
|
|
|
11
11
|
"""
|
|
12
12
|
unity catalog usage module
|
|
13
13
|
"""
|
|
14
|
+
import traceback
|
|
15
|
+
from datetime import datetime
|
|
16
|
+
from typing import Iterable
|
|
14
17
|
|
|
15
|
-
from metadata.
|
|
18
|
+
from metadata.generated.schema.type.basic import DateTime
|
|
19
|
+
from metadata.generated.schema.type.tableQuery import TableQueries, TableQuery
|
|
16
20
|
from metadata.ingestion.source.database.unitycatalog.query_parser import (
|
|
17
21
|
UnityCatalogQueryParserSource,
|
|
18
22
|
)
|
|
23
|
+
from metadata.ingestion.source.database.usage_source import UsageSource
|
|
19
24
|
from metadata.utils.logger import ingestion_logger
|
|
20
25
|
|
|
21
26
|
logger = ingestion_logger()
|
|
22
27
|
|
|
23
28
|
|
|
24
|
-
class UnitycatalogUsageSource(UnityCatalogQueryParserSource,
|
|
29
|
+
class UnitycatalogUsageSource(UnityCatalogQueryParserSource, UsageSource):
|
|
25
30
|
"""
|
|
26
31
|
UnityCatalog Usage Source
|
|
27
32
|
|
|
@@ -29,3 +34,37 @@ class UnitycatalogUsageSource(UnityCatalogQueryParserSource, DatabricksUsageSour
|
|
|
29
34
|
DatabricksUsageSource as both the sources would call
|
|
30
35
|
the same API for fetching Usage Queries
|
|
31
36
|
"""
|
|
37
|
+
|
|
38
|
+
def yield_table_queries(self) -> Iterable[TableQuery]:
|
|
39
|
+
"""
|
|
40
|
+
Method to yield TableQueries
|
|
41
|
+
"""
|
|
42
|
+
queries = []
|
|
43
|
+
data = self.client.list_query_history(
|
|
44
|
+
start_date=self.start,
|
|
45
|
+
end_date=self.end,
|
|
46
|
+
)
|
|
47
|
+
for row in data or []:
|
|
48
|
+
try:
|
|
49
|
+
if self.client.is_query_valid(row):
|
|
50
|
+
queries.append(
|
|
51
|
+
TableQuery(
|
|
52
|
+
dialect=self.dialect.value,
|
|
53
|
+
query=row.get("query_text"),
|
|
54
|
+
userName=row.get("user_name"),
|
|
55
|
+
startTime=str(row.get("query_start_time_ms")),
|
|
56
|
+
endTime=str(row.get("execution_end_time_ms")),
|
|
57
|
+
analysisDate=DateTime(datetime.now()),
|
|
58
|
+
serviceName=self.config.serviceName,
|
|
59
|
+
duration=row.get("duration")
|
|
60
|
+
if row.get("duration")
|
|
61
|
+
else None,
|
|
62
|
+
)
|
|
63
|
+
)
|
|
64
|
+
except Exception as err:
|
|
65
|
+
logger.debug(traceback.format_exc())
|
|
66
|
+
logger.warning(
|
|
67
|
+
f"Failed to process query {row.get('query_text')} due to: {err}"
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
yield TableQueries(queries=queries)
|
|
@@ -153,7 +153,7 @@ class UsageSource(QueryParserSource, ABC):
|
|
|
153
153
|
if query:
|
|
154
154
|
logger.debug(
|
|
155
155
|
(
|
|
156
|
-
f"###### USAGE QUERY #######\n{mask_query(query, self.dialect.value)}"
|
|
156
|
+
f"###### USAGE QUERY #######\n{mask_query(query, self.dialect.value) or query}"
|
|
157
157
|
"\n##########################"
|
|
158
158
|
)
|
|
159
159
|
)
|
|
@@ -17,8 +17,10 @@ from typing import Optional
|
|
|
17
17
|
from metadata.generated.schema.entity.automations.workflow import (
|
|
18
18
|
Workflow as AutomationWorkflow,
|
|
19
19
|
)
|
|
20
|
+
from metadata.generated.schema.entity.services.connections.pipeline.nifi.basicAuth import (
|
|
21
|
+
NifiBasicAuth,
|
|
22
|
+
)
|
|
20
23
|
from metadata.generated.schema.entity.services.connections.pipeline.nifiConnection import (
|
|
21
|
-
BasicAuthentication,
|
|
22
24
|
NifiConnection,
|
|
23
25
|
)
|
|
24
26
|
from metadata.generated.schema.entity.services.connections.testConnectionResult import (
|
|
@@ -34,7 +36,7 @@ def get_connection(connection: NifiConnection) -> NifiClient:
|
|
|
34
36
|
"""
|
|
35
37
|
Create connection
|
|
36
38
|
"""
|
|
37
|
-
if isinstance(connection.nifiConfig,
|
|
39
|
+
if isinstance(connection.nifiConfig, NifiBasicAuth):
|
|
38
40
|
return NifiClient(
|
|
39
41
|
host_port=connection.hostPort,
|
|
40
42
|
username=connection.nifiConfig.username,
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
Interfaces with database for all database engine
|
|
14
|
+
supporting sqlalchemy abstraction layer
|
|
15
|
+
"""
|
|
16
|
+
from metadata.ingestion.source.database.databricks.connection import (
|
|
17
|
+
get_connection as databricks_get_connection,
|
|
18
|
+
)
|
|
19
|
+
from metadata.sampler.sqlalchemy.sampler import SQASampler
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class UnityCatalogSamplerInterface(SQASampler):
|
|
23
|
+
def get_client(self):
|
|
24
|
+
"""client is the session for SQA"""
|
|
25
|
+
self.connection = databricks_get_connection(self.service_connection_config)
|
|
26
|
+
self.client = super().get_client()
|
|
27
|
+
self.set_catalog(self.client)
|
|
28
|
+
|
|
29
|
+
return self.client
|
|
@@ -17,6 +17,7 @@ from abc import ABC, abstractmethod
|
|
|
17
17
|
from typing import Iterable, Iterator, Optional, cast
|
|
18
18
|
|
|
19
19
|
from metadata.generated.schema.entity.data.database import Database
|
|
20
|
+
from metadata.generated.schema.entity.data.table import TableType
|
|
20
21
|
from metadata.generated.schema.entity.services.ingestionPipelines.status import (
|
|
21
22
|
StackTraceError,
|
|
22
23
|
)
|
|
@@ -115,13 +116,13 @@ class DatabaseFetcherStrategy(FetcherStrategy):
|
|
|
115
116
|
super().__init__(config, metadata, global_profiler_config, status)
|
|
116
117
|
self.source_config = cast(
|
|
117
118
|
EntityFilterConfigInterface, self.source_config
|
|
118
|
-
) # Satisfy
|
|
119
|
+
) # Satisfy typechecker
|
|
119
120
|
|
|
120
121
|
def _filter_databases(self, databases: Iterable[Database]) -> Iterable[Database]:
|
|
121
122
|
"""Filter databases based on the filter pattern
|
|
122
123
|
|
|
123
124
|
Args:
|
|
124
|
-
|
|
125
|
+
databases (Database): Database to filter
|
|
125
126
|
|
|
126
127
|
Returns:
|
|
127
128
|
bool
|
|
@@ -192,6 +193,21 @@ class DatabaseFetcherStrategy(FetcherStrategy):
|
|
|
192
193
|
|
|
193
194
|
return False
|
|
194
195
|
|
|
196
|
+
def _filter_views(self, table: Table) -> bool:
|
|
197
|
+
"""Filter the tables based on include views configuration"""
|
|
198
|
+
# If we include views, nothing to filter
|
|
199
|
+
if self.source_config.includeViews:
|
|
200
|
+
return False
|
|
201
|
+
|
|
202
|
+
# Otherwise, filter out views
|
|
203
|
+
if table.tableType == TableType.View:
|
|
204
|
+
self.status.filter(
|
|
205
|
+
table.name.root, f"We are not including views {table.name.root}"
|
|
206
|
+
)
|
|
207
|
+
return True
|
|
208
|
+
|
|
209
|
+
return False
|
|
210
|
+
|
|
195
211
|
def _filter_column_metrics_computation(self):
|
|
196
212
|
"""Filter"""
|
|
197
213
|
|
|
@@ -242,6 +258,7 @@ class DatabaseFetcherStrategy(FetcherStrategy):
|
|
|
242
258
|
not self.source_config.classificationFilterPattern
|
|
243
259
|
or not self.filter_classifications(table)
|
|
244
260
|
)
|
|
261
|
+
and not self._filter_views(table)
|
|
245
262
|
]
|
|
246
263
|
|
|
247
264
|
return tables
|
|
@@ -76,9 +76,6 @@ class SamplerInterface(ABC):
|
|
|
76
76
|
self._columns: Optional[List[SQALikeColumn]] = None
|
|
77
77
|
self.sample_config = sample_config
|
|
78
78
|
|
|
79
|
-
if not self.sample_config.profileSample:
|
|
80
|
-
self.sample_config.profileSample = 100
|
|
81
|
-
|
|
82
79
|
self.entity = entity
|
|
83
80
|
self.include_columns = include_columns
|
|
84
81
|
self.exclude_columns = exclude_columns
|
|
@@ -54,7 +54,6 @@ class BigQuerySampler(SQASampler):
|
|
|
54
54
|
sample_query: Optional[str] = None,
|
|
55
55
|
storage_config: DataStorageConfig = None,
|
|
56
56
|
sample_data_count: Optional[int] = SAMPLE_DATA_DEFAULT_COUNT,
|
|
57
|
-
table_type: TableType = None,
|
|
58
57
|
**kwargs,
|
|
59
58
|
):
|
|
60
59
|
super().__init__(
|
|
@@ -68,7 +67,7 @@ class BigQuerySampler(SQASampler):
|
|
|
68
67
|
sample_data_count=sample_data_count,
|
|
69
68
|
**kwargs,
|
|
70
69
|
)
|
|
71
|
-
self.raw_dataset_type: TableType =
|
|
70
|
+
self.raw_dataset_type: Optional[TableType] = entity.tableType
|
|
72
71
|
|
|
73
72
|
def set_tablesample(self, selectable: SqaTable):
|
|
74
73
|
"""Set the TABLESAMPLE clause for BigQuery
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
Helper module to handle data sampling
|
|
13
13
|
for the profiler
|
|
14
14
|
"""
|
|
15
|
+
import hashlib
|
|
15
16
|
import traceback
|
|
16
17
|
from typing import List, Optional, Union, cast
|
|
17
18
|
|
|
@@ -32,6 +33,7 @@ from metadata.profiler.orm.functions.modulo import ModuloFn
|
|
|
32
33
|
from metadata.profiler.orm.functions.random_num import RandomNumFn
|
|
33
34
|
from metadata.profiler.processor.handle_partition import build_partition_predicate
|
|
34
35
|
from metadata.sampler.sampler_interface import SamplerInterface
|
|
36
|
+
from metadata.utils.constants import UTF_8
|
|
35
37
|
from metadata.utils.helpers import is_safe_sql_query
|
|
36
38
|
from metadata.utils.logger import profiler_interface_registry_logger
|
|
37
39
|
|
|
@@ -109,17 +111,28 @@ class SQASampler(SamplerInterface, SQAInterfaceMixin):
|
|
|
109
111
|
query = self.get_partitioned_query(query)
|
|
110
112
|
return query
|
|
111
113
|
|
|
114
|
+
def get_sampler_table_name(self) -> str:
|
|
115
|
+
"""Get the base name of the SQA table for sampling.
|
|
116
|
+
We use MD5 as a hashing algorithm to generate a unique name for the table
|
|
117
|
+
keeping its length controlled. Otherwise, we ended up having issues
|
|
118
|
+
with names getting truncated when we add the suffixes to the identifiers
|
|
119
|
+
such as _sample, or _rnd.
|
|
120
|
+
"""
|
|
121
|
+
encoded_name = self.raw_dataset.__tablename__.encode(UTF_8)
|
|
122
|
+
hash_object = hashlib.md5(encoded_name)
|
|
123
|
+
return hash_object.hexdigest()
|
|
124
|
+
|
|
112
125
|
def get_sample_query(self, *, column=None) -> Query:
|
|
113
126
|
"""get query for sample data"""
|
|
114
127
|
if self.sample_config.profileSampleType == ProfileSampleType.PERCENTAGE:
|
|
115
128
|
rnd = self._base_sample_query(
|
|
116
129
|
column,
|
|
117
130
|
(ModuloFn(RandomNumFn(), 100)).label(RANDOM_LABEL),
|
|
118
|
-
).cte(f"{self.
|
|
131
|
+
).cte(f"{self.get_sampler_table_name()}_rnd")
|
|
119
132
|
session_query = self.client.query(rnd)
|
|
120
133
|
return session_query.where(
|
|
121
134
|
rnd.c.random <= self.sample_config.profileSample
|
|
122
|
-
).cte(f"{self.
|
|
135
|
+
).cte(f"{self.get_sampler_table_name()}_sample")
|
|
123
136
|
|
|
124
137
|
table_query = self.client.query(self.raw_dataset)
|
|
125
138
|
session_query = self._base_sample_query(
|
|
@@ -129,7 +142,7 @@ class SQASampler(SamplerInterface, SQAInterfaceMixin):
|
|
|
129
142
|
return (
|
|
130
143
|
session_query.order_by(RANDOM_LABEL)
|
|
131
144
|
.limit(self.sample_config.profileSample)
|
|
132
|
-
.cte(f"{self.
|
|
145
|
+
.cte(f"{self.get_sampler_table_name()}_rnd")
|
|
133
146
|
)
|
|
134
147
|
|
|
135
148
|
def get_dataset(self, column=None, **__) -> Union[DeclarativeMeta, AliasedClass]:
|
|
@@ -143,7 +156,7 @@ class SQASampler(SamplerInterface, SQAInterfaceMixin):
|
|
|
143
156
|
if not self.sample_config.profileSample:
|
|
144
157
|
if self.partition_details:
|
|
145
158
|
partitioned = self._partitioned_table()
|
|
146
|
-
return partitioned.cte(f"{self.
|
|
159
|
+
return partitioned.cte(f"{self.get_sampler_table_name()}_partitioned")
|
|
147
160
|
|
|
148
161
|
return self.raw_dataset
|
|
149
162
|
|
|
@@ -162,23 +175,23 @@ class SQASampler(SamplerInterface, SQAInterfaceMixin):
|
|
|
162
175
|
return self._fetch_sample_data_from_user_query()
|
|
163
176
|
|
|
164
177
|
# Add new RandomNumFn column
|
|
165
|
-
|
|
178
|
+
ds = self.get_dataset()
|
|
166
179
|
if not columns:
|
|
167
|
-
sqa_columns = [col for col in inspect(
|
|
180
|
+
sqa_columns = [col for col in inspect(ds).c if col.name != RANDOM_LABEL]
|
|
168
181
|
else:
|
|
169
182
|
# we can't directly use columns as it is bound to self.raw_dataset and not the rnd table.
|
|
170
183
|
# If we use it, it will result in a cross join between self.raw_dataset and rnd table
|
|
171
184
|
names = [col.name for col in columns]
|
|
172
185
|
sqa_columns = [
|
|
173
186
|
col
|
|
174
|
-
for col in inspect(
|
|
187
|
+
for col in inspect(ds).c
|
|
175
188
|
if col.name != RANDOM_LABEL and col.name in names
|
|
176
189
|
]
|
|
177
190
|
|
|
178
191
|
try:
|
|
179
192
|
sqa_sample = (
|
|
180
193
|
self.client.query(*sqa_columns)
|
|
181
|
-
.select_from(
|
|
194
|
+
.select_from(ds)
|
|
182
195
|
.limit(self.sample_limit)
|
|
183
196
|
.all()
|
|
184
197
|
)
|
|
@@ -224,7 +237,7 @@ class SQASampler(SamplerInterface, SQAInterfaceMixin):
|
|
|
224
237
|
stmt = stmt.columns(*list(inspect(self.raw_dataset).c))
|
|
225
238
|
|
|
226
239
|
return self.client.query(stmt.subquery()).cte(
|
|
227
|
-
f"{self.
|
|
240
|
+
f"{self.get_sampler_table_name()}_user_sampled"
|
|
228
241
|
)
|
|
229
242
|
|
|
230
243
|
def _partitioned_table(self) -> Query:
|