openmetadata-ingestion 1.4.0.0rc1__py3-none-any.whl → 1.4.0.0rc3__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of openmetadata-ingestion might be problematic. Click here for more details.
- metadata/__version__.py +13 -0
- metadata/cli/app.py +0 -1
- metadata/cmd.py +0 -193
- metadata/data_quality/source/test_suite.py +8 -2
- metadata/examples/workflows/kafka_connect.yaml +30 -0
- metadata/generated/schema/analytics/__init__.py +1 -1
- metadata/generated/schema/analytics/basic.py +1 -1
- metadata/generated/schema/analytics/reportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
- metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
- metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
- metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
- metadata/generated/schema/api/__init__.py +1 -1
- metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
- metadata/generated/schema/api/analytics/__init__.py +1 -1
- metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
- metadata/generated/schema/api/automations/__init__.py +1 -1
- metadata/generated/schema/api/automations/createWorkflow.py +1 -1
- metadata/generated/schema/api/bulkAssets.py +1 -1
- metadata/generated/schema/api/classification/__init__.py +1 -1
- metadata/generated/schema/api/classification/createClassification.py +1 -1
- metadata/generated/schema/api/classification/createTag.py +1 -1
- metadata/generated/schema/api/classification/loadTags.py +1 -1
- metadata/generated/schema/api/createBot.py +1 -1
- metadata/generated/schema/api/createEventPublisherJob.py +1 -1
- metadata/generated/schema/api/createType.py +1 -1
- metadata/generated/schema/api/data/__init__.py +1 -1
- metadata/generated/schema/api/data/createChart.py +1 -1
- metadata/generated/schema/api/data/createContainer.py +1 -1
- metadata/generated/schema/api/data/createCustomProperty.py +1 -1
- metadata/generated/schema/api/data/createDashboard.py +1 -1
- metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
- metadata/generated/schema/api/data/createDatabase.py +1 -1
- metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
- metadata/generated/schema/api/data/createGlossary.py +1 -1
- metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
- metadata/generated/schema/api/data/createMlModel.py +1 -1
- metadata/generated/schema/api/data/createPipeline.py +1 -1
- metadata/generated/schema/api/data/createQuery.py +1 -1
- metadata/generated/schema/api/data/createSearchIndex.py +1 -1
- metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
- metadata/generated/schema/api/data/createTable.py +4 -3
- metadata/generated/schema/api/data/createTableProfile.py +1 -1
- metadata/generated/schema/api/data/createTopic.py +1 -1
- metadata/generated/schema/api/data/loadGlossary.py +1 -1
- metadata/generated/schema/api/data/restoreEntity.py +1 -1
- metadata/generated/schema/api/dataInsight/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
- metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
- metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
- metadata/generated/schema/api/docStore/__init__.py +1 -1
- metadata/generated/schema/api/docStore/createDocument.py +1 -1
- metadata/generated/schema/api/domains/__init__.py +1 -1
- metadata/generated/schema/api/domains/createDataProduct.py +1 -1
- metadata/generated/schema/api/domains/createDomain.py +1 -1
- metadata/generated/schema/api/feed/__init__.py +1 -1
- metadata/generated/schema/api/feed/closeTask.py +1 -1
- metadata/generated/schema/api/feed/createPost.py +1 -1
- metadata/generated/schema/api/feed/createSuggestion.py +1 -1
- metadata/generated/schema/api/feed/createThread.py +1 -1
- metadata/generated/schema/api/feed/resolveTask.py +1 -1
- metadata/generated/schema/api/feed/threadCount.py +1 -1
- metadata/generated/schema/api/lineage/__init__.py +1 -1
- metadata/generated/schema/api/lineage/addLineage.py +1 -1
- metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
- metadata/generated/schema/api/policies/__init__.py +1 -1
- metadata/generated/schema/api/policies/createPolicy.py +1 -1
- metadata/generated/schema/api/services/__init__.py +1 -1
- metadata/generated/schema/api/services/createDashboardService.py +1 -1
- metadata/generated/schema/api/services/createDatabaseService.py +1 -1
- metadata/generated/schema/api/services/createMessagingService.py +1 -1
- metadata/generated/schema/api/services/createMetadataService.py +1 -1
- metadata/generated/schema/api/services/createMlModelService.py +1 -1
- metadata/generated/schema/api/services/createPipelineService.py +1 -1
- metadata/generated/schema/api/services/createSearchService.py +1 -1
- metadata/generated/schema/api/services/createStorageService.py +1 -1
- metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
- metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
- metadata/generated/schema/api/setOwner.py +1 -1
- metadata/generated/schema/api/teams/__init__.py +1 -1
- metadata/generated/schema/api/teams/createPersona.py +1 -1
- metadata/generated/schema/api/teams/createRole.py +1 -1
- metadata/generated/schema/api/teams/createTeam.py +1 -1
- metadata/generated/schema/api/teams/createUser.py +2 -2
- metadata/generated/schema/api/tests/__init__.py +1 -1
- metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
- metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
- metadata/generated/schema/api/tests/createTestCase.py +2 -2
- metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
- metadata/generated/schema/api/tests/createTestDefinition.py +2 -2
- metadata/generated/schema/api/tests/createTestSuite.py +1 -1
- metadata/generated/schema/api/voteRequest.py +1 -1
- metadata/generated/schema/auth/__init__.py +1 -1
- metadata/generated/schema/auth/basicAuth.py +1 -1
- metadata/generated/schema/auth/basicLoginRequest.py +1 -1
- metadata/generated/schema/auth/changePasswordRequest.py +1 -1
- metadata/generated/schema/auth/createPersonalToken.py +1 -1
- metadata/generated/schema/auth/emailRequest.py +1 -1
- metadata/generated/schema/auth/emailVerificationToken.py +1 -1
- metadata/generated/schema/auth/generateToken.py +1 -1
- metadata/generated/schema/auth/jwtAuth.py +1 -1
- metadata/generated/schema/auth/loginRequest.py +1 -1
- metadata/generated/schema/auth/logoutRequest.py +1 -1
- metadata/generated/schema/auth/passwordResetRequest.py +1 -1
- metadata/generated/schema/auth/passwordResetToken.py +1 -1
- metadata/generated/schema/auth/personalAccessToken.py +1 -1
- metadata/generated/schema/auth/refreshToken.py +1 -1
- metadata/generated/schema/auth/registrationRequest.py +1 -1
- metadata/generated/schema/auth/revokePersonalToken.py +1 -1
- metadata/generated/schema/auth/revokeToken.py +1 -1
- metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
- metadata/generated/schema/auth/ssoAuth.py +1 -1
- metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
- metadata/generated/schema/configuration/__init__.py +1 -1
- metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
- metadata/generated/schema/configuration/authConfig.py +1 -1
- metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
- metadata/generated/schema/configuration/authorizerConfiguration.py +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/loginConfiguration.py +1 -1
- metadata/generated/schema/configuration/logoConfiguration.py +1 -1
- metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
- metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
- metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
- metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
- metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
- metadata/generated/schema/configuration/themeConfiguration.py +1 -1
- metadata/generated/schema/configuration/uiThemePreference.py +1 -1
- metadata/generated/schema/dataInsight/__init__.py +1 -1
- metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
- metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
- metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
- metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
- metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
- metadata/generated/schema/dataInsight/type/__init__.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
- metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
- metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
- metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
- metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
- metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
- metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithDescriptionByType.py +1 -1
- metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +1 -1
- metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +1 -1
- metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +1 -1
- metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +1 -1
- metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +1 -1
- metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
- metadata/generated/schema/email/__init__.py +1 -1
- metadata/generated/schema/email/emailRequest.py +1 -1
- metadata/generated/schema/email/smtpSettings.py +3 -3
- metadata/generated/schema/entity/__init__.py +1 -1
- metadata/generated/schema/entity/applications/__init__.py +1 -1
- metadata/generated/schema/entity/applications/app.py +1 -1
- metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
- metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/external/metaPilotAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
- metadata/generated/schema/entity/applications/configuration/private/external/metaPilotAppPrivateConfig.py +1 -1
- metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
- metadata/generated/schema/entity/applications/jobStatus.py +1 -1
- metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
- metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
- metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
- metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
- metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
- metadata/generated/schema/entity/automations/__init__.py +1 -1
- metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
- metadata/generated/schema/entity/automations/workflow.py +1 -1
- metadata/generated/schema/entity/bot.py +1 -1
- metadata/generated/schema/entity/classification/__init__.py +1 -1
- metadata/generated/schema/entity/classification/classification.py +1 -1
- metadata/generated/schema/entity/classification/tag.py +1 -1
- metadata/generated/schema/entity/data/__init__.py +1 -1
- metadata/generated/schema/entity/data/chart.py +1 -1
- metadata/generated/schema/entity/data/container.py +1 -1
- metadata/generated/schema/entity/data/dashboard.py +1 -1
- metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
- metadata/generated/schema/entity/data/database.py +1 -1
- metadata/generated/schema/entity/data/databaseSchema.py +1 -1
- metadata/generated/schema/entity/data/glossary.py +1 -1
- metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
- metadata/generated/schema/entity/data/metrics.py +1 -1
- metadata/generated/schema/entity/data/mlmodel.py +1 -1
- metadata/generated/schema/entity/data/pipeline.py +1 -1
- metadata/generated/schema/entity/data/query.py +1 -1
- metadata/generated/schema/entity/data/report.py +1 -1
- metadata/generated/schema/entity/data/searchIndex.py +1 -1
- metadata/generated/schema/entity/data/storedProcedure.py +1 -1
- metadata/generated/schema/entity/data/table.py +6 -5
- 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 +15 -5
- 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/connections/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
- metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
- metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/connectionBasicType.py +5 -1
- metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/databricksConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
- metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +2 -2
- metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/hiveConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
- metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/oracleConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/postgresConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +4 -1
- metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/trinoConnection.py +7 -3
- metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +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/amundsenConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
- metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
- metadata/generated/schema/entity/services/connections/storage/s3Connection.py +5 -2
- metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
- metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
- metadata/generated/schema/entity/services/dashboardService.py +1 -1
- metadata/generated/schema/entity/services/databaseService.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
- metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
- metadata/generated/schema/entity/services/messagingService.py +1 -1
- metadata/generated/schema/entity/services/metadataService.py +1 -1
- metadata/generated/schema/entity/services/mlmodelService.py +1 -1
- metadata/generated/schema/entity/services/pipelineService.py +1 -1
- metadata/generated/schema/entity/services/searchService.py +1 -1
- metadata/generated/schema/entity/services/serviceType.py +1 -1
- metadata/generated/schema/entity/services/storageService.py +1 -1
- metadata/generated/schema/entity/teams/__init__.py +1 -1
- metadata/generated/schema/entity/teams/persona.py +1 -1
- metadata/generated/schema/entity/teams/role.py +1 -1
- metadata/generated/schema/entity/teams/team.py +1 -1
- metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
- metadata/generated/schema/entity/teams/user.py +2 -2
- metadata/generated/schema/entity/type.py +1 -1
- metadata/generated/schema/entity/utils/__init__.py +1 -1
- metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
- metadata/generated/schema/entity/utils/servicesCount.py +1 -1
- metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
- metadata/generated/schema/events/__init__.py +1 -1
- metadata/generated/schema/events/alertMetrics.py +1 -1
- metadata/generated/schema/events/api/__init__.py +1 -1
- metadata/generated/schema/events/api/createEventSubscription.py +1 -1
- metadata/generated/schema/events/emailAlertConfig.py +1 -1
- metadata/generated/schema/events/eventFilterRule.py +1 -1
- metadata/generated/schema/events/eventSubscription.py +1 -1
- metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
- metadata/generated/schema/events/failedEvent.py +1 -1
- metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
- metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
- metadata/generated/schema/metadataIngestion/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/application.py +1 -1
- metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +6 -1
- metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
- metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
- metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
- metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
- metadata/generated/schema/metadataIngestion/workflow.py +1 -1
- metadata/generated/schema/monitoring/__init__.py +1 -1
- metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
- metadata/generated/schema/security/__init__.py +1 -1
- metadata/generated/schema/security/client/__init__.py +1 -1
- metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
- metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
- metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
- metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
- metadata/generated/schema/security/credentials/__init__.py +1 -1
- metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
- metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
- metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
- metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
- metadata/generated/schema/security/credentials/basicAuth.py +1 -1
- metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
- metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
- metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
- metadata/generated/schema/security/credentials/gcpValues.py +1 -1
- metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
- metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
- metadata/generated/schema/security/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/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 +19 -19
- metadata/generated/schema/tests/customMetric.py +1 -1
- metadata/generated/schema/tests/resolved.py +1 -1
- metadata/generated/schema/tests/testCase.py +2 -2
- metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
- metadata/generated/schema/tests/testDefinition.py +2 -2
- metadata/generated/schema/tests/testSuite.py +1 -1
- metadata/generated/schema/type/__init__.py +1 -1
- metadata/generated/schema/type/auditLog.py +1 -1
- metadata/generated/schema/type/basic.py +7 -1
- metadata/generated/schema/type/bulkOperationResult.py +1 -1
- metadata/generated/schema/type/changeEvent.py +1 -1
- metadata/generated/schema/type/changeEventType.py +1 -1
- metadata/generated/schema/type/collectionDescriptor.py +1 -1
- metadata/generated/schema/type/csvDocumentation.py +1 -1
- metadata/generated/schema/type/csvErrorType.py +1 -1
- metadata/generated/schema/type/csvFile.py +1 -1
- metadata/generated/schema/type/csvImportResult.py +1 -1
- metadata/generated/schema/type/customProperties/__init__.py +1 -1
- metadata/generated/schema/type/customProperties/complexTypes.py +9 -10
- metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
- metadata/generated/schema/type/customProperty.py +1 -1
- metadata/generated/schema/type/dailyCount.py +1 -1
- metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
- metadata/generated/schema/type/entityHierarchy.py +1 -1
- metadata/generated/schema/type/entityHistory.py +1 -1
- metadata/generated/schema/type/entityLineage.py +1 -1
- metadata/generated/schema/type/entityReference.py +1 -1
- metadata/generated/schema/type/entityReferenceList.py +1 -1
- metadata/generated/schema/type/entityRelationship.py +1 -1
- metadata/generated/schema/type/entityUsage.py +1 -1
- metadata/generated/schema/type/filterPattern.py +1 -1
- metadata/generated/schema/type/function.py +1 -1
- metadata/generated/schema/type/include.py +1 -1
- metadata/generated/schema/type/jdbcConnection.py +1 -1
- metadata/generated/schema/type/lifeCycle.py +1 -1
- metadata/generated/schema/type/paging.py +1 -1
- metadata/generated/schema/type/profile.py +1 -1
- metadata/generated/schema/type/queryParserData.py +1 -1
- metadata/generated/schema/type/reaction.py +1 -1
- metadata/generated/schema/type/schedule.py +1 -1
- metadata/generated/schema/type/schema.py +1 -1
- metadata/generated/schema/type/tableQuery.py +1 -1
- metadata/generated/schema/type/tableUsageCount.py +1 -1
- metadata/generated/schema/type/tagLabel.py +1 -1
- metadata/generated/schema/type/usageDetails.py +1 -1
- metadata/generated/schema/type/usageRequest.py +1 -1
- metadata/generated/schema/type/votes.py +1 -1
- metadata/ingestion/models/custom_properties.py +2 -0
- metadata/ingestion/models/patch_request.py +1 -1
- metadata/ingestion/ometa/mixins/patch_mixin.py +4 -2
- metadata/ingestion/ometa/mixins/server_mixin.py +9 -12
- metadata/ingestion/ometa/mixins/user_mixin.py +16 -4
- metadata/ingestion/processor/query_parser.py +29 -25
- metadata/ingestion/source/dashboard/powerbi/metadata.py +27 -2
- metadata/ingestion/source/database/athena/client.py +1 -1
- metadata/ingestion/source/database/athena/lineage.py +2 -0
- metadata/ingestion/source/database/athena/models.py +1 -1
- metadata/ingestion/source/database/athena/query_parser.py +2 -0
- metadata/ingestion/source/database/athena/usage.py +2 -0
- metadata/ingestion/source/database/bigquery/metadata.py +28 -9
- metadata/ingestion/source/database/clickhouse/metadata.py +24 -16
- metadata/ingestion/source/database/common_db_source.py +25 -19
- metadata/ingestion/source/database/database_service.py +3 -1
- metadata/ingestion/source/database/databricks/metadata.py +12 -18
- metadata/ingestion/source/database/databricks/queries.py +1 -4
- metadata/ingestion/source/database/dbt/metadata.py +8 -14
- metadata/ingestion/source/database/deltalake/connection.py +2 -2
- metadata/ingestion/source/database/deltalake/metadata.py +1 -1
- metadata/ingestion/source/database/hive/metadata.py +23 -0
- metadata/ingestion/source/database/mssql/metadata.py +6 -0
- metadata/ingestion/source/database/mysql/metadata.py +5 -0
- metadata/ingestion/source/database/oracle/metadata.py +26 -12
- metadata/ingestion/source/database/postgres/metadata.py +4 -0
- metadata/ingestion/source/database/redshift/metadata.py +8 -1
- metadata/ingestion/source/database/sample_data.py +1 -3
- metadata/ingestion/source/database/snowflake/metadata.py +4 -1
- metadata/ingestion/source/database/snowflake/queries.py +4 -0
- metadata/ingestion/source/database/snowflake/utils.py +20 -0
- metadata/ingestion/source/database/sqlalchemy_source.py +2 -2
- metadata/ingestion/source/database/trino/connection.py +13 -0
- metadata/ingestion/source/messaging/common_broker_source.py +42 -3
- metadata/ingestion/source/pipeline/dagster/queries.py +53 -82
- metadata/ingestion/source/pipeline/kafkaconnect/__init__.py +0 -0
- metadata/ingestion/source/pipeline/kafkaconnect/client.py +278 -0
- metadata/ingestion/source/pipeline/kafkaconnect/connection.py +58 -0
- metadata/ingestion/source/pipeline/kafkaconnect/metadata.py +319 -0
- metadata/ingestion/source/pipeline/kafkaconnect/models.py +62 -0
- metadata/ingestion/source/storage/s3/connection.py +10 -1
- metadata/ingestion/source/storage/s3/metadata.py +12 -23
- metadata/ingestion/source/storage/s3/models.py +4 -4
- metadata/profiler/interface/sqlalchemy/databricks/profiler_interface.py +1 -3
- metadata/profiler/processor/metric_filter.py +3 -1
- metadata/utils/elasticsearch.py +8 -0
- metadata/utils/messaging_utils.py +43 -0
- metadata/utils/sqlalchemy_utils.py +45 -1
- metadata/utils/tag_utils.py +2 -2
- {openmetadata_ingestion-1.4.0.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc3.dist-info}/METADATA +288 -279
- {openmetadata_ingestion-1.4.0.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc3.dist-info}/RECORD +608 -605
- metadata/applications/auto_tagger.py +0 -212
- metadata/cli/backup.py +0 -209
- metadata/cli/db_dump.py +0 -239
- metadata/cli/utils.py +0 -56
- {openmetadata_ingestion-1.4.0.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc3.dist-info}/LICENSE +0 -0
- {openmetadata_ingestion-1.4.0.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc3.dist-info}/WHEEL +0 -0
- {openmetadata_ingestion-1.4.0.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc3.dist-info}/entry_points.txt +0 -0
- {openmetadata_ingestion-1.4.0.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc3.dist-info}/top_level.txt +0 -0
|
@@ -15,7 +15,11 @@ To be used by OpenMetadata class
|
|
|
15
15
|
"""
|
|
16
16
|
from typing import Optional
|
|
17
17
|
|
|
18
|
-
from metadata.__version__ import
|
|
18
|
+
from metadata.__version__ import (
|
|
19
|
+
get_client_version,
|
|
20
|
+
get_server_version_from_string,
|
|
21
|
+
match_versions,
|
|
22
|
+
)
|
|
19
23
|
from metadata.generated.schema.settings.settings import Settings, SettingType
|
|
20
24
|
from metadata.ingestion.models.encoders import show_secrets_encoder
|
|
21
25
|
from metadata.ingestion.ometa.client import REST
|
|
@@ -72,18 +76,17 @@ class OMetaServerMixin:
|
|
|
72
76
|
f"OpenMetadata client running with Server version [{server_version}] and Client version [{client_version}]"
|
|
73
77
|
)
|
|
74
78
|
|
|
75
|
-
|
|
76
|
-
# If the server version is contained in the client version, then we're good to go
|
|
77
|
-
if server_version not in client_version:
|
|
79
|
+
if not match_versions(server_version, client_version):
|
|
78
80
|
raise VersionMismatchException(
|
|
79
|
-
f"Server version is {server_version} vs. Client version {client_version}.
|
|
81
|
+
f"Server version is {server_version} vs. Client version {client_version}."
|
|
82
|
+
f" Major and minor versions should match."
|
|
80
83
|
)
|
|
81
84
|
|
|
82
85
|
def create_or_update_settings(self, settings: Settings) -> Settings:
|
|
83
86
|
"""Create of update setting
|
|
84
87
|
|
|
85
88
|
Args:
|
|
86
|
-
|
|
89
|
+
settings (Settings): setting to update or create
|
|
87
90
|
|
|
88
91
|
Returns:
|
|
89
92
|
Settings
|
|
@@ -95,9 +98,6 @@ class OMetaServerMixin:
|
|
|
95
98
|
def get_settings_by_name(self, setting_type: SettingType) -> Optional[Settings]:
|
|
96
99
|
"""Get setting by name
|
|
97
100
|
|
|
98
|
-
Args:
|
|
99
|
-
setting (Settings): setting to update or create
|
|
100
|
-
|
|
101
101
|
Returns:
|
|
102
102
|
Settings
|
|
103
103
|
"""
|
|
@@ -111,9 +111,6 @@ class OMetaServerMixin:
|
|
|
111
111
|
def get_profiler_config_settings(self) -> Optional[Settings]:
|
|
112
112
|
"""Get profiler config setting
|
|
113
113
|
|
|
114
|
-
Args:
|
|
115
|
-
setting (Settings): setting to update or create
|
|
116
|
-
|
|
117
114
|
Returns:
|
|
118
115
|
Settings
|
|
119
116
|
"""
|
|
@@ -127,7 +127,10 @@ class OMetaUserMixin:
|
|
|
127
127
|
)
|
|
128
128
|
if maybe_user:
|
|
129
129
|
return EntityReference(
|
|
130
|
-
id=maybe_user.id.__root__,
|
|
130
|
+
id=maybe_user.id.__root__,
|
|
131
|
+
type=ENTITY_REFERENCE_TYPE_MAP[User.__name__],
|
|
132
|
+
name=maybe_user.name.__root__,
|
|
133
|
+
displayName=maybe_user.displayName,
|
|
131
134
|
)
|
|
132
135
|
|
|
133
136
|
maybe_team = self._search_by_email(
|
|
@@ -135,7 +138,10 @@ class OMetaUserMixin:
|
|
|
135
138
|
)
|
|
136
139
|
if maybe_team:
|
|
137
140
|
return EntityReference(
|
|
138
|
-
id=maybe_team.id.__root__,
|
|
141
|
+
id=maybe_team.id.__root__,
|
|
142
|
+
type=ENTITY_REFERENCE_TYPE_MAP[Team.__name__],
|
|
143
|
+
name=maybe_team.name.__root__,
|
|
144
|
+
displayName=maybe_team.displayName,
|
|
139
145
|
)
|
|
140
146
|
|
|
141
147
|
return None
|
|
@@ -156,7 +162,10 @@ class OMetaUserMixin:
|
|
|
156
162
|
)
|
|
157
163
|
if maybe_user:
|
|
158
164
|
return EntityReference(
|
|
159
|
-
id=maybe_user.id.__root__,
|
|
165
|
+
id=maybe_user.id.__root__,
|
|
166
|
+
type=ENTITY_REFERENCE_TYPE_MAP[User.__name__],
|
|
167
|
+
name=maybe_user.name.__root__,
|
|
168
|
+
displayName=maybe_user.displayName,
|
|
160
169
|
)
|
|
161
170
|
|
|
162
171
|
maybe_team = self._search_by_name(
|
|
@@ -164,7 +173,10 @@ class OMetaUserMixin:
|
|
|
164
173
|
)
|
|
165
174
|
if maybe_team:
|
|
166
175
|
return EntityReference(
|
|
167
|
-
id=maybe_team.id.__root__,
|
|
176
|
+
id=maybe_team.id.__root__,
|
|
177
|
+
type=ENTITY_REFERENCE_TYPE_MAP[Team.__name__],
|
|
178
|
+
name=maybe_team.name.__root__,
|
|
179
|
+
displayName=maybe_team.displayName,
|
|
168
180
|
)
|
|
169
181
|
|
|
170
182
|
return None
|
|
@@ -17,9 +17,6 @@ import traceback
|
|
|
17
17
|
from typing import Optional
|
|
18
18
|
|
|
19
19
|
from metadata.config.common import ConfigModel
|
|
20
|
-
from metadata.generated.schema.entity.services.ingestionPipelines.status import (
|
|
21
|
-
StackTraceError,
|
|
22
|
-
)
|
|
23
20
|
from metadata.generated.schema.type.basic import DateTime
|
|
24
21
|
from metadata.generated.schema.type.queryParserData import ParsedData, QueryParserData
|
|
25
22
|
from metadata.generated.schema.type.tableQuery import TableQueries, TableQuery
|
|
@@ -104,28 +101,35 @@ class QueryParserProcessor(Processor):
|
|
|
104
101
|
return cls(config, metadata, connection_type)
|
|
105
102
|
|
|
106
103
|
def _run(self, record: TableQueries) -> Optional[Either[QueryParserData]]:
|
|
107
|
-
if record
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
104
|
+
if record is None or record.queries is None:
|
|
105
|
+
return None
|
|
106
|
+
|
|
107
|
+
data = []
|
|
108
|
+
success_cnt = 0
|
|
109
|
+
failed_cnt = 0
|
|
110
|
+
total_cnt = len(record.queries)
|
|
111
|
+
|
|
112
|
+
for table_query in record.queries:
|
|
113
|
+
try:
|
|
114
|
+
parsed_sql = parse_sql_statement(
|
|
115
|
+
table_query,
|
|
116
|
+
ConnectionTypeDialectMapper.dialect_of(self.connection_type),
|
|
117
|
+
)
|
|
118
|
+
if parsed_sql:
|
|
119
|
+
data.append(parsed_sql)
|
|
120
|
+
success_cnt += 1
|
|
121
|
+
except Exception as exc:
|
|
122
|
+
failed_cnt += 1
|
|
123
|
+
logger.debug(traceback.format_exc())
|
|
124
|
+
logger.warning(f"Error processing query [{table_query.query}]: {exc}")
|
|
125
|
+
cur_total_cnt = success_cnt + failed_cnt
|
|
126
|
+
if cur_total_cnt % 1000 == 0 or cur_total_cnt == total_cnt:
|
|
127
|
+
logger.info(
|
|
128
|
+
f"Total query count:{cur_total_cnt} / {total_cnt}."
|
|
129
|
+
f" Current success count: {success_cnt}."
|
|
130
|
+
f" Current failed count: {failed_cnt}."
|
|
131
|
+
)
|
|
132
|
+
return Either(right=QueryParserData(parsedData=data))
|
|
129
133
|
|
|
130
134
|
def close(self):
|
|
131
135
|
"""Nothing to close"""
|
|
@@ -514,7 +514,7 @@ class PowerbiSource(DashboardServiceSource):
|
|
|
514
514
|
datamodel_fqn = fqn.build(
|
|
515
515
|
self.metadata,
|
|
516
516
|
entity_type=DashboardDataModel,
|
|
517
|
-
service_name=self.
|
|
517
|
+
service_name=self.context.get().dashboard_service,
|
|
518
518
|
data_model_name=dataset.id,
|
|
519
519
|
)
|
|
520
520
|
datamodel_entity = self.metadata.get_by_name(
|
|
@@ -552,6 +552,25 @@ class PowerbiSource(DashboardServiceSource):
|
|
|
552
552
|
)
|
|
553
553
|
)
|
|
554
554
|
|
|
555
|
+
@staticmethod
|
|
556
|
+
def _get_data_model_column_fqn(
|
|
557
|
+
data_model_entity: DashboardDataModel, column: str
|
|
558
|
+
) -> Optional[str]:
|
|
559
|
+
"""
|
|
560
|
+
Get fqn of column if exist in data model entity or its child columns
|
|
561
|
+
"""
|
|
562
|
+
try:
|
|
563
|
+
if not data_model_entity:
|
|
564
|
+
return None
|
|
565
|
+
for tbl_column in data_model_entity.columns:
|
|
566
|
+
for child_column in tbl_column.children or []:
|
|
567
|
+
if column.lower() == child_column.name.__root__.lower():
|
|
568
|
+
return child_column.fullyQualifiedName.__root__
|
|
569
|
+
return None
|
|
570
|
+
except Exception as exc:
|
|
571
|
+
logger.debug(f"Error to get data_model_column_fqn {exc}")
|
|
572
|
+
logger.debug(traceback.format_exc())
|
|
573
|
+
|
|
555
574
|
def _get_table_and_datamodel_lineage(
|
|
556
575
|
self,
|
|
557
576
|
db_service_name: str,
|
|
@@ -576,8 +595,14 @@ class PowerbiSource(DashboardServiceSource):
|
|
|
576
595
|
)
|
|
577
596
|
|
|
578
597
|
if table_entity and datamodel_entity:
|
|
598
|
+
columns_list = [column.name for column in table.columns]
|
|
599
|
+
column_lineage = self._get_column_lineage(
|
|
600
|
+
table_entity, datamodel_entity, columns_list
|
|
601
|
+
)
|
|
579
602
|
return self._get_add_lineage_request(
|
|
580
|
-
to_entity=datamodel_entity,
|
|
603
|
+
to_entity=datamodel_entity,
|
|
604
|
+
from_entity=table_entity,
|
|
605
|
+
column_lineage=column_lineage,
|
|
581
606
|
)
|
|
582
607
|
except Exception as exc: # pylint: disable=broad-except
|
|
583
608
|
return Either(
|
|
@@ -74,7 +74,7 @@ class AthenaLakeFormationClient:
|
|
|
74
74
|
return LFTags(**response)
|
|
75
75
|
except Exception as exc:
|
|
76
76
|
logger.debug(traceback.format_exc())
|
|
77
|
-
logger.
|
|
77
|
+
logger.debug(
|
|
78
78
|
f"Unable to get lf tags for table resource [{table_name}] due to: {exc}"
|
|
79
79
|
)
|
|
80
80
|
return LFTags()
|
|
@@ -15,6 +15,7 @@ from typing import Iterable, Optional
|
|
|
15
15
|
|
|
16
16
|
from metadata.generated.schema.type.tableQuery import TableQuery
|
|
17
17
|
from metadata.ingestion.source.database.athena.query_parser import (
|
|
18
|
+
QUERY_SUCCESS_STATUS,
|
|
18
19
|
AthenaQueryParserSource,
|
|
19
20
|
)
|
|
20
21
|
from metadata.ingestion.source.database.lineage_source import LineageSource
|
|
@@ -37,6 +38,7 @@ class AthenaLineageSource(AthenaQueryParserSource, LineageSource):
|
|
|
37
38
|
if (
|
|
38
39
|
query.Status.SubmissionDateTime.date() >= self.start.date()
|
|
39
40
|
and self.is_not_dbt_or_om_query(query.Query)
|
|
41
|
+
and query.Status.State.upper() == QUERY_SUCCESS_STATUS
|
|
40
42
|
):
|
|
41
43
|
yield TableQuery(
|
|
42
44
|
query=query.Query,
|
|
@@ -15,6 +15,7 @@ from typing import Iterable
|
|
|
15
15
|
|
|
16
16
|
from metadata.generated.schema.type.tableQuery import TableQueries, TableQuery
|
|
17
17
|
from metadata.ingestion.source.database.athena.query_parser import (
|
|
18
|
+
QUERY_SUCCESS_STATUS,
|
|
18
19
|
AthenaQueryParserSource,
|
|
19
20
|
)
|
|
20
21
|
from metadata.ingestion.source.database.usage_source import UsageSource
|
|
@@ -56,6 +57,7 @@ class AthenaUsageSource(AthenaQueryParserSource, UsageSource):
|
|
|
56
57
|
for query in query_list.QueryExecutions
|
|
57
58
|
if query.Status
|
|
58
59
|
and query.Query
|
|
60
|
+
and query.Status.State.upper() == QUERY_SUCCESS_STATUS
|
|
59
61
|
and query.Status.SubmissionDateTime.date() >= self.start.date()
|
|
60
62
|
and self.is_not_dbt_or_om_query(query.Query)
|
|
61
63
|
]
|
|
@@ -99,7 +99,11 @@ from metadata.utils.credentials import GOOGLE_CREDENTIALS
|
|
|
99
99
|
from metadata.utils.filters import filter_by_database, filter_by_schema
|
|
100
100
|
from metadata.utils.helpers import get_start_and_end
|
|
101
101
|
from metadata.utils.logger import ingestion_logger
|
|
102
|
-
from metadata.utils.sqlalchemy_utils import
|
|
102
|
+
from metadata.utils.sqlalchemy_utils import (
|
|
103
|
+
get_all_table_ddls,
|
|
104
|
+
get_table_ddl,
|
|
105
|
+
is_complex_type,
|
|
106
|
+
)
|
|
103
107
|
from metadata.utils.tag_utils import get_ometa_tag_and_classification, get_tag_label
|
|
104
108
|
from metadata.utils.tag_utils import get_tag_labels as fetch_tag_labels_om
|
|
105
109
|
|
|
@@ -210,6 +214,9 @@ BigQueryDialect._build_formatted_table_id = ( # pylint: disable=protected-acces
|
|
|
210
214
|
BigQueryDialect.get_pk_constraint = get_pk_constraint
|
|
211
215
|
BigQueryDialect.get_foreign_keys = get_foreign_keys
|
|
212
216
|
|
|
217
|
+
Inspector.get_all_table_ddls = get_all_table_ddls
|
|
218
|
+
Inspector.get_table_ddl = get_table_ddl
|
|
219
|
+
|
|
213
220
|
|
|
214
221
|
class BigquerySource(
|
|
215
222
|
LifeCycleQueryMixin, StoredProcedureMixin, CommonDbSourceService, MultiDBSource
|
|
@@ -601,21 +608,33 @@ class BigquerySource(
|
|
|
601
608
|
f"Error trying to connect to database {project_id}: {exc}"
|
|
602
609
|
)
|
|
603
610
|
|
|
604
|
-
def
|
|
611
|
+
def get_schema_definition(
|
|
605
612
|
self, table_type: str, table_name: str, schema_name: str, inspector: Inspector
|
|
606
613
|
) -> Optional[str]:
|
|
607
|
-
|
|
608
|
-
|
|
614
|
+
"""
|
|
615
|
+
Get the DDL statement or View Definition for a table
|
|
616
|
+
"""
|
|
617
|
+
try:
|
|
618
|
+
if table_type == TableType.View:
|
|
609
619
|
view_definition = inspector.get_view_definition(
|
|
610
620
|
fqn._build(self.context.get().database, schema_name, table_name)
|
|
611
621
|
)
|
|
612
622
|
view_definition = (
|
|
613
|
-
"
|
|
623
|
+
f"CREATE VIEW {schema_name}.{table_name} AS {str(view_definition)}"
|
|
624
|
+
if view_definition is not None
|
|
625
|
+
else None
|
|
614
626
|
)
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
627
|
+
return view_definition
|
|
628
|
+
|
|
629
|
+
schema_definition = inspector.get_table_ddl(
|
|
630
|
+
self.connection, table_name, schema_name
|
|
631
|
+
)
|
|
632
|
+
schema_definition = (
|
|
633
|
+
str(schema_definition) if schema_definition is not None else None
|
|
634
|
+
)
|
|
635
|
+
return schema_definition
|
|
636
|
+
except NotImplementedError:
|
|
637
|
+
logger.warning("Schema definition not implemented")
|
|
619
638
|
return None
|
|
620
639
|
|
|
621
640
|
def get_table_partition_details(
|
|
@@ -45,7 +45,9 @@ from metadata.ingestion.source.database.common_db_source import (
|
|
|
45
45
|
from metadata.utils.logger import ingestion_logger
|
|
46
46
|
from metadata.utils.sqlalchemy_utils import (
|
|
47
47
|
get_all_table_comments,
|
|
48
|
+
get_all_table_ddls,
|
|
48
49
|
get_all_view_definitions,
|
|
50
|
+
get_table_ddl,
|
|
49
51
|
)
|
|
50
52
|
|
|
51
53
|
logger = ingestion_logger()
|
|
@@ -95,6 +97,8 @@ ClickHouseDialect._get_column_info = ( # pylint: disable=protected-access
|
|
|
95
97
|
)
|
|
96
98
|
Inspector.get_mview_names = get_mview_names
|
|
97
99
|
ClickHouseDialect.get_mview_names = get_mview_names_dialect
|
|
100
|
+
Inspector.get_all_table_ddls = get_all_table_ddls
|
|
101
|
+
Inspector.get_table_ddl = get_table_ddl
|
|
98
102
|
|
|
99
103
|
|
|
100
104
|
class ClickhouseSource(CommonDbSourceService):
|
|
@@ -142,25 +146,29 @@ class ClickhouseSource(CommonDbSourceService):
|
|
|
142
146
|
|
|
143
147
|
return regular_tables + material_tables + view_tables
|
|
144
148
|
|
|
145
|
-
def
|
|
149
|
+
def get_schema_definition(
|
|
146
150
|
self, table_type: str, table_name: str, schema_name: str, inspector: Inspector
|
|
147
151
|
) -> Optional[str]:
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
152
|
+
"""
|
|
153
|
+
Get the DDL statement or View Definition for a table
|
|
154
|
+
"""
|
|
155
|
+
try:
|
|
156
|
+
if table_type in {TableType.View, TableType.MaterializedView}:
|
|
157
|
+
definition_fn = inspector.get_view_definition
|
|
158
|
+
schema_definition = definition_fn(table_name, schema_name)
|
|
159
|
+
else:
|
|
160
|
+
schema_definition = inspector.get_table_ddl(
|
|
161
|
+
self.connection, table_name, schema_name
|
|
154
162
|
)
|
|
155
|
-
|
|
163
|
+
schema_definition = (
|
|
164
|
+
str(schema_definition) if schema_definition is not None else None
|
|
165
|
+
)
|
|
166
|
+
return schema_definition
|
|
156
167
|
|
|
157
|
-
|
|
158
|
-
|
|
168
|
+
except NotImplementedError:
|
|
169
|
+
logger.warning("Schema definition not implemented")
|
|
159
170
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
f"Failed to fetch view definition for {table_name}: {exc}"
|
|
164
|
-
)
|
|
165
|
-
return None
|
|
171
|
+
except Exception as exc:
|
|
172
|
+
logger.debug(traceback.format_exc())
|
|
173
|
+
logger.warning(f"Failed to fetch schema definition for {table_name}: {exc}")
|
|
166
174
|
return None
|
|
@@ -359,26 +359,32 @@ class CommonDbSourceService(
|
|
|
359
359
|
logger.debug(traceback.format_exc())
|
|
360
360
|
|
|
361
361
|
@calculate_execution_time()
|
|
362
|
-
def
|
|
362
|
+
def get_schema_definition(
|
|
363
363
|
self, table_type: str, table_name: str, schema_name: str, inspector: Inspector
|
|
364
364
|
) -> Optional[str]:
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
365
|
+
"""
|
|
366
|
+
Get the DDL statement or View Definition for a table
|
|
367
|
+
"""
|
|
368
|
+
try:
|
|
369
|
+
if table_type in (TableType.View, TableType.MaterializedView):
|
|
370
|
+
schema_definition = inspector.get_view_definition(
|
|
371
|
+
table_name, schema_name
|
|
372
|
+
)
|
|
373
|
+
else:
|
|
374
|
+
schema_definition = inspector.get_table_ddl(
|
|
375
|
+
self.connection, table_name, schema_name
|
|
370
376
|
)
|
|
371
|
-
|
|
377
|
+
schema_definition = (
|
|
378
|
+
str(schema_definition) if schema_definition is not None else None
|
|
379
|
+
)
|
|
380
|
+
return schema_definition
|
|
372
381
|
|
|
373
|
-
|
|
374
|
-
|
|
382
|
+
except NotImplementedError:
|
|
383
|
+
logger.warning("Schema definition not implemented")
|
|
375
384
|
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
f"Failed to fetch view definition for {table_name}: {exc}"
|
|
380
|
-
)
|
|
381
|
-
return None
|
|
385
|
+
except Exception as exc:
|
|
386
|
+
logger.debug(traceback.format_exc())
|
|
387
|
+
logger.warning(f"Failed to fetch schema definition for {table_name}: {exc}")
|
|
382
388
|
return None
|
|
383
389
|
|
|
384
390
|
def is_partition( # pylint: disable=unused-argument
|
|
@@ -449,7 +455,7 @@ class CommonDbSourceService(
|
|
|
449
455
|
inspector=self.inspector,
|
|
450
456
|
)
|
|
451
457
|
|
|
452
|
-
|
|
458
|
+
schema_definition = self.get_schema_definition(
|
|
453
459
|
table_type=table_type,
|
|
454
460
|
table_name=table_name,
|
|
455
461
|
schema_name=schema_name,
|
|
@@ -468,7 +474,7 @@ class CommonDbSourceService(
|
|
|
468
474
|
),
|
|
469
475
|
columns=columns,
|
|
470
476
|
tableConstraints=table_constraints,
|
|
471
|
-
|
|
477
|
+
schemaDefinition=schema_definition,
|
|
472
478
|
databaseSchema=fqn.build(
|
|
473
479
|
metadata=self.metadata,
|
|
474
480
|
entity_type=DatabaseSchema,
|
|
@@ -501,13 +507,13 @@ class CommonDbSourceService(
|
|
|
501
507
|
self.register_record(table_request=table_request)
|
|
502
508
|
|
|
503
509
|
# Flag view as visited
|
|
504
|
-
if table_type == TableType.View or
|
|
510
|
+
if table_type == TableType.View or schema_definition:
|
|
505
511
|
table_view = TableView.parse_obj(
|
|
506
512
|
{
|
|
507
513
|
"table_name": table_name,
|
|
508
514
|
"schema_name": schema_name,
|
|
509
515
|
"db_name": self.context.get().database,
|
|
510
|
-
"view_definition":
|
|
516
|
+
"view_definition": schema_definition,
|
|
511
517
|
}
|
|
512
518
|
)
|
|
513
519
|
self.context.get_global().table_views.append(table_view)
|
|
@@ -521,7 +521,9 @@ class DatabaseServiceSource(
|
|
|
521
521
|
Method to process the table owners
|
|
522
522
|
"""
|
|
523
523
|
try:
|
|
524
|
-
if self.source_config.includeOwners
|
|
524
|
+
if self.source_config.includeOwners and hasattr(
|
|
525
|
+
self.inspector, "get_table_owner"
|
|
526
|
+
):
|
|
525
527
|
owner_name = self.inspector.get_table_owner(
|
|
526
528
|
connection=self.connection, # pylint: disable=no-member.fetchall()
|
|
527
529
|
table_name=table_name,
|
|
@@ -60,7 +60,9 @@ from metadata.utils.constants import DEFAULT_DATABASE
|
|
|
60
60
|
from metadata.utils.filters import filter_by_database
|
|
61
61
|
from metadata.utils.logger import ingestion_logger
|
|
62
62
|
from metadata.utils.sqlalchemy_utils import (
|
|
63
|
+
get_all_table_ddls,
|
|
63
64
|
get_all_view_definitions,
|
|
65
|
+
get_table_ddl,
|
|
64
66
|
get_view_definition_wrapper,
|
|
65
67
|
)
|
|
66
68
|
from metadata.utils.tag_utils import get_ometa_tag_and_classification
|
|
@@ -129,7 +131,6 @@ def get_columns(self, connection, table_name, schema=None, **kw):
|
|
|
129
131
|
value should match what is provided in the 'source.config.database' field in the
|
|
130
132
|
Databricks ingest config file.
|
|
131
133
|
"""
|
|
132
|
-
db_name = kw["db_name"] if "db_name" in kw else None
|
|
133
134
|
|
|
134
135
|
rows = _get_column_rows(self, connection, table_name, schema)
|
|
135
136
|
result = []
|
|
@@ -157,20 +158,13 @@ def get_columns(self, connection, table_name, schema=None, **kw):
|
|
|
157
158
|
"system_data_type": raw_col_type,
|
|
158
159
|
}
|
|
159
160
|
if col_type in {"array", "struct", "map"}:
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
)
|
|
166
|
-
|
|
167
|
-
rows = dict(
|
|
168
|
-
connection.execute(
|
|
169
|
-
f"DESCRIBE {schema}.{table_name} {col_name}"
|
|
170
|
-
if schema
|
|
171
|
-
else f"DESCRIBE {table_name} {col_name}"
|
|
172
|
-
).fetchall()
|
|
173
|
-
)
|
|
161
|
+
rows = dict(
|
|
162
|
+
connection.execute(
|
|
163
|
+
f"DESCRIBE {schema}.{table_name} {col_name}"
|
|
164
|
+
if schema
|
|
165
|
+
else f"DESCRIBE {table_name} {col_name}"
|
|
166
|
+
).fetchall()
|
|
167
|
+
)
|
|
174
168
|
|
|
175
169
|
col_info["system_data_type"] = rows["data_type"]
|
|
176
170
|
col_info["is_complex"] = True
|
|
@@ -259,6 +253,8 @@ DatabricksDialect.get_schema_names = get_schema_names
|
|
|
259
253
|
DatabricksDialect.get_view_definition = get_view_definition
|
|
260
254
|
DatabricksDialect.get_all_view_definitions = get_all_view_definitions
|
|
261
255
|
reflection.Inspector.get_schema_names = get_schema_names_reflection
|
|
256
|
+
reflection.Inspector.get_all_table_ddls = get_all_table_ddls
|
|
257
|
+
reflection.Inspector.get_table_ddl = get_table_ddl
|
|
262
258
|
|
|
263
259
|
|
|
264
260
|
class DatabricksSource(ExternalTableLineageMixin, CommonDbSourceService, MultiDBSource):
|
|
@@ -596,9 +592,7 @@ class DatabricksSource(ExternalTableLineageMixin, CommonDbSourceService, MultiDB
|
|
|
596
592
|
try:
|
|
597
593
|
cursor = self.connection.execute(
|
|
598
594
|
DATABRICKS_GET_TABLE_COMMENTS.format(
|
|
599
|
-
schema_name=schema_name,
|
|
600
|
-
table_name=table_name,
|
|
601
|
-
catalog_name=self.context.get().database,
|
|
595
|
+
schema_name=schema_name, table_name=table_name
|
|
602
596
|
)
|
|
603
597
|
)
|
|
604
598
|
for result in list(cursor):
|
|
@@ -24,10 +24,7 @@ DATABRICKS_VIEW_DEFINITIONS = textwrap.dedent(
|
|
|
24
24
|
"""
|
|
25
25
|
)
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
DATABRICKS_GET_TABLE_COMMENTS = (
|
|
29
|
-
"DESCRIBE TABLE EXTENDED {catalog_name}.{schema_name}.{table_name}"
|
|
30
|
-
)
|
|
27
|
+
DATABRICKS_GET_TABLE_COMMENTS = "DESCRIBE TABLE EXTENDED {schema_name}.{table_name}"
|
|
31
28
|
|
|
32
29
|
DATABRICKS_GET_CATALOGS = "SHOW CATALOGS"
|
|
33
30
|
|
|
@@ -28,7 +28,6 @@ from metadata.generated.schema.entity.data.table import (
|
|
|
28
28
|
ModelType,
|
|
29
29
|
Table,
|
|
30
30
|
)
|
|
31
|
-
from metadata.generated.schema.entity.services.databaseService import DatabaseService
|
|
32
31
|
from metadata.generated.schema.entity.services.ingestionPipelines.status import (
|
|
33
32
|
StackTraceError,
|
|
34
33
|
)
|
|
@@ -132,13 +131,7 @@ class DbtSource(DbtServiceSource):
|
|
|
132
131
|
"""
|
|
133
132
|
By default for DBT nothing is required to be prepared
|
|
134
133
|
"""
|
|
135
|
-
|
|
136
|
-
entity=DatabaseService, fqn=self.config.serviceName
|
|
137
|
-
)
|
|
138
|
-
if not database_service:
|
|
139
|
-
raise InvalidServiceException(
|
|
140
|
-
f"Service with name {self.config.serviceName} not found"
|
|
141
|
-
)
|
|
134
|
+
pass
|
|
142
135
|
|
|
143
136
|
def get_dbt_owner(
|
|
144
137
|
self, manifest_node: dict, catalog_node: Optional[dict]
|
|
@@ -413,7 +406,7 @@ class DbtSource(DbtServiceSource):
|
|
|
413
406
|
table_fqn = fqn.build(
|
|
414
407
|
self.metadata,
|
|
415
408
|
entity_type=Table,
|
|
416
|
-
service_name=
|
|
409
|
+
service_name="*",
|
|
417
410
|
database_name=get_corrected_name(manifest_node.database),
|
|
418
411
|
schema_name=get_corrected_name(manifest_node.schema_),
|
|
419
412
|
table_name=model_name,
|
|
@@ -507,7 +500,7 @@ class DbtSource(DbtServiceSource):
|
|
|
507
500
|
parent_fqn = fqn.build(
|
|
508
501
|
self.metadata,
|
|
509
502
|
entity_type=Table,
|
|
510
|
-
service_name=
|
|
503
|
+
service_name="*",
|
|
511
504
|
database_name=get_corrected_name(parent_node.database),
|
|
512
505
|
schema_name=get_corrected_name(parent_node.schema_),
|
|
513
506
|
table_name=table_name,
|
|
@@ -586,9 +579,10 @@ class DbtSource(DbtServiceSource):
|
|
|
586
579
|
columns.append(
|
|
587
580
|
Column(
|
|
588
581
|
name=column_name,
|
|
589
|
-
description
|
|
590
|
-
|
|
591
|
-
|
|
582
|
+
# If the catalog description is present, use it, else use the manifest description
|
|
583
|
+
description=column_description
|
|
584
|
+
if column_description
|
|
585
|
+
else manifest_column.description,
|
|
592
586
|
dataType=ColumnTypeParser.get_column_type(
|
|
593
587
|
catalog_column.type
|
|
594
588
|
if catalog_column
|
|
@@ -948,7 +942,7 @@ class DbtSource(DbtServiceSource):
|
|
|
948
942
|
test_case_fqn = fqn.build(
|
|
949
943
|
self.metadata,
|
|
950
944
|
entity_type=TestCase,
|
|
951
|
-
service_name=
|
|
945
|
+
service_name=source_elements[0],
|
|
952
946
|
database_name=source_elements[1],
|
|
953
947
|
schema_name=source_elements[2],
|
|
954
948
|
table_name=source_elements[3],
|