openmetadata-ingestion 1.6.10.0__py3-none-any.whl → 1.6.12.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (673) hide show
  1. metadata/data_quality/validations/models.py +3 -0
  2. metadata/data_quality/validations/runtime_param_setter/base_diff_params_setter.py +120 -0
  3. metadata/data_quality/validations/runtime_param_setter/table_diff_params_setter.py +61 -47
  4. metadata/data_quality/validations/table/sqlalchemy/tableDiff.py +24 -0
  5. metadata/generated/schema/analytics/__init__.py +1 -1
  6. metadata/generated/schema/analytics/basic.py +1 -1
  7. metadata/generated/schema/analytics/reportData.py +1 -1
  8. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  9. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  10. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  11. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  12. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  13. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  14. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  15. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  16. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  17. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  18. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  19. metadata/generated/schema/api/__init__.py +1 -1
  20. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  21. metadata/generated/schema/api/addTagToAssetsRequest.py +1 -1
  22. metadata/generated/schema/api/analytics/__init__.py +1 -1
  23. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  24. metadata/generated/schema/api/automations/__init__.py +1 -1
  25. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  26. metadata/generated/schema/api/bulkAssets.py +1 -1
  27. metadata/generated/schema/api/classification/__init__.py +1 -1
  28. metadata/generated/schema/api/classification/createClassification.py +1 -1
  29. metadata/generated/schema/api/classification/createTag.py +1 -1
  30. metadata/generated/schema/api/classification/loadTags.py +1 -1
  31. metadata/generated/schema/api/createBot.py +1 -1
  32. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  33. metadata/generated/schema/api/createType.py +1 -1
  34. metadata/generated/schema/api/data/__init__.py +1 -1
  35. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  36. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  37. metadata/generated/schema/api/data/createChart.py +1 -1
  38. metadata/generated/schema/api/data/createContainer.py +1 -1
  39. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  40. metadata/generated/schema/api/data/createDashboard.py +1 -1
  41. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  42. metadata/generated/schema/api/data/createDatabase.py +1 -1
  43. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  44. metadata/generated/schema/api/data/createGlossary.py +1 -1
  45. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  46. metadata/generated/schema/api/data/createMetric.py +1 -1
  47. metadata/generated/schema/api/data/createMlModel.py +1 -1
  48. metadata/generated/schema/api/data/createPipeline.py +1 -1
  49. metadata/generated/schema/api/data/createQuery.py +1 -1
  50. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  51. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  52. metadata/generated/schema/api/data/createTable.py +1 -1
  53. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  54. metadata/generated/schema/api/data/createTopic.py +1 -1
  55. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  56. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  57. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  58. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  59. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  60. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  61. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  62. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  63. metadata/generated/schema/api/docStore/__init__.py +1 -1
  64. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  65. metadata/generated/schema/api/domains/__init__.py +1 -1
  66. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  67. metadata/generated/schema/api/domains/createDomain.py +1 -1
  68. metadata/generated/schema/api/feed/__init__.py +1 -1
  69. metadata/generated/schema/api/feed/closeTask.py +1 -1
  70. metadata/generated/schema/api/feed/createPost.py +1 -1
  71. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  72. metadata/generated/schema/api/feed/createThread.py +1 -1
  73. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  74. metadata/generated/schema/api/feed/threadCount.py +1 -1
  75. metadata/generated/schema/api/governance/__init__.py +1 -1
  76. metadata/generated/schema/api/governance/createWorkflowDefinition.py +1 -1
  77. metadata/generated/schema/api/governance/createWorkflowInstanceState.py +1 -1
  78. metadata/generated/schema/api/lineage/__init__.py +1 -1
  79. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  80. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  81. metadata/generated/schema/api/policies/__init__.py +1 -1
  82. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  83. metadata/generated/schema/api/services/__init__.py +1 -1
  84. metadata/generated/schema/api/services/createApiService.py +1 -1
  85. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  86. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  87. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  88. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  89. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  90. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  91. metadata/generated/schema/api/services/createSearchService.py +1 -1
  92. metadata/generated/schema/api/services/createStorageService.py +1 -1
  93. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  94. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  95. metadata/generated/schema/api/setOwner.py +1 -1
  96. metadata/generated/schema/api/teams/__init__.py +1 -1
  97. metadata/generated/schema/api/teams/createPersona.py +1 -1
  98. metadata/generated/schema/api/teams/createRole.py +1 -1
  99. metadata/generated/schema/api/teams/createTeam.py +1 -1
  100. metadata/generated/schema/api/teams/createUser.py +1 -1
  101. metadata/generated/schema/api/tests/__init__.py +1 -1
  102. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  103. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  104. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  105. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  106. metadata/generated/schema/api/tests/createTestCaseResult.py +1 -1
  107. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  108. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  109. metadata/generated/schema/api/voteRequest.py +1 -1
  110. metadata/generated/schema/auth/__init__.py +1 -1
  111. metadata/generated/schema/auth/basicAuth.py +1 -1
  112. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  113. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  114. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  115. metadata/generated/schema/auth/emailRequest.py +1 -1
  116. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  117. metadata/generated/schema/auth/generateToken.py +1 -1
  118. metadata/generated/schema/auth/jwtAuth.py +1 -1
  119. metadata/generated/schema/auth/loginRequest.py +1 -1
  120. metadata/generated/schema/auth/logoutRequest.py +1 -1
  121. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  122. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  123. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  124. metadata/generated/schema/auth/refreshToken.py +1 -1
  125. metadata/generated/schema/auth/registrationRequest.py +1 -1
  126. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  127. metadata/generated/schema/auth/revokeToken.py +1 -1
  128. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  129. metadata/generated/schema/auth/ssoAuth.py +1 -1
  130. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  131. metadata/generated/schema/configuration/__init__.py +1 -1
  132. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  133. metadata/generated/schema/configuration/assetCertificationSettings.py +1 -1
  134. metadata/generated/schema/configuration/authConfig.py +1 -1
  135. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  136. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  137. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  138. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  139. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  140. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  141. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  142. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  143. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  144. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  145. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  146. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  147. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  148. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  149. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  150. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  151. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  152. metadata/generated/schema/configuration/lineageSettings.py +1 -1
  153. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  154. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  155. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  156. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  157. metadata/generated/schema/configuration/searchSettings.py +1 -1
  158. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  159. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  160. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  161. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  162. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  163. metadata/generated/schema/configuration/workflowSettings.py +1 -1
  164. metadata/generated/schema/dataInsight/__init__.py +1 -1
  165. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  166. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  167. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  168. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  169. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  170. metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
  171. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  172. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  173. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  174. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  175. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  176. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  177. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  178. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  179. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  180. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  181. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  182. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  183. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  184. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  185. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  186. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  187. metadata/generated/schema/email/__init__.py +1 -1
  188. metadata/generated/schema/email/emailRequest.py +1 -1
  189. metadata/generated/schema/email/emailTemplate.py +1 -1
  190. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  191. metadata/generated/schema/email/smtpSettings.py +1 -1
  192. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  193. metadata/generated/schema/entity/__init__.py +1 -1
  194. metadata/generated/schema/entity/applications/__init__.py +1 -1
  195. metadata/generated/schema/entity/applications/app.py +1 -1
  196. metadata/generated/schema/entity/applications/appExtension.py +1 -1
  197. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  198. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  199. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  200. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  201. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  202. metadata/generated/schema/entity/applications/configuration/external/automator/addCustomProperties.py +1 -1
  203. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  204. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  205. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  206. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  207. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  208. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  209. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  210. metadata/generated/schema/entity/applications/configuration/external/automator/removeCustomPropertiesAction.py +1 -1
  211. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  212. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  213. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  214. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  215. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  216. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  217. metadata/generated/schema/entity/applications/configuration/external/collateAIAppConfig.py +1 -1
  218. metadata/generated/schema/entity/applications/configuration/external/slackAppTokenConfiguration.py +1 -1
  219. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  220. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  221. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  222. metadata/generated/schema/entity/applications/configuration/internal/dataRetentionConfiguration.py +1 -1
  223. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  224. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  225. metadata/generated/schema/entity/applications/configuration/private/external/collateAIAppPrivateConfig.py +1 -1
  226. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  227. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  228. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  229. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  230. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  231. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  232. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  233. metadata/generated/schema/entity/automations/__init__.py +1 -1
  234. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  235. metadata/generated/schema/entity/automations/workflow.py +1 -1
  236. metadata/generated/schema/entity/bot.py +1 -1
  237. metadata/generated/schema/entity/classification/__init__.py +1 -1
  238. metadata/generated/schema/entity/classification/classification.py +1 -1
  239. metadata/generated/schema/entity/classification/tag.py +1 -1
  240. metadata/generated/schema/entity/data/__init__.py +1 -1
  241. metadata/generated/schema/entity/data/apiCollection.py +1 -1
  242. metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
  243. metadata/generated/schema/entity/data/chart.py +1 -1
  244. metadata/generated/schema/entity/data/container.py +1 -1
  245. metadata/generated/schema/entity/data/dashboard.py +1 -1
  246. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  247. metadata/generated/schema/entity/data/database.py +1 -1
  248. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  249. metadata/generated/schema/entity/data/glossary.py +1 -1
  250. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  251. metadata/generated/schema/entity/data/metric.py +1 -1
  252. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  253. metadata/generated/schema/entity/data/pipeline.py +1 -1
  254. metadata/generated/schema/entity/data/query.py +1 -1
  255. metadata/generated/schema/entity/data/report.py +1 -1
  256. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  257. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  258. metadata/generated/schema/entity/data/table.py +1 -1
  259. metadata/generated/schema/entity/data/topic.py +1 -1
  260. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  261. metadata/generated/schema/entity/docStore/document.py +1 -1
  262. metadata/generated/schema/entity/domains/__init__.py +1 -1
  263. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  264. metadata/generated/schema/entity/domains/domain.py +1 -1
  265. metadata/generated/schema/entity/events/__init__.py +1 -1
  266. metadata/generated/schema/entity/events/webhook.py +1 -1
  267. metadata/generated/schema/entity/feed/__init__.py +1 -1
  268. metadata/generated/schema/entity/feed/assets.py +1 -1
  269. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  270. metadata/generated/schema/entity/feed/description.py +1 -1
  271. metadata/generated/schema/entity/feed/domain.py +1 -1
  272. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  273. metadata/generated/schema/entity/feed/owner.py +1 -1
  274. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  275. metadata/generated/schema/entity/feed/tag.py +1 -1
  276. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  277. metadata/generated/schema/entity/feed/thread.py +1 -1
  278. metadata/generated/schema/entity/policies/__init__.py +1 -1
  279. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  280. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  281. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  282. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  283. metadata/generated/schema/entity/policies/filters.py +1 -1
  284. metadata/generated/schema/entity/policies/policy.py +1 -1
  285. metadata/generated/schema/entity/services/__init__.py +1 -1
  286. metadata/generated/schema/entity/services/apiService.py +1 -1
  287. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  288. metadata/generated/schema/entity/services/connections/api/__init__.py +1 -1
  289. metadata/generated/schema/entity/services/connections/api/restConnection.py +1 -1
  290. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  291. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  292. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  293. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  294. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  295. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  296. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  297. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  298. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  299. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  300. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  301. metadata/generated/schema/entity/services/connections/dashboard/microStrategyConnection.py +1 -1
  302. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  303. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  304. metadata/generated/schema/entity/services/connections/dashboard/powerBIReportServerConnection.py +1 -1
  305. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  306. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  307. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  308. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  309. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  310. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  311. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  312. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  313. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  314. metadata/generated/schema/entity/services/connections/dashboard/sigmaConnection.py +1 -1
  315. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  316. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  317. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  318. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  319. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  320. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  321. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  322. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  323. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  324. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  325. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  326. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  327. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  328. metadata/generated/schema/entity/services/connections/database/common/noConfigAuthenticationTypes.py +1 -1
  329. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  330. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  331. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  332. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  333. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  334. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  335. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  336. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  337. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  338. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  339. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  340. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  341. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  342. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  343. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  345. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  346. metadata/generated/schema/entity/services/connections/database/exasolConnection.py +1 -1
  347. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  348. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  349. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  350. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  351. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  352. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  353. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  354. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  355. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  356. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  357. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  358. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  359. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  360. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  361. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  363. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  366. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  367. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  368. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  369. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  371. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  372. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  373. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  374. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  375. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  376. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  380. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  382. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  383. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  384. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  386. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  387. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  388. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  389. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  390. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  391. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  396. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  397. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  398. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  399. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  400. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  401. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  402. metadata/generated/schema/entity/services/connections/mlmodel/vertexaiConnection.py +1 -1
  403. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  404. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  405. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  406. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  410. metadata/generated/schema/entity/services/connections/pipeline/datafactoryConnection.py +1 -1
  411. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  412. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  413. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  414. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  416. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  417. metadata/generated/schema/entity/services/connections/pipeline/matillion/__init__.py +1 -1
  418. metadata/generated/schema/entity/services/connections/pipeline/matillion/matillionETL.py +1 -1
  419. metadata/generated/schema/entity/services/connections/pipeline/matillionConnection.py +1 -1
  420. metadata/generated/schema/entity/services/connections/pipeline/nifi/__init__.py +1 -1
  421. metadata/generated/schema/entity/services/connections/pipeline/nifi/basicAuth.py +1 -1
  422. metadata/generated/schema/entity/services/connections/pipeline/nifi/clientCertificateAuth.py +1 -1
  423. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  426. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  427. metadata/generated/schema/entity/services/connections/pipeline/stitchConnection.py +1 -1
  428. metadata/generated/schema/entity/services/connections/pipeline/wherescapeConnection.py +1 -1
  429. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  430. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  431. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  432. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  433. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  434. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  436. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  437. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  438. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  439. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  440. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  441. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  442. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  443. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  444. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  445. metadata/generated/schema/entity/services/databaseService.py +1 -1
  446. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  447. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  448. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  449. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  450. metadata/generated/schema/entity/services/messagingService.py +1 -1
  451. metadata/generated/schema/entity/services/metadataService.py +1 -1
  452. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  453. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  454. metadata/generated/schema/entity/services/searchService.py +1 -1
  455. metadata/generated/schema/entity/services/serviceType.py +1 -1
  456. metadata/generated/schema/entity/services/storageService.py +1 -1
  457. metadata/generated/schema/entity/teams/__init__.py +1 -1
  458. metadata/generated/schema/entity/teams/persona.py +1 -1
  459. metadata/generated/schema/entity/teams/role.py +1 -1
  460. metadata/generated/schema/entity/teams/team.py +1 -1
  461. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  462. metadata/generated/schema/entity/teams/user.py +1 -1
  463. metadata/generated/schema/entity/type.py +1 -1
  464. metadata/generated/schema/entity/utils/__init__.py +1 -1
  465. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  466. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  467. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  468. metadata/generated/schema/events/__init__.py +1 -1
  469. metadata/generated/schema/events/alertMetrics.py +1 -1
  470. metadata/generated/schema/events/api/__init__.py +1 -1
  471. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  472. metadata/generated/schema/events/api/eventSubscriptionDiagnosticInfo.py +1 -1
  473. metadata/generated/schema/events/api/eventsRecord.py +1 -1
  474. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  475. metadata/generated/schema/events/api/typedEvent.py +1 -1
  476. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  477. metadata/generated/schema/events/eventFilterRule.py +1 -1
  478. metadata/generated/schema/events/eventSubscription.py +1 -1
  479. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  480. metadata/generated/schema/events/failedEvent.py +1 -1
  481. metadata/generated/schema/events/failedEventResponse.py +1 -1
  482. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  483. metadata/generated/schema/events/statusContext.py +1 -1
  484. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  485. metadata/generated/schema/events/subscriptionStatus.py +1 -1
  486. metadata/generated/schema/events/testDestinationStatus.py +1 -1
  487. metadata/generated/schema/governance/workflows/__init__.py +1 -1
  488. metadata/generated/schema/governance/workflows/elements/__init__.py +1 -1
  489. metadata/generated/schema/governance/workflows/elements/edge.py +1 -1
  490. metadata/generated/schema/governance/workflows/elements/nodeSubType.py +1 -1
  491. metadata/generated/schema/governance/workflows/elements/nodeType.py +1 -1
  492. metadata/generated/schema/governance/workflows/elements/nodes/__init__.py +1 -1
  493. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/__init__.py +1 -1
  494. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/checkEntityAttributesTask.py +1 -1
  495. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setEntityCertificationTask.py +1 -1
  496. metadata/generated/schema/governance/workflows/elements/nodes/automatedTask/setGlossaryTermStatusTask.py +1 -1
  497. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/__init__.py +1 -1
  498. metadata/generated/schema/governance/workflows/elements/nodes/endEvent/endEvent.py +1 -1
  499. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/__init__.py +1 -1
  500. metadata/generated/schema/governance/workflows/elements/nodes/startEvent/startEvent.py +1 -1
  501. metadata/generated/schema/governance/workflows/elements/nodes/userTask/__init__.py +1 -1
  502. metadata/generated/schema/governance/workflows/elements/nodes/userTask/userApprovalTask.py +1 -1
  503. metadata/generated/schema/governance/workflows/elements/triggers/__init__.py +1 -1
  504. metadata/generated/schema/governance/workflows/elements/triggers/eventBasedEntityTrigger.py +1 -1
  505. metadata/generated/schema/governance/workflows/elements/triggers/periodicBatchEntityTrigger.py +1 -1
  506. metadata/generated/schema/governance/workflows/workflowDefinition.py +1 -1
  507. metadata/generated/schema/governance/workflows/workflowInstance.py +1 -1
  508. metadata/generated/schema/governance/workflows/workflowInstanceState.py +1 -1
  509. metadata/generated/schema/jobs/__init__.py +1 -1
  510. metadata/generated/schema/jobs/backgroundJob.py +1 -1
  511. metadata/generated/schema/jobs/enumCleanupArgs.py +1 -1
  512. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  513. metadata/generated/schema/metadataIngestion/apiServiceMetadataPipeline.py +1 -1
  514. metadata/generated/schema/metadataIngestion/application.py +1 -1
  515. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  516. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  517. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  518. metadata/generated/schema/metadataIngestion/databaseServiceAutoClassificationPipeline.py +1 -1
  519. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  520. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  521. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  522. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  523. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  524. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  525. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  526. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  527. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  528. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  529. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  530. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  531. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  532. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  533. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  534. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  535. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  536. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  537. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  538. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  539. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  540. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  541. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  542. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  543. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  544. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  545. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  546. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  547. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  548. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  549. metadata/generated/schema/monitoring/__init__.py +1 -1
  550. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  551. metadata/generated/schema/security/__init__.py +1 -1
  552. metadata/generated/schema/security/client/__init__.py +1 -1
  553. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  554. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  555. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  556. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  557. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  558. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  559. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  560. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  561. metadata/generated/schema/security/credentials/__init__.py +1 -1
  562. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  563. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  564. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  565. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  566. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  567. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  568. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  569. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  570. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  571. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  572. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  573. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  574. metadata/generated/schema/security/sasl/__init__.py +1 -1
  575. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  576. metadata/generated/schema/security/secrets/__init__.py +1 -1
  577. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  578. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  579. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  580. metadata/generated/schema/security/securityConfiguration.py +1 -1
  581. metadata/generated/schema/security/ssl/__init__.py +1 -1
  582. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  583. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  584. metadata/generated/schema/settings/__init__.py +1 -1
  585. metadata/generated/schema/settings/settings.py +1 -1
  586. metadata/generated/schema/system/__init__.py +1 -1
  587. metadata/generated/schema/system/entityError.py +1 -1
  588. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  589. metadata/generated/schema/system/indexingError.py +1 -1
  590. metadata/generated/schema/system/limitsResponse.py +1 -1
  591. metadata/generated/schema/system/ui/__init__.py +1 -1
  592. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  593. metadata/generated/schema/system/ui/page.py +1 -1
  594. metadata/generated/schema/system/validationResponse.py +1 -1
  595. metadata/generated/schema/tests/__init__.py +1 -1
  596. metadata/generated/schema/tests/assigned.py +1 -1
  597. metadata/generated/schema/tests/basic.py +1 -1
  598. metadata/generated/schema/tests/customMetric.py +1 -1
  599. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  600. metadata/generated/schema/tests/resolved.py +1 -1
  601. metadata/generated/schema/tests/testCase.py +1 -1
  602. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  603. metadata/generated/schema/tests/testDefinition.py +1 -1
  604. metadata/generated/schema/tests/testSuite.py +1 -1
  605. metadata/generated/schema/type/__init__.py +1 -1
  606. metadata/generated/schema/type/apiSchema.py +1 -1
  607. metadata/generated/schema/type/assetCertification.py +1 -1
  608. metadata/generated/schema/type/auditLog.py +1 -1
  609. metadata/generated/schema/type/basic.py +1 -1
  610. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  611. metadata/generated/schema/type/changeEvent.py +1 -1
  612. metadata/generated/schema/type/changeEventType.py +1 -1
  613. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  614. metadata/generated/schema/type/csvDocumentation.py +1 -1
  615. metadata/generated/schema/type/csvErrorType.py +1 -1
  616. metadata/generated/schema/type/csvFile.py +1 -1
  617. metadata/generated/schema/type/csvImportResult.py +1 -1
  618. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  619. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  620. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  621. metadata/generated/schema/type/customProperties/tableConfig.py +1 -1
  622. metadata/generated/schema/type/customProperty.py +1 -1
  623. metadata/generated/schema/type/dailyCount.py +1 -1
  624. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  625. metadata/generated/schema/type/entityHierarchy.py +1 -1
  626. metadata/generated/schema/type/entityHistory.py +1 -1
  627. metadata/generated/schema/type/entityLineage.py +1 -1
  628. metadata/generated/schema/type/entityReference.py +1 -1
  629. metadata/generated/schema/type/entityReferenceList.py +1 -1
  630. metadata/generated/schema/type/entityRelationship.py +1 -1
  631. metadata/generated/schema/type/entityUsage.py +1 -1
  632. metadata/generated/schema/type/filterPattern.py +1 -1
  633. metadata/generated/schema/type/function.py +1 -1
  634. metadata/generated/schema/type/include.py +1 -1
  635. metadata/generated/schema/type/jdbcConnection.py +1 -1
  636. metadata/generated/schema/type/lifeCycle.py +1 -1
  637. metadata/generated/schema/type/paging.py +1 -1
  638. metadata/generated/schema/type/profile.py +1 -1
  639. metadata/generated/schema/type/queryParserData.py +1 -1
  640. metadata/generated/schema/type/reaction.py +1 -1
  641. metadata/generated/schema/type/schedule.py +1 -1
  642. metadata/generated/schema/type/schema.py +1 -1
  643. metadata/generated/schema/type/tableQuery.py +1 -1
  644. metadata/generated/schema/type/tableUsageCount.py +1 -1
  645. metadata/generated/schema/type/tagLabel.py +1 -1
  646. metadata/generated/schema/type/usageDetails.py +1 -1
  647. metadata/generated/schema/type/usageRequest.py +1 -1
  648. metadata/generated/schema/type/votes.py +1 -1
  649. metadata/ingestion/lineage/masker.py +8 -1
  650. metadata/ingestion/lineage/parser.py +6 -2
  651. metadata/ingestion/lineage/sql_lineage.py +98 -22
  652. metadata/ingestion/models/topology.py +9 -0
  653. metadata/ingestion/ometa/mixins/es_mixin.py +2 -0
  654. metadata/ingestion/ometa/ometa_api.py +36 -0
  655. metadata/ingestion/source/dashboard/powerbi/metadata.py +1 -1
  656. metadata/ingestion/source/database/lineage_processors.py +336 -0
  657. metadata/ingestion/source/database/lineage_source.py +134 -133
  658. metadata/ingestion/source/database/snowflake/data_diff/__init__.py +0 -0
  659. metadata/ingestion/source/database/snowflake/data_diff/data_diff.py +37 -0
  660. metadata/ingestion/source/database/snowflake/service_spec.py +4 -0
  661. metadata/ingestion/source/database/stored_procedures_mixin.py +21 -158
  662. metadata/readers/dataframe/parquet.py +10 -2
  663. metadata/utils/db_utils.py +11 -1
  664. metadata/utils/execution_time_tracker.py +30 -0
  665. metadata/utils/lru_cache.py +14 -0
  666. metadata/utils/service_spec/default.py +4 -0
  667. metadata/utils/service_spec/service_spec.py +1 -0
  668. {openmetadata_ingestion-1.6.10.0.dist-info → openmetadata_ingestion-1.6.12.0.dist-info}/METADATA +365 -365
  669. {openmetadata_ingestion-1.6.10.0.dist-info → openmetadata_ingestion-1.6.12.0.dist-info}/RECORD +673 -669
  670. {openmetadata_ingestion-1.6.10.0.dist-info → openmetadata_ingestion-1.6.12.0.dist-info}/LICENSE +0 -0
  671. {openmetadata_ingestion-1.6.10.0.dist-info → openmetadata_ingestion-1.6.12.0.dist-info}/WHEEL +0 -0
  672. {openmetadata_ingestion-1.6.10.0.dist-info → openmetadata_ingestion-1.6.12.0.dist-info}/entry_points.txt +0 -0
  673. {openmetadata_ingestion-1.6.10.0.dist-info → openmetadata_ingestion-1.6.12.0.dist-info}/top_level.txt +0 -0
