openmetadata-ingestion 1.5.0.0rc2__py3-none-any.whl → 1.5.1.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (606) hide show
  1. metadata/generated/schema/analytics/__init__.py +1 -1
  2. metadata/generated/schema/analytics/basic.py +1 -1
  3. metadata/generated/schema/analytics/reportData.py +1 -1
  4. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  5. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  6. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  7. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  8. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  9. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  10. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  11. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  12. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  13. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  14. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  15. metadata/generated/schema/api/__init__.py +1 -1
  16. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  17. metadata/generated/schema/api/analytics/__init__.py +1 -1
  18. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  19. metadata/generated/schema/api/automations/__init__.py +1 -1
  20. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  21. metadata/generated/schema/api/bulkAssets.py +1 -1
  22. metadata/generated/schema/api/classification/__init__.py +1 -1
  23. metadata/generated/schema/api/classification/createClassification.py +1 -1
  24. metadata/generated/schema/api/classification/createTag.py +1 -1
  25. metadata/generated/schema/api/classification/loadTags.py +1 -1
  26. metadata/generated/schema/api/createBot.py +1 -1
  27. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  28. metadata/generated/schema/api/createType.py +1 -1
  29. metadata/generated/schema/api/data/__init__.py +1 -1
  30. metadata/generated/schema/api/data/createAPICollection.py +1 -1
  31. metadata/generated/schema/api/data/createAPIEndpoint.py +1 -1
  32. metadata/generated/schema/api/data/createChart.py +1 -1
  33. metadata/generated/schema/api/data/createContainer.py +1 -1
  34. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  35. metadata/generated/schema/api/data/createDashboard.py +1 -1
  36. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  37. metadata/generated/schema/api/data/createDatabase.py +1 -1
  38. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  39. metadata/generated/schema/api/data/createGlossary.py +1 -1
  40. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  41. metadata/generated/schema/api/data/createMlModel.py +1 -1
  42. metadata/generated/schema/api/data/createPipeline.py +1 -1
  43. metadata/generated/schema/api/data/createQuery.py +1 -1
  44. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  45. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  46. metadata/generated/schema/api/data/createTable.py +1 -1
  47. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  48. metadata/generated/schema/api/data/createTopic.py +1 -1
  49. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  50. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  51. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  52. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  53. metadata/generated/schema/api/dataInsight/custom/__init__.py +1 -1
  54. metadata/generated/schema/api/dataInsight/custom/createDataInsightCustomChart.py +1 -1
  55. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  56. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  57. metadata/generated/schema/api/docStore/__init__.py +1 -1
  58. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  59. metadata/generated/schema/api/domains/__init__.py +1 -1
  60. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  61. metadata/generated/schema/api/domains/createDomain.py +1 -1
  62. metadata/generated/schema/api/feed/__init__.py +1 -1
  63. metadata/generated/schema/api/feed/closeTask.py +1 -1
  64. metadata/generated/schema/api/feed/createPost.py +1 -1
  65. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  66. metadata/generated/schema/api/feed/createThread.py +1 -1
  67. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  68. metadata/generated/schema/api/feed/threadCount.py +1 -1
  69. metadata/generated/schema/api/lineage/__init__.py +1 -1
  70. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  71. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  72. metadata/generated/schema/api/policies/__init__.py +1 -1
  73. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  74. metadata/generated/schema/api/services/__init__.py +1 -1
  75. metadata/generated/schema/api/services/createApiService.py +1 -1
  76. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  77. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  78. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  79. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  80. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  81. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  82. metadata/generated/schema/api/services/createSearchService.py +1 -1
  83. metadata/generated/schema/api/services/createStorageService.py +1 -1
  84. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  85. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  86. metadata/generated/schema/api/setOwner.py +1 -1
  87. metadata/generated/schema/api/teams/__init__.py +1 -1
  88. metadata/generated/schema/api/teams/createPersona.py +1 -1
  89. metadata/generated/schema/api/teams/createRole.py +1 -1
  90. metadata/generated/schema/api/teams/createTeam.py +1 -1
  91. metadata/generated/schema/api/teams/createUser.py +1 -1
  92. metadata/generated/schema/api/tests/__init__.py +1 -1
  93. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  94. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  95. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  96. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  97. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  98. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  99. metadata/generated/schema/api/voteRequest.py +1 -1
  100. metadata/generated/schema/auth/__init__.py +1 -1
  101. metadata/generated/schema/auth/basicAuth.py +1 -1
  102. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  103. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  104. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  105. metadata/generated/schema/auth/emailRequest.py +1 -1
  106. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  107. metadata/generated/schema/auth/generateToken.py +1 -1
  108. metadata/generated/schema/auth/jwtAuth.py +1 -1
  109. metadata/generated/schema/auth/loginRequest.py +1 -1
  110. metadata/generated/schema/auth/logoutRequest.py +1 -1
  111. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  112. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  113. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  114. metadata/generated/schema/auth/refreshToken.py +1 -1
  115. metadata/generated/schema/auth/registrationRequest.py +1 -1
  116. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  117. metadata/generated/schema/auth/revokeToken.py +1 -1
  118. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  119. metadata/generated/schema/auth/ssoAuth.py +1 -1
  120. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  121. metadata/generated/schema/configuration/__init__.py +1 -1
  122. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  123. metadata/generated/schema/configuration/authConfig.py +1 -1
  124. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  125. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  126. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  127. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  128. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  129. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  130. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  131. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  132. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  133. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  134. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  135. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  136. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  137. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  138. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  139. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  140. metadata/generated/schema/configuration/limitsConfiguration.py +1 -1
  141. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  142. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  143. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  144. metadata/generated/schema/configuration/profilerConfiguration.py +1 -1
  145. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  146. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  147. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  148. metadata/generated/schema/configuration/themeConfiguration.py +1 -1
  149. metadata/generated/schema/configuration/uiThemePreference.py +1 -1
  150. metadata/generated/schema/dataInsight/__init__.py +1 -1
  151. metadata/generated/schema/dataInsight/custom/__init__.py +1 -1
  152. metadata/generated/schema/dataInsight/custom/dataInsightCustomChart.py +1 -1
  153. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResult.py +1 -1
  154. metadata/generated/schema/dataInsight/custom/dataInsightCustomChartResultList.py +1 -1
  155. metadata/generated/schema/dataInsight/custom/formulaHolder.py +1 -1
  156. metadata/generated/schema/dataInsight/custom/lineChart.py +1 -1
  157. metadata/generated/schema/dataInsight/custom/summaryCard.py +1 -1
  158. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  159. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -21
  160. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  161. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  162. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  163. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  164. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  165. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  166. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  167. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  168. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  169. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  170. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  171. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  172. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  173. metadata/generated/schema/email/__init__.py +1 -1
  174. metadata/generated/schema/email/emailRequest.py +1 -1
  175. metadata/generated/schema/email/emailTemplate.py +1 -1
  176. metadata/generated/schema/email/emailTemplatePlaceholder.py +1 -1
  177. metadata/generated/schema/email/smtpSettings.py +1 -1
  178. metadata/generated/schema/email/templateValidationReponse.py +1 -1
  179. metadata/generated/schema/entity/__init__.py +1 -1
  180. metadata/generated/schema/entity/applications/__init__.py +1 -1
  181. metadata/generated/schema/entity/applications/app.py +1 -1
  182. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  183. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  184. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  185. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  186. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +1 -1
  187. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +1 -1
  188. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +1 -1
  189. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +1 -1
  190. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +1 -1
  191. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +1 -1
  192. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +1 -1
  193. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +1 -1
  194. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +1 -1
  195. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +1 -1
  196. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +1 -1
  197. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +1 -1
  198. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +1 -1
  199. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +1 -1
  200. metadata/generated/schema/entity/applications/configuration/external/metaPilotAppConfig.py +1 -1
  201. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  202. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  203. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  204. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  205. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  206. metadata/generated/schema/entity/applications/configuration/private/external/metaPilotAppPrivateConfig.py +1 -1
  207. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  208. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  209. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  210. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  211. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  212. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  213. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  214. metadata/generated/schema/entity/automations/__init__.py +1 -1
  215. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  216. metadata/generated/schema/entity/automations/workflow.py +1 -1
  217. metadata/generated/schema/entity/bot.py +1 -1
  218. metadata/generated/schema/entity/classification/__init__.py +1 -1
  219. metadata/generated/schema/entity/classification/classification.py +1 -1
  220. metadata/generated/schema/entity/classification/tag.py +1 -1
  221. metadata/generated/schema/entity/data/__init__.py +1 -1
  222. metadata/generated/schema/entity/data/apiCollection.py +1 -1
  223. metadata/generated/schema/entity/data/apiEndpoint.py +1 -1
  224. metadata/generated/schema/entity/data/chart.py +1 -1
  225. metadata/generated/schema/entity/data/container.py +1 -1
  226. metadata/generated/schema/entity/data/dashboard.py +1 -1
  227. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  228. metadata/generated/schema/entity/data/database.py +1 -1
  229. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  230. metadata/generated/schema/entity/data/glossary.py +1 -1
  231. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  232. metadata/generated/schema/entity/data/metrics.py +1 -1
  233. metadata/generated/schema/entity/data/mlmodel.py +1 -1
  234. metadata/generated/schema/entity/data/pipeline.py +1 -1
  235. metadata/generated/schema/entity/data/query.py +1 -1
  236. metadata/generated/schema/entity/data/report.py +1 -1
  237. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  238. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  239. metadata/generated/schema/entity/data/table.py +2 -1
  240. metadata/generated/schema/entity/data/topic.py +1 -1
  241. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  242. metadata/generated/schema/entity/docStore/document.py +1 -1
  243. metadata/generated/schema/entity/domains/__init__.py +1 -1
  244. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  245. metadata/generated/schema/entity/domains/domain.py +1 -1
  246. metadata/generated/schema/entity/events/__init__.py +1 -1
  247. metadata/generated/schema/entity/events/webhook.py +1 -1
  248. metadata/generated/schema/entity/feed/__init__.py +1 -1
  249. metadata/generated/schema/entity/feed/assets.py +1 -1
  250. metadata/generated/schema/entity/feed/customProperty.py +1 -1
  251. metadata/generated/schema/entity/feed/description.py +1 -1
  252. metadata/generated/schema/entity/feed/domain.py +1 -1
  253. metadata/generated/schema/entity/feed/entityInfo.py +1 -1
  254. metadata/generated/schema/entity/feed/owner.py +1 -1
  255. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  256. metadata/generated/schema/entity/feed/tag.py +1 -1
  257. metadata/generated/schema/entity/feed/testCaseResult.py +1 -1
  258. metadata/generated/schema/entity/feed/thread.py +1 -1
  259. metadata/generated/schema/entity/policies/__init__.py +1 -1
  260. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  261. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  262. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  263. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  264. metadata/generated/schema/entity/policies/filters.py +1 -1
  265. metadata/generated/schema/entity/policies/policy.py +1 -1
  266. metadata/generated/schema/entity/services/__init__.py +1 -1
  267. metadata/generated/schema/entity/services/apiService.py +1 -1
  268. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  269. metadata/generated/schema/entity/services/connections/apiService/__init__.py +1 -1
  270. metadata/generated/schema/entity/services/connections/apiService/restConnection.py +1 -1
  271. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  272. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  273. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  274. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  275. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  276. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  277. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  278. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  279. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  280. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  281. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  282. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  283. metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +1 -1
  284. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  285. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +1 -1
  286. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +1 -1
  287. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +1 -1
  288. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +1 -1
  289. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +1 -1
  290. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +1 -1
  291. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  292. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  293. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  294. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  295. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  296. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  297. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  298. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  299. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  300. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  301. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  302. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  303. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  304. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  305. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  306. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  307. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  308. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  309. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  310. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  311. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  312. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  313. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  314. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  315. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  316. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  317. metadata/generated/schema/entity/services/connections/database/deltalake/__init__.py +1 -1
  318. metadata/generated/schema/entity/services/connections/database/deltalake/metastoreConfig.py +1 -1
  319. metadata/generated/schema/entity/services/connections/database/deltalake/storageConfig.py +1 -1
  320. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  321. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  322. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  323. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  324. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  325. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  326. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  327. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  328. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  329. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  330. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  331. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  332. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  333. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  334. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  335. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  336. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  337. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  338. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  339. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  340. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  341. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  342. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  343. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  345. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  346. metadata/generated/schema/entity/services/connections/database/sapErpConnection.py +1 -1
  347. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  348. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  349. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  350. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  351. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  352. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  353. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  354. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/database/synapseConnection.py +1 -1
  356. metadata/generated/schema/entity/services/connections/database/teradataConnection.py +1 -1
  357. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  358. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  359. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  360. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  361. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +1 -1
  363. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  364. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  365. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  366. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  367. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  368. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  369. metadata/generated/schema/entity/services/connections/metadata/alationSinkConnection.py +1 -1
  370. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  371. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  372. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  373. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  374. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  375. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  376. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  380. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  382. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  383. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  384. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  385. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  386. metadata/generated/schema/entity/services/connections/pipeline/dbtCloudConnection.py +1 -1
  387. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  388. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  389. metadata/generated/schema/entity/services/connections/pipeline/flinkConnection.py +1 -1
  390. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  391. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  396. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  397. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  398. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  399. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  400. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  401. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  402. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  403. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  404. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  405. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  406. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  409. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  410. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  411. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  412. metadata/generated/schema/entity/services/databaseService.py +1 -1
  413. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  414. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  415. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  416. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  417. metadata/generated/schema/entity/services/messagingService.py +1 -1
  418. metadata/generated/schema/entity/services/metadataService.py +1 -1
  419. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  420. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  421. metadata/generated/schema/entity/services/searchService.py +1 -1
  422. metadata/generated/schema/entity/services/serviceType.py +1 -1
  423. metadata/generated/schema/entity/services/storageService.py +1 -1
  424. metadata/generated/schema/entity/teams/__init__.py +1 -1
  425. metadata/generated/schema/entity/teams/persona.py +1 -1
  426. metadata/generated/schema/entity/teams/role.py +1 -1
  427. metadata/generated/schema/entity/teams/team.py +1 -1
  428. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  429. metadata/generated/schema/entity/teams/user.py +1 -1
  430. metadata/generated/schema/entity/type.py +1 -1
  431. metadata/generated/schema/entity/utils/__init__.py +1 -1
  432. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  433. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  434. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  435. metadata/generated/schema/events/__init__.py +1 -1
  436. metadata/generated/schema/events/alertMetrics.py +1 -1
  437. metadata/generated/schema/events/api/__init__.py +1 -1
  438. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  439. metadata/generated/schema/events/api/testEventSubscriptionDestination.py +1 -1
  440. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  441. metadata/generated/schema/events/eventFilterRule.py +1 -1
  442. metadata/generated/schema/events/eventSubscription.py +1 -1
  443. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  444. metadata/generated/schema/events/failedEvent.py +1 -1
  445. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  446. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  447. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  448. metadata/generated/schema/metadataIngestion/application.py +1 -1
  449. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  450. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  451. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  452. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  453. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  454. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  455. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  456. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  457. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  458. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  459. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  460. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  461. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  462. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  463. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  464. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  465. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  466. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  467. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  468. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  469. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  470. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  471. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  472. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  473. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  474. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  475. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  476. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  477. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  478. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  479. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  480. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  481. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  482. metadata/generated/schema/monitoring/__init__.py +1 -1
  483. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  484. metadata/generated/schema/security/__init__.py +1 -1
  485. metadata/generated/schema/security/client/__init__.py +1 -1
  486. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  487. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  488. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  489. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  490. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  491. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  492. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  493. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  494. metadata/generated/schema/security/credentials/__init__.py +1 -1
  495. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  496. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  497. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  498. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  499. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  500. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  501. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  502. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  503. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  504. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  505. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  506. metadata/generated/schema/security/credentials/gitlabCredentials.py +1 -1
  507. metadata/generated/schema/security/sasl/__init__.py +1 -1
  508. metadata/generated/schema/security/sasl/saslClientConfig.py +1 -1
  509. metadata/generated/schema/security/secrets/__init__.py +1 -1
  510. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  511. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  512. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  513. metadata/generated/schema/security/securityConfiguration.py +1 -1
  514. metadata/generated/schema/security/ssl/__init__.py +1 -1
  515. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  516. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  517. metadata/generated/schema/settings/__init__.py +1 -1
  518. metadata/generated/schema/settings/settings.py +1 -1
  519. metadata/generated/schema/system/__init__.py +1 -1
  520. metadata/generated/schema/system/entityError.py +1 -1
  521. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  522. metadata/generated/schema/system/indexingError.py +1 -1
  523. metadata/generated/schema/system/limitsResponse.py +1 -1
  524. metadata/generated/schema/system/ui/__init__.py +1 -1
  525. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  526. metadata/generated/schema/system/ui/page.py +1 -1
  527. metadata/generated/schema/system/validationResponse.py +1 -1
  528. metadata/generated/schema/tests/__init__.py +1 -1
  529. metadata/generated/schema/tests/assigned.py +1 -1
  530. metadata/generated/schema/tests/basic.py +1 -1
  531. metadata/generated/schema/tests/customMetric.py +1 -1
  532. metadata/generated/schema/tests/dataQualityReport.py +1 -1
  533. metadata/generated/schema/tests/resolved.py +1 -1
  534. metadata/generated/schema/tests/testCase.py +1 -1
  535. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  536. metadata/generated/schema/tests/testDefinition.py +1 -1
  537. metadata/generated/schema/tests/testSuite.py +1 -1
  538. metadata/generated/schema/type/__init__.py +1 -1
  539. metadata/generated/schema/type/apiSchema.py +1 -1
  540. metadata/generated/schema/type/auditLog.py +1 -1
  541. metadata/generated/schema/type/basic.py +1 -1
  542. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  543. metadata/generated/schema/type/changeEvent.py +1 -1
  544. metadata/generated/schema/type/changeEventType.py +1 -1
  545. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  546. metadata/generated/schema/type/csvDocumentation.py +1 -1
  547. metadata/generated/schema/type/csvErrorType.py +1 -1
  548. metadata/generated/schema/type/csvFile.py +1 -1
  549. metadata/generated/schema/type/csvImportResult.py +1 -1
  550. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  551. metadata/generated/schema/type/customProperties/complexTypes.py +1 -1
  552. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  553. metadata/generated/schema/type/customProperty.py +1 -1
  554. metadata/generated/schema/type/dailyCount.py +1 -1
  555. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  556. metadata/generated/schema/type/entityHierarchy.py +1 -1
  557. metadata/generated/schema/type/entityHistory.py +1 -1
  558. metadata/generated/schema/type/entityLineage.py +1 -1
  559. metadata/generated/schema/type/entityReference.py +1 -1
  560. metadata/generated/schema/type/entityReferenceList.py +1 -1
  561. metadata/generated/schema/type/entityRelationship.py +1 -1
  562. metadata/generated/schema/type/entityUsage.py +1 -1
  563. metadata/generated/schema/type/filterPattern.py +1 -1
  564. metadata/generated/schema/type/function.py +1 -1
  565. metadata/generated/schema/type/include.py +1 -1
  566. metadata/generated/schema/type/jdbcConnection.py +1 -1
  567. metadata/generated/schema/type/lifeCycle.py +1 -1
  568. metadata/generated/schema/type/paging.py +1 -1
  569. metadata/generated/schema/type/profile.py +1 -1
  570. metadata/generated/schema/type/queryParserData.py +1 -1
  571. metadata/generated/schema/type/reaction.py +1 -1
  572. metadata/generated/schema/type/schedule.py +1 -1
  573. metadata/generated/schema/type/schema.py +1 -1
  574. metadata/generated/schema/type/tableQuery.py +1 -1
  575. metadata/generated/schema/type/tableUsageCount.py +1 -1
  576. metadata/generated/schema/type/tagLabel.py +1 -1
  577. metadata/generated/schema/type/usageDetails.py +1 -1
  578. metadata/generated/schema/type/usageRequest.py +1 -1
  579. metadata/generated/schema/type/votes.py +1 -1
  580. metadata/ingestion/connections/builders.py +6 -0
  581. metadata/ingestion/source/dashboard/tableau/metadata.py +10 -7
  582. metadata/ingestion/source/database/column_type_parser.py +1 -1
  583. metadata/ingestion/source/database/dbt/metadata.py +1 -1
  584. metadata/ingestion/source/database/postgres/converter_orm.py +52 -0
  585. metadata/ingestion/source/database/postgres/metadata.py +6 -0
  586. metadata/ingestion/source/database/postgres/metrics.py +42 -0
  587. metadata/ingestion/source/database/postgres/types/money.py +37 -0
  588. metadata/ingestion/source/database/redshift/connection.py +37 -9
  589. metadata/ingestion/source/database/redshift/queries.py +4 -5
  590. metadata/profiler/interface/sqlalchemy/profiler_interface.py +22 -9
  591. metadata/profiler/metrics/static/mean.py +8 -9
  592. metadata/profiler/orm/functions/median.py +11 -4
  593. metadata/profiler/orm/registry.py +3 -1
  594. metadata/utils/importer.py +26 -0
  595. {openmetadata_ingestion-1.5.0.0rc2.dist-info → openmetadata_ingestion-1.5.1.0.dist-info}/METADATA +351 -351
  596. {openmetadata_ingestion-1.5.0.0rc2.dist-info → openmetadata_ingestion-1.5.1.0.dist-info}/RECORD +600 -603
  597. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithDescriptionByType.py +0 -48
  598. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +0 -44
  599. metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +0 -46
  600. metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +0 -44
  601. metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +0 -39
  602. metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +0 -40
  603. {openmetadata_ingestion-1.5.0.0rc2.dist-info → openmetadata_ingestion-1.5.1.0.dist-info}/LICENSE +0 -0
  604. {openmetadata_ingestion-1.5.0.0rc2.dist-info → openmetadata_ingestion-1.5.1.0.dist-info}/WHEEL +0 -0
  605. {openmetadata_ingestion-1.5.0.0rc2.dist-info → openmetadata_ingestion-1.5.1.0.dist-info}/entry_points.txt +0 -0
  606. {openmetadata_ingestion-1.5.0.0rc2.dist-info → openmetadata_ingestion-1.5.1.0.dist-info}/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/entityRelationship.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/entityUsage.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/filterPattern.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/function.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/include.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/jdbcConnection.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/lifeCycle.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/paging.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/profile.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/queryParserData.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/reaction.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/schedule.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/schema.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/tableQuery.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/tableUsageCount.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/tagLabel.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/usageDetails.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/usageRequest.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -1,6 +1,6 @@
