openmetadata-ingestion 1.6.3.2.dev1__py3-none-any.whl → 1.6.4.0.dev0__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 +39 -0
- metadata/ingestion/source/database/databricks/connection.py +8 -3
- metadata/ingestion/source/database/databricks/lineage.py +12 -24
- metadata/ingestion/source/database/databricks/metadata.py +8 -0
- 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.dev1.dist-info → openmetadata_ingestion-1.6.4.0.dev0.dist-info}/METADATA +400 -381
- {openmetadata_ingestion-1.6.3.2.dev1.dist-info → openmetadata_ingestion-1.6.4.0.dev0.dist-info}/RECORD +700 -694
- {openmetadata_ingestion-1.6.3.2.dev1.dist-info → openmetadata_ingestion-1.6.4.0.dev0.dist-info}/LICENSE +0 -0
- {openmetadata_ingestion-1.6.3.2.dev1.dist-info → openmetadata_ingestion-1.6.4.0.dev0.dist-info}/WHEEL +0 -0
- {openmetadata_ingestion-1.6.3.2.dev1.dist-info → openmetadata_ingestion-1.6.4.0.dev0.dist-info}/entry_points.txt +0 -0
- {openmetadata_ingestion-1.6.3.2.dev1.dist-info → openmetadata_ingestion-1.6.4.0.dev0.dist-info}/top_level.txt +0 -0
|
@@ -47,7 +47,10 @@ from metadata.utils.logger import utils_logger
|
|
|
47
47
|
|
|
48
48
|
logger = utils_logger()
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
GETGROUPS_DEFAULT_PARAMS = {"$top": "1", "$skip": "0"}
|
|
51
|
+
API_RESPONSE_MESSAGE_KEY = "message"
|
|
52
|
+
AUTH_TOKEN_MAX_RETRIES = 5
|
|
53
|
+
AUTH_TOKEN_RETRY_WAIT = 120
|
|
51
54
|
# Similar inner methods with mode client. That's fine.
|
|
52
55
|
# pylint: disable=duplicate-code
|
|
53
56
|
class PowerBiApiClient:
|
|
@@ -59,6 +62,9 @@ class PowerBiApiClient:
|
|
|
59
62
|
|
|
60
63
|
def __init__(self, config: PowerBIConnection):
|
|
61
64
|
self.config = config
|
|
65
|
+
self.pagination_entity_per_page = min(
|
|
66
|
+
100, self.config.pagination_entity_per_page
|
|
67
|
+
)
|
|
62
68
|
self.msal_client = msal.ConfidentialClientApplication(
|
|
63
69
|
client_id=self.config.clientId,
|
|
64
70
|
client_credential=self.config.clientSecret.get_secret_value(),
|
|
@@ -82,42 +88,84 @@ class PowerBiApiClient:
|
|
|
82
88
|
"""
|
|
83
89
|
logger.info("Generating PowerBi access token")
|
|
84
90
|
|
|
85
|
-
response_data = self.
|
|
86
|
-
scopes=self.config.scope, account=None
|
|
87
|
-
)
|
|
88
|
-
|
|
91
|
+
response_data = self.get_auth_token_from_cache()
|
|
89
92
|
if not response_data:
|
|
90
93
|
logger.info("Token does not exist in the cache. Getting a new token.")
|
|
91
|
-
response_data = self.
|
|
92
|
-
|
|
93
|
-
)
|
|
94
|
+
response_data = self.generate_new_auth_token()
|
|
95
|
+
response_data = response_data or {}
|
|
94
96
|
auth_response = PowerBiToken(**response_data)
|
|
95
97
|
if not auth_response.access_token:
|
|
96
98
|
raise InvalidSourceException(
|
|
97
|
-
"Failed to generate the PowerBi access token. Please check provided config"
|
|
99
|
+
f"Failed to generate the PowerBi access token. Please check provided config {response_data}"
|
|
98
100
|
)
|
|
99
101
|
|
|
100
102
|
logger.info("PowerBi Access Token generated successfully")
|
|
101
103
|
return auth_response.access_token, auth_response.expires_in
|
|
102
104
|
|
|
105
|
+
def generate_new_auth_token(self) -> Optional[dict]:
|
|
106
|
+
"""generate new auth token"""
|
|
107
|
+
retry = AUTH_TOKEN_MAX_RETRIES
|
|
108
|
+
while retry:
|
|
109
|
+
try:
|
|
110
|
+
response_data = self.msal_client.acquire_token_for_client(
|
|
111
|
+
scopes=self.config.scope
|
|
112
|
+
)
|
|
113
|
+
return response_data
|
|
114
|
+
except Exception as exc:
|
|
115
|
+
logger.debug(traceback.format_exc())
|
|
116
|
+
logger.warning(f"Error generating new auth token: {exc}")
|
|
117
|
+
# wait for time and retry
|
|
118
|
+
retry -= 1
|
|
119
|
+
if retry:
|
|
120
|
+
logger.warning(
|
|
121
|
+
f"Error generating new token: {exc}, "
|
|
122
|
+
f"sleep {AUTH_TOKEN_RETRY_WAIT} seconds retrying {retry} more times.."
|
|
123
|
+
)
|
|
124
|
+
sleep(AUTH_TOKEN_RETRY_WAIT)
|
|
125
|
+
else:
|
|
126
|
+
logger.warning(
|
|
127
|
+
"Could not generate new token after maximum retries, "
|
|
128
|
+
"Please check provided configs"
|
|
129
|
+
)
|
|
130
|
+
return None
|
|
131
|
+
|
|
132
|
+
def get_auth_token_from_cache(self) -> Optional[dict]:
|
|
133
|
+
"""fetch auth token from cache"""
|
|
134
|
+
retry = AUTH_TOKEN_MAX_RETRIES
|
|
135
|
+
while retry:
|
|
136
|
+
try:
|
|
137
|
+
response_data = self.msal_client.acquire_token_silent(
|
|
138
|
+
scopes=self.config.scope, account=None
|
|
139
|
+
)
|
|
140
|
+
return response_data
|
|
141
|
+
except Exception as exc:
|
|
142
|
+
logger.debug(traceback.format_exc())
|
|
143
|
+
logger.warning(f"Error getting token from cache: {exc}")
|
|
144
|
+
retry -= 1
|
|
145
|
+
if retry:
|
|
146
|
+
logger.warning(
|
|
147
|
+
f"Error getting token from cache: {exc}, "
|
|
148
|
+
f"sleep {AUTH_TOKEN_RETRY_WAIT} seconds retrying {retry} more times.."
|
|
149
|
+
)
|
|
150
|
+
sleep(AUTH_TOKEN_RETRY_WAIT)
|
|
151
|
+
else:
|
|
152
|
+
logger.warning(
|
|
153
|
+
"Could not get token from cache after maximum retries, "
|
|
154
|
+
"Please check provided configs"
|
|
155
|
+
)
|
|
156
|
+
return None
|
|
157
|
+
|
|
103
158
|
def fetch_dashboards(self) -> Optional[List[PowerBIDashboard]]:
|
|
104
159
|
"""Get dashboards method
|
|
105
160
|
Returns:
|
|
106
161
|
List[PowerBIDashboard]
|
|
107
162
|
"""
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
return self.fetch_all_org_dashboards(group_id=group.id)
|
|
115
|
-
|
|
116
|
-
except Exception as exc: # pylint: disable=broad-except
|
|
117
|
-
logger.debug(traceback.format_exc())
|
|
118
|
-
logger.warning(f"Error fetching dashboards: {exc}")
|
|
119
|
-
|
|
120
|
-
return None
|
|
163
|
+
if self.config.useAdminApis:
|
|
164
|
+
response_data = self.client.get("/myorg/admin/dashboards")
|
|
165
|
+
response = DashboardsResponse(**response_data)
|
|
166
|
+
return response.value
|
|
167
|
+
group = self.fetch_all_workspaces()[0]
|
|
168
|
+
return self.fetch_all_org_dashboards(group_id=group.id)
|
|
121
169
|
|
|
122
170
|
def fetch_all_org_dashboards(
|
|
123
171
|
self, group_id: str
|
|
@@ -205,6 +253,7 @@ class PowerBiApiClient:
|
|
|
205
253
|
|
|
206
254
|
return None
|
|
207
255
|
|
|
256
|
+
# pylint: disable=too-many-branches,too-many-statements
|
|
208
257
|
def fetch_all_workspaces(self) -> Optional[List[Group]]:
|
|
209
258
|
"""Method to fetch all powerbi workspace details
|
|
210
259
|
Returns:
|
|
@@ -213,28 +262,94 @@ class PowerBiApiClient:
|
|
|
213
262
|
try:
|
|
214
263
|
admin = "admin/" if self.config.useAdminApis else ""
|
|
215
264
|
api_url = f"/myorg/{admin}groups"
|
|
216
|
-
entities_per_page = self.
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
response =
|
|
220
|
-
|
|
265
|
+
entities_per_page = self.pagination_entity_per_page
|
|
266
|
+
failed_indexes = []
|
|
267
|
+
params_data = GETGROUPS_DEFAULT_PARAMS
|
|
268
|
+
response = self.client.get(api_url, data=params_data)
|
|
269
|
+
if (
|
|
270
|
+
not response
|
|
271
|
+
or API_RESPONSE_MESSAGE_KEY in response
|
|
272
|
+
or len(response) != len(GroupsResponse.__annotations__)
|
|
273
|
+
):
|
|
274
|
+
logger.warning("Error fetching workspaces between results: (0, 1)")
|
|
275
|
+
if response and response.get(API_RESPONSE_MESSAGE_KEY):
|
|
276
|
+
logger.warning(
|
|
277
|
+
"Error message from API response: "
|
|
278
|
+
f"{str(response.get(API_RESPONSE_MESSAGE_KEY))}"
|
|
279
|
+
)
|
|
280
|
+
failed_indexes.append(params_data)
|
|
281
|
+
count = 0
|
|
282
|
+
else:
|
|
283
|
+
try:
|
|
284
|
+
response = GroupsResponse(**response)
|
|
285
|
+
count = response.odata_count
|
|
286
|
+
except Exception as exc:
|
|
287
|
+
logger.warning(f"Error processing GetGroups response: {exc}")
|
|
288
|
+
count = 0
|
|
221
289
|
indexes = math.ceil(count / entities_per_page)
|
|
222
|
-
|
|
223
290
|
workspaces = []
|
|
224
291
|
for index in range(indexes):
|
|
225
292
|
params_data = {
|
|
226
293
|
"$top": str(entities_per_page),
|
|
227
294
|
"$skip": str(index * entities_per_page),
|
|
228
295
|
}
|
|
229
|
-
|
|
230
|
-
if
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
296
|
+
response = self.client.get(api_url, data=params_data)
|
|
297
|
+
if (
|
|
298
|
+
not response
|
|
299
|
+
or API_RESPONSE_MESSAGE_KEY in response
|
|
300
|
+
or len(response) != len(GroupsResponse.__annotations__)
|
|
301
|
+
):
|
|
302
|
+
index_range = (
|
|
303
|
+
int(params_data.get("$skip")),
|
|
304
|
+
int(params_data.get("$skip")) + int(params_data.get("$top")),
|
|
305
|
+
)
|
|
306
|
+
logger.warning(
|
|
307
|
+
f"Error fetching workspaces between results: {str(index_range)}"
|
|
234
308
|
)
|
|
309
|
+
if response and response.get(API_RESPONSE_MESSAGE_KEY):
|
|
310
|
+
logger.warning(
|
|
311
|
+
"Error message from API response: "
|
|
312
|
+
f"{str(response.get(API_RESPONSE_MESSAGE_KEY))}"
|
|
313
|
+
)
|
|
314
|
+
failed_indexes.append(params_data)
|
|
235
315
|
continue
|
|
236
|
-
|
|
237
|
-
|
|
316
|
+
try:
|
|
317
|
+
response = GroupsResponse(**response)
|
|
318
|
+
workspaces.extend(response.value)
|
|
319
|
+
except Exception as exc:
|
|
320
|
+
logger.warning(f"Error processing GetGroups response: {exc}")
|
|
321
|
+
|
|
322
|
+
if failed_indexes:
|
|
323
|
+
logger.info(
|
|
324
|
+
"Retrying one more time on failed indexes to get workspaces"
|
|
325
|
+
)
|
|
326
|
+
for params_data in failed_indexes:
|
|
327
|
+
response = self.client.get(api_url, data=params_data)
|
|
328
|
+
if (
|
|
329
|
+
not response
|
|
330
|
+
or API_RESPONSE_MESSAGE_KEY in response
|
|
331
|
+
or len(response) != len(GroupsResponse.__annotations__)
|
|
332
|
+
):
|
|
333
|
+
index_range = (
|
|
334
|
+
int(params_data.get("$skip")),
|
|
335
|
+
int(params_data.get("$skip"))
|
|
336
|
+
+ int(params_data.get("$top")),
|
|
337
|
+
)
|
|
338
|
+
logger.warning(
|
|
339
|
+
f"Workspaces between results {str(index_range)} "
|
|
340
|
+
"could not be fetched on multiple attempts"
|
|
341
|
+
)
|
|
342
|
+
if response and response.get(API_RESPONSE_MESSAGE_KEY):
|
|
343
|
+
logger.warning(
|
|
344
|
+
"Error message from API response: "
|
|
345
|
+
f"{str(response.get(API_RESPONSE_MESSAGE_KEY))}"
|
|
346
|
+
)
|
|
347
|
+
continue
|
|
348
|
+
try:
|
|
349
|
+
response = GroupsResponse(**response)
|
|
350
|
+
workspaces.extend(response.value)
|
|
351
|
+
except Exception as exc:
|
|
352
|
+
logger.warning(f"Error processing GetGroups response: {exc}")
|
|
238
353
|
return workspaces
|
|
239
354
|
except Exception as exc: # pylint: disable=broad-except
|
|
240
355
|
logger.debug(traceback.format_exc())
|
|
@@ -34,9 +34,11 @@ from metadata.generated.schema.entity.data.database import Database
|
|
|
34
34
|
from metadata.generated.schema.entity.data.databaseSchema import DatabaseSchema
|
|
35
35
|
from metadata.generated.schema.entity.data.storedProcedure import StoredProcedureCode
|
|
36
36
|
from metadata.generated.schema.entity.data.table import (
|
|
37
|
+
ConstraintType,
|
|
37
38
|
PartitionColumnDetails,
|
|
38
39
|
PartitionIntervalTypes,
|
|
39
40
|
Table,
|
|
41
|
+
TableConstraint,
|
|
40
42
|
TablePartition,
|
|
41
43
|
TableType,
|
|
42
44
|
)
|
|
@@ -96,6 +98,7 @@ from metadata.ingestion.source.database.life_cycle_query_mixin import (
|
|
|
96
98
|
from metadata.ingestion.source.database.multi_db_source import MultiDBSource
|
|
97
99
|
from metadata.utils import fqn
|
|
98
100
|
from metadata.utils.credentials import GOOGLE_CREDENTIALS
|
|
101
|
+
from metadata.utils.execution_time_tracker import calculate_execution_time
|
|
99
102
|
from metadata.utils.filters import filter_by_database, filter_by_schema
|
|
100
103
|
from metadata.utils.logger import ingestion_logger
|
|
101
104
|
from metadata.utils.sqlalchemy_utils import (
|
|
@@ -657,6 +660,42 @@ class BigquerySource(LifeCycleQueryMixin, CommonDbSourceService, MultiDBSource):
|
|
|
657
660
|
)
|
|
658
661
|
return None
|
|
659
662
|
|
|
663
|
+
@calculate_execution_time()
|
|
664
|
+
def update_table_constraints(
|
|
665
|
+
self,
|
|
666
|
+
table_name,
|
|
667
|
+
schema_name,
|
|
668
|
+
db_name,
|
|
669
|
+
table_constraints,
|
|
670
|
+
foreign_columns,
|
|
671
|
+
columns,
|
|
672
|
+
) -> List[TableConstraint]:
|
|
673
|
+
"""
|
|
674
|
+
From topology.
|
|
675
|
+
process the table constraints of all tables
|
|
676
|
+
"""
|
|
677
|
+
table_constraints = super().update_table_constraints(
|
|
678
|
+
table_name,
|
|
679
|
+
schema_name,
|
|
680
|
+
db_name,
|
|
681
|
+
table_constraints,
|
|
682
|
+
foreign_columns,
|
|
683
|
+
columns,
|
|
684
|
+
)
|
|
685
|
+
try:
|
|
686
|
+
table = self.client.get_table(fqn._build(db_name, schema_name, table_name))
|
|
687
|
+
if hasattr(table, "clustering_fields") and table.clustering_fields:
|
|
688
|
+
table_constraints.append(
|
|
689
|
+
TableConstraint(
|
|
690
|
+
constraintType=ConstraintType.CLUSTER_KEY,
|
|
691
|
+
columns=table.clustering_fields,
|
|
692
|
+
)
|
|
693
|
+
)
|
|
694
|
+
except Exception as exc:
|
|
695
|
+
logger.warning(f"Error getting clustering fields for {table_name}: {exc}")
|
|
696
|
+
logger.debug(traceback.format_exc())
|
|
697
|
+
return table_constraints
|
|
698
|
+
|
|
660
699
|
def get_table_partition_details(
|
|
661
700
|
self, table_name: str, schema_name: str, inspector: Inspector
|
|
662
701
|
) -> Tuple[bool, Optional[TablePartition]]:
|
|
@@ -38,9 +38,9 @@ from metadata.ingestion.connections.test_connections import (
|
|
|
38
38
|
test_connection_steps,
|
|
39
39
|
)
|
|
40
40
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
41
|
-
from metadata.ingestion.source.database.databricks.client import DatabricksClient
|
|
42
41
|
from metadata.ingestion.source.database.databricks.queries import (
|
|
43
42
|
DATABRICKS_GET_CATALOGS,
|
|
43
|
+
DATABRICKS_SQL_STATEMENT_TEST,
|
|
44
44
|
)
|
|
45
45
|
from metadata.utils.constants import THREE_MIN
|
|
46
46
|
from metadata.utils.logger import ingestion_logger
|
|
@@ -81,7 +81,6 @@ def test_connection(
|
|
|
81
81
|
Test connection. This can be executed either as part
|
|
82
82
|
of a metadata workflow or during an Automation Workflow
|
|
83
83
|
"""
|
|
84
|
-
client = DatabricksClient(service_connection)
|
|
85
84
|
|
|
86
85
|
def test_database_query(engine: Engine, statement: str):
|
|
87
86
|
"""
|
|
@@ -106,7 +105,13 @@ def test_connection(
|
|
|
106
105
|
engine=connection,
|
|
107
106
|
statement=DATABRICKS_GET_CATALOGS,
|
|
108
107
|
),
|
|
109
|
-
"GetQueries":
|
|
108
|
+
"GetQueries": partial(
|
|
109
|
+
test_database_query,
|
|
110
|
+
engine=connection,
|
|
111
|
+
statement=DATABRICKS_SQL_STATEMENT_TEST.format(
|
|
112
|
+
query_history=service_connection.queryHistoryTable
|
|
113
|
+
),
|
|
114
|
+
),
|
|
110
115
|
}
|
|
111
116
|
|
|
112
117
|
return test_connection_steps(
|
|
@@ -11,12 +11,10 @@
|
|
|
11
11
|
"""
|
|
12
12
|
Databricks lineage module
|
|
13
13
|
"""
|
|
14
|
-
import traceback
|
|
15
|
-
from datetime import datetime
|
|
16
|
-
from typing import Iterator
|
|
17
14
|
|
|
18
|
-
from metadata.
|
|
19
|
-
|
|
15
|
+
from metadata.ingestion.source.database.databricks.queries import (
|
|
16
|
+
DATABRICKS_SQL_STATEMENT,
|
|
17
|
+
)
|
|
20
18
|
from metadata.ingestion.source.database.databricks.query_parser import (
|
|
21
19
|
DatabricksQueryParserSource,
|
|
22
20
|
)
|
|
@@ -31,23 +29,13 @@ class DatabricksLineageSource(DatabricksQueryParserSource, LineageSource):
|
|
|
31
29
|
Databricks Lineage Legacy Source
|
|
32
30
|
"""
|
|
33
31
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
sql_stmt = DATABRICKS_SQL_STATEMENT
|
|
33
|
+
|
|
34
|
+
filters = """
|
|
35
|
+
AND (
|
|
36
|
+
lower(statement_text) LIKE '%%create%%select%%'
|
|
37
|
+
OR lower(statement_text) LIKE '%%insert%%into%%select%%'
|
|
38
|
+
OR lower(statement_text) LIKE '%%update%%'
|
|
39
|
+
OR lower(statement_text) LIKE '%%merge%%'
|
|
38
40
|
)
|
|
39
|
-
|
|
40
|
-
try:
|
|
41
|
-
if self.client.is_query_valid(row):
|
|
42
|
-
yield TableQuery(
|
|
43
|
-
dialect=self.dialect.value,
|
|
44
|
-
query=row.get("query_text"),
|
|
45
|
-
userName=row.get("user_name"),
|
|
46
|
-
startTime=str(row.get("query_start_time_ms")),
|
|
47
|
-
endTime=str(row.get("execution_end_time_ms")),
|
|
48
|
-
analysisDate=DateTime(datetime.now()),
|
|
49
|
-
serviceName=self.config.serviceName,
|
|
50
|
-
)
|
|
51
|
-
except Exception as exc:
|
|
52
|
-
logger.debug(traceback.format_exc())
|
|
53
|
-
logger.warning(f"Error processing query_dict {row}: {exc}")
|
|
41
|
+
"""
|
|
@@ -765,6 +765,8 @@ class DatabricksSource(ExternalTableLineageMixin, CommonDbSourceService, MultiDB
|
|
|
765
765
|
table_name=table_name,
|
|
766
766
|
schema=schema_name,
|
|
767
767
|
)
|
|
768
|
+
found_location = False
|
|
769
|
+
log_location = None
|
|
768
770
|
for result in list(cursor):
|
|
769
771
|
data = result.values()
|
|
770
772
|
if data[0] and data[0].strip() == "Comment":
|
|
@@ -777,6 +779,12 @@ class DatabricksSource(ExternalTableLineageMixin, CommonDbSourceService, MultiDB
|
|
|
777
779
|
if data and data[1] and not data[1].startswith("dbfs")
|
|
778
780
|
else None
|
|
779
781
|
)
|
|
782
|
+
found_location = True
|
|
783
|
+
log_location = data[1]
|
|
784
|
+
if found_location and log_location:
|
|
785
|
+
logger.debug(f"Table {schema_name}.{table_name} has location {log_location}")
|
|
786
|
+
else:
|
|
787
|
+
logger.debug(f"Table {schema_name}.{table_name} does not have location")
|
|
780
788
|
|
|
781
789
|
# Catch any exception without breaking the ingestion
|
|
782
790
|
except Exception as exc: # pylint: disable=broad-except
|
|
@@ -14,6 +14,30 @@ SQL Queries used during ingestion
|
|
|
14
14
|
|
|
15
15
|
import textwrap
|
|
16
16
|
|
|
17
|
+
DATABRICKS_SQL_STATEMENT = textwrap.dedent(
|
|
18
|
+
"""
|
|
19
|
+
SELECT
|
|
20
|
+
statement_type AS query_type,
|
|
21
|
+
statement_text AS query_text,
|
|
22
|
+
executed_by AS user_name,
|
|
23
|
+
start_time AS start_time,
|
|
24
|
+
null AS database_name,
|
|
25
|
+
null AS schema_name,
|
|
26
|
+
end_time AS end_time,
|
|
27
|
+
total_duration_ms/1000 AS duration
|
|
28
|
+
from {query_history}
|
|
29
|
+
WHERE statement_text NOT LIKE '/* {{"app": "OpenMetadata", %%}} */%%'
|
|
30
|
+
AND statement_text NOT LIKE '/* {{"app": "dbt", %%}} */%%'
|
|
31
|
+
AND start_time between to_timestamp('{start_time}') and to_timestamp('{end_time}')
|
|
32
|
+
{filters}
|
|
33
|
+
LIMIT {result_limit}
|
|
34
|
+
"""
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
DATABRICKS_SQL_STATEMENT_TEST = """
|
|
38
|
+
SELECT statement_text from {query_history} LIMIT 1
|
|
39
|
+
"""
|
|
40
|
+
|
|
17
41
|
DATABRICKS_VIEW_DEFINITIONS = textwrap.dedent(
|
|
18
42
|
"""
|
|
19
43
|
select
|
|
@@ -22,7 +22,6 @@ from metadata.generated.schema.metadataIngestion.workflow import (
|
|
|
22
22
|
)
|
|
23
23
|
from metadata.ingestion.api.steps import InvalidSourceException
|
|
24
24
|
from metadata.ingestion.ometa.ometa_api import OpenMetadata
|
|
25
|
-
from metadata.ingestion.source.database.databricks.client import DatabricksClient
|
|
26
25
|
from metadata.ingestion.source.database.query_parser_source import QueryParserSource
|
|
27
26
|
from metadata.utils.logger import ingestion_logger
|
|
28
27
|
|
|
@@ -36,18 +35,6 @@ class DatabricksQueryParserSource(QueryParserSource, ABC):
|
|
|
36
35
|
|
|
37
36
|
filters: str
|
|
38
37
|
|
|
39
|
-
def _init_super(
|
|
40
|
-
self,
|
|
41
|
-
config: WorkflowSource,
|
|
42
|
-
metadata: OpenMetadata,
|
|
43
|
-
):
|
|
44
|
-
super().__init__(config, metadata, False)
|
|
45
|
-
|
|
46
|
-
# pylint: disable=super-init-not-called
|
|
47
|
-
def __init__(self, config: WorkflowSource, metadata: OpenMetadata):
|
|
48
|
-
self._init_super(config=config, metadata=metadata)
|
|
49
|
-
self.client = DatabricksClient(self.service_connection)
|
|
50
|
-
|
|
51
38
|
@classmethod
|
|
52
39
|
def create(
|
|
53
40
|
cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
|
|
@@ -61,7 +48,16 @@ class DatabricksQueryParserSource(QueryParserSource, ABC):
|
|
|
61
48
|
)
|
|
62
49
|
return cls(config, metadata)
|
|
63
50
|
|
|
64
|
-
def
|
|
51
|
+
def get_sql_statement(self, start_time, end_time):
|
|
65
52
|
"""
|
|
66
|
-
|
|
53
|
+
returns sql statement to fetch query logs.
|
|
54
|
+
|
|
55
|
+
Override if we have specific parameters
|
|
67
56
|
"""
|
|
57
|
+
return self.sql_stmt.format(
|
|
58
|
+
start_time=start_time,
|
|
59
|
+
end_time=end_time,
|
|
60
|
+
filters=self.get_filters(),
|
|
61
|
+
result_limit=self.source_config.resultLimit,
|
|
62
|
+
query_history=self.service_connection.queryHistoryTable,
|
|
63
|
+
)
|
|
@@ -11,12 +11,10 @@
|
|
|
11
11
|
"""
|
|
12
12
|
Databricks usage module
|
|
13
13
|
"""
|
|
14
|
-
import traceback
|
|
15
|
-
from datetime import datetime
|
|
16
|
-
from typing import Iterable
|
|
17
14
|
|
|
18
|
-
from metadata.
|
|
19
|
-
|
|
15
|
+
from metadata.ingestion.source.database.databricks.queries import (
|
|
16
|
+
DATABRICKS_SQL_STATEMENT,
|
|
17
|
+
)
|
|
20
18
|
from metadata.ingestion.source.database.databricks.query_parser import (
|
|
21
19
|
DatabricksQueryParserSource,
|
|
22
20
|
)
|
|
@@ -31,36 +29,8 @@ class DatabricksUsageSource(DatabricksQueryParserSource, UsageSource):
|
|
|
31
29
|
Databricks Usage Source
|
|
32
30
|
"""
|
|
33
31
|
|
|
34
|
-
|
|
35
|
-
"""
|
|
36
|
-
Method to yield TableQueries
|
|
37
|
-
"""
|
|
38
|
-
queries = []
|
|
39
|
-
data = self.client.list_query_history(
|
|
40
|
-
start_date=self.start,
|
|
41
|
-
end_date=self.end,
|
|
42
|
-
)
|
|
43
|
-
for row in data or []:
|
|
44
|
-
try:
|
|
45
|
-
if self.client.is_query_valid(row):
|
|
46
|
-
queries.append(
|
|
47
|
-
TableQuery(
|
|
48
|
-
dialect=self.dialect.value,
|
|
49
|
-
query=row.get("query_text"),
|
|
50
|
-
userName=row.get("user_name"),
|
|
51
|
-
startTime=str(row.get("query_start_time_ms")),
|
|
52
|
-
endTime=str(row.get("execution_end_time_ms")),
|
|
53
|
-
analysisDate=DateTime(datetime.now()),
|
|
54
|
-
serviceName=self.config.serviceName,
|
|
55
|
-
duration=row.get("duration")
|
|
56
|
-
if row.get("duration")
|
|
57
|
-
else None,
|
|
58
|
-
)
|
|
59
|
-
)
|
|
60
|
-
except Exception as err:
|
|
61
|
-
logger.debug(traceback.format_exc())
|
|
62
|
-
logger.warning(
|
|
63
|
-
f"Failed to process query {row.get('query_text')} due to: {err}"
|
|
64
|
-
)
|
|
32
|
+
sql_stmt = DATABRICKS_SQL_STATEMENT
|
|
65
33
|
|
|
66
|
-
|
|
34
|
+
filters = """
|
|
35
|
+
AND statement_type NOT IN ('SHOW', 'DESCRIBE', 'USE')
|
|
36
|
+
"""
|
|
@@ -50,7 +50,7 @@ def get_connection(connection: Db2Connection) -> Engine:
|
|
|
50
50
|
"w",
|
|
51
51
|
encoding=UTF_8,
|
|
52
52
|
) as file:
|
|
53
|
-
file.write(connection.license)
|
|
53
|
+
file.write(connection.license.encode(UTF_8).decode("unicode-escape"))
|
|
54
54
|
|
|
55
55
|
return create_generic_db_connection(
|
|
56
56
|
connection=connection,
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
from metadata.ingestion.source.database.db2.lineage import Db2LineageSource
|
|
2
1
|
from metadata.ingestion.source.database.db2.metadata import Db2Source
|
|
3
2
|
from metadata.profiler.interface.sqlalchemy.db2.profiler_interface import (
|
|
4
3
|
DB2ProfilerInterface,
|
|
@@ -6,7 +5,5 @@ from metadata.profiler.interface.sqlalchemy.db2.profiler_interface import (
|
|
|
6
5
|
from metadata.utils.service_spec.default import DefaultDatabaseSpec
|
|
7
6
|
|
|
8
7
|
ServiceSpec = DefaultDatabaseSpec(
|
|
9
|
-
metadata_source_class=Db2Source,
|
|
10
|
-
profiler_class=DB2ProfilerInterface,
|
|
11
|
-
lineage_source_class=Db2LineageSource,
|
|
8
|
+
metadata_source_class=Db2Source, profiler_class=DB2ProfilerInterface
|
|
12
9
|
)
|
|
@@ -1093,7 +1093,9 @@ class DbtSource(DbtServiceSource):
|
|
|
1093
1093
|
|
|
1094
1094
|
# Create the test case result object
|
|
1095
1095
|
test_case_result = TestCaseResult(
|
|
1096
|
-
timestamp=Timestamp(
|
|
1096
|
+
timestamp=Timestamp(
|
|
1097
|
+
datetime_to_timestamp(dbt_timestamp, milliseconds=True)
|
|
1098
|
+
),
|
|
1097
1099
|
testCaseStatus=test_case_status,
|
|
1098
1100
|
testResultValue=[
|
|
1099
1101
|
TestResultValue(
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
from metadata.ingestion.source.database.druid.lineage import DruidLineageSource
|
|
2
1
|
from metadata.ingestion.source.database.druid.metadata import DruidSource
|
|
3
2
|
from metadata.utils.service_spec.default import DefaultDatabaseSpec
|
|
4
3
|
|
|
5
|
-
ServiceSpec = DefaultDatabaseSpec(
|
|
6
|
-
metadata_source_class=DruidSource,
|
|
7
|
-
lineage_source_class=DruidLineageSource,
|
|
8
|
-
)
|
|
4
|
+
ServiceSpec = DefaultDatabaseSpec(metadata_source_class=DruidSource)
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
from metadata.ingestion.source.database.greenplum.lineage import GreenplumLineageSource
|
|
2
1
|
from metadata.ingestion.source.database.greenplum.metadata import GreenplumSource
|
|
3
2
|
from metadata.utils.service_spec.default import DefaultDatabaseSpec
|
|
4
3
|
|
|
5
|
-
ServiceSpec = DefaultDatabaseSpec(
|
|
6
|
-
metadata_source_class=GreenplumSource,
|
|
7
|
-
lineage_source_class=GreenplumLineageSource,
|
|
8
|
-
)
|
|
4
|
+
ServiceSpec = DefaultDatabaseSpec(metadata_source_class=GreenplumSource)
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
from metadata.ingestion.source.database.hive.lineage import HiveLineageSource
|
|
2
1
|
from metadata.ingestion.source.database.hive.metadata import HiveSource
|
|
3
2
|
from metadata.utils.service_spec.default import DefaultDatabaseSpec
|
|
4
3
|
|
|
5
|
-
ServiceSpec = DefaultDatabaseSpec(
|
|
6
|
-
metadata_source_class=HiveSource,
|
|
7
|
-
lineage_source_class=HiveLineageSource,
|
|
8
|
-
)
|
|
4
|
+
ServiceSpec = DefaultDatabaseSpec(metadata_source_class=HiveSource)
|
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
from metadata.ingestion.source.database.impala.lineage import ImpalaLineageSource
|
|
2
1
|
from metadata.ingestion.source.database.impala.metadata import ImpalaSource
|
|
3
2
|
from metadata.utils.service_spec.default import DefaultDatabaseSpec
|
|
4
3
|
|
|
5
|
-
ServiceSpec = DefaultDatabaseSpec(
|
|
6
|
-
metadata_source_class=ImpalaSource,
|
|
7
|
-
lineage_source_class=ImpalaLineageSource,
|
|
8
|
-
)
|
|
4
|
+
ServiceSpec = DefaultDatabaseSpec(metadata_source_class=ImpalaSource)
|
|
@@ -26,7 +26,10 @@ from metadata.generated.schema.type.basic import FullyQualifiedEntityName, SqlQu
|
|
|
26
26
|
from metadata.generated.schema.type.tableQuery import TableQuery
|
|
27
27
|
from metadata.ingestion.api.models import Either
|
|
28
28
|
from metadata.ingestion.lineage.models import ConnectionTypeDialectMapper, Dialect
|
|
29
|
-
from metadata.ingestion.lineage.sql_lineage import
|
|
29
|
+
from metadata.ingestion.lineage.sql_lineage import (
|
|
30
|
+
get_lineage_by_graph,
|
|
31
|
+
get_lineage_by_query,
|
|
32
|
+
)
|
|
30
33
|
from metadata.ingestion.models.ometa_lineage import OMetaLineageRequest
|
|
31
34
|
from metadata.ingestion.models.topology import Queue
|
|
32
35
|
from metadata.ingestion.source.database.query_parser_source import QueryParserSource
|
|
@@ -195,6 +198,12 @@ class LineageSource(QueryParserSource, ABC):
|
|
|
195
198
|
def query_lineage_generator(
|
|
196
199
|
self, table_queries: List[TableQuery], queue: Queue
|
|
197
200
|
) -> Iterable[Either[Union[AddLineageRequest, CreateQueryRequest]]]:
|
|
201
|
+
if self.graph is None and self.source_config.enableTempTableLineage:
|
|
202
|
+
import networkx as nx
|
|
203
|
+
|
|
204
|
+
# Create a directed graph
|
|
205
|
+
self.graph = nx.DiGraph()
|
|
206
|
+
|
|
198
207
|
for table_query in table_queries or []:
|
|
199
208
|
if not self._query_already_processed(table_query):
|
|
200
209
|
lineages: Iterable[Either[AddLineageRequest]] = get_lineage_by_query(
|
|
@@ -205,6 +214,7 @@ class LineageSource(QueryParserSource, ABC):
|
|
|
205
214
|
schema_name=table_query.databaseSchema,
|
|
206
215
|
dialect=self.dialect,
|
|
207
216
|
timeout_seconds=self.source_config.parsingTimeoutLimit,
|
|
217
|
+
graph=self.graph,
|
|
208
218
|
)
|
|
209
219
|
|
|
210
220
|
for lineage_request in lineages or []:
|
|
@@ -298,6 +308,7 @@ class LineageSource(QueryParserSource, ABC):
|
|
|
298
308
|
if self.source_config.processQueryLineage:
|
|
299
309
|
if hasattr(self.service_connection, "supportsLineageExtraction"):
|
|
300
310
|
yield from self.yield_query_lineage() or []
|
|
311
|
+
yield from get_lineage_by_graph(graph=self.graph)
|
|
301
312
|
else:
|
|
302
313
|
logger.warning(
|
|
303
314
|
f"Lineage extraction is not supported for {str(self.service_connection.type.value)} connection"
|