openmetadata-ingestion 1.3.0.0.dev0__py3-none-any.whl → 1.3.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of openmetadata-ingestion might be problematic. Click here for more details.

Files changed (631) hide show
  1. metadata/applications/auto_tagger.py +8 -3
  2. metadata/cli/db_dump.py +1 -0
  3. metadata/data_insight/processor/reports/cost_analysis_report_data_processor.py +39 -47
  4. metadata/data_insight/processor/reports/data_processor.py +1 -0
  5. metadata/data_insight/producer/cost_analysis_producer.py +78 -14
  6. metadata/data_insight/producer/entity_producer.py +1 -1
  7. metadata/data_insight/producer/producer_interface.py +1 -1
  8. metadata/data_insight/producer/web_analytics_producer.py +1 -1
  9. metadata/data_insight/source/metadata.py +10 -1
  10. metadata/data_quality/processor/test_case_runner.py +7 -5
  11. metadata/data_quality/source/test_suite.py +0 -1
  12. metadata/data_quality/validations/mixins/pandas_validator_mixin.py +4 -2
  13. metadata/data_quality/validations/table/base/tableColumnToMatchSet.py +2 -1
  14. metadata/data_quality/validations/table/pandas/tableColumnToMatchSet.py +2 -1
  15. metadata/data_quality/validations/table/sqlalchemy/tableColumnToMatchSet.py +7 -2
  16. metadata/examples/workflows/bigtable.yaml +32 -0
  17. metadata/generated/antlr/EntityLinkLexer.py +124 -58
  18. metadata/generated/schema/analytics/__init__.py +1 -1
  19. metadata/generated/schema/analytics/basic.py +1 -1
  20. metadata/generated/schema/analytics/reportData.py +1 -1
  21. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  22. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  23. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  24. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  25. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  26. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  27. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  28. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  29. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  30. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  31. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  32. metadata/generated/schema/api/__init__.py +1 -1
  33. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  34. metadata/generated/schema/api/analytics/__init__.py +1 -1
  35. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  36. metadata/generated/schema/api/automations/__init__.py +1 -1
  37. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  38. metadata/generated/schema/api/bulkAssets.py +1 -1
  39. metadata/generated/schema/api/classification/__init__.py +1 -1
  40. metadata/generated/schema/api/classification/createClassification.py +1 -1
  41. metadata/generated/schema/api/classification/createTag.py +1 -1
  42. metadata/generated/schema/api/classification/loadTags.py +1 -1
  43. metadata/generated/schema/api/createBot.py +1 -1
  44. metadata/generated/schema/api/createEventPublisherJob.py +2 -2
  45. metadata/generated/schema/api/createType.py +1 -1
  46. metadata/generated/schema/api/data/__init__.py +1 -1
  47. metadata/generated/schema/api/data/createChart.py +1 -1
  48. metadata/generated/schema/api/data/createContainer.py +1 -1
  49. metadata/generated/schema/api/data/createCustomProperty.py +6 -10
  50. metadata/generated/schema/api/data/createDashboard.py +1 -1
  51. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  52. metadata/generated/schema/api/data/createDatabase.py +1 -1
  53. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  54. metadata/generated/schema/api/data/createGlossary.py +1 -1
  55. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  56. metadata/generated/schema/api/data/createMlModel.py +1 -1
  57. metadata/generated/schema/api/data/createPipeline.py +1 -1
  58. metadata/generated/schema/api/data/createQuery.py +1 -1
  59. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  60. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  61. metadata/generated/schema/api/data/createTable.py +1 -1
  62. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  63. metadata/generated/schema/api/data/createTopic.py +1 -1
  64. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  65. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  66. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  67. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  68. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  69. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  70. metadata/generated/schema/api/docStore/__init__.py +1 -1
  71. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  72. metadata/generated/schema/api/domains/__init__.py +1 -1
  73. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  74. metadata/generated/schema/api/domains/createDomain.py +1 -1
  75. metadata/generated/schema/api/feed/__init__.py +1 -1
  76. metadata/generated/schema/api/feed/closeTask.py +1 -1
  77. metadata/generated/schema/api/feed/createPost.py +1 -1
  78. metadata/generated/schema/api/feed/createSuggestion.py +30 -0
  79. metadata/generated/schema/api/feed/createThread.py +1 -1
  80. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  81. metadata/generated/schema/api/feed/threadCount.py +1 -1
  82. metadata/generated/schema/api/lineage/__init__.py +1 -1
  83. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  84. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  85. metadata/generated/schema/api/policies/__init__.py +1 -1
  86. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  87. metadata/generated/schema/api/services/__init__.py +1 -1
  88. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  89. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  90. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  91. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  92. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  93. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  94. metadata/generated/schema/api/services/createSearchService.py +1 -1
  95. metadata/generated/schema/api/services/createStorageService.py +1 -1
  96. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  97. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  98. metadata/generated/schema/api/setOwner.py +1 -1
  99. metadata/generated/schema/api/teams/__init__.py +1 -1
  100. metadata/generated/schema/api/teams/createPersona.py +1 -1
  101. metadata/generated/schema/api/teams/createRole.py +1 -1
  102. metadata/generated/schema/api/teams/createTeam.py +1 -1
  103. metadata/generated/schema/api/teams/createUser.py +1 -1
  104. metadata/generated/schema/api/tests/__init__.py +1 -1
  105. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  106. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  107. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  108. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  109. metadata/generated/schema/api/tests/createTestDefinition.py +2 -1
  110. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  111. metadata/generated/schema/api/voteRequest.py +1 -1
  112. metadata/generated/schema/auth/__init__.py +1 -1
  113. metadata/generated/schema/auth/basicAuth.py +1 -1
  114. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  115. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  116. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  117. metadata/generated/schema/auth/emailRequest.py +1 -1
  118. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  119. metadata/generated/schema/auth/generateToken.py +1 -1
  120. metadata/generated/schema/auth/jwtAuth.py +1 -1
  121. metadata/generated/schema/auth/loginRequest.py +1 -1
  122. metadata/generated/schema/auth/logoutRequest.py +1 -1
  123. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  124. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  125. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  126. metadata/generated/schema/auth/refreshToken.py +1 -1
  127. metadata/generated/schema/auth/registrationRequest.py +1 -1
  128. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  129. metadata/generated/schema/auth/revokeToken.py +1 -1
  130. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  131. metadata/generated/schema/auth/ssoAuth.py +1 -1
  132. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  133. metadata/generated/schema/configuration/__init__.py +1 -1
  134. metadata/generated/schema/configuration/appsPrivateConfiguration.py +28 -0
  135. metadata/generated/schema/configuration/authConfig.py +1 -1
  136. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  137. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  138. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  139. metadata/generated/schema/configuration/dataQualityConfiguration.py +16 -0
  140. metadata/generated/schema/configuration/elasticSearchConfiguration.py +4 -1
  141. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  142. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  143. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  144. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  145. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  146. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  147. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  148. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  149. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  150. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  151. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  152. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  153. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  154. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  155. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  156. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  157. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  158. metadata/generated/schema/dataInsight/__init__.py +1 -1
  159. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  160. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  161. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  162. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  163. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  164. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  165. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  166. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  167. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  168. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  169. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  170. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  171. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  172. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  173. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithDescriptionByType.py +1 -1
  174. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +1 -1
  175. metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +1 -1
  176. metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +1 -1
  177. metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +1 -1
  178. metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +1 -1
  179. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  180. metadata/generated/schema/email/__init__.py +1 -1
  181. metadata/generated/schema/email/emailRequest.py +1 -1
  182. metadata/generated/schema/email/smtpSettings.py +1 -1
  183. metadata/generated/schema/entity/__init__.py +1 -1
  184. metadata/generated/schema/entity/applications/__init__.py +1 -1
  185. metadata/generated/schema/entity/applications/app.py +4 -1
  186. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  187. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  188. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +6 -1
  189. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  190. metadata/generated/schema/entity/applications/configuration/external/autoTaggerAppConfig.py +1 -1
  191. metadata/generated/schema/entity/applications/configuration/external/metaPilotAppConfig.py +1 -16
  192. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  193. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  194. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  195. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +2 -2
  196. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +3 -0
  197. metadata/generated/schema/entity/applications/configuration/private/external/metaPilotAppPrivateConfig.py +26 -0
  198. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  199. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  200. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  201. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  202. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  203. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  204. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  205. metadata/generated/schema/entity/automations/__init__.py +1 -1
  206. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  207. metadata/generated/schema/entity/automations/workflow.py +1 -1
  208. metadata/generated/schema/entity/bot.py +1 -1
  209. metadata/generated/schema/entity/classification/__init__.py +1 -1
  210. metadata/generated/schema/entity/classification/classification.py +1 -1
  211. metadata/generated/schema/entity/classification/tag.py +1 -1
  212. metadata/generated/schema/entity/data/__init__.py +1 -1
  213. metadata/generated/schema/entity/data/chart.py +1 -1
  214. metadata/generated/schema/entity/data/container.py +1 -1
  215. metadata/generated/schema/entity/data/dashboard.py +1 -1
  216. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  217. metadata/generated/schema/entity/data/database.py +1 -1
  218. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  219. metadata/generated/schema/entity/data/glossary.py +1 -1
  220. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  221. metadata/generated/schema/entity/data/metrics.py +1 -1
  222. metadata/generated/schema/entity/data/mlmodel.py +2 -2
  223. metadata/generated/schema/entity/data/pipeline.py +1 -1
  224. metadata/generated/schema/entity/data/query.py +1 -1
  225. metadata/generated/schema/entity/data/report.py +1 -1
  226. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  227. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  228. metadata/generated/schema/entity/data/table.py +2 -1
  229. metadata/generated/schema/entity/data/topic.py +1 -1
  230. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  231. metadata/generated/schema/entity/docStore/document.py +1 -1
  232. metadata/generated/schema/entity/domains/__init__.py +1 -1
  233. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  234. metadata/generated/schema/entity/domains/domain.py +1 -1
  235. metadata/generated/schema/entity/events/__init__.py +1 -1
  236. metadata/generated/schema/entity/events/webhook.py +4 -6
  237. metadata/generated/schema/entity/feed/__init__.py +1 -1
  238. metadata/generated/schema/entity/feed/suggestion.py +61 -0
  239. metadata/generated/schema/entity/feed/thread.py +1 -1
  240. metadata/generated/schema/entity/policies/__init__.py +1 -1
  241. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  242. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  243. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  244. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  245. metadata/generated/schema/entity/policies/filters.py +1 -1
  246. metadata/generated/schema/entity/policies/policy.py +1 -1
  247. metadata/generated/schema/entity/services/__init__.py +1 -1
  248. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  249. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  250. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  251. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  252. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  253. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  254. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  255. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  256. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  257. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  258. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  259. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  260. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  261. metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +1 -1
  262. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  263. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  264. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  265. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  266. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  267. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  268. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  269. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  270. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  271. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  272. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +41 -0
  273. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  274. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  275. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  276. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  277. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  278. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  279. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  280. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  281. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  282. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  283. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  284. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  285. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  286. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  287. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  288. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  289. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  290. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  291. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  292. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  293. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  294. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  295. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  296. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  297. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  298. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  299. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  300. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  301. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  302. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  303. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  304. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  305. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  306. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  307. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  308. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  309. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +8 -6
  310. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  311. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  312. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  313. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  314. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  315. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  316. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  317. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  318. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  319. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  320. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  321. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  322. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  323. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  324. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +14 -2
  325. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  326. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  327. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +14 -2
  328. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  329. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  330. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  331. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  332. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  333. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +2 -2
  334. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  335. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  336. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  337. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  338. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  339. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  340. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  341. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  342. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  343. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  345. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  346. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  347. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  348. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  349. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  350. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  351. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  352. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  353. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  354. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  356. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  357. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  358. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  359. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  360. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  361. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  362. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  363. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  366. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  367. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  368. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  369. metadata/generated/schema/entity/services/databaseService.py +4 -4
  370. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  371. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  372. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  373. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  374. metadata/generated/schema/entity/services/messagingService.py +1 -1
  375. metadata/generated/schema/entity/services/metadataService.py +1 -1
  376. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  377. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  378. metadata/generated/schema/entity/services/searchService.py +1 -1
  379. metadata/generated/schema/entity/services/serviceType.py +1 -1
  380. metadata/generated/schema/entity/services/storageService.py +1 -1
  381. metadata/generated/schema/entity/teams/__init__.py +1 -1
  382. metadata/generated/schema/entity/teams/persona.py +1 -1
  383. metadata/generated/schema/entity/teams/role.py +1 -1
  384. metadata/generated/schema/entity/teams/team.py +1 -1
  385. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  386. metadata/generated/schema/entity/teams/user.py +1 -1
  387. metadata/generated/schema/entity/type.py +3 -18
  388. metadata/generated/schema/entity/utils/__init__.py +1 -1
  389. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  390. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  391. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  392. metadata/generated/schema/events/__init__.py +1 -1
  393. metadata/generated/schema/events/alertMetrics.py +1 -1
  394. metadata/generated/schema/events/api/__init__.py +1 -1
  395. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  396. metadata/generated/schema/events/emailAlertConfig.py +1 -6
  397. metadata/generated/schema/events/eventFilterRule.py +1 -1
  398. metadata/generated/schema/events/eventSubscription.py +5 -10
  399. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  400. metadata/generated/schema/events/failedEvent.py +1 -1
  401. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  402. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  403. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  404. metadata/generated/schema/metadataIngestion/application.py +4 -1
  405. metadata/generated/schema/metadataIngestion/applicationPipeline.py +4 -1
  406. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  407. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  408. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  409. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  410. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  411. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  412. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  413. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  414. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +6 -3
  415. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  416. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  417. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +6 -3
  418. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  419. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  420. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +6 -3
  421. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  422. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  423. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  424. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  425. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  426. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  427. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  428. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  429. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  430. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  431. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  432. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  433. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  434. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  435. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  436. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  437. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  438. metadata/generated/schema/monitoring/__init__.py +1 -1
  439. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  440. metadata/generated/schema/security/__init__.py +1 -1
  441. metadata/generated/schema/security/client/__init__.py +1 -1
  442. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  443. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  444. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  445. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  446. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  447. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  448. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  449. metadata/generated/schema/security/credentials/__init__.py +1 -1
  450. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  451. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  452. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  453. metadata/generated/schema/security/credentials/azureCredentials.py +16 -9
  454. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  455. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  456. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  457. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  458. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  459. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  460. metadata/generated/schema/security/secrets/__init__.py +1 -1
  461. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  462. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  463. metadata/generated/schema/security/secrets/secretsManagerProvider.py +3 -1
  464. metadata/generated/schema/security/securityConfiguration.py +1 -1
  465. metadata/generated/schema/security/ssl/__init__.py +1 -1
  466. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  467. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  468. metadata/generated/schema/settings/__init__.py +1 -1
  469. metadata/generated/schema/settings/settings.py +1 -1
  470. metadata/generated/schema/system/__init__.py +1 -1
  471. metadata/generated/schema/system/entityError.py +1 -1
  472. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  473. metadata/generated/schema/system/indexingError.py +1 -1
  474. metadata/generated/schema/system/ui/__init__.py +1 -1
  475. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  476. metadata/generated/schema/system/ui/page.py +1 -1
  477. metadata/generated/schema/tests/__init__.py +1 -1
  478. metadata/generated/schema/tests/assigned.py +1 -1
  479. metadata/generated/schema/tests/basic.py +1 -1
  480. metadata/generated/schema/tests/customMetric.py +1 -1
  481. metadata/generated/schema/tests/resolved.py +1 -1
  482. metadata/generated/schema/tests/testCase.py +1 -1
  483. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  484. metadata/generated/schema/tests/testDefinition.py +2 -1
  485. metadata/generated/schema/tests/testSuite.py +1 -1
  486. metadata/generated/schema/type/__init__.py +1 -1
  487. metadata/generated/schema/type/auditLog.py +1 -1
  488. metadata/generated/schema/type/basic.py +6 -2
  489. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  490. metadata/generated/schema/type/changeEvent.py +1 -1
  491. metadata/generated/schema/type/changeEventType.py +6 -1
  492. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  493. metadata/generated/schema/type/csvDocumentation.py +1 -1
  494. metadata/generated/schema/type/csvErrorType.py +1 -1
  495. metadata/generated/schema/type/csvFile.py +1 -1
  496. metadata/generated/schema/type/csvImportResult.py +1 -1
  497. metadata/generated/schema/type/customProperties/__init__.py +3 -0
  498. metadata/generated/schema/type/customProperties/enumConfig.py +17 -0
  499. metadata/generated/schema/type/customProperty.py +52 -0
  500. metadata/generated/schema/type/dailyCount.py +1 -1
  501. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  502. metadata/generated/schema/type/entityHistory.py +1 -1
  503. metadata/generated/schema/type/entityLineage.py +1 -1
  504. metadata/generated/schema/type/entityReference.py +1 -1
  505. metadata/generated/schema/type/entityReferenceList.py +1 -1
  506. metadata/generated/schema/type/entityRelationship.py +1 -1
  507. metadata/generated/schema/type/entityUsage.py +1 -1
  508. metadata/generated/schema/type/filterPattern.py +1 -1
  509. metadata/generated/schema/type/function.py +1 -1
  510. metadata/generated/schema/type/include.py +1 -1
  511. metadata/generated/schema/type/jdbcConnection.py +1 -1
  512. metadata/generated/schema/type/lifeCycle.py +1 -1
  513. metadata/generated/schema/type/paging.py +1 -1
  514. metadata/generated/schema/type/profile.py +1 -1
  515. metadata/generated/schema/type/queryParserData.py +1 -1
  516. metadata/generated/schema/type/reaction.py +1 -1
  517. metadata/generated/schema/type/schedule.py +1 -1
  518. metadata/generated/schema/type/schema.py +1 -1
  519. metadata/generated/schema/type/tableQuery.py +1 -1
  520. metadata/generated/schema/type/tableUsageCount.py +1 -1
  521. metadata/generated/schema/type/tagLabel.py +1 -1
  522. metadata/generated/schema/type/usageDetails.py +1 -1
  523. metadata/generated/schema/type/usageRequest.py +1 -1
  524. metadata/generated/schema/type/votes.py +1 -1
  525. metadata/great_expectations/action.py +7 -17
  526. metadata/ingestion/api/status.py +4 -0
  527. metadata/ingestion/api/steps.py +14 -1
  528. metadata/ingestion/api/topology_runner.py +4 -1
  529. metadata/ingestion/lineage/parser.py +4 -5
  530. metadata/ingestion/models/custom_properties.py +0 -1
  531. metadata/ingestion/models/patch_request.py +3 -2
  532. metadata/ingestion/ometa/client.py +6 -0
  533. metadata/ingestion/ometa/mixins/custom_property_mixin.py +11 -11
  534. metadata/ingestion/ometa/mixins/patch_mixin.py +0 -1
  535. metadata/ingestion/ometa/mixins/suggestions_mixin.py +41 -0
  536. metadata/ingestion/ometa/ometa_api.py +16 -8
  537. metadata/ingestion/ometa/routes.py +7 -0
  538. metadata/ingestion/sink/metadata_rest.py +2 -2
  539. metadata/ingestion/source/dashboard/dashboard_service.py +0 -1
  540. metadata/ingestion/source/dashboard/looker/metadata.py +3 -6
  541. metadata/ingestion/source/dashboard/metabase/client.py +4 -0
  542. metadata/ingestion/source/dashboard/metabase/metadata.py +5 -4
  543. metadata/ingestion/source/dashboard/metabase/models.py +2 -2
  544. metadata/ingestion/source/dashboard/superset/api_source.py +0 -1
  545. metadata/ingestion/source/dashboard/superset/db_source.py +1 -3
  546. metadata/ingestion/source/dashboard/superset/queries.py +1 -1
  547. metadata/ingestion/source/dashboard/tableau/metadata.py +19 -1
  548. metadata/ingestion/source/database/athena/client.py +2 -4
  549. metadata/ingestion/source/database/azuresql/metadata.py +0 -1
  550. metadata/ingestion/source/database/bigquery/helper.py +68 -1
  551. metadata/ingestion/source/database/bigquery/metadata.py +12 -3
  552. metadata/ingestion/source/database/bigquery/queries.py +22 -0
  553. metadata/ingestion/source/database/bigtable/client.py +62 -0
  554. metadata/ingestion/source/database/bigtable/connection.py +116 -0
  555. metadata/ingestion/source/database/bigtable/metadata.py +224 -0
  556. metadata/ingestion/source/database/bigtable/models.py +60 -0
  557. metadata/ingestion/source/database/common_db_source.py +2 -2
  558. metadata/ingestion/source/database/common_nosql_source.py +22 -4
  559. metadata/ingestion/source/database/databricks/client.py +0 -1
  560. metadata/ingestion/source/database/databricks/metadata.py +132 -46
  561. metadata/ingestion/source/database/databricks/queries.py +3 -4
  562. metadata/ingestion/source/database/datalake/metadata.py +9 -4
  563. metadata/ingestion/source/database/dbt/dbt_config.py +5 -0
  564. metadata/ingestion/source/database/dbt/dbt_service.py +3 -11
  565. metadata/ingestion/source/database/dbt/dbt_utils.py +3 -1
  566. metadata/ingestion/source/database/dbt/metadata.py +16 -29
  567. metadata/ingestion/source/database/extended_sample_data.py +202 -134
  568. metadata/ingestion/source/database/hive/connection.py +0 -2
  569. metadata/ingestion/source/database/mssql/metadata.py +0 -1
  570. metadata/ingestion/source/database/mssql/queries.py +1 -2
  571. metadata/ingestion/source/database/oracle/queries.py +2 -2
  572. metadata/ingestion/source/database/oracle/utils.py +0 -1
  573. metadata/ingestion/source/database/postgres/pgspider/lineage.py +0 -1
  574. metadata/ingestion/source/database/sample_data.py +0 -1
  575. metadata/ingestion/source/database/sas/metadata.py +2 -3
  576. metadata/ingestion/source/database/snowflake/utils.py +2 -6
  577. metadata/ingestion/source/database/stored_procedures_mixin.py +0 -1
  578. metadata/ingestion/source/database/unitycatalog/metadata.py +16 -31
  579. metadata/ingestion/source/messaging/common_broker_source.py +9 -8
  580. metadata/ingestion/source/messaging/kafka/connection.py +45 -4
  581. metadata/ingestion/source/mlmodel/sagemaker/metadata.py +20 -8
  582. metadata/ingestion/source/pipeline/spline/metadata.py +0 -1
  583. metadata/ingestion/source/search/elasticsearch/metadata.py +0 -1
  584. metadata/ingestion/source/storage/storage_service.py +8 -8
  585. metadata/profiler/interface/pandas/profiler_interface.py +7 -2
  586. metadata/profiler/interface/profiler_interface_factory.py +7 -0
  587. metadata/profiler/interface/sqlalchemy/db2/profiler_interface.py +38 -0
  588. metadata/profiler/interface/sqlalchemy/profiler_interface.py +3 -5
  589. metadata/profiler/metrics/hybrid/histogram.py +1 -0
  590. metadata/profiler/orm/functions/conn_test.py +1 -0
  591. metadata/profiler/orm/functions/sum.py +1 -0
  592. metadata/profiler/orm/functions/table_metric_computer.py +0 -1
  593. metadata/profiler/orm/registry.py +1 -0
  594. metadata/profiler/processor/core.py +2 -2
  595. metadata/profiler/processor/processor.py +0 -2
  596. metadata/profiler/processor/sample_data_handler.py +6 -2
  597. metadata/profiler/source/base/profiler_source.py +0 -1
  598. metadata/profiler/source/bigquery/type_mapper.py +0 -1
  599. metadata/readers/file/api_reader.py +0 -1
  600. metadata/utils/datalake/datalake_utils.py +369 -129
  601. metadata/utils/entity_link.py +26 -6
  602. metadata/utils/execution_time_tracker.py +199 -0
  603. metadata/utils/filters.py +4 -0
  604. metadata/utils/helpers.py +30 -38
  605. metadata/utils/secrets/aws_based_secrets_manager.py +67 -4
  606. metadata/utils/secrets/aws_secrets_manager.py +7 -2
  607. metadata/utils/secrets/aws_ssm_secrets_manager.py +7 -2
  608. metadata/utils/secrets/azure_kv_secrets_manager.py +148 -0
  609. metadata/utils/secrets/external_secrets_manager.py +25 -3
  610. metadata/utils/secrets/secrets_manager_factory.py +13 -31
  611. metadata/workflow/application.py +10 -10
  612. metadata/workflow/base.py +4 -1
  613. metadata/workflow/metadata.py +0 -1
  614. metadata/workflow/output_handler.py +22 -0
  615. metadata/workflow/usage.py +0 -1
  616. {openmetadata_ingestion-1.3.0.0.dev0.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/METADATA +298 -289
  617. {openmetadata_ingestion-1.3.0.0.dev0.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/RECORD +624 -612
  618. metadata/generated/schema/entity/services/connections/database/duckdbConnection.py +0 -96
  619. metadata/generated/schema/events/userAlertConfig.py +0 -25
  620. metadata/ingestion/source/database/duckdb/connection.py +0 -76
  621. metadata/ingestion/source/database/duckdb/metadata.py +0 -204
  622. metadata/ingestion/source/database/duckdb/queries.py +0 -141
  623. metadata/ingestion/source/database/duckdb/utils.py +0 -349
  624. metadata/utils/secrets/client/loader.py +0 -78
  625. /metadata/ingestion/source/database/{duckdb → bigtable}/__init__.py +0 -0
  626. /metadata/{utils/secrets/client → profiler/interface/sqlalchemy/db2}/__init__.py +0 -0
  627. /metadata/utils/secrets/{noop_secrets_manager.py → db_secrets_manager.py} +0 -0
  628. {openmetadata_ingestion-1.3.0.0.dev0.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/LICENSE +0 -0
  629. {openmetadata_ingestion-1.3.0.0.dev0.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/WHEEL +0 -0
  630. {openmetadata_ingestion-1.3.0.0.dev0.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/entry_points.txt +0 -0
  631. {openmetadata_ingestion-1.3.0.0.dev0.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/top_level.txt +0 -0
@@ -24,6 +24,10 @@ from metadata.generated.schema.api.data.createDatabase import CreateDatabaseRequ
24
24
  from metadata.generated.schema.api.data.createDatabaseSchema import (
25
25
  CreateDatabaseSchemaRequest,
26
26
  )
27
+ from metadata.generated.schema.api.data.createGlossary import CreateGlossaryRequest
28
+ from metadata.generated.schema.api.data.createGlossaryTerm import (
29
+ CreateGlossaryTermRequest,
30
+ )
27
31
  from metadata.generated.schema.api.data.createTable import CreateTableRequest
28
32
  from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
29
33
  from metadata.generated.schema.entity.data.dashboard import Dashboard
@@ -91,10 +95,20 @@ class ExtendedSampleDataSource(Source): # pylint: disable=too-many-instance-att
91
95
  self.store_table_fqn = set()
92
96
  self.store_data_model_fqn = []
93
97
  self.store_dashboard_fqn = []
98
+ self.main_glossary = None
99
+ self.glossary_term_list = []
94
100
 
95
101
  sample_data_folder = self.service_connection.connectionOptions.__root__.get(
96
102
  "sampleDataFolder"
97
103
  )
104
+ self.include_glossary = self.service_connection.connectionOptions.__root__.get(
105
+ "includeGlossary"
106
+ )
107
+ self.include_lineage_stress_testing = (
108
+ self.service_connection.connectionOptions.__root__.get(
109
+ "includeLineageStressTesting"
110
+ )
111
+ )
98
112
  extneded_sample_data_folder = (
99
113
  self.service_connection.connectionOptions.__root__.get(
100
114
  "extendedSampleDataFolder"
@@ -225,43 +239,71 @@ class ExtendedSampleDataSource(Source): # pylint: disable=too-many-instance-att
225
239
  )
226
240
  )
227
241
 
228
- def generate_sample_data(self): # pylint: disable=too-many-locals
242
+ def generate_sample_data(
243
+ self,
244
+ ): # pylint: disable=too-many-locals,too-many-statements
229
245
  """
230
246
  Generate sample data for dashboard and database service,
231
247
  with lineage between them, having long names, special characters and description
232
248
  """
233
-
234
- db = self.create_database_request("extended_sample_data", self.generate_text())
235
- yield Either(right=db)
236
-
237
- schema = self.create_database_schema_request(
238
- "extended_sample_database_schema", self.generate_text(), db
239
- )
240
- yield Either(right=schema)
241
- for table in self.extended_tables["tables"]:
242
- text = self.generate_text()
243
- table_request = self.create_table_request(
244
- table["name"], text, schema, table
245
- )
246
- yield Either(right=table_request)
247
- downstream_node_fqn_table = fqn.build(
248
- self.metadata,
249
- entity_type=Table,
250
- service_name=self.database_service.name.__root__,
251
- database_name=db.name.__root__,
252
- schema_name=schema.name.__root__,
253
- table_name=table_request.name.__root__,
249
+ if self.include_glossary:
250
+ yield from self.create_glossary()
251
+ yield from self.create_glossary_term()
252
+ if self.include_lineage_stress_testing:
253
+ db = self.create_database_request(
254
+ "extended_sample_data", self.generate_text()
254
255
  )
255
- to_table = self.metadata.get_by_name(
256
- entity=Table, fqn=downstream_node_fqn_table
257
- )
258
- main_table = to_table
259
- self.store_table_fqn.add(downstream_node_fqn_table)
256
+ yield Either(right=db)
260
257
 
258
+ schema = self.create_database_schema_request(
259
+ "extended_sample_database_schema", self.generate_text(), db
260
+ )
261
+ yield Either(right=schema)
262
+ for table in self.extended_tables["tables"]:
263
+ text = self.generate_text()
264
+ table_request = self.create_table_request(
265
+ table["name"], text, schema, table
266
+ )
267
+ yield Either(right=table_request)
268
+ downstream_node_fqn_table = fqn.build(
269
+ self.metadata,
270
+ entity_type=Table,
271
+ service_name=self.database_service.name.__root__,
272
+ database_name=db.name.__root__,
273
+ schema_name=schema.name.__root__,
274
+ table_name=table_request.name.__root__,
275
+ )
276
+ to_table = self.metadata.get_by_name(
277
+ entity=Table, fqn=downstream_node_fqn_table
278
+ )
279
+ main_table = to_table
280
+ self.store_table_fqn.add(downstream_node_fqn_table)
281
+
282
+ for _ in range(40):
283
+ # 40 Dynamic Lineage Depths
284
+ name = self.generate_name()
285
+ table_request = self.create_table_request(name, text, schema, table)
286
+ yield Either(right=table_request)
287
+ upstream_node_fqn_table = fqn.build(
288
+ self.metadata,
289
+ entity_type=Table,
290
+ service_name=self.database_service.name.__root__,
291
+ database_name=db.name.__root__,
292
+ schema_name=schema.name.__root__,
293
+ table_name=table_request.name.__root__,
294
+ )
295
+ from_table = self.metadata.get_by_name(
296
+ entity=Table, fqn=upstream_node_fqn_table
297
+ )
298
+ yield from self.create_depth_nodes(
299
+ from_table=from_table, to_table=to_table
300
+ )
301
+ to_table = from_table
261
302
  for _ in range(40):
262
- # 40 Dynamic Lineage Depths
263
303
  name = self.generate_name()
264
- table_request = self.create_table_request(name, text, schema, table)
304
+ table_request = self.create_table_request(
305
+ name, text, schema, self.extended_tables["tables"][-1]
306
+ )
265
307
  yield Either(right=table_request)
266
308
  upstream_node_fqn_table = fqn.build(
267
309
  self.metadata,
@@ -275,127 +317,75 @@ class ExtendedSampleDataSource(Source): # pylint: disable=too-many-instance-att
275
317
  entity=Table, fqn=upstream_node_fqn_table
276
318
  )
277
319
  yield from self.create_depth_nodes(
278
- from_table=from_table, to_table=to_table
320
+ from_table=from_table, to_table=main_table
279
321
  )
280
- to_table = from_table
281
- for _ in range(40):
282
- name = self.generate_name()
283
- table_request = self.create_table_request(
284
- name, text, schema, self.extended_tables["tables"][-1]
285
- )
286
- yield Either(right=table_request)
287
- upstream_node_fqn_table = fqn.build(
288
- self.metadata,
289
- entity_type=Table,
290
- service_name=self.database_service.name.__root__,
291
- database_name=db.name.__root__,
292
- schema_name=schema.name.__root__,
293
- table_name=table_request.name.__root__,
294
- )
295
- from_table = self.metadata.get_by_name(
296
- entity=Table, fqn=upstream_node_fqn_table
297
- )
298
- yield from self.create_depth_nodes(
299
- from_table=from_table, to_table=main_table
300
- )
301
322
 
302
- for table in self.tables["tables"]:
303
- text = self.generate_text()
304
- table_request = self.create_table_request(
305
- table["name"], text, schema, table
306
- )
307
- yield Either(right=table_request)
308
- table_entity_fqn = fqn.build(
309
- self.metadata,
310
- entity_type=Table,
311
- service_name=self.database_service.name.__root__,
312
- database_name=db.name.__root__,
313
- schema_name=schema.name.__root__,
314
- table_name=table_request.name.__root__,
315
- )
316
- from_table = self.metadata.get_by_name(entity=Table, fqn=table_entity_fqn)
317
-
318
- yield from self.create_depth_nodes(from_table=from_table, to_table=to_table)
319
-
320
- self.dashboard_service_json["name"] = name
321
- self.dashboard_service_json["description"] = text
322
- for chart in self.charts["charts"]:
323
- yield Either(
324
- right=CreateChartRequest(
325
- name=chart["name"],
326
- displayName=chart["displayName"],
327
- description=chart["description"],
328
- chartType=get_standard_chart_type(chart["chartType"]),
329
- sourceUrl=chart["sourceUrl"],
330
- service=self.dashboard_service.fullyQualifiedName,
323
+ for table in self.tables["tables"]:
324
+ text = self.generate_text()
325
+ table_request = self.create_table_request(
326
+ table["name"], text, schema, table
327
+ )
328
+ yield Either(right=table_request)
329
+ table_entity_fqn = fqn.build(
330
+ self.metadata,
331
+ entity_type=Table,
332
+ service_name=self.database_service.name.__root__,
333
+ database_name=db.name.__root__,
334
+ schema_name=schema.name.__root__,
335
+ table_name=table_request.name.__root__,
336
+ )
337
+ from_table = self.metadata.get_by_name(
338
+ entity=Table, fqn=table_entity_fqn
331
339
  )
332
- )
333
- for data_model in self.data_models["datamodels"]:
334
- name = self.generate_name()
335
- text = self.generate_text()
336
- data_model_request = self.create_dashboard_data_model_request(
337
- name, text, data_model
338
- )
339
- yield Either(right=data_model_request)
340
- data_model_entity_fqn = fqn.build(
341
- self.metadata,
342
- entity_type=DashboardDataModel,
343
- service_name=self.dashboard_service.name.__root__,
344
- data_model_name=data_model_request.name.__root__,
345
- )
346
- self.store_data_model_fqn.append(data_model_entity_fqn)
347
340
 
348
- for table_fqn in self.store_table_fqn:
349
- from_table = self.metadata.get_by_name(entity=Table, fqn=table_fqn)
350
- for dashboard_datamodel_fqn in self.store_data_model_fqn:
351
- to_datamodel = self.metadata.get_by_name(
352
- entity=DashboardDataModel, fqn=dashboard_datamodel_fqn
341
+ yield from self.create_depth_nodes(
342
+ from_table=from_table, to_table=to_table
353
343
  )
354
344
 
345
+ self.dashboard_service_json["name"] = name
346
+ self.dashboard_service_json["description"] = text
347
+ for chart in self.charts["charts"]:
355
348
  yield Either(
356
- right=AddLineageRequest(
357
- edge=EntitiesEdge(
358
- fromEntity=EntityReference(
359
- id=from_table.id.__root__, type="table"
360
- ),
361
- toEntity=EntityReference(
362
- id=to_datamodel.id.__root__,
363
- type="dashboardDataModel",
364
- ),
365
- lineageDetails=LineageDetails(
366
- source=LineageSource.DashboardLineage
367
- ),
368
- )
369
- )
370
- )
371
- for dashboard in self.dashboards["dashboards"]:
372
- dashboard_request = CreateDashboardRequest(
373
- name=dashboard["name"],
374
- displayName=dashboard["displayName"],
375
- description=dashboard["description"],
376
- sourceUrl=dashboard["sourceUrl"],
377
- charts=dashboard["charts"],
349
+ right=CreateChartRequest(
350
+ name=chart["name"],
351
+ displayName=chart["displayName"],
352
+ description=chart["description"],
353
+ chartType=get_standard_chart_type(chart["chartType"]),
354
+ sourceUrl=chart["sourceUrl"],
378
355
  service=self.dashboard_service.fullyQualifiedName,
379
356
  )
380
- yield Either(right=dashboard_request)
381
- dashboard_fqn = fqn.build(
382
- self.metadata,
383
- entity_type=Dashboard,
384
- service_name=self.dashboard_service.name.__root__,
385
- dashboard_name=dashboard_request.name.__root__,
386
- )
387
- to_dashboard = self.metadata.get_by_name(
388
- entity=Dashboard, fqn=dashboard_fqn
357
+ )
358
+ for data_model in self.data_models["datamodels"]:
359
+ name = self.generate_name()
360
+ text = self.generate_text()
361
+ data_model_request = self.create_dashboard_data_model_request(
362
+ name, text, data_model
363
+ )
364
+ yield Either(right=data_model_request)
365
+ data_model_entity_fqn = fqn.build(
366
+ self.metadata,
367
+ entity_type=DashboardDataModel,
368
+ service_name=self.dashboard_service.name.__root__,
369
+ data_model_name=data_model_request.name.__root__,
370
+ )
371
+ self.store_data_model_fqn.append(data_model_entity_fqn)
372
+
373
+ for table_fqn in self.store_table_fqn:
374
+ from_table = self.metadata.get_by_name(entity=Table, fqn=table_fqn)
375
+ for dashboard_datamodel_fqn in self.store_data_model_fqn:
376
+ to_datamodel = self.metadata.get_by_name(
377
+ entity=DashboardDataModel, fqn=dashboard_datamodel_fqn
389
378
  )
379
+
390
380
  yield Either(
391
381
  right=AddLineageRequest(
392
382
  edge=EntitiesEdge(
393
383
  fromEntity=EntityReference(
394
- id=to_datamodel.id.__root__,
395
- type="dashboardDataModel",
384
+ id=from_table.id.__root__, type="table"
396
385
  ),
397
386
  toEntity=EntityReference(
398
- id=to_dashboard.id.__root__, type="dashboard"
387
+ id=to_datamodel.id.__root__,
388
+ type="dashboardDataModel",
399
389
  ),
400
390
  lineageDetails=LineageDetails(
401
391
  source=LineageSource.DashboardLineage
@@ -403,6 +393,84 @@ class ExtendedSampleDataSource(Source): # pylint: disable=too-many-instance-att
403
393
  )
404
394
  )
405
395
  )
396
+ for dashboard in self.dashboards["dashboards"]:
397
+ dashboard_request = CreateDashboardRequest(
398
+ name=dashboard["name"],
399
+ displayName=dashboard["displayName"],
400
+ description=dashboard["description"],
401
+ sourceUrl=dashboard["sourceUrl"],
402
+ charts=dashboard["charts"],
403
+ service=self.dashboard_service.fullyQualifiedName,
404
+ )
405
+ yield Either(right=dashboard_request)
406
+ dashboard_fqn = fqn.build(
407
+ self.metadata,
408
+ entity_type=Dashboard,
409
+ service_name=self.dashboard_service.name.__root__,
410
+ dashboard_name=dashboard_request.name.__root__,
411
+ )
412
+ to_dashboard = self.metadata.get_by_name(
413
+ entity=Dashboard, fqn=dashboard_fqn
414
+ )
415
+ yield Either(
416
+ right=AddLineageRequest(
417
+ edge=EntitiesEdge(
418
+ fromEntity=EntityReference(
419
+ id=to_datamodel.id.__root__,
420
+ type="dashboardDataModel",
421
+ ),
422
+ toEntity=EntityReference(
423
+ id=to_dashboard.id.__root__, type="dashboard"
424
+ ),
425
+ lineageDetails=LineageDetails(
426
+ source=LineageSource.DashboardLineage
427
+ ),
428
+ )
429
+ )
430
+ )
431
+
432
+ def create_glossary(self):
433
+ self.main_glossary = CreateGlossaryRequest(
434
+ name="NestedGlossaryTest",
435
+ displayName="NestedGlossaryTest",
436
+ description="Description of test glossary",
437
+ )
438
+ yield Either(right=self.main_glossary)
439
+
440
+ def create_glossary_term(self):
441
+ """
442
+ Create Glossary Terms
443
+ """
444
+ for _ in range(20):
445
+ random_name = self.fake.first_name()
446
+ yield Either(
447
+ right=CreateGlossaryTermRequest(
448
+ glossary="NestedGlossaryTest",
449
+ name=random_name,
450
+ displayName=random_name,
451
+ description="Test glossary term ",
452
+ parent=self.glossary_term_list[-1]
453
+ if len(self.glossary_term_list) > 3
454
+ else None,
455
+ )
456
+ )
457
+ if len(self.glossary_term_list) > 3 and self.glossary_term_list[-1]:
458
+ self.glossary_term_list.append(
459
+ f"{self.glossary_term_list[-1]}.{random_name}"
460
+ )
461
+ else:
462
+ self.glossary_term_list.append(f"NestedGlossaryTest.{random_name}")
463
+
464
+ for _ in range(500):
465
+ random_name = self.fake.first_name()
466
+ yield Either(
467
+ right=CreateGlossaryTermRequest(
468
+ glossary="NestedGlossaryTest",
469
+ name=random_name,
470
+ displayName=random_name,
471
+ description="Test glossary term 1",
472
+ )
473
+ )
406
474
 
407
475
  def generate_name(self):
408
476
  return f"Sample-@!3_(%t3st@)%_^{self.fake.name()}"
@@ -126,7 +126,6 @@ def get_metastore_connection(connection: Any) -> Engine:
126
126
 
127
127
  @get_metastore_connection.register
128
128
  def _(connection: PostgresConnection):
129
-
130
129
  # import required to load sqlalchemy plugin
131
130
  # pylint: disable=import-outside-toplevel,unused-import
132
131
  from metadata.ingestion.source.database.hive.metastore_dialects.postgres import ( # nopycln: import
@@ -153,7 +152,6 @@ def _(connection: PostgresConnection):
153
152
 
154
153
  @get_metastore_connection.register
155
154
  def _(connection: MysqlConnection):
156
-
157
155
  # import required to load sqlalchemy plugin
158
156
  # pylint: disable=import-outside-toplevel,unused-import
159
157
  from metadata.ingestion.source.database.hive.metastore_dialects.mysql import ( # nopycln: import
@@ -114,7 +114,6 @@ class MssqlSource(StoredProcedureMixin, CommonDbSourceService, MultiDBSource):
114
114
  yield from self._execute_database_query(MSSQL_GET_DATABASE)
115
115
 
116
116
  def get_database_names(self) -> Iterable[str]:
117
-
118
117
  if not self.config.serviceConnection.__root__.config.ingestAllDatabases:
119
118
  configured_db = self.config.serviceConnection.__root__.config.database
120
119
  self.set_inspector(database_name=configured_db)
@@ -236,8 +236,7 @@ Q_HISTORY (database_name, query_text, start_time, end_time, duration,query_type,
236
236
  CROSS APPLY sys.dm_exec_sql_text(p.plan_handle) AS t
237
237
  INNER JOIN sys.databases db
238
238
  ON db.database_id = t.dbid
239
- WHERE s.last_execution_time between '2024-01-13' and '2024-01-20'
240
- AND t.text NOT LIKE '/* {{"app": "OpenMetadata", %%}} */%%'
239
+ WHERE t.text NOT LIKE '/* {{"app": "OpenMetadata", %%}} */%%'
241
240
  AND t.text NOT LIKE '/* {{"app": "dbt", %%}} */%%'
242
241
  AND p.objtype NOT IN ('Prepared', 'Proc')
243
242
  AND s.last_execution_time > '{start_date}'
@@ -172,14 +172,14 @@ SELECT
172
172
  SQL_FULLTEXT AS query_text,
173
173
  TO_TIMESTAMP(FIRST_LOAD_TIME, 'yy-MM-dd/HH24:MI:SS') AS start_time,
174
174
  ELAPSED_TIME / 1000 AS duration,
175
- TO_TIMESTAMP(FIRST_LOAD_TIME, 'yy-MM-dd/HH24:MI:SS') + NUMTODSINTERVAL(ELAPSED_TIME / 1000, 'SECOND') AS end_time
175
+ TO_TIMESTAMP(FIRST_LOAD_TIME, 'yy-MM-dd/HH24:MI:SS') + NUMTODSINTERVAL(ELAPSED_TIME / 1000000, 'SECOND') AS end_time
176
176
  FROM gv$sql
177
177
  WHERE OBJECT_STATUS = 'VALID'
178
178
  {filters}
179
179
  AND SQL_FULLTEXT NOT LIKE '/* {{"app": "OpenMetadata", %%}} */%%'
180
180
  AND SQL_FULLTEXT NOT LIKE '/* {{"app": "dbt", %%}} */%%'
181
181
  AND TO_TIMESTAMP(FIRST_LOAD_TIME, 'yy-MM-dd/HH24:MI:SS') >= TO_TIMESTAMP('{start_time}', 'yy-MM-dd HH24:MI:SS')
182
- AND TO_TIMESTAMP(FIRST_LOAD_TIME, 'yy-MM-dd/HH24:MI:SS') + NUMTODSINTERVAL(ELAPSED_TIME / 1000, 'SECOND')
182
+ AND TO_TIMESTAMP(FIRST_LOAD_TIME, 'yy-MM-dd/HH24:MI:SS') + NUMTODSINTERVAL(ELAPSED_TIME / 1000000, 'SECOND')
183
183
  < TO_TIMESTAMP('{end_time}', 'yy-MM-dd HH24:MI:SS')
184
184
  ORDER BY FIRST_LOAD_TIME DESC
185
185
  OFFSET 0 ROWS FETCH NEXT {result_limit} ROWS ONLY
@@ -62,7 +62,6 @@ def get_view_definition(
62
62
  dblink="",
63
63
  **kw,
64
64
  ):
65
-
66
65
  return get_view_definition_wrapper(
67
66
  self,
68
67
  connection,
@@ -75,7 +75,6 @@ def get_lineage_from_multi_tenant_table(
75
75
  connection: any,
76
76
  service_name: str,
77
77
  ) -> Iterator[Either[AddLineageRequest]]:
78
-
79
78
  """
80
79
  For PGSpider, firstly, get list of multi-tenant tables.
81
80
  Next, get child foreign tables of each multi-tenant tables.
@@ -800,7 +800,6 @@ class SampleDataSource(
800
800
 
801
801
  # Create table and stored procedure lineage
802
802
  for lineage_entities in self.stored_procedures["lineage"]:
803
-
804
803
  from_table = self.metadata.get_by_name(
805
804
  entity=Table, fqn=lineage_entities["from_table_fqn"]
806
805
  )
@@ -465,7 +465,6 @@ class SasSource(
465
465
  or table_entity.extension.__root__.get("analysisTimeStamp")
466
466
  != table_extension.get("analysisTimeStamp")
467
467
  ):
468
-
469
468
  # create the columns of the table
470
469
  columns, col_profile_list = self.create_columns_and_profiles(
471
470
  col_entity_instances, table_entity_instance
@@ -711,10 +710,10 @@ class SasSource(
711
710
  if "state" in table_resource and table_resource["state"] == "unloaded":
712
711
  self.sas_client.load_table(table_uri + "/state?value=loaded")
713
712
 
714
- except HTTPError as e:
713
+ except HTTPError as exc:
715
714
  # append http error to table description if it can't be found
716
715
  logger.error(f"table_uri: {table_uri}")
717
- self.report_description.append(str(e))
716
+ self.report_description.append(str(exc))
718
717
  name_index = table_uri.rindex("/")
719
718
  table_name = table_uri[name_index + 1 :]
720
719
  param = f"filter=eq(name,'{table_name}')"
@@ -39,7 +39,6 @@ from metadata.utils.sqlalchemy_utils import (
39
39
 
40
40
 
41
41
  def _quoted_name(entity_name: Optional[str]) -> Optional[str]:
42
-
43
42
  if entity_name:
44
43
  return fqn.quote_name(entity_name)
45
44
 
@@ -121,13 +120,10 @@ def get_view_definition( # pylint: disable=unused-argument
121
120
  schema = schema or self.default_schema_name
122
121
  if schema:
123
122
  cursor = connection.execute(
124
- "SHOW /* sqlalchemy:get_view_definition */ VIEWS "
125
- f"LIKE '{view_name}' IN {schema}"
123
+ f"SELECT GET_DDL('VIEW','{schema}.{view_name}') AS \"text\""
126
124
  )
127
125
  else:
128
- cursor = connection.execute(
129
- "SHOW /* sqlalchemy:get_view_definition */ VIEWS " f"LIKE '{view_name}'"
130
- )
126
+ cursor = connection.execute(f"SELECT GET_DDL('VIEW','{view_name}') AS \"text\"")
131
127
  n2i = self.__class__._map_name_to_idx(cursor) # pylint: disable=protected-access
132
128
  try:
133
129
  ret = cursor.fetchone()
@@ -153,7 +153,6 @@ class StoredProcedureMixin(ABC):
153
153
  query_type=query_by_procedure.query_type,
154
154
  query_text=query_by_procedure.query_text,
155
155
  ):
156
-
157
156
  self.context.stored_procedure_query_lineage = True
158
157
  for either_lineage in get_lineage_by_query(
159
158
  self.metadata,
@@ -13,11 +13,10 @@ Databricks Unity Catalog Source source methods.
13
13
  """
14
14
  import json
15
15
  import traceback
16
- from typing import Any, Dict, Iterable, List, Optional, Tuple, Union
16
+ from typing import Any, Iterable, List, Optional, Tuple, Union
17
17
 
18
18
  from databricks.sdk.service.catalog import ColumnInfo
19
19
  from databricks.sdk.service.catalog import TableConstraint as DBTableConstraint
20
- from databricks.sdk.service.catalog import TableConstraintList
21
20
 
22
21
  from metadata.generated.schema.api.data.createDatabase import CreateDatabaseRequest
23
22
  from metadata.generated.schema.api.data.createDatabaseSchema import (
@@ -75,19 +74,6 @@ from metadata.utils.logger import ingestion_logger
75
74
  logger = ingestion_logger()
76
75
 
77
76
 
78
- # pylint: disable=not-callable
79
- @classmethod
80
- def from_dict(cls, dct: Dict[str, Any]) -> "TableConstraintList":
81
- return cls(
82
- table_constraints=[
83
- DBTableConstraint.from_dict(constraint) for constraint in dct
84
- ]
85
- )
86
-
87
-
88
- TableConstraintList.from_dict = from_dict
89
-
90
-
91
77
  class UnitycatalogSource(DatabaseServiceSource, MultiDBSource):
92
78
  """
93
79
  Implements the necessary methods to extract
@@ -351,7 +337,7 @@ class UnitycatalogSource(DatabaseServiceSource, MultiDBSource):
351
337
  )
352
338
 
353
339
  def get_table_constraints(
354
- self, constraints: TableConstraintList
340
+ self, constraints: List[DBTableConstraint]
355
341
  ) -> Tuple[List[TableConstraint], List[ForeignConstrains]]:
356
342
  """
357
343
  Function to handle table constraint for the current table and add it to context
@@ -359,23 +345,22 @@ class UnitycatalogSource(DatabaseServiceSource, MultiDBSource):
359
345
 
360
346
  primary_constraints = []
361
347
  foreign_constraints = []
362
- if constraints and constraints.table_constraints:
363
- for constraint in constraints.table_constraints:
364
- if constraint.primary_key_constraint:
365
- primary_constraints.append(
366
- TableConstraint(
367
- constraintType=ConstraintType.PRIMARY_KEY,
368
- columns=constraint.primary_key_constraint.child_columns,
369
- )
348
+ for constraint in constraints:
349
+ if constraint.primary_key_constraint:
350
+ primary_constraints.append(
351
+ TableConstraint(
352
+ constraintType=ConstraintType.PRIMARY_KEY,
353
+ columns=constraint.primary_key_constraint.child_columns,
370
354
  )
371
- if constraint.foreign_key_constraint:
372
- foreign_constraints.append(
373
- ForeignConstrains(
374
- child_columns=constraint.foreign_key_constraint.child_columns,
375
- parent_columns=constraint.foreign_key_constraint.parent_columns,
376
- parent_table=constraint.foreign_key_constraint.parent_table,
377
- )
355
+ )
356
+ if constraint.foreign_key_constraint:
357
+ foreign_constraints.append(
358
+ ForeignConstrains(
359
+ child_columns=constraint.foreign_key_constraint.child_columns,
360
+ parent_columns=constraint.foreign_key_constraint.parent_columns,
361
+ parent_table=constraint.foreign_key_constraint.parent_table,
378
362
  )
363
+ )
379
364
  return primary_constraints, foreign_constraints
380
365
 
381
366
  def _get_foreign_constraints(self, foreign_columns) -> List[TableConstraint]:
@@ -226,14 +226,16 @@ class CommonBrokerSource(MessagingServiceSource, ABC):
226
226
  if topic_entity and self.generate_sample_data:
227
227
  topic_name = topic_details.topic_name
228
228
  sample_data = []
229
+ messages = None
229
230
  try:
230
- self.consumer_client.subscribe(
231
- [topic_name], on_assign=on_partitions_assignment_to_consumer
232
- )
233
- logger.info(
234
- f"Broker consumer polling for sample messages in topic {topic_name}"
235
- )
236
- messages = self.consumer_client.consume(num_messages=10, timeout=10)
231
+ if self.consumer_client:
232
+ self.consumer_client.subscribe(
233
+ [topic_name], on_assign=on_partitions_assignment_to_consumer
234
+ )
235
+ logger.info(
236
+ f"Broker consumer polling for sample messages in topic {topic_name}"
237
+ )
238
+ messages = self.consumer_client.consume(num_messages=10, timeout=10)
237
239
  except Exception as exc:
238
240
  yield Either(
239
241
  left=StackTraceError(
@@ -246,7 +248,6 @@ class CommonBrokerSource(MessagingServiceSource, ABC):
246
248
  if messages:
247
249
  for message in messages:
248
250
  try:
249
-
250
251
  value = message.value()
251
252
  sample_data.append(
252
253
  self.decode_message(