openmetadata-ingestion 1.5.11.0__py3-none-any.whl → 1.6.0.0rc1__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 (914) hide show
  1. _openmetadata_testutils/dict.py +23 -0
  2. _openmetadata_testutils/pydantic/test_utils.py +22 -2
  3. _openmetadata_testutils/pytest_openmetadata/__init__.py +0 -0
  4. _openmetadata_testutils/pytest_openmetadata/plugin.py +86 -0
  5. _openmetadata_testutils/pytest_openmetadata/test_utils.py +99 -0
  6. metadata/cli/app.py +1 -0
  7. metadata/cli/dataquality.py +4 -1
  8. metadata/cli/ingest.py +2 -1
  9. metadata/cli/lineage.py +2 -1
  10. metadata/cli/profile.py +4 -1
  11. metadata/cli/usage.py +2 -1
  12. metadata/config/common.py +3 -1
  13. metadata/data_quality/api/models.py +2 -1
  14. metadata/data_quality/builders/i_validator_builder.py +5 -2
  15. metadata/data_quality/interface/pandas/pandas_test_suite_interface.py +1 -0
  16. metadata/data_quality/interface/sqlalchemy/sqa_test_suite_interface.py +1 -0
  17. metadata/data_quality/interface/test_suite_interface.py +6 -11
  18. metadata/data_quality/interface/test_suite_interface_factory.py +63 -33
  19. metadata/data_quality/source/test_suite.py +1 -1
  20. metadata/data_quality/validations/base_test_handler.py +3 -3
  21. metadata/data_quality/validations/column/base/columnValuesToBeInSet.py +4 -2
  22. metadata/data_quality/validations/models.py +6 -1
  23. metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +7 -2
  24. metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +175 -3
  25. metadata/examples/workflows/datafactory.yaml +29 -0
  26. metadata/examples/workflows/matillion.yaml +31 -0
  27. metadata/examples/workflows/rest.yaml +20 -0
  28. metadata/examples/workflows/sigma.yaml +25 -0
  29. metadata/examples/workflows/trino_profiler.yaml +20 -0
  30. metadata/generated/antlr/EntityLinkLexer.py +70 -99
  31. metadata/generated/antlr/FqnLexer.py +15 -15
  32. metadata/generated/schema/analytics/__init__.py +1 -1
  33. metadata/generated/schema/analytics/basic.py +1 -1
  34. metadata/generated/schema/analytics/reportData.py +1 -1
  35. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  36. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  37. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  38. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  39. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  40. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  41. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  42. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  43. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  44. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  45. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  46. metadata/generated/schema/api/__init__.py +1 -1
  47. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  48. metadata/generated/schema/api/addTagToAssetsRequest.py +43 -0
  49. metadata/generated/schema/api/analytics/__init__.py +1 -1
  50. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  51. metadata/generated/schema/api/automations/__init__.py +1 -1
  52. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  53. metadata/generated/schema/api/bulkAssets.py +1 -1
  54. metadata/generated/schema/api/classification/__init__.py +1 -1
  55. metadata/generated/schema/api/classification/createClassification.py +1 -1
  56. metadata/generated/schema/api/classification/createTag.py +1 -1
  57. metadata/generated/schema/api/classification/loadTags.py +1 -1
  58. metadata/generated/schema/api/createBot.py +1 -1
  59. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  60. metadata/generated/schema/api/createType.py +1 -1
  61. metadata/generated/schema/api/data/__init__.py +1 -1
  62. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  63. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  64. metadata/generated/schema/api/data/createChart.py +1 -1
  65. metadata/generated/schema/api/data/createContainer.py +1 -1
  66. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  67. metadata/generated/schema/api/data/createDashboard.py +1 -1
  68. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  69. metadata/generated/schema/api/data/createDatabase.py +1 -1
  70. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  71. metadata/generated/schema/api/data/createGlossary.py +1 -1
  72. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  73. metadata/generated/schema/api/data/createMetric.py +83 -0
  74. metadata/generated/schema/api/data/createMlModel.py +1 -1
  75. metadata/generated/schema/api/data/createPipeline.py +1 -1
  76. metadata/generated/schema/api/data/createQuery.py +1 -1
  77. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  78. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  79. metadata/generated/schema/api/data/createTable.py +1 -1
  80. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  81. metadata/generated/schema/api/data/createTopic.py +1 -1
  82. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  83. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  84. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  85. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  86. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  87. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  88. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  89. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  90. metadata/generated/schema/api/docStore/__init__.py +1 -1
  91. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  92. metadata/generated/schema/api/domains/__init__.py +1 -1
  93. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  94. metadata/generated/schema/api/domains/createDomain.py +1 -1
  95. metadata/generated/schema/api/feed/__init__.py +1 -1
  96. metadata/generated/schema/api/feed/closeTask.py +1 -1
  97. metadata/generated/schema/api/feed/createPost.py +1 -1
  98. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  99. metadata/generated/schema/api/feed/createThread.py +1 -1
  100. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  101. metadata/generated/schema/api/feed/threadCount.py +1 -1
  102. metadata/generated/schema/api/governance/__init__.py +3 -0
  103. metadata/generated/schema/api/governance/createWorkflowDefinition.py +83 -0
  104. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +22 -0
  105. metadata/generated/schema/api/lineage/__init__.py +1 -1
  106. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  107. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  108. metadata/generated/schema/api/policies/__init__.py +1 -1
  109. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  110. metadata/generated/schema/api/services/__init__.py +1 -1
  111. metadata/generated/schema/api/services/createApiService.py +2 -2
  112. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  113. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  114. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  115. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  116. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  117. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  118. metadata/generated/schema/api/services/createSearchService.py +1 -1
  119. metadata/generated/schema/api/services/createStorageService.py +1 -1
  120. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  121. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  122. metadata/generated/schema/api/setOwner.py +1 -1
  123. metadata/generated/schema/api/teams/__init__.py +1 -1
  124. metadata/generated/schema/api/teams/createPersona.py +1 -1
  125. metadata/generated/schema/api/teams/createRole.py +1 -1
  126. metadata/generated/schema/api/teams/createTeam.py +1 -1
  127. metadata/generated/schema/api/teams/createUser.py +1 -1
  128. metadata/generated/schema/api/tests/__init__.py +1 -1
  129. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  130. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  131. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  132. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  133. metadata/generated/schema/api/tests/createTestCaseResult.py +71 -0
  134. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  135. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  136. metadata/generated/schema/api/voteRequest.py +1 -1
  137. metadata/generated/schema/auth/__init__.py +1 -1
  138. metadata/generated/schema/auth/basicAuth.py +1 -1
  139. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  140. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  141. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  142. metadata/generated/schema/auth/emailRequest.py +1 -1
  143. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  144. metadata/generated/schema/auth/generateToken.py +1 -1
  145. metadata/generated/schema/auth/jwtAuth.py +1 -1
  146. metadata/generated/schema/auth/loginRequest.py +1 -1
  147. metadata/generated/schema/auth/logoutRequest.py +1 -1
  148. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  149. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  150. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  151. metadata/generated/schema/auth/refreshToken.py +1 -1
  152. metadata/generated/schema/auth/registrationRequest.py +1 -1
  153. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  154. metadata/generated/schema/auth/revokeToken.py +1 -1
  155. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  156. metadata/generated/schema/auth/ssoAuth.py +1 -1
  157. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  158. metadata/generated/schema/configuration/__init__.py +1 -1
  159. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  160. metadata/generated/schema/configuration/assetCertificationSettings.py +22 -0
  161. metadata/generated/schema/configuration/authConfig.py +1 -1
  162. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  163. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  164. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  165. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  166. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  167. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  168. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  169. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  170. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  171. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  172. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  173. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  174. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  175. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  176. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  177. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  178. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  179. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  180. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  181. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  182. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  183. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  184. metadata/generated/schema/configuration/searchSettings.py +1 -1
  185. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  186. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  187. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  188. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  189. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  190. metadata/generated/schema/dataInsight/__init__.py +1 -1
  191. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  192. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  193. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +9 -1
  194. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  195. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  196. metadata/generated/schema/dataInsight/custom/lineChart.py +23 -8
  197. metadata/generated/schema/dataInsight/custom/summaryCard.py +20 -9
  198. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  199. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  200. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  201. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  202. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  203. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  204. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  205. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  206. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  207. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  208. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  209. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  210. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  211. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  212. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  213. metadata/generated/schema/email/__init__.py +1 -1
  214. metadata/generated/schema/email/emailRequest.py +1 -1
  215. metadata/generated/schema/email/emailTemplate.py +1 -1
  216. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  217. metadata/generated/schema/email/smtpSettings.py +1 -1
  218. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  219. metadata/generated/schema/entity/__init__.py +1 -1
  220. metadata/generated/schema/entity/applications/__init__.py +1 -1
  221. metadata/generated/schema/entity/applications/app.py +8 -1
  222. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  223. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  224. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  225. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  226. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  227. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  228. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  229. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  230. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  231. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  232. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  233. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +54 -2
  234. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  235. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  236. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  237. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  238. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  239. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  240. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  241. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  242. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  243. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  244. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  245. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  246. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  247. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  248. metadata/generated/schema/entity/applications/createAppRequest.py +8 -1
  249. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  250. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  251. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  252. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +8 -1
  253. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +8 -1
  254. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  255. metadata/generated/schema/entity/automations/__init__.py +1 -1
  256. metadata/generated/schema/entity/automations/testServiceConnection.py +3 -1
  257. metadata/generated/schema/entity/automations/workflow.py +1 -1
  258. metadata/generated/schema/entity/bot.py +1 -1
  259. metadata/generated/schema/entity/classification/__init__.py +1 -1
  260. metadata/generated/schema/entity/classification/classification.py +2 -2
  261. metadata/generated/schema/entity/classification/tag.py +2 -2
  262. metadata/generated/schema/entity/data/__init__.py +1 -1
  263. metadata/generated/schema/entity/data/apiCollection.py +4 -2
  264. metadata/generated/schema/entity/data/apiEndpoint.py +4 -2
  265. metadata/generated/schema/entity/data/chart.py +4 -3
  266. metadata/generated/schema/entity/data/container.py +4 -2
  267. metadata/generated/schema/entity/data/dashboard.py +4 -2
  268. metadata/generated/schema/entity/data/dashboardDataModel.py +5 -2
  269. metadata/generated/schema/entity/data/database.py +7 -7
  270. metadata/generated/schema/entity/data/databaseSchema.py +5 -2
  271. metadata/generated/schema/entity/data/glossary.py +2 -2
  272. metadata/generated/schema/entity/data/glossaryTerm.py +3 -2
  273. metadata/generated/schema/entity/data/metric.py +196 -0
  274. metadata/generated/schema/entity/data/mlmodel.py +4 -2
  275. metadata/generated/schema/entity/data/pipeline.py +4 -3
  276. metadata/generated/schema/entity/data/query.py +3 -5
  277. metadata/generated/schema/entity/data/report.py +1 -1
  278. metadata/generated/schema/entity/data/searchIndex.py +4 -2
  279. metadata/generated/schema/entity/data/storedProcedure.py +4 -2
  280. metadata/generated/schema/entity/data/table.py +36 -3
  281. metadata/generated/schema/entity/data/topic.py +4 -3
  282. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  283. metadata/generated/schema/entity/docStore/document.py +1 -1
  284. metadata/generated/schema/entity/domains/__init__.py +1 -1
  285. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  286. metadata/generated/schema/entity/domains/domain.py +1 -1
  287. metadata/generated/schema/entity/events/__init__.py +1 -1
  288. metadata/generated/schema/entity/events/webhook.py +19 -2
  289. metadata/generated/schema/entity/feed/__init__.py +1 -1
  290. metadata/generated/schema/entity/feed/assets.py +1 -1
  291. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  292. metadata/generated/schema/entity/feed/description.py +1 -1
  293. metadata/generated/schema/entity/feed/domain.py +1 -1
  294. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  295. metadata/generated/schema/entity/feed/owner.py +1 -1
  296. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  297. metadata/generated/schema/entity/feed/tag.py +1 -1
  298. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  299. metadata/generated/schema/entity/feed/thread.py +1 -1
  300. metadata/generated/schema/entity/policies/__init__.py +1 -1
  301. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  302. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +4 -1
  303. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  304. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  305. metadata/generated/schema/entity/policies/filters.py +1 -1
  306. metadata/generated/schema/entity/policies/policy.py +1 -1
  307. metadata/generated/schema/entity/services/__init__.py +1 -1
  308. metadata/generated/schema/entity/services/apiService.py +7 -7
  309. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  310. metadata/generated/schema/entity/services/connections/{apiService → api}/__init__.py +1 -1
  311. metadata/generated/schema/entity/services/connections/{apiService → api}/restConnection.py +15 -7
  312. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  313. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  314. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  315. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  316. metadata/generated/schema/entity/services/connections/connectionBasicType.py +29 -1
  317. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  318. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  319. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  320. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  321. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  322. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  323. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  324. metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +1 -1
  325. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  326. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  327. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  328. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  329. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  330. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  331. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  332. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  333. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  334. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  335. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  336. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +41 -0
  337. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  338. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  339. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  340. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +5 -1
  341. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  342. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +9 -1
  343. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  345. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  346. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  347. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  348. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  349. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  350. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +11 -0
  351. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  352. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  353. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  354. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  355. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  356. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  357. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  358. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  359. metadata/generated/schema/entity/services/connections/database/db2Connection.py +4 -1
  360. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  361. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  362. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  363. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  364. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  366. metadata/generated/schema/entity/services/connections/database/druidConnection.py +4 -1
  367. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  368. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +84 -0
  369. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +4 -1
  371. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +4 -1
  372. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  373. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  374. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  375. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  376. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  377. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  378. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  380. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +4 -1
  381. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +4 -1
  382. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  383. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +5 -1
  384. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +8 -1
  385. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +5 -1
  386. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +4 -1
  387. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +5 -1
  388. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  389. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +9 -1
  390. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  391. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  393. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +5 -1
  396. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  397. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +4 -1
  398. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +9 -1
  399. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +4 -1
  400. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  401. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +4 -1
  402. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +7 -2
  403. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  404. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  405. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  406. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  411. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  412. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  413. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  414. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  416. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  417. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  418. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  420. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  422. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  423. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  426. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  427. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  428. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  429. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  430. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  431. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  432. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +69 -0
  433. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  434. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  436. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  437. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  438. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  439. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +65 -0
  440. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  441. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  442. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  443. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  444. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +43 -0
  445. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  446. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  447. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  448. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  449. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  450. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  451. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  452. metadata/generated/schema/entity/services/connections/serviceConnection.py +3 -3
  453. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  454. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  455. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  456. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  457. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  458. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  459. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  460. metadata/generated/schema/entity/services/dashboardService.py +5 -2
  461. metadata/generated/schema/entity/services/databaseService.py +5 -2
  462. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  463. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  464. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  465. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  466. metadata/generated/schema/entity/services/messagingService.py +2 -2
  467. metadata/generated/schema/entity/services/metadataService.py +2 -2
  468. metadata/generated/schema/entity/services/mlmodelService.py +2 -2
  469. metadata/generated/schema/entity/services/pipelineService.py +11 -2
  470. metadata/generated/schema/entity/services/searchService.py +2 -2
  471. metadata/generated/schema/entity/services/serviceType.py +2 -2
  472. metadata/generated/schema/entity/services/storageService.py +2 -2
  473. metadata/generated/schema/entity/teams/__init__.py +1 -1
  474. metadata/generated/schema/entity/teams/persona.py +1 -1
  475. metadata/generated/schema/entity/teams/role.py +1 -1
  476. metadata/generated/schema/entity/teams/team.py +1 -1
  477. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  478. metadata/generated/schema/entity/teams/user.py +1 -1
  479. metadata/generated/schema/entity/type.py +1 -1
  480. metadata/generated/schema/entity/utils/__init__.py +1 -1
  481. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  482. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  483. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  484. metadata/generated/schema/events/__init__.py +1 -1
  485. metadata/generated/schema/events/alertMetrics.py +1 -1
  486. metadata/generated/schema/events/api/__init__.py +1 -1
  487. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  488. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +69 -0
  489. metadata/generated/schema/events/api/eventsRecord.py +37 -0
  490. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -4
  491. metadata/generated/schema/events/api/typedEvent.py +46 -0
  492. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  493. metadata/generated/schema/events/eventFilterRule.py +1 -1
  494. metadata/generated/schema/events/eventSubscription.py +15 -46
  495. metadata/generated/schema/events/eventSubscriptionOffset.py +7 -2
  496. metadata/generated/schema/events/failedEvent.py +1 -1
  497. metadata/generated/schema/events/failedEventResponse.py +38 -0
  498. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  499. metadata/generated/schema/events/statusContext.py +43 -0
  500. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  501. metadata/generated/schema/events/subscriptionStatus.py +78 -0
  502. metadata/generated/schema/events/testDestinationStatus.py +88 -0
  503. metadata/generated/schema/governance/workflows/__init__.py +3 -0
  504. metadata/generated/schema/governance/workflows/elements/__init__.py +5 -0
  505. metadata/generated/schema/governance/workflows/elements/edge.py +29 -0
  506. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +16 -0
  507. metadata/generated/schema/governance/workflows/elements/nodeType.py +14 -0
  508. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +3 -0
  509. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +5 -0
  510. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +44 -0
  511. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +49 -0
  512. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +42 -0
  513. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +3 -0
  514. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +30 -0
  515. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +3 -0
  516. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +30 -0
  517. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +3 -0
  518. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +57 -0
  519. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +3 -0
  520. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +43 -0
  521. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +44 -0
  522. metadata/generated/schema/{entity/data/metrics.py → governance/workflows/workflowDefinition.py} +36 -49
  523. metadata/generated/schema/governance/workflows/workflowInstance.py +43 -0
  524. metadata/generated/schema/governance/workflows/workflowInstanceState.py +66 -0
  525. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  526. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +53 -0
  527. metadata/generated/schema/metadataIngestion/application.py +1 -1
  528. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  529. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  530. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  531. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -9
  532. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +37 -2
  533. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +42 -1
  534. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  535. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  536. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  537. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  538. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  539. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  540. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  541. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  542. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  543. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  544. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  545. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  546. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  547. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  548. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  549. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  550. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  551. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  552. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  553. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  554. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  555. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  556. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  557. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  558. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  559. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +4 -1
  560. metadata/generated/schema/metadataIngestion/workflow.py +13 -1
  561. metadata/generated/schema/monitoring/__init__.py +1 -1
  562. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  563. metadata/generated/schema/security/__init__.py +1 -1
  564. metadata/generated/schema/security/client/__init__.py +1 -1
  565. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  566. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  567. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  568. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  569. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  570. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  571. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  572. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  573. metadata/generated/schema/security/credentials/__init__.py +1 -1
  574. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  575. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  576. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  577. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  578. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  579. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  580. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  581. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  582. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  583. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  584. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  585. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  586. metadata/generated/schema/security/sasl/__init__.py +1 -1
  587. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  588. metadata/generated/schema/security/secrets/__init__.py +1 -1
  589. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  590. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  591. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  592. metadata/generated/schema/security/securityConfiguration.py +1 -1
  593. metadata/generated/schema/security/ssl/__init__.py +1 -1
  594. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  595. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  596. metadata/generated/schema/settings/__init__.py +1 -1
  597. metadata/generated/schema/settings/settings.py +7 -1
  598. metadata/generated/schema/system/__init__.py +1 -1
  599. metadata/generated/schema/system/entityError.py +1 -1
  600. metadata/generated/schema/system/eventPublisherJob.py +2 -2
  601. metadata/generated/schema/system/indexingError.py +1 -1
  602. metadata/generated/schema/system/limitsResponse.py +1 -1
  603. metadata/generated/schema/system/ui/__init__.py +1 -1
  604. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  605. metadata/generated/schema/system/ui/page.py +1 -1
  606. metadata/generated/schema/system/validationResponse.py +1 -1
  607. metadata/generated/schema/tests/__init__.py +1 -1
  608. metadata/generated/schema/tests/assigned.py +1 -1
  609. metadata/generated/schema/tests/basic.py +19 -4
  610. metadata/generated/schema/tests/customMetric.py +1 -1
  611. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  612. metadata/generated/schema/tests/resolved.py +1 -1
  613. metadata/generated/schema/tests/testCase.py +6 -2
  614. metadata/generated/schema/tests/testCaseResolutionStatus.py +17 -2
  615. metadata/generated/schema/tests/testDefinition.py +1 -1
  616. metadata/generated/schema/tests/testSuite.py +9 -2
  617. metadata/generated/schema/type/__init__.py +1 -1
  618. metadata/generated/schema/type/apiSchema.py +1 -1
  619. metadata/generated/schema/type/assetCertification.py +26 -0
  620. metadata/generated/schema/type/auditLog.py +1 -1
  621. metadata/generated/schema/type/basic.py +1 -1
  622. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  623. metadata/generated/schema/type/changeEvent.py +1 -1
  624. metadata/generated/schema/type/changeEventType.py +1 -1
  625. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  626. metadata/generated/schema/type/csvDocumentation.py +1 -1
  627. metadata/generated/schema/type/csvErrorType.py +1 -1
  628. metadata/generated/schema/type/csvFile.py +1 -1
  629. metadata/generated/schema/type/csvImportResult.py +1 -1
  630. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  631. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  632. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  633. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  634. metadata/generated/schema/type/customProperty.py +8 -1
  635. metadata/generated/schema/type/dailyCount.py +1 -1
  636. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  637. metadata/generated/schema/type/entityHierarchy.py +1 -1
  638. metadata/generated/schema/type/entityHistory.py +1 -1
  639. metadata/generated/schema/type/entityLineage.py +1 -1
  640. metadata/generated/schema/type/entityReference.py +1 -1
  641. metadata/generated/schema/type/entityReferenceList.py +1 -1
  642. metadata/generated/schema/type/entityRelationship.py +1 -1
  643. metadata/generated/schema/type/entityUsage.py +1 -1
  644. metadata/generated/schema/type/filterPattern.py +1 -1
  645. metadata/generated/schema/type/function.py +1 -1
  646. metadata/generated/schema/type/include.py +1 -1
  647. metadata/generated/schema/type/jdbcConnection.py +1 -1
  648. metadata/generated/schema/type/lifeCycle.py +1 -1
  649. metadata/generated/schema/type/paging.py +1 -1
  650. metadata/generated/schema/type/profile.py +1 -1
  651. metadata/generated/schema/type/queryParserData.py +1 -1
  652. metadata/generated/schema/type/reaction.py +1 -1
  653. metadata/generated/schema/type/schedule.py +1 -1
  654. metadata/generated/schema/type/schema.py +1 -1
  655. metadata/generated/schema/type/tableQuery.py +1 -1
  656. metadata/generated/schema/type/tableUsageCount.py +1 -1
  657. metadata/generated/schema/type/tagLabel.py +1 -1
  658. metadata/generated/schema/type/usageDetails.py +1 -1
  659. metadata/generated/schema/type/usageRequest.py +1 -1
  660. metadata/generated/schema/type/votes.py +1 -1
  661. metadata/ingestion/api/parser.py +14 -0
  662. metadata/ingestion/models/custom_basemodel_validation.py +80 -0
  663. metadata/ingestion/models/custom_pydantic.py +33 -1
  664. metadata/ingestion/models/custom_types.py +2 -0
  665. metadata/ingestion/models/entity_interface.py +71 -0
  666. metadata/ingestion/ometa/mixins/es_mixin.py +66 -8
  667. metadata/ingestion/ometa/routes.py +4 -2
  668. metadata/ingestion/processor/query_parser.py +2 -2
  669. metadata/ingestion/source/api/api_service.py +212 -0
  670. metadata/ingestion/source/api/rest/connection.py +93 -0
  671. metadata/ingestion/source/api/rest/metadata.py +278 -0
  672. metadata/ingestion/source/api/rest/models.py +41 -0
  673. metadata/ingestion/source/api/rest/service_spec.py +4 -0
  674. metadata/ingestion/source/dashboard/domodashboard/service_spec.py +6 -0
  675. metadata/ingestion/source/dashboard/lightdash/service_spec.py +4 -0
  676. metadata/ingestion/source/dashboard/looker/metadata.py +33 -4
  677. metadata/ingestion/source/dashboard/looker/service_spec.py +4 -0
  678. metadata/ingestion/source/dashboard/metabase/service_spec.py +4 -0
  679. metadata/ingestion/source/dashboard/mode/service_spec.py +4 -0
  680. metadata/ingestion/source/dashboard/mstr/client.py +3 -2
  681. metadata/ingestion/source/dashboard/mstr/service_spec.py +4 -0
  682. metadata/ingestion/source/dashboard/powerbi/service_spec.py +4 -0
  683. metadata/ingestion/source/dashboard/qlikcloud/service_spec.py +4 -0
  684. metadata/ingestion/source/dashboard/qliksense/service_spec.py +4 -0
  685. metadata/ingestion/source/dashboard/quicksight/service_spec.py +4 -0
  686. metadata/ingestion/source/dashboard/redash/service_spec.py +4 -0
  687. metadata/ingestion/source/dashboard/sigma/__init__.py +0 -0
  688. metadata/ingestion/source/dashboard/sigma/client.py +186 -0
  689. metadata/ingestion/source/dashboard/sigma/connection.py +67 -0
  690. metadata/ingestion/source/dashboard/sigma/metadata.py +331 -0
  691. metadata/ingestion/source/dashboard/sigma/models.py +97 -0
  692. metadata/ingestion/source/dashboard/sigma/service_spec.py +4 -0
  693. metadata/ingestion/source/dashboard/superset/service_spec.py +4 -0
  694. metadata/ingestion/source/dashboard/tableau/service_spec.py +4 -0
  695. metadata/ingestion/source/database/athena/service_spec.py +10 -0
  696. metadata/ingestion/source/database/azuresql/service_spec.py +10 -0
  697. metadata/ingestion/source/database/bigquery/connection.py +28 -2
  698. metadata/ingestion/source/database/bigquery/lineage.py +29 -2
  699. metadata/ingestion/source/database/bigquery/metadata.py +1 -25
  700. metadata/ingestion/source/database/bigquery/profiler/__init__.py +0 -0
  701. metadata/ingestion/source/database/bigquery/profiler/profiler.py +30 -0
  702. metadata/ingestion/source/database/bigquery/profiler/system.py +165 -0
  703. metadata/ingestion/source/database/bigquery/queries.py +69 -1
  704. metadata/ingestion/source/database/bigquery/service_spec.py +14 -0
  705. metadata/ingestion/source/database/bigtable/service_spec.py +4 -0
  706. metadata/ingestion/source/database/clickhouse/service_spec.py +12 -0
  707. metadata/ingestion/source/database/common_db_source.py +150 -147
  708. metadata/ingestion/source/database/common_nosql_source.py +0 -14
  709. metadata/ingestion/source/database/couchbase/metadata.py +62 -2
  710. metadata/ingestion/source/database/couchbase/models.py +31 -0
  711. metadata/ingestion/source/database/couchbase/queries.py +6 -1
  712. metadata/ingestion/source/database/couchbase/service_spec.py +4 -0
  713. metadata/ingestion/source/database/database_service.py +15 -22
  714. metadata/ingestion/source/database/databricks/metadata.py +12 -1
  715. metadata/ingestion/source/database/databricks/service_spec.py +16 -0
  716. metadata/ingestion/source/database/datalake/clients/gcs.py +6 -4
  717. metadata/ingestion/source/database/datalake/metadata.py +2 -13
  718. metadata/ingestion/source/database/datalake/service_spec.py +9 -0
  719. metadata/ingestion/source/database/db2/lineage.py +46 -0
  720. metadata/ingestion/source/database/db2/service_spec.py +9 -0
  721. metadata/ingestion/source/database/dbt/metadata.py +3 -6
  722. metadata/ingestion/source/database/dbt/service_spec.py +4 -0
  723. metadata/ingestion/source/database/deltalake/metadata.py +1 -12
  724. metadata/ingestion/source/database/deltalake/service_spec.py +4 -0
  725. metadata/ingestion/source/database/domodatabase/metadata.py +1 -12
  726. metadata/ingestion/source/database/domodatabase/service_spec.py +4 -0
  727. metadata/ingestion/source/database/doris/metadata.py +1 -1
  728. metadata/ingestion/source/database/doris/service_spec.py +4 -0
  729. metadata/ingestion/source/database/druid/lineage.py +46 -0
  730. metadata/ingestion/source/database/druid/service_spec.py +4 -0
  731. metadata/ingestion/source/database/dynamodb/service_spec.py +7 -0
  732. metadata/ingestion/source/database/exasol/__init__.py +0 -0
  733. metadata/ingestion/source/database/exasol/connection.py +87 -0
  734. metadata/ingestion/source/database/exasol/metadata.py +27 -0
  735. metadata/ingestion/source/database/exasol/service_spec.py +4 -0
  736. metadata/ingestion/source/database/glue/metadata.py +49 -19
  737. metadata/ingestion/source/database/glue/models.py +8 -0
  738. metadata/ingestion/source/database/glue/service_spec.py +4 -0
  739. metadata/ingestion/source/database/greenplum/lineage.py +46 -0
  740. metadata/ingestion/source/database/greenplum/service_spec.py +4 -0
  741. metadata/ingestion/source/database/hive/lineage.py +46 -0
  742. metadata/ingestion/source/database/hive/service_spec.py +4 -0
  743. metadata/ingestion/source/database/iceberg/metadata.py +1 -16
  744. metadata/ingestion/source/database/iceberg/service_spec.py +4 -0
  745. metadata/ingestion/source/database/impala/lineage.py +46 -0
  746. metadata/ingestion/source/database/impala/service_spec.py +4 -0
  747. metadata/ingestion/source/database/life_cycle_query_mixin.py +3 -5
  748. metadata/ingestion/source/database/lineage_source.py +124 -32
  749. metadata/ingestion/source/database/mariadb/lineage.py +46 -0
  750. metadata/ingestion/source/database/mariadb/service_spec.py +4 -0
  751. metadata/ingestion/source/database/mongodb/service_spec.py +7 -0
  752. metadata/ingestion/source/database/mssql/lineage.py +51 -2
  753. metadata/ingestion/source/database/mssql/metadata.py +2 -44
  754. metadata/ingestion/source/database/mssql/service_spec.py +10 -0
  755. metadata/ingestion/source/database/mysql/lineage.py +46 -0
  756. metadata/ingestion/source/database/mysql/service_spec.py +4 -0
  757. metadata/ingestion/source/database/oracle/lineage.py +28 -1
  758. metadata/ingestion/source/database/oracle/metadata.py +2 -23
  759. metadata/ingestion/source/database/oracle/service_spec.py +10 -0
  760. metadata/ingestion/source/database/pinotdb/lineage.py +46 -0
  761. metadata/ingestion/source/database/pinotdb/service_spec.py +4 -0
  762. metadata/ingestion/source/database/postgres/metadata.py +4 -13
  763. metadata/ingestion/source/database/postgres/service_spec.py +10 -0
  764. metadata/ingestion/source/database/postgres/utils.py +26 -0
  765. metadata/ingestion/source/database/presto/service_spec.py +4 -0
  766. metadata/ingestion/source/database/query/service_spec.py +9 -0
  767. metadata/ingestion/source/database/query_parser_source.py +1 -0
  768. metadata/ingestion/source/database/redshift/connection.py +9 -2
  769. metadata/ingestion/source/database/redshift/lineage.py +27 -3
  770. metadata/ingestion/source/database/redshift/metadata.py +2 -27
  771. metadata/ingestion/source/database/redshift/profiler/__init__.py +0 -0
  772. metadata/ingestion/source/database/redshift/profiler/profiler.py +14 -0
  773. metadata/ingestion/source/database/redshift/profiler/system.py +148 -0
  774. metadata/ingestion/source/database/redshift/queries.py +99 -8
  775. metadata/ingestion/source/database/redshift/service_spec.py +14 -0
  776. metadata/ingestion/source/database/redshift/utils.py +3 -3
  777. metadata/ingestion/source/database/salesforce/metadata.py +1 -12
  778. metadata/ingestion/source/database/salesforce/service_spec.py +4 -0
  779. metadata/ingestion/source/database/sample_data.py +137 -34
  780. metadata/ingestion/source/database/saperp/service_spec.py +4 -0
  781. metadata/ingestion/source/database/saphana/service_spec.py +7 -0
  782. metadata/ingestion/source/database/sas/metadata.py +1 -10
  783. metadata/ingestion/source/database/sas/service_spec.py +4 -0
  784. metadata/ingestion/source/database/singlestore/lineage.py +46 -0
  785. metadata/ingestion/source/database/singlestore/service_spec.py +9 -0
  786. metadata/ingestion/source/database/snowflake/connection.py +6 -1
  787. metadata/ingestion/source/database/snowflake/lineage.py +31 -2
  788. metadata/ingestion/source/database/snowflake/metadata.py +1 -24
  789. metadata/ingestion/source/database/snowflake/models.py +50 -1
  790. metadata/ingestion/source/database/snowflake/profiler/__init__.py +0 -0
  791. metadata/ingestion/source/database/snowflake/profiler/profiler.py +26 -0
  792. metadata/ingestion/source/database/snowflake/profiler/system.py +436 -0
  793. metadata/ingestion/source/database/snowflake/queries.py +27 -0
  794. metadata/ingestion/source/database/snowflake/service_spec.py +14 -0
  795. metadata/ingestion/source/database/sql_column_handler.py +26 -0
  796. metadata/ingestion/source/database/sqlite/lineage.py +46 -0
  797. metadata/ingestion/source/database/sqlite/service_spec.py +4 -0
  798. metadata/ingestion/source/database/stored_procedures_mixin.py +78 -37
  799. metadata/ingestion/source/database/teradata/lineage.py +46 -0
  800. metadata/ingestion/source/database/teradata/service_spec.py +4 -0
  801. metadata/ingestion/source/database/trino/connection.py +60 -23
  802. metadata/ingestion/source/database/trino/profiler/__init__.py +0 -0
  803. metadata/ingestion/source/database/trino/profiler/system_tables_profiler.py +167 -0
  804. metadata/ingestion/source/database/trino/service_spec.py +14 -0
  805. metadata/ingestion/source/database/unitycatalog/metadata.py +3 -24
  806. metadata/ingestion/source/database/unitycatalog/service_spec.py +18 -0
  807. metadata/ingestion/source/database/usage_source.py +4 -1
  808. metadata/ingestion/source/database/vertica/service_spec.py +10 -0
  809. metadata/ingestion/source/messaging/kafka/service_spec.py +4 -0
  810. metadata/ingestion/source/messaging/kinesis/service_spec.py +4 -0
  811. metadata/ingestion/source/messaging/redpanda/service_spec.py +4 -0
  812. metadata/ingestion/source/metadata/alationsink/service_spec.py +4 -0
  813. metadata/ingestion/source/metadata/amundsen/service_spec.py +4 -0
  814. metadata/ingestion/source/metadata/atlas/service_spec.py +4 -0
  815. metadata/ingestion/source/mlmodel/mlflow/service_spec.py +4 -0
  816. metadata/ingestion/source/mlmodel/sagemaker/service_spec.py +4 -0
  817. metadata/ingestion/source/pipeline/airbyte/service_spec.py +4 -0
  818. metadata/ingestion/source/pipeline/airflow/metadata.py +36 -2
  819. metadata/ingestion/source/pipeline/airflow/service_spec.py +4 -0
  820. metadata/ingestion/source/pipeline/dagster/metadata.py +3 -1
  821. metadata/ingestion/source/pipeline/dagster/service_spec.py +4 -0
  822. metadata/ingestion/source/pipeline/databrickspipeline/service_spec.py +6 -0
  823. metadata/ingestion/source/pipeline/dbtcloud/service_spec.py +4 -0
  824. metadata/ingestion/source/pipeline/domopipeline/service_spec.py +4 -0
  825. metadata/ingestion/source/pipeline/fivetran/service_spec.py +4 -0
  826. metadata/ingestion/source/pipeline/flink/service_spec.py +4 -0
  827. metadata/ingestion/source/pipeline/gluepipeline/service_spec.py +4 -0
  828. metadata/ingestion/source/pipeline/kafkaconnect/service_spec.py +4 -0
  829. metadata/ingestion/source/pipeline/nifi/service_spec.py +4 -0
  830. metadata/ingestion/source/pipeline/openlineage/service_spec.py +4 -0
  831. metadata/ingestion/source/pipeline/pipeline_service.py +3 -1
  832. metadata/ingestion/source/pipeline/spline/service_spec.py +4 -0
  833. metadata/ingestion/source/search/elasticsearch/service_spec.py +4 -0
  834. metadata/ingestion/source/storage/gcs/metadata.py +2 -2
  835. metadata/ingestion/source/storage/gcs/service_spec.py +4 -0
  836. metadata/ingestion/source/storage/s3/service_spec.py +4 -0
  837. metadata/mixins/sqalchemy/sqa_mixin.py +2 -1
  838. metadata/parsers/avro_parser.py +51 -16
  839. metadata/parsers/json_schema_parser.py +45 -16
  840. metadata/pii/scanners/ner_scanner.py +2 -1
  841. metadata/profiler/api/models.py +5 -0
  842. metadata/profiler/interface/profiler_interface.py +26 -8
  843. metadata/profiler/interface/sqlalchemy/mariadb/profiler_interface.py +5 -3
  844. metadata/profiler/interface/sqlalchemy/profiler_interface.py +32 -21
  845. metadata/profiler/interface/sqlalchemy/single_store/profiler_interface.py +3 -3
  846. metadata/profiler/interface/sqlalchemy/stored_statistics_profiler.py +147 -0
  847. metadata/profiler/interface/sqlalchemy/trino/profiler_interface.py +7 -2
  848. metadata/profiler/metrics/system/system.py +69 -374
  849. metadata/profiler/orm/converter/base.py +2 -1
  850. metadata/profiler/orm/converter/bigquery/converter.py +1 -1
  851. metadata/profiler/orm/functions/count.py +9 -0
  852. metadata/profiler/orm/functions/md5.py +39 -0
  853. metadata/profiler/orm/functions/substr.py +32 -0
  854. metadata/profiler/orm/functions/table_metric_computer.py +1 -1
  855. metadata/profiler/orm/functions/unique_count.py +6 -0
  856. metadata/profiler/orm/registry.py +27 -2
  857. metadata/profiler/processor/core.py +8 -4
  858. metadata/profiler/processor/processor.py +1 -1
  859. metadata/profiler/processor/sampler/sqlalchemy/snowflake/sampler.py +28 -5
  860. metadata/profiler/source/{base → database/base}/profiler_source.py +20 -23
  861. metadata/profiler/source/{bigquery → database/bigquery}/profiler_source.py +1 -1
  862. metadata/profiler/source/{databricks → database/databricks}/profiler_source.py +4 -4
  863. metadata/profiler/source/{mariadb → database/mariadb}/metrics/window/first_quartile.py +1 -1
  864. metadata/profiler/source/{mariadb → database/mariadb}/metrics/window/median.py +1 -1
  865. metadata/profiler/source/{mariadb → database/mariadb}/metrics/window/third_quartile.py +1 -1
  866. metadata/profiler/source/{single_store → database/single_store}/metrics/window/first_quartile.py +3 -1
  867. metadata/profiler/source/{single_store → database/single_store}/metrics/window/median.py +3 -1
  868. metadata/profiler/source/{single_store → database/single_store}/metrics/window/third_quartile.py +3 -1
  869. metadata/profiler/source/fetcher/entity_fetcher.py +62 -0
  870. metadata/profiler/source/fetcher/fetcher_strategy.py +301 -0
  871. metadata/profiler/source/fetcher/profiler_source_factory.py +89 -0
  872. metadata/profiler/source/metadata.py +16 -201
  873. metadata/profiler/source/metadata_ext.py +23 -18
  874. metadata/profiler/source/model.py +29 -0
  875. metadata/utils/class_helper.py +5 -0
  876. metadata/utils/collaborative_super.py +28 -0
  877. metadata/utils/constants.py +2 -0
  878. metadata/utils/constraints.py +65 -0
  879. metadata/utils/dict.py +8 -0
  880. metadata/utils/dispatch.py +1 -53
  881. metadata/utils/entity_link.py +8 -2
  882. metadata/utils/entity_utils.py +93 -0
  883. metadata/utils/filters.py +15 -0
  884. metadata/utils/fqn.py +15 -0
  885. metadata/utils/helpers.py +2 -0
  886. metadata/utils/importer.py +12 -24
  887. metadata/utils/logger.py +23 -2
  888. metadata/utils/lru_cache.py +76 -15
  889. metadata/utils/profiler_utils.py +1 -9
  890. metadata/utils/service_spec/__init__.py +5 -0
  891. metadata/utils/service_spec/default.py +15 -0
  892. metadata/utils/service_spec/service_spec.py +99 -0
  893. metadata/utils/ssl_manager.py +33 -0
  894. metadata/utils/time_utils.py +33 -5
  895. metadata/workflow/application.py +7 -36
  896. metadata/workflow/base.py +47 -17
  897. metadata/workflow/ingestion.py +6 -38
  898. metadata/workflow/workflow_output_handler.py +11 -8
  899. metadata/workflow/workflow_status_mixin.py +0 -2
  900. openmetadata_ingestion-1.6.0.0rc1.dist-info/LICENSE +114 -0
  901. {openmetadata_ingestion-1.5.11.0.dist-info → openmetadata_ingestion-1.6.0.0rc1.dist-info}/METADATA +499 -578
  902. {openmetadata_ingestion-1.5.11.0.dist-info → openmetadata_ingestion-1.6.0.0rc1.dist-info}/RECORD +908 -728
  903. {openmetadata_ingestion-1.5.11.0.dist-info → openmetadata_ingestion-1.6.0.0rc1.dist-info}/entry_points.txt +3 -0
  904. metadata/profiler/interface/profiler_interface_factory.py +0 -107
  905. metadata/profiler/metrics/system/queries/bigquery.py +0 -54
  906. metadata/profiler/metrics/system/queries/redshift.py +0 -103
  907. metadata/profiler/metrics/system/queries/snowflake.py +0 -191
  908. metadata/profiler/source/profiler_source_factory.py +0 -54
  909. openmetadata_ingestion-1.5.11.0.dist-info/LICENSE +0 -201
  910. /metadata/profiler/source/{bigquery → database/bigquery}/type_mapper.py +0 -0
  911. /metadata/profiler/source/{mariadb → database/mariadb}/functions/median.py +0 -0
  912. /metadata/profiler/source/{single_store → database/single_store}/functions/median.py +0 -0
  913. {openmetadata_ingestion-1.5.11.0.dist-info → openmetadata_ingestion-1.6.0.0rc1.dist-info}/WHEEL +0 -0
  914. {openmetadata_ingestion-1.5.11.0.dist-info → openmetadata_ingestion-1.6.0.0rc1.dist-info}/top_level.txt +0 -0