@@ -16,35 +16,40 @@ import os
16
16
  import time
17
17
  import traceback
18
18
  from abc import ABC
19
- from concurrent.futures import ThreadPoolExecutor
19
+ from concurrent.futures import ProcessPoolExecutor
20
20
  from functools import partial
21
- from typing import Any, Callable, Iterable, Iterator, List, Union
21
+ from multiprocessing import Queue
22
+ from typing import Any, Callable, Iterable, Iterator, List, Optional, Tuple, Union
23
+
24
+ import networkx as nx
22
25
 
23
26
  from metadata.generated.schema.api.data.createQuery import CreateQueryRequest
24
27
  from metadata.generated.schema.api.lineage.addLineage import AddLineageRequest
25
28
  from metadata.generated.schema.entity.data.table import Table
26
- from metadata.generated.schema.type.basic import FullyQualifiedEntityName, SqlQuery
29
+ from metadata.generated.schema.type.basic import Uuid
30
+ from metadata.generated.schema.type.entityLineage import (
31
+ ColumnLineage,
32
+ EntitiesEdge,
33
+ LineageDetails,
34
+ Source,
35
+ )
36
+ from metadata.generated.schema.type.entityReference import EntityReference
27
37
  from metadata.generated.schema.type.tableQuery import TableQuery