1
1
  # generated by datamodel-codegen:
2
2
  # filename: type/votes.json
3
- # timestamp: 2024-08-22T13:36:48+00:00
3
+ # timestamp: 2024-08-28T14:09:58+00:00
4
4
 
5
5
  from __future__ import annotations
6
6
 
@@ -33,6 +33,9 @@ from metadata.generated.schema.entity.services.connections.database.common.iamAu
33
33
  from metadata.ingestion.connections.headers import inject_query_header_by_conn
34
34
  from metadata.ingestion.connections.secrets import connection_with_options_secrets
35
35
  from metadata.utils.constants import BUILDER_PASSWORD_ATTR
36
+ from metadata.utils.logger import cli_logger
37
+
38
+ logger = cli_logger()
36
39
 
37
40
 
38
41
  @connection_with_options_secrets
@@ -152,6 +155,9 @@ def _add_password(url: str, connection) -> str:
152
155
  Region=connection.authType.awsConfig.awsRegion,
153
156
  )
154
157
  )
158
+ if not password:
159
+ logger.warning("No password has been provided in connection")
160
+ password = SecretStr("")
155
161
  url += f":{quote_plus(password.get_secret_value())}"
156
162
  return url
157
163
 
@@ -313,17 +313,18 @@ class TableauSource(DashboardServiceSource):
313
313
  @staticmethod