@@ -12,21 +12,24 @@
12
12
  Glue source methods.
13
13
  """
14
14
  import traceback
15
- from typing import Any, Iterable, Optional, Tuple, Union
15
+ from typing import Any, Iterable, Optional, Tuple
16
16
 
17
17
  from metadata.generated.schema.api.data.createDatabase import CreateDatabaseRequest
18
18
  from metadata.generated.schema.api.data.createDatabaseSchema import (
19
19
  CreateDatabaseSchemaRequest,
20
20
  )
21
- from metadata.generated.schema.api.data.createQuery import CreateQueryRequest
22
21
  from metadata.generated.schema.api.data.createStoredProcedure import (
23
22
  CreateStoredProcedureRequest,
24
23
  )
25
24
  from metadata.generated.schema.api.data.createTable import CreateTableRequest
26
- from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
27
25
  from metadata.generated.schema.entity.data.database import Database
28
26
  from metadata.generated.schema.entity.data.databaseSchema import DatabaseSchema
29
- from metadata.generated.schema.entity.data.table import Column, Table, TableType
27
+ from metadata.generated.schema.entity.data.table import (
28
+ Column,
29
+ FileFormat,
30
+ Table,
31
+ TableType,
32
+ )
30
33
  from metadata.generated.schema.entity.services.connections.database.glueConnection import (
31
34
  GlueConnection,
32
35
  )
@@ -39,7 +42,11 @@ from metadata.generated.schema.metadataIngestion.databaseServiceMetadataPipeline
39
42
  from metadata.generated.schema.metadataIngestion.workflow import (
40
43
  Source as WorkflowSource,
41
44
  )
42
- from metadata.generated.schema.type.basic import EntityName, FullyQualifiedEntityName
45
+ from metadata.generated.schema.type.basic import (
46
+ EntityName,
47
+ FullyQualifiedEntityName,
48
+ Markdown,
49
+ )
43
50
  from metadata.ingestion.api.models import Either
44
51
  from metadata.ingestion.api.steps import InvalidSourceException
45
52
  from metadata.ingestion.models.ometa_classification import OMetaTagAndClassification
@@ -48,6 +55,9 @@ from metadata.ingestion.source.connections import get_connection
48
55
  from metadata.ingestion.source.database.column_helpers import truncate_column_name
49
56
  from metadata.ingestion.source.database.column_type_parser import ColumnTypeParser
50
57
  from metadata.ingestion.source.database.database_service import DatabaseServiceSource
58
+ from metadata.ingestion.source.database.external_table_lineage_mixin import (
59
+ ExternalTableLineageMixin,
60
+ )
51
61
  from metadata.ingestion.source.database.glue.models import Column as GlueColumn
52
62
  from metadata.ingestion.source.database.glue.models import (
53
63
  DatabasePage,
@@ -62,7 +72,7 @@ from metadata.utils.logger import ingestion_logger
62
72
  logger = ingestion_logger()
63
73
 
64
74
 
65
- class GlueSource(DatabaseServiceSource):
75
+ class GlueSource(ExternalTableLineageMixin, DatabaseServiceSource):
66
76
  """
67
77
  Implements the necessary methods to extract
68
78
  Database metadata from Glue Source
@@ -79,6 +89,8 @@ class GlueSource(DatabaseServiceSource):
79
89
  self.glue = get_connection(self.service_connection)
80
90
 
81
91
  self.connection_obj = self.glue
92
+ self.schema_description_map = {}
93
+ self.external_location_map = {}
82
94
  self.test_connection()
83
95
 
84
96
  @classmethod
@@ -191,6 +203,10 @@ class GlueSource(DatabaseServiceSource):
191
203
  ):
192
204
  self.status.filter(schema_fqn, "Schema Filtered Out")
193
205
  continue
206
+ if schema.Description:
207
+ self.schema_description_map[schema.Name] = Markdown(
208
+ schema.Description
209
+ )
194
210
  yield schema.Name
195
211
  except Exception as exc:
196
212
  self.status.failed(
@@ -211,6 +227,7 @@ class GlueSource(DatabaseServiceSource):
211
227
  yield Either(
212
228
  right=CreateDatabaseSchemaRequest(
213
229
  name=EntityName(schema_name),
230
+ description=self.schema_description_map.get(schema_name),
214
231
  database=FullyQualifiedEntityName(
215
232
  fqn.build(
216
233
  metadata=self.metadata,
@@ -295,9 +312,16 @@ class GlueSource(DatabaseServiceSource):
295
312
  table_name, table_type = table_name_and_type
296
313
  table = self.context.get().table_data
297
314
  table_constraints = None
315
+ storage_descriptor = table.StorageDescriptor
316
+ database_name = self.context.get().database
317
+ schema_name = self.context.get().database_schema
318
+ if storage_descriptor.Location:
319
+ # s3a doesn't occur as a path in containers, so it needs to be replaced for lineage to work
320
+ self.external_location_map[
321
+ (database_name, schema_name, table_name)
322
+ ] = storage_descriptor.Location.replace("s3a://", "s3://")
298
323
  try:
299
- columns = self.get_columns(table.StorageDescriptor)
300
-
324
+ columns = self.get_columns(storage_descriptor)
301
325
  table_request = CreateTableRequest(
302
326
  name=EntityName(table_name),
303
327
  tableType=table_type,
@@ -309,8 +333,8 @@ class GlueSource(DatabaseServiceSource):
309
333
  metadata=self.metadata,
310
334
  entity_type=DatabaseSchema,
311
335
  service_name=self.context.get().database_service,
312
- database_name=self.context.get().database,
313
- schema_name=self.context.get().database_schema,
336
+ database_name=database_name,
337
+ schema_name=schema_name,
314
338
  )
315
339
  ),
316
340
  sourceUrl=self.get_source_url(
@@ -318,6 +342,8 @@ class GlueSource(DatabaseServiceSource):
318
342
  schema_name=self.context.get().database_schema,
319
343
  database_name=self.context.get().database,
320
344
  ),
345
+ fileFormat=self.get_format(storage_descriptor),
346
+ locationPath=storage_descriptor.Location,
321
347
  )
322
348
  yield Either(right=table_request)
323
349
  self.register_record(table_request=table_request)
@@ -360,12 +386,22 @@ class GlueSource(DatabaseServiceSource):
360
386
  for column in self.context.get().table_data.PartitionKeys:
361
387
  yield self._get_column_object(column)
362
388
 
389
+ @classmethod
390
+ def get_format(cls, storage: StorageDetails) -> Optional[FileFormat]:
391
+ library = storage.SerdeInfo.SerializationLibrary
392
+ if library is None:
393
+ return None
394
+ if library.endswith(".LazySimpleSerDe"):
395
+ return (
396
+ FileFormat.tsv
397
+ if storage.SerdeInfo.Parameters.get("serialization.format") == "\t"
398
+ else FileFormat.csv
399
+ )
400
+ return next((fmt for fmt in FileFormat if fmt.value in library.lower()), None)
401
+
363
402
  def standardize_table_name(self, _: str, table: str) -> str:
364
403
  return table[:128]
365
404
 
366
- def yield_view_lineage(self) -> Iterable[Either[AddLineageRequest]]:
367
- yield from []
368
-
369
405
  def yield_tag(
370
406
  self, schema_name: str
371
407
  ) -> Iterable[Either[OMetaTagAndClassification]]:
@@ -382,12 +418,6 @@ class GlueSource(DatabaseServiceSource):
382
418
  def get_stored_procedure_queries(self) -> Iterable[QueryByProcedure]:
383
419
  """Not Implemented"""
384
420
 
385
- def yield_procedure_lineage_and_queries(
386
- self,
387
- ) -> Iterable[Either[Union[AddLineageRequest, CreateQueryRequest]]]:
388
- """Not Implemented"""
389
- yield from []
390
-
391
421
  def get_source_url(
392
422
  self,
393
423
  database_name: Optional[str],
@@ -20,6 +20,7 @@ from pydantic import BaseModel
20
20
  class GlueSchema(BaseModel):
21
21
  CatalogId: Optional[str] = None
22
22
  Name: str
23
+ Description: Optional[str] = None
23
24
 
24
25
 
25
26
  class DatabasePage(BaseModel):
@@ -36,8 +37,15 @@ class Column(BaseModel):
36
37
  Comment: Optional[str] = None
37
38
 
38
39
 
40
+ class SerializationDetails(BaseModel):
41
+ SerializationLibrary: Optional[str] = None
42
+ Parameters: Optional[dict] = {}
43
+
44
+
39
45
  class StorageDetails(BaseModel):
40
46
  Columns: Optional[List[Column]] = []
47
+ Location: Optional[str] = None
48
+ SerdeInfo: Optional[SerializationDetails] = SerializationDetails()
41
49
 
42
50
 
43
51
  class GlueTable(BaseModel):
@@ -0,0 +1,4 @@
1
+ from metadata.ingestion.source.database.glue.metadata import GlueSource
2
+ from metadata.utils.service_spec.default import DefaultDatabaseSpec
3
+
4
+ ServiceSpec = DefaultDatabaseSpec(metadata_source_class=GlueSource)
@@ -0,0 +1,46 @@
1
+ # Copyright 2021 Collate
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # http://www.apache.org/licenses/LICENSE-2.0
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+ """
12
+ Greenplum lineage module
13
+ """
14
+ from typing import Optional
15
+
16
+ from metadata.generated.schema.entity.services.connections.database.greenplumConnection import (
17
+ GreenplumConnection,
18
+ )
19
+ from metadata.generated.schema.metadataIngestion.workflow import (
20
+ Source as WorkflowSource,
21
+ )
22
+ from metadata.ingestion.api.steps import InvalidSourceException
23
+ from metadata.ingestion.ometa.ometa_api import OpenMetadata
24
+ from metadata.ingestion.source.database.lineage_source import LineageSource
25
+ from metadata.utils.logger import ingestion_logger
26
+
27
+ logger = ingestion_logger()
28
+
29
+
30
+ class GreenplumLineageSource(LineageSource):
31
+ """
32
+ Greenplum lineage source implements view lineage
33
+ """
34
+
35
+ @classmethod
36
+ def create(
37
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
38
+ ):
39
+ """Create class instance"""
40
+ config: WorkflowSource = WorkflowSource.model_validate(config_dict)
41
+ connection: GreenplumConnection = config.serviceConnection.root.config
42
+ if not isinstance(connection, GreenplumConnection):
43
+ raise InvalidSourceException(
44
+ f"Expected GreenplumConnection, but got {connection}"
45
+ )
46
+ return cls(config, metadata)
@@ -0,0 +1,4 @@
1
+ from metadata.ingestion.source.database.greenplum.metadata import GreenplumSource
2
+ from metadata.utils.service_spec.default import DefaultDatabaseSpec
3
+
4
+ ServiceSpec = DefaultDatabaseSpec(metadata_source_class=GreenplumSource)
@@ -0,0 +1,46 @@
1
+ # Copyright 2021 Collate
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # http://www.apache.org/licenses/LICENSE-2.0
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+ """
12
+ Hive lineage module
13
+ """
14
+ from typing import Optional
15
+
16
+ from metadata.generated.schema.entity.services.connections.database.hiveConnection import (
17
+ HiveConnection,
18
+ )
19
+ from metadata.generated.schema.metadataIngestion.workflow import (
20
+ Source as WorkflowSource,
21
+ )
22
+ from metadata.ingestion.api.steps import InvalidSourceException
23
+ from metadata.ingestion.ometa.ometa_api import OpenMetadata
24
+ from metadata.ingestion.source.database.lineage_source import LineageSource
25
+ from metadata.utils.logger import ingestion_logger
26
+
27
+ logger = ingestion_logger()
28
+
29
+
30
+ class HiveLineageSource(LineageSource):
31
+ """
32
+ Hive lineage source implements view lineage
33
+ """
34
+
35
+ @classmethod
36
+ def create(
37
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
38
+ ):
39
+ """Create class instance"""
40
+ config: WorkflowSource = WorkflowSource.model_validate(config_dict)
41
+ connection: HiveConnection = config.serviceConnection.root.config
42
+ if not isinstance(connection, HiveConnection):
43
+ raise InvalidSourceException(
44
+ f"Expected HiveConnection, but got {connection}"
45
+ )
46
+ return cls(config, metadata)
@@ -0,0 +1,4 @@
1
+ from metadata.ingestion.source.database.hive.metadata import HiveSource
2
+ from metadata.utils.service_spec.default import DefaultDatabaseSpec
3
+
4
+ ServiceSpec = DefaultDatabaseSpec(metadata_source_class=HiveSource)
@@ -12,7 +12,7 @@
12
12
  Iceberg source methods.
13
13
  """
14
14
  import traceback
15
- from typing import Any, Iterable, Optional, Tuple, Union
15
+ from typing import Any, Iterable, Optional, Tuple
16
16
 
17
17
  import pyiceberg
18
18
  import pyiceberg.exceptions
@@ -21,12 +21,10 @@ from metadata.generated.schema.api.data.createDatabase import CreateDatabaseRequ
21
21
  from metadata.generated.schema.api.data.createDatabaseSchema import (
22
22
  CreateDatabaseSchemaRequest,
23
23
  )
24
- from metadata.generated.schema.api.data.createQuery import CreateQueryRequest
25
24
  from metadata.generated.schema.api.data.createStoredProcedure import (
26
25
  CreateStoredProcedureRequest,
27
26
  )
28
27
  from metadata.generated.schema.api.data.createTable import CreateTableRequest
29
- from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
30
28
  from metadata.generated.schema.entity.data.database import Database
31
29
  from metadata.generated.schema.entity.data.databaseSchema import DatabaseSchema
32
30
  from metadata.generated.schema.entity.data.table import Table, TableType
@@ -293,13 +291,6 @@ class IcebergSource(DatabaseServiceSource):
293
291
  """
294
292
  yield from []
295
293
 
296
- def yield_view_lineage(self) -> Iterable[Either[AddLineageRequest]]:
297
- """
298
- From topology.
299
- Parses view definition to get lineage information
300
- """
301
- yield from []
302
-
303
294
  def get_stored_procedures(self) -> Iterable[Any]:
304
295
  """Not Implemented"""
305
296
 
@@ -309,11 +300,5 @@ class IcebergSource(DatabaseServiceSource):
309
300
  """Process the stored procedure information"""
310
301
  yield from []
311
302
 
312
- def yield_procedure_lineage_and_queries(
313
- self,
314
- ) -> Iterable[Either[Union[AddLineageRequest, CreateQueryRequest]]]:
315
- """Extracts the lineage information from Stored Procedures"""
316
- yield from []
317
-
318
303
  def close(self):
319
304
  """There is no connection to close."""
@@ -0,0 +1,4 @@
1
+ from metadata.ingestion.source.database.iceberg.metadata import IcebergSource
2
+ from metadata.utils.service_spec.default import DefaultDatabaseSpec
3
+
4
+ ServiceSpec = DefaultDatabaseSpec(metadata_source_class=IcebergSource)
@@ -0,0 +1,46 @@
1
+ # Copyright 2021 Collate
2
+ # Licensed under the Apache License, Version 2.0 (the "License");
3
+ # you may not use this file except in compliance with the License.
4
+ # You may obtain a copy of the License at
5
+ # http://www.apache.org/licenses/LICENSE-2.0
6
+ # Unless required by applicable law or agreed to in writing, software
7
+ # distributed under the License is distributed on an "AS IS" BASIS,
8
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
9
+ # See the License for the specific language governing permissions and
10
+ # limitations under the License.
11
+ """
12
+ Impala lineage module
13
+ """
14
+ from typing import Optional
15
+
16
+ from metadata.generated.schema.entity.services.connections.database.impalaConnection import (
17
+ ImpalaConnection,
18
+ )
19
+ from metadata.generated.schema.metadataIngestion.workflow import (
20
+ Source as WorkflowSource,
21
+ )
22
+ from metadata.ingestion.api.steps import InvalidSourceException
23
+ from metadata.ingestion.ometa.ometa_api import OpenMetadata
24
+ from metadata.ingestion.source.database.lineage_source import LineageSource
25
+ from metadata.utils.logger import ingestion_logger
26
+
27
+ logger = ingestion_logger()
28
+
29
+
30
+ class ImpalaLineageSource(LineageSource):
31
+ """
32
+ Impala lineage source implements view lineage
33
+ """
34
+
35
+ @classmethod
36
+ def create(
37
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
38
+ ):
39
+ """Create class instance"""
40
+ config: WorkflowSource = WorkflowSource.model_validate(config_dict)
41
+ connection: ImpalaConnection = config.serviceConnection.root.config
42
+ if not isinstance(connection, ImpalaConnection):
43
+ raise InvalidSourceException(
44
+ f"Expected ImpalaConnection, but got {connection}"
45
+ )
46
+ return cls(config, metadata)
@@ -0,0 +1,4 @@
1
+ from metadata.ingestion.source.database.impala.metadata import ImpalaSource
2
+ from metadata.utils.service_spec.default import DefaultDatabaseSpec
3
+
4
+ ServiceSpec = DefaultDatabaseSpec(metadata_source_class=ImpalaSource)
@@ -36,7 +36,7 @@ from metadata.ingestion.models.topology import TopologyContextManager
36
36
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
37
37
  from metadata.utils import fqn
38
38
  from metadata.utils.logger import ingestion_logger
39
- from metadata.utils.time_utils import convert_timestamp_to_milliseconds
39
+ from metadata.utils.time_utils import datetime_to_timestamp
40
40
 
41
41
  logger = ingestion_logger()
42
42
 
@@ -104,10 +104,8 @@ class LifeCycleQueryMixin:
104
104
  life_cycle = LifeCycle(
105
105
  created=AccessDetails(
106
106
  timestamp=Timestamp(
107
- int(
108
- convert_timestamp_to_milliseconds(
109
- life_cycle_data.created_at.timestamp()
110
- )
107
+ datetime_to_timestamp(
108
+ life_cycle_data.created_at, milliseconds=True
111
109
  )
112
110
  )
113
111
  )
@@ -15,17 +15,22 @@ import csv
15
15
  import os
16
16
  import traceback
17
17
  from abc import ABC
18
- from typing import Iterable, Iterator, Union
18
+ from concurrent.futures import ThreadPoolExecutor, as_completed
19
+ from functools import partial
20
+ from typing import Callable, Iterable, Iterator, Union
19
21
 
20
22
  from metadata.generated.schema.api.data.createQuery import CreateQueryRequest
21
23
  from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
22
24
  from metadata.generated.schema.type.basic import FullyQualifiedEntityName, SqlQuery
23
25
  from metadata.generated.schema.type.tableQuery import TableQuery
24
26
  from metadata.ingestion.api.models import Either
25
- from metadata.ingestion.lineage.models import ConnectionTypeDialectMapper
27
+ from metadata.ingestion.lineage.models import ConnectionTypeDialectMapper, Dialect
26
28
  from metadata.ingestion.lineage.sql_lineage import get_lineage_by_query
29
+ from metadata.ingestion.models.ometa_lineage import OMetaLineageRequest
27
30
  from metadata.ingestion.source.database.query_parser_source import QueryParserSource
31
+ from metadata.ingestion.source.models import TableView
28
32
  from metadata.utils import fqn
33
+ from metadata.utils.db_utils import get_view_lineage
29
34
  from metadata.utils.logger import ingestion_logger
30
35
 
31
36
  logger = ingestion_logger()
@@ -43,12 +48,14 @@ class LineageSource(QueryParserSource, ABC):
43
48
  - schema
44
49
  """
45
50
 
51
+ dialect: Dialect
52
+
46
53
  def yield_table_queries_from_logs(self) -> Iterator[TableQuery]:
47
54
  """
48
55
  Method to handle the usage from query logs
49
56
  """
50
57
  try:
51
- query_log_path = self.config.sourceConfig.config.queryLogFilePath
58
+ query_log_path = self.source_config.queryLogFilePath
52
59
  if os.path.isfile(query_log_path):
53
60
  file_paths = [query_log_path]
54
61
  elif os.path.isdir(query_log_path):
@@ -89,6 +96,28 @@ class LineageSource(QueryParserSource, ABC):
89
96
  )
90
97
  yield from self.yield_table_query()
91
98
 
99
+ def generate_lineage_in_thread(self, producer_fn: Callable, processor_fn: Callable):
100
+ with ThreadPoolExecutor(max_workers=self.source_config.threads) as executor:
101
+ futures = []
102
+
103
+ for produced_input in producer_fn():
104
+ futures.append(executor.submit(processor_fn, produced_input))
105
+
106
+ # Handle remaining futures after the loop
107
+ for future in as_completed(
108
+ futures, timeout=self.source_config.parsingTimeoutLimit
109
+ ):
110
+ try:
111
+ results = future.result(
112
+ timeout=self.source_config.parsingTimeoutLimit
113
+ )
114
+ yield from results
115
+ except Exception as exc:
116
+ logger.debug(traceback.format_exc())
117
+ logger.warning(
118
+ f"Error processing result for {produced_input}: {exc}"
119
+ )
120
+
92
121
  def yield_table_query(self) -> Iterator[TableQuery]:
93
122
  """
94
123
  Given an engine, iterate over the query results to
@@ -128,40 +157,103 @@ class LineageSource(QueryParserSource, ABC):
128
157
  )
129
158
  return fqn.get_query_checksum(table_query.query) in checksums or {}
130
159
 
131
- def _iter(
132
- self, *_, **__
160
+ def query_lineage_generator(
161
+ self, table_query: TableQuery
162
+ ) -> Iterable[Either[Union[AddLineageRequest, CreateQueryRequest]]]:
163
+ if not self._query_already_processed(table_query):
164
+ lineages: Iterable[Either[AddLineageRequest]] = get_lineage_by_query(
165
+ self.metadata,
166
+ query=table_query.query,
167
+ service_name=table_query.serviceName,
168
+ database_name=table_query.databaseName,
169
+ schema_name=table_query.databaseSchema,
170
+ dialect=self.dialect,
171
+ timeout_seconds=self.source_config.parsingTimeoutLimit,
172
+ )
173
+
174
+ for lineage_request in lineages or []:
175
+ yield lineage_request
176
+
177
+ # If we identified lineage properly, ingest the original query
178
+ if lineage_request.right:
179
+ yield Either(
180
+ right=CreateQueryRequest(
181
+ query=SqlQuery(table_query.query),
182
+ query_type=table_query.query_type,
183
+ duration=table_query.duration,
184
+ processedLineage=True,
185
+ service=FullyQualifiedEntityName(self.config.serviceName),
186
+ )
187
+ )
188
+
189
+ def yield_query_lineage(
190
+ self,
133
191
  ) -> Iterable[Either[Union[AddLineageRequest, CreateQueryRequest]]]:
134
192
  """
135
193
  Based on the query logs, prepare the lineage
136
194
  and send it to the sink
137
195
  """
138
196
  connection_type = str(self.service_connection.type.value)
139
- dialect = ConnectionTypeDialectMapper.dialect_of(connection_type)
140
- for table_query in self.get_table_query():
141
- if not self._query_already_processed(table_query):
142
- lineages: Iterable[Either[AddLineageRequest]] = get_lineage_by_query(
143
- self.metadata,
144
- query=table_query.query,
145
- service_name=table_query.serviceName,
146
- database_name=table_query.databaseName,
147
- schema_name=table_query.databaseSchema,
148
- dialect=dialect,
149
- timeout_seconds=self.source_config.parsingTimeoutLimit,
150
- )
197
+ self.dialect = ConnectionTypeDialectMapper.dialect_of(connection_type)
198
+ producer_fn = self.get_table_query
199
+ processor_fn = self.query_lineage_generator
200
+ yield from self.generate_lineage_in_thread(producer_fn, processor_fn)
151
201
 
152
- for lineage_request in lineages or []:
153
- yield lineage_request
154
-
155
- # If we identified lineage properly, ingest the original query
156
- if lineage_request.right:
157
- yield Either(
158
- right=CreateQueryRequest(
159
- query=SqlQuery(table_query.query),
160
- query_type=table_query.query_type,
161
- duration=table_query.duration,
162
- processedLineage=True,
163
- service=FullyQualifiedEntityName(
164
- self.config.serviceName
165
- ),
166
- )
202
+ def view_lineage_generator(
203
+ self, view: TableView
204
+ ) -> Iterable[Either[AddLineageRequest]]:
205
+ try:
206
+ for lineage in get_view_lineage(
207
+ view=view,
208
+ metadata=self.metadata,
209
+ service_name=self.config.serviceName,
210
+ connection_type=self.service_connection.type.value,
211
+ timeout_seconds=self.source_config.parsingTimeoutLimit,
212
+ ):
213
+ if lineage.right is not None:
214
+ yield Either(
215
+ right=OMetaLineageRequest(
216
+ lineage_request=lineage.right,
217
+ override_lineage=self.source_config.overrideViewLineage,
167
218
  )
219
+ )
220
+ else:
221
+ yield lineage
222
+ except Exception as exc:
223
+ logger.debug(traceback.format_exc())
224
+ logger.warning(f"Error processing view {view}: {exc}")
225
+
226
+ def yield_view_lineage(self) -> Iterable[Either[AddLineageRequest]]:
227
+ logger.info("Processing View Lineage")
228
+ producer_fn = partial(self.metadata.yield_es_view_def, self.config.serviceName)
229
+ processor_fn = self.view_lineage_generator
230
+ yield from self.generate_lineage_in_thread(producer_fn, processor_fn)
231
+
232
+ def yield_procedure_lineage(
233
+ self,
234
+ ) -> Iterable[Either[Union[AddLineageRequest, CreateQueryRequest]]]:
235
+ """
236
+ By default stored procedure lineage is not supported.
237
+ """
238
+ logger.info(
239
+ f"Processing Procedure Lineage not supported for {str(self.service_connection.type.value)}"
240
+ )
241
+
242
+ def _iter(
243
+ self, *_, **__
244
+ ) -> Iterable[Either[Union[AddLineageRequest, CreateQueryRequest]]]:
245
+ """
246
+ Based on the query logs, prepare the lineage
247
+ and send it to the sink
248
+ """
249
+ if self.source_config.processViewLineage:
250
+ yield from self.yield_view_lineage() or []
251
+ if self.source_config.processStoredProcedureLineage:
252
+ yield from self.yield_procedure_lineage() or []
253
+ if self.source_config.processQueryLineage:
254
+ if hasattr(self.service_connection, "supportsLineageExtraction"):
255
+ yield from self.yield_query_lineage() or []
256
+ else:
257
+ logger.warning(
258
+ f"Lineage extraction is not supported for {str(self.service_connection.type.value)} connection"
259
+ )