28
38
  from metadata.ingestion.api.models import Either
29
39
  from metadata.ingestion.lineage.models import ConnectionTypeDialectMapper, Dialect
30
- from metadata.ingestion.lineage.sql_lineage import (
31
- get_lineage_by_graph,
32
- get_lineage_by_query,
40
+ from metadata.ingestion.lineage.sql_lineage import get_column_fqn, get_lineage_by_graph
41
+ from metadata.ingestion.source.database.lineage_processors import (
42
+ _process_chunk_in_subprocess,
43
+ query_lineage_generator,
44
+ view_lineage_generator,
33
45
  )
34
- from metadata.ingestion.models.ometa_lineage import OMetaLineageRequest
35
- from metadata.ingestion.models.topology import Queue
36
46
  from metadata.ingestion.source.database.query_parser_source import QueryParserSource
37
- from metadata.ingestion.source.models import TableView
38
- from metadata.utils import fqn
39
- from metadata.utils.db_utils import get_view_lineage
40
47
  from metadata.utils.logger import ingestion_logger
41
48
 
42
49
  logger = ingestion_logger()
43
50
 
44
51
 
45
- CHUNK_SIZE = 200
46
-
47
- THREAD_TIMEOUT = 600
52
+ CHUNK_SIZE = 100
48
53
 
49
54
 
50
55
  class LineageSource(QueryParserSource, ABC):
@@ -107,10 +112,11 @@ class LineageSource(QueryParserSource, ABC):
107
112
  )
108
113
  yield from self.yield_table_query()
109
114
 
110
- def generate_lineage_in_thread(
115
+ def generate_lineage_with_processes(
111
116
  self,
112
117
  producer_fn: Callable[[], Iterable[Any]],
113
- processor_fn: Callable[[Any], Iterable[Any]],
118
+ processor_fn: Callable[[Any, Queue], None],
119
+ args: Tuple[Any, ...],
114
120
  chunk_size: int = CHUNK_SIZE,
115
121
  ):
116
122
  """
@@ -123,6 +129,7 @@ class LineageSource(QueryParserSource, ABC):
123
129
  """
124
130
 
125
131
  def chunk_generator():
132
+
126
133
  temp_chunk = []
127
134
  for chunk in producer_fn():
128
135
  temp_chunk.append(chunk)
@@ -133,34 +140,38 @@ class LineageSource(QueryParserSource, ABC):
133
140
  if temp_chunk:
134
141
  yield temp_chunk
135
142
 
136
- thread_pool = ThreadPoolExecutor(max_workers=self.source_config.threads)
137
- queue = Queue()
143
+ from multiprocessing import Manager
144
+
145
+ manager = Manager()
146
+ queue = manager.Queue()
147
+
148
+ process_pool = ProcessPoolExecutor(max_workers=self.source_config.threads)
138
149
 
139
150
  futures = [
140
- thread_pool.submit(
141
- processor_fn,
142
- chunk,
143
- queue,
151
+ process_pool.submit(
152
+ _process_chunk_in_subprocess, chunk, processor_fn, queue, *args
144
153
  )
145
154
  for chunk in chunk_generator()
146
155
  ]
147
156
  while True:
148
- if queue.has_tasks():
149
- yield from queue.process()
150
-
151
- else:
152
- if not futures:
153
- break
154
-
155
- for i, future in enumerate(futures):
156
- if future.done():
157
- try:
158
- future.result(timeout=THREAD_TIMEOUT)
159
- except Exception as e:
160
- logger.debug(f"Error in future: {e}")
161
- logger.debug(traceback.format_exc())
162
- futures.pop(i)
163
-
157
+ try:
158
+ while not queue.empty():
159
+ yield queue.get_nowait()
160
+ except Exception as exc:
161
+ logger.warning(f"Error processing queue: {exc}")
162
+ logger.debug(traceback.format_exc())
163
+
164
+ if not futures:
165
+ break
166
+
167
+ for i, future in enumerate(futures):
168
+ if future.done():
169
+ try:
170
+ future.result(timeout=0)
171
+ except Exception as e:
172
+ logger.debug(f"Error in future: {e}")
173
+ logger.debug(traceback.format_exc())
174
+ futures.pop(i)
164
175
  time.sleep(0.01)
165
176
 
166
177
  def yield_table_query(self) -> Iterator[TableQuery]:
@@ -193,57 +204,6 @@ class LineageSource(QueryParserSource, ABC):
193
204
  f"Error processing query_dict {query_dict}: {exc}"
194
205
  )
195
206
 
196
- def _query_already_processed(self, table_query: TableQuery) -> bool:
197
- """
198
- Check if a query has already been processed by validating if exists
199
- in ES with lineageProcessed as True
200
- """
201
- checksums = self.metadata.es_get_queries_with_lineage(
202
- service_name=table_query.serviceName,
203
- )
204
- return fqn.get_query_checksum(table_query.query) in checksums or {}
205
-
206
- def query_lineage_generator(
207
- self, table_queries: List[TableQuery], queue: Queue
208
- ) -> Iterable[Either[Union[AddLineageRequest, CreateQueryRequest]]]:
209
- if self.graph is None and self.source_config.enableTempTableLineage:
210
- import networkx as nx
211
-
212
- # Create a directed graph
213
- self.graph = nx.DiGraph()
214
-
215
- for table_query in table_queries or []:
216
- if not self._query_already_processed(table_query):
217
- lineages: Iterable[Either[AddLineageRequest]] = get_lineage_by_query(
218
- self.metadata,
219
- query=table_query.query,
220
- service_name=table_query.serviceName,
221
- database_name=table_query.databaseName,
222
- schema_name=table_query.databaseSchema,
223
- dialect=self.dialect,
224
- timeout_seconds=self.source_config.parsingTimeoutLimit,
225
- graph=self.graph,
226
- )
227
-
228
- for lineage_request in lineages or []:
229
- queue.put(lineage_request)
230
-
231
- # If we identified lineage properly, ingest the original query
232
- if lineage_request.right:
233
- queue.put(
234
- Either(
235
- right=CreateQueryRequest(
236
- query=SqlQuery(table_query.query),
237
- query_type=table_query.query_type,
238
- duration=table_query.duration,
239
- processedLineage=True,
240
- service=FullyQualifiedEntityName(
241
- self.config.serviceName
242
- ),
243
- )
244
- )
245
- )
246
-
247
207
  def yield_query_lineage(
248
208
  self,
249
209
  ) -> Iterable[Either[Union[AddLineageRequest, CreateQueryRequest]]]:
@@ -255,48 +215,19 @@ class LineageSource(QueryParserSource, ABC):
255
215
  connection_type = str(self.service_connection.type.value)
256
216
  self.dialect = ConnectionTypeDialectMapper.dialect_of(connection_type)
257
217
  producer_fn = self.get_table_query
258
- processor_fn = self.query_lineage_generator
259
- yield from self.generate_lineage_in_thread(
260
- producer_fn, processor_fn, CHUNK_SIZE
218
+ processor_fn = query_lineage_generator
219
+ args = (
220
+ self.metadata,
221
+ self.dialect,
222
+ self.graph,
223
+ self.source_config.parsingTimeoutLimit,
224
+ self.config.serviceName,
225
+ )
226
+ yield from self.generate_lineage_with_processes(
227
+ producer_fn,
228
+ processor_fn,
229
+ args,
261
230
  )
262
-
263
- def view_lineage_generator(
264
- self, views: List[TableView], queue: Queue
265
- ) -> Iterable[Either[AddLineageRequest]]:
266
- try:
267
- for view in views:
268
- for lineage in get_view_lineage(
269
- view=view,
270
- metadata=self.metadata,
271
- service_name=self.config.serviceName,
272
- connection_type=self.service_connection.type.value,
273
- timeout_seconds=self.source_config.parsingTimeoutLimit,
274
- ):
275
- if lineage.right is not None:
276
- view_fqn = fqn.build(
277
- metadata=self.metadata,
278
- entity_type=Table,
279
- service_name=self.service_name,
280
- database_name=view.db_name,
281
- schema_name=view.schema_name,
282
- table_name=view.table_name,
283
- skip_es_search=True,
284
- )
285
- queue.put(
286
- Either(
287
- right=OMetaLineageRequest(
288
- lineage_request=lineage.right,
289
- override_lineage=self.source_config.overrideViewLineage,
290
- entity_fqn=view_fqn,
291
- entity=Table,
292
- )
293
- )
294
- )
295
- else:
296
- queue.put(lineage)
297
- except Exception as exc:
298
- logger.debug(traceback.format_exc())
299
- logger.warning(f"Error processing view {view}: {exc}")
300
231
 
301
232
  def yield_view_lineage(self) -> Iterable[Either[AddLineageRequest]]:
302
233
  logger.info("Processing View Lineage")
@@ -305,19 +236,86 @@ class LineageSource(QueryParserSource, ABC):
305
236
  self.config.serviceName,
306
237
  self.source_config.incrementalLineageProcessing,
307
238
  )
308
- processor_fn = self.view_lineage_generator
309
- yield from self.generate_lineage_in_thread(producer_fn, processor_fn)
239
+ processor_fn = view_lineage_generator
240
+ args = (
241
+ self.metadata,
242
+ self.config.serviceName,
243
+ self.service_connection.type.value,
244
+ self.source_config.parsingTimeoutLimit,
245
+ self.source_config.overrideViewLineage,
246
+ )
247
+ yield from self.generate_lineage_with_processes(producer_fn, processor_fn, args)
310
248
 
311
249
  def yield_procedure_lineage(
312
250
  self,
313
251
  ) -> Iterable[Either[Union[AddLineageRequest, CreateQueryRequest]]]:
314
252
  """
315
- By default stored procedure lineage is not supported.
253
+ By default stored procedure lineage is not supported.
316
254
  """
317
255
  logger.info(
318
256
  f"Processing Procedure Lineage not supported for {str(self.service_connection.type.value)}"
319
257
  )
320
258
 
259
+ def get_column_lineage(
260
+ self, from_table: Table, to_table: Table
261
+ ) -> List[ColumnLineage]:
262
+ """
263
+ Get the column lineage from the fields
264
+ """
265
+ try:
266
+ column_lineage = []
267
+ for column in from_table.columns:
268
+ field = column.name.root
269
+ from_column = get_column_fqn(table_entity=from_table, column=field)
270
+ to_column = get_column_fqn(table_entity=to_table, column=field)
271
+ if from_column and to_column:
272
+ column_lineage.append(
273
+ ColumnLineage(fromColumns=[from_column], toColumn=to_column)
274
+ )
275
+
276
+ return column_lineage
277
+ except Exception as exc:
278
+ logger.debug(f"Error to get column lineage: {exc}")
279
+ logger.debug(traceback.format_exc())
280
+ return []
281
+
282
+ def get_add_cross_database_lineage_request(
283
+ self,
284
+ from_entity: Table,
285
+ to_entity: Table,
286
+ column_lineage: List[ColumnLineage] = None,
287
+ ) -> Optional[Either[AddLineageRequest]]:
288
+ """
289
+ Get the add cross database lineage request
290
+ """
291
+ if from_entity and to_entity:
292
+ return Either(
293
+ right=AddLineageRequest(
294
+ edge=EntitiesEdge(
295
+ fromEntity=EntityReference(
296
+ id=Uuid(from_entity.id.root), type="table"
297
+ ),
298
+ toEntity=EntityReference(
299
+ id=Uuid(to_entity.id.root), type="table"
300
+ ),
301
+ lineageDetails=LineageDetails(
302
+ source=Source.CrossDatabaseLineage,
303
+ columnsLineage=column_lineage,
304
+ ),
305
+ )
306
+ )
307
+ )
308
+
309
+ return None
310
+
311
+ def yield_cross_database_lineage(self) -> Iterable[Either[AddLineageRequest]]:
312
+ """
313
+ By default cross database lineage is not supported.
314
+ """
315
+ logger.info(
316
+ f"Processing Cross Database Lineage not supported for {str(self.service_connection.type.value)}"
317
+ )
318
+
321
319
  def _iter(
322
320
  self, *_, **__
323
321
  ) -> Iterable[Either[Union[AddLineageRequest, CreateQueryRequest]]]:
@@ -325,6 +323,9 @@ class LineageSource(QueryParserSource, ABC):
325
323
  Based on the query logs, prepare the lineage
326
324
  and send it to the sink
327
325
  """
326
+ if self.graph is None and self.source_config.enableTempTableLineage:
327
+ # Create a directed graph
328
+ self.graph = nx.DiGraph()
328
329
  if self.source_config.processViewLineage:
329
330
  yield from self.yield_view_lineage() or []
330
331
  if self.source_config.processStoredProcedureLineage:
@@ -0,0 +1,37 @@
1
+ """Snowflake spec for data diff"""
2
+
3
+ from typing import Optional, cast
4
+
5
+ from metadata.data_quality.validations.models import TableParameter
6
+ from metadata.data_quality.validations.runtime_param_setter.base_diff_params_setter import (
7
+ BaseTableParameter,
8
+ )
9
+ from metadata.generated.schema.entity.data.table import Table
10
+ from metadata.generated.schema.entity.services.databaseService import DatabaseService
11
+ from metadata.ingestion.source.database.snowflake.metadata import SnowflakeConnection
12
+
13
+
14
+ class SnowflakeTableParameter(BaseTableParameter):
15
+ """SnowflakeTableParameter class for setting runtime parameters for data diff"""
16
+
17
+ def get(
18
+ self,
19
+ service: DatabaseService,
20
+ entity: Table,
21
+ key_columns,
22
+ extra_columns,
23
+ case_sensitive_columns,
24
+ service_url: Optional[str],
25
+ ) -> TableParameter:
26
+ table_param: TableParameter = super().get(
27
+ service,
28
+ entity,
29
+ key_columns,
30
+ extra_columns,
31
+ case_sensitive_columns,
32
+ service_url,
33
+ )
34
+ connection_config = cast(SnowflakeConnection, service.connection.config)
35
+ table_param.privateKey = connection_config.privateKey
36
+ table_param.passPhrase = connection_config.snowflakePrivatekeyPassphrase
37
+ return table_param
@@ -1,6 +1,9 @@
1
1
  from metadata.data_quality.interface.sqlalchemy.snowflake.test_suite_interface import (
2
2
  SnowflakeTestSuiteInterface,
3
3
  )
4
+ from metadata.ingestion.source.database.snowflake.data_diff.data_diff import (
5
+ SnowflakeTableParameter,
6
+ )
4
7
  from metadata.ingestion.source.database.snowflake.lineage import SnowflakeLineageSource
5
8
  from metadata.ingestion.source.database.snowflake.metadata import SnowflakeSource
6
9
  from metadata.ingestion.source.database.snowflake.profiler.profiler import (
@@ -17,4 +20,5 @@ ServiceSpec = DefaultDatabaseSpec(
17
20
  profiler_class=SnowflakeProfiler,
18
21
  test_suite_class=SnowflakeTestSuiteInterface,
19
22
  sampler_class=SnowflakeSampler,
23
+ data_diff=SnowflakeTableParameter,
20
24
  )
@@ -12,14 +12,12 @@
12
12
  Mixin class with common Stored Procedures logic aimed at lineage.
13
13
  """
14
14
  import json
15
- import re
16
15
  import traceback
17
16
  from abc import ABC, abstractmethod
18
17
  from collections import defaultdict
19
- from datetime import datetime
20
- from typing import Dict, Iterable, List, Optional, Union
18
+ from copy import deepcopy
19
+ from typing import Dict, Iterable, List, Union
21
20
 
22
- from pydantic import BaseModel, ConfigDict, Field
23
21
  from sqlalchemy.engine import Engine
24
22
 
25
23
  from metadata.generated.schema.api.data.createQuery import CreateQueryRequest
@@ -31,54 +29,21 @@ from metadata.generated.schema.entity.services.ingestionPipelines.status import
31
29
  from metadata.generated.schema.metadataIngestion.databaseServiceQueryLineagePipeline import (
32
30
  DatabaseServiceQueryLineagePipeline,
33
31
  )
34
- from metadata.generated.schema.type.basic import SqlQuery, Timestamp
35
- from metadata.generated.schema.type.entityLineage import Source as LineageSource
36
- from metadata.generated.schema.type.entityReference import EntityReference
37
32
  from metadata.ingestion.api.models import Either
38
33
  from metadata.ingestion.api.status import Status
39
34
  from metadata.ingestion.lineage.models import ConnectionTypeDialectMapper
40
- from metadata.ingestion.lineage.sql_lineage import get_lineage_by_query
41
- from metadata.ingestion.models.ometa_lineage import OMetaLineageRequest
42
- from metadata.ingestion.models.topology import Queue
43
35
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
36
+ from metadata.ingestion.source.database.lineage_processors import (
37
+ ProcedureAndQuery,
38
+ QueryByProcedure,
39
+ procedure_lineage_processor,
40
+ )
44
41
  from metadata.utils.logger import ingestion_logger
45
42
  from metadata.utils.stored_procedures import get_procedure_name_from_call
46
- from metadata.utils.time_utils import datetime_to_timestamp
47
43
 
48
44
  logger = ingestion_logger()
49
45
 
50
46
 
51
- class QueryByProcedure(BaseModel):
52
- """
53
- Query(ies) executed by each stored procedure
54
- """
55
-
56
- procedure_name: str = Field(None, alias="PROCEDURE_NAME")
57
- query_type: str = Field(..., alias="QUERY_TYPE")
58
- query_database_name: Optional[str] = Field(None, alias="QUERY_DATABASE_NAME")
59
- query_schema_name: Optional[str] = Field(None, alias="QUERY_SCHEMA_NAME")
60
- procedure_text: str = Field(..., alias="PROCEDURE_TEXT")
61
- procedure_start_time: datetime = Field(..., alias="PROCEDURE_START_TIME")
62
- procedure_end_time: datetime = Field(..., alias="PROCEDURE_END_TIME")
63
- query_start_time: Optional[datetime] = Field(None, alias="QUERY_START_TIME")
64
- query_duration: Optional[float] = Field(None, alias="QUERY_DURATION")
65
- query_text: str = Field(..., alias="QUERY_TEXT")
66
- query_user_name: Optional[str] = Field(None, alias="QUERY_USER_NAME")
67
-
68
- model_config = ConfigDict(populate_by_name=True)
69
-
70
-
71
- class ProcedureAndQuery(BaseModel):
72
- """
73
- Model to hold the procedure and its queries
74
- """
75
-
76
- procedure: StoredProcedure
77
- query_by_procedure: QueryByProcedure
78
-
79
- model_config = ConfigDict(populate_by_name=True)
80
-
81
-
82
47
  class StoredProcedureLineageMixin(ABC):
83
48
  """
84
49
  The full flow is:
@@ -138,121 +103,10 @@ class StoredProcedureLineageMixin(ABC):
138
103
 
139
104
  return queries_dict
140
105
 
141
- @staticmethod
142
- def is_lineage_query(query_type: str, query_text: str) -> bool:
143
- """Check if it's worth it to parse the query for lineage"""
144
-
145
- logger.debug(
146
- f"Validating query lineage for type [{query_type}] and text [{query_text}]"
147
- )
148
-
149
- if query_type in ("MERGE", "UPDATE", "CREATE_TABLE_AS_SELECT"):
150
- return True
151
-
152
- if query_type == "INSERT" and re.search(
153
- "^.*insert.*into.*select.*$", query_text.replace("\n", " "), re.IGNORECASE
154
- ):
155
- return True
156
-
157
- return False
158
-
159
- def _yield_procedure_lineage(
160
- self, query_by_procedure: QueryByProcedure, procedure: StoredProcedure
161
- ) -> Iterable[Either[AddLineageRequest]]:
162
- """Add procedure lineage from its query"""
163
- self.stored_procedure_query_lineage = False
164
- if self.is_lineage_query(
165
- query_type=query_by_procedure.query_type,
166
- query_text=query_by_procedure.query_text,
167
- ):
168
- self.stored_procedure_query_lineage = True
169
- for either_lineage in get_lineage_by_query(
170
- self.metadata,
171
- query=query_by_procedure.query_text,
172
- service_name=self.service_name,
173
- database_name=query_by_procedure.query_database_name,
174
- schema_name=query_by_procedure.query_schema_name,
175
- dialect=ConnectionTypeDialectMapper.dialect_of(
176
- self.service_connection.type.value
177
- ),
178
- timeout_seconds=self.source_config.parsingTimeoutLimit,
179
- lineage_source=LineageSource.QueryLineage,
180
- ):
181
- if (
182
- either_lineage.left is None
183
- and either_lineage.right.edge.lineageDetails
184
- ):
185
- either_lineage.right.edge.lineageDetails.pipeline = EntityReference(
186
- id=procedure.id,
187
- type="storedProcedure",
188
- )
189
-
190
- yield either_lineage
191
-
192
- def yield_procedure_query(
193
- self, query_by_procedure: QueryByProcedure, procedure: StoredProcedure
194
- ) -> Iterable[Either[CreateQueryRequest]]:
195
- """Check the queries triggered by the procedure and add their lineage, if any"""
196
-
197
- yield Either(
198
- right=CreateQueryRequest(
199
- query=SqlQuery(query_by_procedure.query_text),
200
- query_type=query_by_procedure.query_type,
201
- duration=query_by_procedure.query_duration,
202
- queryDate=Timestamp(
203
- root=datetime_to_timestamp(
204
- query_by_procedure.query_start_time, True
205
- )
206
- ),
207
- triggeredBy=EntityReference(
208
- id=procedure.id,
209
- type="storedProcedure",
210
- ),
211
- processedLineage=bool(self.stored_procedure_query_lineage),
212
- service=self.service_name,
213
- )
214
- )
215
-
216
- def procedure_lineage_processor(
217
- self, procedure_and_queries: List[ProcedureAndQuery], queue: Queue
218
- ) -> Iterable[Either[Union[AddLineageRequest, CreateQueryRequest]]]:
219
- for procedure_and_query in procedure_and_queries:
220
- try:
221
- for lineage in self._yield_procedure_lineage(
222
- query_by_procedure=procedure_and_query.query_by_procedure,
223
- procedure=procedure_and_query.procedure,
224
- ):
225
- if lineage and lineage.right is not None:
226
- queue.put(
227
- Either(
228
- right=OMetaLineageRequest(
229
- override_lineage=False,
230
- lineage_request=lineage.right,
231
- entity=StoredProcedure,
232
- entity_fqn=procedure_and_query.procedure.fullyQualifiedName.root,
233
- )
234
- )
235
- )
236
- else:
237
- queue.put(lineage)
238
- except Exception as exc:
239
- logger.debug(traceback.format_exc())
240
- logger.warning(
241
- f"Could not get lineage for store procedure '{procedure_and_query.procedure.fullyQualifiedName}' due to [{exc}]."
242
- )
243
- try:
244
- for lineage in self.yield_procedure_query(
245
- query_by_procedure=procedure_and_query.query_by_procedure,
246
- procedure=procedure_and_query.procedure,
247
- ):
248
- queue.put(lineage)
249
- except Exception as exc:
250
- logger.debug(traceback.format_exc())
251
- logger.warning(
252
- f"Could not get query for store procedure '{procedure_and_query.procedure.fullyQualifiedName}' due to [{exc}]."
253
- )
254
-
255
106
  def procedure_lineage_generator(self) -> Iterable[ProcedureAndQuery]:
107
+ """
108
+ Generate lineage for a list of stored procedures
109
+ """
256
110
  query = {
257
111
  "query": {
258
112
  "bool": {
@@ -303,5 +157,14 @@ class StoredProcedureLineageMixin(ABC):
303
157
  """Get all the queries and procedures list and yield them"""
304
158
  logger.info("Processing Lineage for Stored Procedures")
305
159
  producer_fn = self.procedure_lineage_generator
306
- processor_fn = self.procedure_lineage_processor
307
- yield from self.generate_lineage_in_thread(producer_fn, processor_fn)
160
+ processor_fn = procedure_lineage_processor
161
+ dialect = ConnectionTypeDialectMapper.dialect_of(
162
+ self.service_connection.type.value
163
+ )
164
+ args = (
165
+ deepcopy(self.metadata),
166
+ self.service_name,
167
+ dialect,
168
+ self.source_config.parsingTimeoutLimit,
169
+ )
170
+ yield from self.generate_lineage_with_processes(producer_fn, processor_fn, args)
@@ -68,8 +68,16 @@ class ParquetDataFrameReader(DataFrameReader):
68
68
  from pyarrow.parquet import ParquetDataset
69
69
 
70
70
  client_kwargs = {
71
- "endpoint_override": str(self.config_source.securityConfig.endPointURL),
72
- "region": self.config_source.securityConfig.awsRegion,
71
+ "endpoint_override": (
72
+ str(self.config_source.securityConfig.endPointURL)
73
+ if self.config_source.securityConfig.endPointURL
74
+ else None
75
+ ),
76
+ "region": (
77
+ self.config_source.securityConfig.awsRegion
78
+ if self.config_source.securityConfig.awsRegion
79
+ else None
80
+ ),
73
81
  "access_key": self.config_source.securityConfig.awsAccessKeyId,
74
82
  "session_token": self.config_source.securityConfig.awsSessionToken,
75
83
  "role_arn": self.config_source.securityConfig.assumeRoleArn,