314
314
  def _get_data_model_column_fqn(
315
315
  data_model_entity: DashboardDataModel, column: str
316
- ) -> Optional[str]:
316
+ ) -> Optional[List[str]]:
317
317
  """
318
318
  Get fqn of column if exist in table entity
319
319
  """
320
320
  if not data_model_entity:
321
321
  return None
322
+ columns = []
322
323
  for tbl_column in data_model_entity.columns:
323
324
  for child_column in tbl_column.children or []:
324
325
  if column.lower() == child_column.name.root.lower():
325
- return child_column.fullyQualifiedName.root
326
- return None
326
+ columns.append(child_column.fullyQualifiedName.root)
327
+ return columns
327
328
 
328
329
  def _get_column_lineage( # pylint: disable=arguments-differ
329
330
  self,
@@ -342,13 +343,15 @@ class TableauSource(DashboardServiceSource):
342
343
  from_column = get_column_fqn(
343
344
  table_entity=table_entity, column=column.name
344
345
  )
345
- to_column = self._get_data_model_column_fqn(
346
+ to_columns = self._get_data_model_column_fqn(
346
347
  data_model_entity=data_model_entity,
347
348
  column=column.id,
348
349
  )
349
- column_lineage.append(
350
- ColumnLineage(fromColumns=[from_column], toColumn=to_column)
351
- )
350
+ for to_column in to_columns:
351
+ column_lineage.append(
352
+ ColumnLineage(fromColumns=[from_column], toColumn=to_column)
353
+ )
354
+ return column_lineage
352
355
  except Exception as exc:
353
356
  logger.debug(f"Error to get column lineage: {exc}")
354
357
  logger.debug(traceback.format_exc())
@@ -148,7 +148,7 @@ class ColumnTypeParser:
148
148
  "MEDIUMBLOB": "MEDIUMBLOB",
149
149
  "MEDIUMINT": "INT",
150
150
  "MEDIUMTEXT": "MEDIUMTEXT",
151
- "MONEY": "NUMBER",
151
+ "MONEY": "MONEY",
152
152
  "NCHAR": "CHAR",
153
153
  "NTEXT": "NTEXT",
154
154
  "NULL": "NULL",
@@ -162,7 +162,7 @@ class DbtSource(DbtServiceSource):
162
162
  return owner
163
163
 
164
164
  # If owner is not found, try to find the owner in OMD using email
165
- owner = self.metadata.get_reference_by_email(name=dbt_owner)
165
+ owner = self.metadata.get_reference_by_email(email=dbt_owner)
166
166
 
167
167
  if not owner:
168
168
  logger.warning(
@@ -0,0 +1,52 @@
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
+ """
13
+ Converter logic to transform an OpenMetadata Table Entity for Redshift
14
+ to an SQLAlchemy ORM class.
15
+ """
16
+
17
+ from typing import Dict, Set
18
+
19
+ from sqlalchemy.sql.sqltypes import TypeEngine
20
+
21
+ from metadata.generated.schema.entity.data.table import Column, DataType
22
+ from metadata.generated.schema.entity.services.databaseService import (
23
+ DatabaseServiceType,
24
+ )
25
+ from metadata.ingestion.source.database.postgres.types.money import PostgresMoney
26
+ from metadata.profiler.orm.converter.common import CommonMapTypes
27
+ from metadata.profiler.orm.converter.converter_registry import converter_registry
28
+
29
+ _CUSTOM_TYPE_MAP = {DataType.MONEY: PostgresMoney}
30
+ _CUSTOM_TYPE_MAP_reversed = {v: {k} for k, v in _CUSTOM_TYPE_MAP.items()}
31
+
32
+
33
+ class PostgrestMapTypes(CommonMapTypes):
34
+ """Postgres type mapper, inherits from CommonMapTypes"""
35
+
36
+ def return_custom_type(self, col: Column, table_service_type):
37
+ return _CUSTOM_TYPE_MAP.get(
38
+ col.dataType, super().return_custom_type(col, table_service_type)
39
+ )
40
+
41
+ @staticmethod
42
+ def map_sqa_to_om_types() -> Dict[TypeEngine, Set[DataType]]:
43
+ """returns an ORM type"""
44
+ # pylint: disable=import-outside-toplevel
45
+
46
+ return {
47
+ **CommonMapTypes.map_sqa_to_om_types(),
48
+ **_CUSTOM_TYPE_MAP_reversed,
49
+ }
50
+
51
+
52
+ converter_registry[DatabaseServiceType.Postgres] = PostgrestMapTypes
@@ -65,6 +65,7 @@ from metadata.ingestion.source.database.postgres.utils import (
65
65
  )
66
66
  from metadata.utils import fqn
67
67
  from metadata.utils.filters import filter_by_database
68
+ from metadata.utils.importer import import_side_effects
68
69
  from metadata.utils.logger import ingestion_logger
69
70
  from metadata.utils.sqlalchemy_utils import (
70
71
  get_all_table_comments,
@@ -76,6 +77,11 @@ from metadata.utils.sqlalchemy_utils import (
76
77
  )
77
78
  from metadata.utils.tag_utils import get_ometa_tag_and_classification
78
79
 
80
+ import_side_effects(
81
+ "metadata.ingestion.source.database.postgres.converter_orm",
82
+ "metadata.ingestion.source.database.postgres.metrics",
83
+ )
84
+
79
85
  TableKey = namedtuple("TableKey", ["schema", "table_name"])
80
86
 
81
87
  logger = ingestion_logger()
@@ -0,0 +1,42 @@
1
+ from sqlalchemy.ext.compiler import compiles
2
+
3
+ from metadata.ingestion.source.database.postgres.types.money import PostgresMoney
4
+ from metadata.profiler.metrics.static.mean import AvgFn
5
+ from metadata.profiler.metrics.static.stddev import StdDevFn
6
+ from metadata.profiler.orm.functions.median import MedianFn
7
+ from metadata.profiler.orm.registry import Dialects
8
+
9
+
10
+ @compiles(AvgFn, Dialects.Postgres)
11
+ def avg(element, compiler, **kw):
12
+ """
13
+ Cast to decimal to get around potential integer overflow error
14
+ """
15
+ proc = compiler.process(element.clauses, **kw)
16
+ if isinstance(list(element.clauses)[0].type, PostgresMoney):
17
+ return f"{element.name}({PostgresMoney.compile_as_float(proc)})"
18
+ return f"{element.name}({proc})"
19
+
20
+
21
+ @compiles(StdDevFn, Dialects.Postgres)
22
+ def stddev(element, compiler, **kw):
23
+ """Returns stdv for clickhouse database and handle empty tables.
24
+ If table is empty, clickhouse returns NaN.
25
+ """
26
+ proc = compiler.process(element.clauses, **kw)
27
+ if isinstance(list(element.clauses)[0].type, PostgresMoney):
28
+ return f"STDDEV_POP({PostgresMoney.compile_as_float(proc)})"
29
+ return f"STDDEV_POP({proc})"
30
+
31
+
32
+ @compiles(MedianFn, Dialects.Postgres)
33
+ def median(elements, compiler, **kwargs): # pylint: disable=unused-argument
34
+ col, _, percentile = [
35
+ compiler.process(element, **kwargs) for element in elements.clauses
36
+ ]
37
+ if isinstance(list(elements.clauses)[0], PostgresMoney):
38
+ return "percentile_cont(%.2f) WITHIN GROUP (ORDER BY %s ASC)" % (
39
+ percentile,
40
+ PostgresMoney.compile_as_float(col),
41
+ )
42
+ return MedianFn.default_fn(elements, compiler, **kwargs)
@@ -0,0 +1,37 @@
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
+ """
13
+ Custom sqlalchemy type for Postgres MONEY type
14
+ """
15
+
16
+
17
+ from sqlalchemy.dialects.postgresql import MONEY
18
+ from sqlalchemy.sql.sqltypes import String
19
+
20
+ from metadata.utils.logger import ingestion_logger
21
+
22
+ logger = ingestion_logger()
23
+
24
+
25
+ class PostgresMoney(MONEY):
26
+ """Wrapper for Postgres MONEY type"""
27
+
28
+ impl = String
29
+ cache_ok = True
30
+
31
+ @property
32
+ def quantifiable(self):
33
+ return True
34
+
35
+ @staticmethod
36
+ def compile_as_float(expr: str) -> str:
37
+ return f"(({expr})::numeric::float8)"
@@ -12,6 +12,7 @@
12
12
  """
13
13
  Source connection handler
14
14
  """
15
+ from functools import partial
15
16
  from typing import Optional
16
17
 
17
18
  from sqlalchemy.engine import Engine
@@ -27,8 +28,15 @@ from metadata.ingestion.connections.builders import (
27
28
  get_connection_args_common,
28
29
  get_connection_url_common,
29
30
  )
30
- from metadata.ingestion.connections.test_connections import test_connection_db_common
31
+ from metadata.ingestion.connections.test_connections import (
32
+ SourceConnectionException,
33
+ execute_inspector_func,
34
+ test_connection_engine_step,
35
+ test_connection_steps,
36
+ test_query,
37
+ )
31
38
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
39
+ from metadata.ingestion.source.connections import kill_active_connections
32
40
  from metadata.ingestion.source.database.redshift.queries import (
33
41
  REDSHIFT_GET_DATABASE_NAMES,
34
42
  REDSHIFT_TEST_GET_QUERIES,
@@ -57,15 +65,35 @@ def test_connection(
57
65
  Test connection. This can be executed either as part
58
66
  of a metadata workflow or during an Automation Workflow
59
67
  """
60
- queries = {
61
- "GetQueries": REDSHIFT_TEST_GET_QUERIES,
62
- "GetDatabases": REDSHIFT_GET_DATABASE_NAMES,
63
- "GetPartitionTableDetails": REDSHIFT_TEST_PARTITION_DETAILS,
68
+
69
+ def test_get_queries_permissions(engine_: Engine):
70
+ """Check if we have the right permissions to list queries"""
71
+ with engine_.connect() as conn:
72
+ res = conn.execute(REDSHIFT_TEST_GET_QUERIES).fetchone()
73
+ if not all(res):
74
+ raise SourceConnectionException(
75
+ f"We don't have the right permissions to list queries - {res}"
76
+ )
77
+
78
+ test_fn = {
79
+ "CheckAccess": partial(test_connection_engine_step, engine),
80
+ "GetSchemas": partial(execute_inspector_func, engine, "get_schema_names"),
81
+ "GetTables": partial(execute_inspector_func, engine, "get_table_names"),
82
+ "GetViews": partial(execute_inspector_func, engine, "get_view_names"),
83
+ "GetQueries": partial(test_get_queries_permissions, engine),
84
+ "GetDatabases": partial(
85
+ test_query, statement=REDSHIFT_GET_DATABASE_NAMES, engine=engine
86
+ ),
87
+ "GetPartitionTableDetails": partial(
88
+ test_query, statement=REDSHIFT_TEST_PARTITION_DETAILS, engine=engine
89
+ ),
64
90
  }
65
- test_connection_db_common(
91
+
92
+ test_connection_steps(
66
93
  metadata=metadata,
67
- engine=engine,
68
- service_connection=service_connection,
94
+ test_fn=test_fn,
95
+ service_type=service_connection.type.value,
69
96
  automation_workflow=automation_workflow,
70
- queries=queries,
71
97
  )
98
+
99
+ kill_active_connections(engine)
@@ -222,11 +222,10 @@ SELECT datname FROM pg_database
222
222
  """
223
223
 
224
224
  REDSHIFT_TEST_GET_QUERIES = """
225
- (select 1 from pg_catalog.svv_table_info limit 1)
226
- UNION
227
- (select 1 from pg_catalog.stl_querytext limit 1)
228
- UNION
229
- (select 1 from pg_catalog.stl_query limit 1)
225
+ SELECT
226
+ has_table_privilege('svv_table_info', 'SELECT') as can_access_svv_table_info,
227
+ has_table_privilege('stl_querytext', 'SELECT') as can_access_stl_querytext,
228
+ has_table_privilege('stl_query', 'SELECT') as can_access_stl_query;
230
229
  """
231
230
 
232
231
 
@@ -21,7 +21,7 @@ import threading
21
21
  import traceback
22
22
  from collections import defaultdict
23
23
  from datetime import datetime
24
- from typing import Dict, List, Optional
24
+ from typing import Any, Dict, List, Optional
25
25
 
26
26
  from sqlalchemy import Column, inspect, text
27
27
  from sqlalchemy.exc import DBAPIError, ProgrammingError, ResourceClosedError
@@ -451,14 +451,16 @@ class SQAProfilerInterface(ProfilerInterface, SQAInterfaceMixin):
451
451
  column=metric_func.column,
452
452
  sample=sample,
453
453
  )
454
- if row:
455
- for k, v in row.items():
456
- # Replace NaN values with None
457
- if isinstance(v, float) and math.isnan(v):
458
- logger.warning(
459
- "NaN data detected and will be cast to null in OpenMetadata to maintain database parity"
460
- )
461
- row[k] = None
454
+ if row and isinstance(row, dict):
455
+ row = self._validate_nulls(row)
456
+
457
+ # System metrics return a list of dictionaries, with UPDATE, INSERT or DELETE ops results
458
+ if row and metric_func.metric_type == MetricTypes.System:
459
+ row = [
460
+ self._validate_nulls(r) if isinstance(r, dict) else r
461
+ for r in row
462
+ ]
463
+
462
464
  except Exception as exc:
463
465
  error = (
464
466
  f"{metric_func.column if metric_func.column is not None else metric_func.table.__tablename__} "
@@ -476,6 +478,17 @@ class SQAProfilerInterface(ProfilerInterface, SQAInterfaceMixin):
476
478
 
477
479
  return row, column, metric_func.metric_type.value
478
480
 
481
+ @staticmethod
482
+ def _validate_nulls(row: Dict[str, Any]) -> Dict[str, Any]:
483
+ """Detect if we are computing NaNs and replace them with None"""
484
+ for k, v in row.items():
485
+ if isinstance(v, float) and math.isnan(v):
486
+ logger.warning(
487
+ "NaN data detected and will be cast to null in OpenMetadata to maintain database parity"
488
+ )
489
+ row[k] = None
490
+ return row
491
+
479
492
  # pylint: disable=use-dict-literal
480
493
  def get_all_metrics(
481
494
  self,
@@ -15,7 +15,7 @@ AVG Metric definition
15
15
  from functools import partial
16
16
  from typing import Callable, List, Optional, cast
17
17
 
18
- from sqlalchemy import column, func
18
+ from sqlalchemy import column
19
19
  from sqlalchemy.ext.compiler import compiles
20
20
  from sqlalchemy.sql.functions import GenericFunction
21
21
 
@@ -39,20 +39,19 @@ from metadata.utils.logger import profiler_logger
39
39
  logger = profiler_logger()
40
40
 
41
41
 
42
- # pylint: disable=invalid-name
43
- class avg(GenericFunction):
42
+ class AvgFn(GenericFunction):
44
43
  name = "avg"
45
44
  inherit_cache = CACHE
46
45
 
47
46
 
48
- @compiles(avg, Dialects.ClickHouse)
47
+ @compiles(AvgFn, Dialects.ClickHouse)
49
48
  def _(element, compiler, **kw):
50
49
  """Handle case for empty table. If empty, clickhouse returns NaN"""
51
50
  proc = compiler.process(element.clauses, **kw)
52
51
  return f"if(isNaN(avg({proc})), null, avg({proc}))"
53
52
 
54
53
 
55
- @compiles(avg, Dialects.Redshift)
54
+ @compiles(AvgFn, Dialects.Redshift)
56
55
  def _(element, compiler, **kw):
57
56
  """
58
57
  Cast to decimal to get around potential integer overflow error
@@ -61,7 +60,7 @@ def _(element, compiler, **kw):
61
60
  return f"avg(CAST({proc} AS DECIMAL(38,0)))"
62
61
 
63
62
 
64
- @compiles(avg, Dialects.MSSQL)
63
+ @compiles(AvgFn, Dialects.MSSQL)
65
64
  def _(element, compiler, **kw):
66
65
  """
67
66
  Cast to decimal to get around potential integer overflow error -
@@ -71,7 +70,7 @@ def _(element, compiler, **kw):
71
70
  return f"avg(cast({proc} as decimal))"
72
71
 
73
72
 
74
- @compiles(avg, Dialects.Trino)
73
+ @compiles(AvgFn, Dialects.Trino)
75
74
  def _(element, compiler, **kw):
76
75
  proc = compiler.process(element.clauses, **kw)
77
76
  first_clause = element.clauses.clauses[0]
@@ -108,10 +107,10 @@ class Mean(StaticMetric):
108
107
  def fn(self):
109
108
  """sqlalchemy function"""
110
109
  if is_quantifiable(self.col.type):
111
- return func.avg(column(self.col.name, self.col.type))
110
+ return AvgFn(column(self.col.name, self.col.type))
112
111
 
113
112
  if is_concatenable(self.col.type):
114
- return func.avg(LenFn(column(self.col.name, self.col.type)))
113
+ return AvgFn(LenFn(column(self.col.name, self.col.type)))
115
114
 
116
115
  logger.debug(
117
116
  f"Don't know how to process type {self.col.type} when computing MEAN"
@@ -28,12 +28,19 @@ logger = profiler_logger()
28
28
  class MedianFn(FunctionElement):
29
29
  inherit_cache = CACHE
30
30
 
31
+ @staticmethod
32
+ def default_fn(elements, compiler, **kwargs): # pylint: disable=unused-argument
33
+ col = compiler.process(elements.clauses.clauses[0])
34
+ percentile = elements.clauses.clauses[2].value
35
+ return "percentile_cont(%.2f) WITHIN GROUP (ORDER BY %s ASC)" % (
36
+ percentile,
37
+ col,
38
+ )
39
+
31
40
 
32
41
  @compiles(MedianFn)
33
- def _(elements, compiler, **kwargs): # pylint: disable=unused-argument
34
- col = compiler.process(elements.clauses.clauses[0])
35
- percentile = elements.clauses.clauses[2].value
36
- return "percentile_cont(%.2f) WITHIN GROUP (ORDER BY %s ASC)" % (percentile, col)
42
+ def _(elements, compiler, **kwargs):
43
+ return MedianFn.default_fn(elements, compiler, **kwargs)
37
44
 
38
45
 
39
46
  @compiles(MedianFn, Dialects.BigQuery)
@@ -162,7 +162,9 @@ def is_quantifiable(_type) -> bool:
162
162
  """
163
163
  if isinstance(_type, DataType):
164
164
  return _type.value in QUANTIFIABLE_SET
165
- return is_numeric(_type) or is_integer(_type)
165
+ return (
166
+ is_numeric(_type) or is_integer(_type) or getattr(_type, "quantifiable", False)
167
+ )
166
168
 
167
169
 
168
170
  def is_concatenable(_type) -> bool: