openmetadata-ingestion 1.4.0.0rc1__py3-none-any.whl → 1.4.0.0rc2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of openmetadata-ingestion might be problematic. Click here for more details.
- metadata/__version__.py +13 -0
- metadata/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 +1 -1
- 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.0rc2.dist-info}/METADATA +284 -275
- {openmetadata_ingestion-1.4.0.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc2.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.0rc2.dist-info}/LICENSE +0 -0
- {openmetadata_ingestion-1.4.0.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc2.dist-info}/WHEEL +0 -0
- {openmetadata_ingestion-1.4.0.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc2.dist-info}/entry_points.txt +0 -0
- {openmetadata_ingestion-1.4.0.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc2.dist-info}/top_level.txt +0 -0
|
@@ -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],
|
|
@@ -65,13 +65,13 @@ def get_connection(connection: DeltaLakeConnection) -> SparkSession:
|
|
|
65
65
|
)
|
|
66
66
|
if connection.metastoreConnection.jdbcDriverClassPath:
|
|
67
67
|
builder.config(
|
|
68
|
-
"
|
|
68
|
+
"spark.driver.extraClassPath",
|
|
69
69
|
connection.metastoreConnection.jdbcDriverClassPath,
|
|
70
70
|
)
|
|
71
71
|
if connection.metastoreConnection.username:
|
|
72
72
|
builder.config(
|
|
73
73
|
"spark.hadoop.javax.jdo.option.ConnectionUserName",
|
|
74
|
-
connection.metastoreConnection.
|
|
74
|
+
connection.metastoreConnection.username,
|
|
75
75
|
)
|
|
76
76
|
if connection.metastoreConnection.password:
|
|
77
77
|
builder.config(
|
|
@@ -12,9 +12,11 @@
|
|
|
12
12
|
Hive source methods.
|
|
13
13
|
"""
|
|
14
14
|
|
|
15
|
+
import traceback
|
|
15
16
|
from typing import Optional, Tuple
|
|
16
17
|
|
|
17
18
|
from pyhive.sqlalchemy_hive import HiveDialect
|
|
19
|
+
from sqlalchemy.engine.reflection import Inspector
|
|
18
20
|
|
|
19
21
|
from metadata.generated.schema.entity.services.connections.database.hiveConnection import (
|
|
20
22
|
HiveConnection,
|
|
@@ -96,3 +98,24 @@ class HiveSource(CommonDbSourceService):
|
|
|
96
98
|
)
|
|
97
99
|
self._connection_map = {} # Lazy init as well
|
|
98
100
|
self._inspector_map = {}
|
|
101
|
+
|
|
102
|
+
def get_schema_definition( # pylint: disable=unused-argument
|
|
103
|
+
self, table_type: str, table_name: str, schema_name: str, inspector: Inspector
|
|
104
|
+
) -> Optional[str]:
|
|
105
|
+
"""
|
|
106
|
+
Get the DDL statement or View Definition for a table
|
|
107
|
+
"""
|
|
108
|
+
try:
|
|
109
|
+
schema_definition = inspector.get_view_definition(table_name, schema_name)
|
|
110
|
+
schema_definition = (
|
|
111
|
+
str(schema_definition) if schema_definition is not None else None
|
|
112
|
+
)
|
|
113
|
+
return schema_definition
|
|
114
|
+
|
|
115
|
+
except NotImplementedError:
|
|
116
|
+
logger.warning("Schema definition not implemented")
|
|
117
|
+
|
|
118
|
+
except Exception as exc:
|
|
119
|
+
logger.debug(traceback.format_exc())
|
|
120
|
+
logger.warning(f"Failed to fetch schema definition for {table_name}: {exc}")
|
|
121
|
+
return None
|
|
@@ -13,6 +13,7 @@ import traceback
|
|
|
13
13
|
from typing import Dict, Iterable, List, Optional
|
|
14
14
|
|
|
15
15
|
from sqlalchemy.dialects.mssql.base import MSDialect, ischema_names
|
|
16
|
+
from sqlalchemy.engine.reflection import Inspector
|
|
16
17
|
|
|
17
18
|
from metadata.generated.schema.api.data.createStoredProcedure import (
|
|
18
19
|
CreateStoredProcedureRequest,
|
|
@@ -65,7 +66,9 @@ from metadata.utils.logger import ingestion_logger
|
|
|
65
66
|
from metadata.utils.sqa_utils import update_mssql_ischema_names
|
|
66
67
|
from metadata.utils.sqlalchemy_utils import (
|
|
67
68
|
get_all_table_comments,
|
|
69
|
+
get_all_table_ddls,
|
|
68
70
|
get_all_view_definitions,
|
|
71
|
+
get_table_ddl,
|
|
69
72
|
)
|
|
70
73
|
|
|
71
74
|
logger = ingestion_logger()
|
|
@@ -87,6 +90,9 @@ MSDialect.get_foreign_keys = get_foreign_keys
|
|
|
87
90
|
MSDialect.get_table_names = get_table_names
|
|
88
91
|
MSDialect.get_view_names = get_view_names
|
|
89
92
|
|
|
93
|
+
Inspector.get_all_table_ddls = get_all_table_ddls
|
|
94
|
+
Inspector.get_table_ddl = get_table_ddl
|
|
95
|
+
|
|
90
96
|
|
|
91
97
|
class MssqlSource(StoredProcedureMixin, CommonDbSourceService, MultiDBSource):
|
|
92
98
|
"""
|