openmetadata-ingestion 1.3.4.0__py3-none-any.whl → 1.4.0.0rc2__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (982) hide show
  1. metadata/__version__.py +13 -0
  2. metadata/automations/runner.py +9 -0
  3. metadata/cli/app.py +0 -1
  4. metadata/cli/lineage.py +5 -1
  5. metadata/cli/restore.py +7 -0
  6. metadata/cmd.py +2 -345
  7. metadata/data_insight/processor/reports/cost_analysis_report_data_processor.py +0 -1
  8. metadata/data_quality/api/models.py +1 -0
  9. metadata/data_quality/processor/test_case_runner.py +9 -2
  10. metadata/data_quality/source/test_suite.py +14 -3
  11. metadata/data_quality/validations/base_test_handler.py +1 -1
  12. metadata/data_quality/validations/column/base/columnValuesMissingCount.py +4 -1
  13. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeUnique.py +28 -17
  14. metadata/data_quality/validations/mixins/sqa_validator_mixin.py +4 -1
  15. metadata/data_quality/validations/table/base/tableCustomSQLQuery.py +1 -1
  16. metadata/examples/workflows/airbyte.yaml +1 -0
  17. metadata/examples/workflows/airflow.yaml +1 -1
  18. metadata/examples/workflows/airflow_backend.yaml +1 -1
  19. metadata/examples/workflows/airflow_postgres.yaml +1 -1
  20. metadata/examples/workflows/amundsen.yaml +1 -0
  21. metadata/examples/workflows/athena.yaml +1 -0
  22. metadata/examples/workflows/athena_lineage.yaml +1 -1
  23. metadata/examples/workflows/athena_usage.yaml +1 -0
  24. metadata/examples/workflows/atlas.yaml +1 -0
  25. metadata/examples/workflows/azuresql.yaml +1 -0
  26. metadata/examples/workflows/azuresql_lineage.yaml +1 -0
  27. metadata/examples/workflows/azuresql_usage.yaml +1 -0
  28. metadata/examples/workflows/bigquery.yaml +1 -0
  29. metadata/examples/workflows/bigquery_lineage.yaml +1 -0
  30. metadata/examples/workflows/bigquery_profiler.yaml +1 -0
  31. metadata/examples/workflows/bigquery_usage.yaml +1 -0
  32. metadata/examples/workflows/bigtable.yaml +1 -1
  33. metadata/examples/workflows/clickhouse.yaml +1 -0
  34. metadata/examples/workflows/clickhouse_lineage.yaml +1 -0
  35. metadata/examples/workflows/clickhouse_usage.yaml +1 -0
  36. metadata/examples/workflows/couchbase.yaml +1 -1
  37. metadata/examples/workflows/dagster.yaml +1 -0
  38. metadata/examples/workflows/data_insight.yaml +1 -1
  39. metadata/examples/workflows/databricks.yaml +1 -0
  40. metadata/examples/workflows/databricks_lineage.yaml +1 -0
  41. metadata/examples/workflows/databricks_pipeline.yaml +1 -0
  42. metadata/examples/workflows/databricks_usage.yaml +1 -0
  43. metadata/examples/workflows/datalake_azure_client_secret.yaml +1 -0
  44. metadata/examples/workflows/datalake_gcs.yaml +1 -0
  45. metadata/examples/workflows/datalake_profiler.yaml +1 -0
  46. metadata/examples/workflows/datalake_s3.yaml +1 -0
  47. metadata/examples/workflows/db2.yaml +1 -0
  48. metadata/examples/workflows/db2_profiler.yaml +1 -0
  49. metadata/examples/workflows/dbt.yaml +2 -0
  50. metadata/examples/workflows/deltalake.yaml +1 -0
  51. metadata/examples/workflows/domodashboard.yaml +1 -0
  52. metadata/examples/workflows/dynamodb.yaml +1 -0
  53. metadata/examples/workflows/elasticsearch.yaml +1 -1
  54. metadata/examples/workflows/fivetran.yaml +1 -0
  55. metadata/examples/workflows/glue.yaml +1 -0
  56. metadata/examples/workflows/gluepipeline.yaml +1 -0
  57. metadata/examples/workflows/hive.yaml +1 -0
  58. metadata/examples/workflows/impala.yaml +1 -0
  59. metadata/examples/workflows/kafka.yaml +1 -1
  60. metadata/examples/workflows/kafka_connect.yaml +30 -0
  61. metadata/examples/workflows/kinesis.yaml +1 -1
  62. metadata/examples/workflows/lightdash.yaml +1 -0
  63. metadata/examples/workflows/looker.yaml +1 -0
  64. metadata/examples/workflows/mariadb.yaml +1 -0
  65. metadata/examples/workflows/metabase.yaml +1 -0
  66. metadata/examples/workflows/mlflow.yaml +1 -0
  67. metadata/examples/workflows/mode.yaml +3 -1
  68. metadata/examples/workflows/mongodb.yaml +1 -0
  69. metadata/examples/workflows/mssql.yaml +1 -0
  70. metadata/examples/workflows/mssql_lineage.yaml +1 -0
  71. metadata/examples/workflows/mssql_usage.yaml +1 -0
  72. metadata/examples/workflows/mstr.yaml +1 -0
  73. metadata/examples/workflows/mysql.yaml +1 -0
  74. metadata/examples/workflows/mysql_profiler.yaml +1 -0
  75. metadata/examples/workflows/openmetadata.yaml +1 -0
  76. metadata/examples/workflows/oracle.yaml +1 -0
  77. metadata/examples/workflows/oracle_lineage.yaml +1 -1
  78. metadata/examples/workflows/oracle_usage.yaml +1 -0
  79. metadata/examples/workflows/pinotdb.yaml +1 -0
  80. metadata/examples/workflows/postgres.yaml +1 -0
  81. metadata/examples/workflows/postgres_lineage.yaml +1 -1
  82. metadata/examples/workflows/postgres_usage.yaml +1 -1
  83. metadata/examples/workflows/powerbi.yaml +52 -0
  84. metadata/examples/workflows/presto.yaml +1 -0
  85. metadata/examples/workflows/qlik_sense.yaml +6 -4
  86. metadata/examples/workflows/qlikcloud.yaml +31 -0
  87. metadata/examples/workflows/query_log_usage.yaml +1 -0
  88. metadata/examples/workflows/quicksight.yaml +1 -0
  89. metadata/examples/workflows/redash.yaml +1 -0
  90. metadata/examples/workflows/redpanda.yaml +1 -0
  91. metadata/examples/workflows/redshift.yaml +1 -0
  92. metadata/examples/workflows/redshift_lineage.yaml +1 -0
  93. metadata/examples/workflows/redshift_profiler.yaml +1 -0
  94. metadata/examples/workflows/redshift_usage.yaml +1 -0
  95. metadata/examples/workflows/sagemaker.yaml +1 -1
  96. metadata/examples/workflows/salesforce.yaml +1 -0
  97. metadata/examples/workflows/sas.yaml +1 -1
  98. metadata/examples/workflows/singlestore.yaml +1 -0
  99. metadata/examples/workflows/snowflake.yaml +1 -0
  100. metadata/examples/workflows/snowflake_lineage.yaml +1 -0
  101. metadata/examples/workflows/snowflake_usage.yaml +1 -0
  102. metadata/examples/workflows/spline.yaml +5 -4
  103. metadata/examples/workflows/sqlite.yaml +1 -0
  104. metadata/examples/workflows/superset.yaml +1 -0
  105. metadata/examples/workflows/tableau.yaml +1 -0
  106. metadata/examples/workflows/test_suite.yaml +13 -16
  107. metadata/examples/workflows/trino.yaml +1 -0
  108. metadata/examples/workflows/trino_lineage.yaml +1 -0
  109. metadata/examples/workflows/trino_usage.yaml +1 -0
  110. metadata/examples/workflows/unity_catalog.yaml +1 -1
  111. metadata/examples/workflows/unity_catalog_lineage.yaml +1 -1
  112. metadata/examples/workflows/unity_catalog_usage.yaml +1 -1
  113. metadata/examples/workflows/vertica.yaml +1 -0
  114. metadata/generated/antlr/EntityLinkLexer.py +354 -349
  115. metadata/generated/schema/analytics/__init__.py +1 -1
  116. metadata/generated/schema/analytics/basic.py +1 -1
  117. metadata/generated/schema/analytics/reportData.py +1 -1
  118. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  119. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  120. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  121. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  122. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  123. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  124. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  125. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  126. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  127. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  128. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  129. metadata/generated/schema/api/__init__.py +1 -1
  130. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  131. metadata/generated/schema/api/analytics/__init__.py +1 -1
  132. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  133. metadata/generated/schema/api/automations/__init__.py +1 -1
  134. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  135. metadata/generated/schema/api/bulkAssets.py +1 -1
  136. metadata/generated/schema/api/classification/__init__.py +1 -1
  137. metadata/generated/schema/api/classification/createClassification.py +2 -3
  138. metadata/generated/schema/api/classification/createTag.py +2 -3
  139. metadata/generated/schema/api/classification/loadTags.py +1 -1
  140. metadata/generated/schema/api/createBot.py +1 -1
  141. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  142. metadata/generated/schema/api/createType.py +1 -1
  143. metadata/generated/schema/api/data/__init__.py +1 -1
  144. metadata/generated/schema/api/data/createChart.py +1 -1
  145. metadata/generated/schema/api/data/createContainer.py +4 -1
  146. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  147. metadata/generated/schema/api/data/createDashboard.py +1 -1
  148. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  149. metadata/generated/schema/api/data/createDatabase.py +1 -1
  150. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  151. metadata/generated/schema/api/data/createGlossary.py +1 -1
  152. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  153. metadata/generated/schema/api/data/createMlModel.py +1 -1
  154. metadata/generated/schema/api/data/createPipeline.py +1 -1
  155. metadata/generated/schema/api/data/createQuery.py +1 -1
  156. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  157. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  158. metadata/generated/schema/api/data/createTable.py +4 -3
  159. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  160. metadata/generated/schema/api/data/createTopic.py +1 -1
  161. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  162. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  163. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  164. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  165. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  166. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  167. metadata/generated/schema/api/docStore/__init__.py +1 -1
  168. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  169. metadata/generated/schema/api/domains/__init__.py +1 -1
  170. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  171. metadata/generated/schema/api/domains/createDomain.py +1 -1
  172. metadata/generated/schema/api/feed/__init__.py +1 -1
  173. metadata/generated/schema/api/feed/closeTask.py +1 -1
  174. metadata/generated/schema/api/feed/createPost.py +1 -1
  175. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  176. metadata/generated/schema/api/feed/createThread.py +1 -1
  177. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  178. metadata/generated/schema/api/feed/threadCount.py +1 -1
  179. metadata/generated/schema/api/lineage/__init__.py +1 -1
  180. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  181. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  182. metadata/generated/schema/api/policies/__init__.py +1 -1
  183. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  184. metadata/generated/schema/api/services/__init__.py +1 -1
  185. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  186. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  187. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  188. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  189. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  190. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  191. metadata/generated/schema/api/services/createSearchService.py +1 -1
  192. metadata/generated/schema/api/services/createStorageService.py +1 -1
  193. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  194. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  195. metadata/generated/schema/api/setOwner.py +1 -1
  196. metadata/generated/schema/api/teams/__init__.py +1 -1
  197. metadata/generated/schema/api/teams/createPersona.py +1 -1
  198. metadata/generated/schema/api/teams/createRole.py +1 -1
  199. metadata/generated/schema/api/teams/createTeam.py +1 -1
  200. metadata/generated/schema/api/teams/createUser.py +2 -2
  201. metadata/generated/schema/api/tests/__init__.py +1 -1
  202. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  203. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  204. metadata/generated/schema/api/tests/createTestCase.py +2 -2
  205. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  206. metadata/generated/schema/api/tests/createTestDefinition.py +2 -2
  207. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  208. metadata/generated/schema/api/voteRequest.py +1 -1
  209. metadata/generated/schema/auth/__init__.py +1 -1
  210. metadata/generated/schema/auth/basicAuth.py +1 -1
  211. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  212. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  213. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  214. metadata/generated/schema/auth/emailRequest.py +1 -1
  215. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  216. metadata/generated/schema/auth/generateToken.py +1 -1
  217. metadata/generated/schema/auth/jwtAuth.py +1 -1
  218. metadata/generated/schema/auth/loginRequest.py +1 -1
  219. metadata/generated/schema/auth/logoutRequest.py +1 -1
  220. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  221. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  222. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  223. metadata/generated/schema/auth/refreshToken.py +1 -1
  224. metadata/generated/schema/auth/registrationRequest.py +1 -1
  225. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  226. metadata/generated/schema/auth/revokeToken.py +1 -1
  227. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  228. metadata/generated/schema/auth/ssoAuth.py +1 -1
  229. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  230. metadata/generated/schema/configuration/__init__.py +1 -1
  231. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  232. metadata/generated/schema/configuration/authConfig.py +1 -1
  233. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  234. metadata/generated/schema/configuration/authorizerConfiguration.py +4 -1
  235. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  236. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  237. metadata/generated/schema/configuration/elasticSearchConfiguration.py +4 -1
  238. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  239. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  240. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  241. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  242. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  243. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  244. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  245. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  246. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  247. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  248. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  249. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  250. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  251. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  252. metadata/generated/schema/configuration/profilerConfiguration.py +66 -0
  253. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  254. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  255. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  256. metadata/generated/schema/configuration/themeConfiguration.py +32 -0
  257. metadata/generated/schema/configuration/uiThemePreference.py +23 -0
  258. metadata/generated/schema/dataInsight/__init__.py +1 -1
  259. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  260. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  261. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  262. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  263. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  264. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  265. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  266. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  267. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  268. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  269. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  270. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  271. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  272. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  273. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithDescriptionByType.py +1 -1
  274. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +1 -1
  275. metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +1 -1
  276. metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +1 -1
  277. metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +1 -1
  278. metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +1 -1
  279. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  280. metadata/generated/schema/email/__init__.py +1 -1
  281. metadata/generated/schema/email/emailRequest.py +1 -1
  282. metadata/generated/schema/email/smtpSettings.py +3 -3
  283. metadata/generated/schema/entity/__init__.py +1 -1
  284. metadata/generated/schema/entity/applications/__init__.py +1 -1
  285. metadata/generated/schema/entity/applications/app.py +1 -1
  286. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  287. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  288. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +3 -3
  289. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  290. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +5 -0
  291. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +36 -0
  292. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +31 -0
  293. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +31 -0
  294. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +36 -0
  295. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +31 -0
  296. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +28 -0
  297. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +22 -0
  298. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +30 -0
  299. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +22 -0
  300. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +22 -0
  301. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +31 -0
  302. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +22 -0
  303. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +75 -0
  304. metadata/generated/schema/entity/applications/configuration/external/metaPilotAppConfig.py +1 -1
  305. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  306. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  307. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  308. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  309. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  310. metadata/generated/schema/entity/applications/configuration/private/external/metaPilotAppPrivateConfig.py +1 -1
  311. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  312. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  313. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  314. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  315. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  316. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  317. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  318. metadata/generated/schema/entity/automations/__init__.py +1 -1
  319. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  320. metadata/generated/schema/entity/automations/workflow.py +1 -1
  321. metadata/generated/schema/entity/bot.py +1 -1
  322. metadata/generated/schema/entity/classification/__init__.py +1 -1
  323. metadata/generated/schema/entity/classification/classification.py +2 -3
  324. metadata/generated/schema/entity/classification/tag.py +3 -9
  325. metadata/generated/schema/entity/data/__init__.py +1 -1
  326. metadata/generated/schema/entity/data/chart.py +1 -1
  327. metadata/generated/schema/entity/data/container.py +4 -1
  328. metadata/generated/schema/entity/data/dashboard.py +1 -1
  329. metadata/generated/schema/entity/data/dashboardDataModel.py +2 -2
  330. metadata/generated/schema/entity/data/database.py +1 -1
  331. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  332. metadata/generated/schema/entity/data/glossary.py +1 -1
  333. metadata/generated/schema/entity/data/glossaryTerm.py +4 -1
  334. metadata/generated/schema/entity/data/metrics.py +1 -1
  335. metadata/generated/schema/entity/data/mlmodel.py +2 -2
  336. metadata/generated/schema/entity/data/pipeline.py +1 -1
  337. metadata/generated/schema/entity/data/query.py +1 -1
  338. metadata/generated/schema/entity/data/report.py +1 -1
  339. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  340. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  341. metadata/generated/schema/entity/data/table.py +26 -24
  342. metadata/generated/schema/entity/data/topic.py +1 -1
  343. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  344. metadata/generated/schema/entity/docStore/document.py +1 -1
  345. metadata/generated/schema/entity/domains/__init__.py +1 -1
  346. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  347. metadata/generated/schema/entity/domains/domain.py +1 -1
  348. metadata/generated/schema/entity/events/__init__.py +1 -1
  349. metadata/generated/schema/entity/events/webhook.py +1 -1
  350. metadata/generated/schema/entity/feed/__init__.py +1 -1
  351. metadata/generated/schema/entity/feed/assets.py +18 -0
  352. metadata/generated/schema/entity/feed/customProperty.py +17 -0
  353. metadata/generated/schema/entity/feed/description.py +24 -0
  354. metadata/generated/schema/entity/feed/domain.py +23 -0
  355. metadata/generated/schema/entity/feed/entityInfo.py +19 -0
  356. metadata/generated/schema/entity/feed/owner.py +23 -0
  357. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  358. metadata/generated/schema/entity/feed/tag.py +23 -0
  359. metadata/generated/schema/entity/feed/testCaseResult.py +23 -0
  360. metadata/generated/schema/entity/feed/thread.py +81 -2
  361. metadata/generated/schema/entity/policies/__init__.py +1 -1
  362. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  363. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +3 -1
  364. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  365. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  366. metadata/generated/schema/entity/policies/filters.py +3 -3
  367. metadata/generated/schema/entity/policies/policy.py +1 -1
  368. metadata/generated/schema/entity/services/__init__.py +1 -1
  369. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  370. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  371. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  372. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  373. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  374. metadata/generated/schema/entity/services/connections/connectionBasicType.py +5 -1
  375. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  376. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  380. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  382. metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +1 -1
  383. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +33 -2
  384. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +3 -0
  385. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +37 -0
  386. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +25 -0
  387. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +37 -0
  388. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +37 -0
  389. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +38 -0
  390. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +6 -15
  391. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  394. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  396. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  397. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  398. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +4 -1
  399. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  400. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +4 -1
  401. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  402. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  403. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  404. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  405. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  406. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  408. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +4 -1
  409. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  410. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  411. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  412. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  413. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  414. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +2 -2
  416. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  417. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +4 -13
  418. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +4 -1
  420. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +2 -15
  422. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +4 -1
  423. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  424. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  426. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  427. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  428. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  429. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  430. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  431. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  432. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  433. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +4 -1
  434. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +4 -1
  435. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +7 -13
  436. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +4 -1
  437. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  438. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +5 -15
  439. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +11 -1
  440. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +5 -15
  441. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  442. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  443. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  444. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  445. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  446. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  447. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  448. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +4 -1
  449. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  450. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +12 -3
  451. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  452. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  453. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  454. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  455. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +7 -1
  456. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  457. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  458. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  459. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  460. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  461. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +7 -3
  462. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  463. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  464. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  465. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  466. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  467. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  468. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  469. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  470. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  471. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  472. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  473. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  474. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  475. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  476. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  477. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  478. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  479. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  480. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  481. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +61 -0
  482. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  483. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +73 -0
  484. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  485. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  486. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  487. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  488. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  489. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  490. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  491. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  492. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  493. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  494. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  495. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  496. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  497. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  498. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +5 -2
  499. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  500. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  501. metadata/generated/schema/entity/services/dashboardService.py +4 -1
  502. metadata/generated/schema/entity/services/databaseService.py +1 -1
  503. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  504. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  505. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  506. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  507. metadata/generated/schema/entity/services/messagingService.py +1 -1
  508. metadata/generated/schema/entity/services/metadataService.py +1 -1
  509. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  510. metadata/generated/schema/entity/services/pipelineService.py +7 -1
  511. metadata/generated/schema/entity/services/searchService.py +1 -1
  512. metadata/generated/schema/entity/services/serviceType.py +1 -1
  513. metadata/generated/schema/entity/services/storageService.py +1 -1
  514. metadata/generated/schema/entity/teams/__init__.py +1 -1
  515. metadata/generated/schema/entity/teams/persona.py +1 -1
  516. metadata/generated/schema/entity/teams/role.py +1 -1
  517. metadata/generated/schema/entity/teams/team.py +1 -1
  518. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  519. metadata/generated/schema/entity/teams/user.py +2 -2
  520. metadata/generated/schema/entity/type.py +1 -1
  521. metadata/generated/schema/entity/utils/__init__.py +1 -1
  522. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  523. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  524. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  525. metadata/generated/schema/events/__init__.py +1 -1
  526. metadata/generated/schema/events/alertMetrics.py +1 -1
  527. metadata/generated/schema/events/api/__init__.py +1 -1
  528. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  529. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  530. metadata/generated/schema/events/eventFilterRule.py +10 -1
  531. metadata/generated/schema/events/eventSubscription.py +6 -2
  532. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  533. metadata/generated/schema/events/failedEvent.py +1 -1
  534. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  535. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  536. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  537. metadata/generated/schema/metadataIngestion/application.py +1 -1
  538. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  539. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +19 -6
  540. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  541. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +37 -1
  542. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +23 -23
  543. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  544. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  545. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  546. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  547. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  548. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  549. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  550. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  551. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  552. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  553. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  554. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  555. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  556. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  557. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +22 -4
  558. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  559. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  560. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  561. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  562. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  563. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  564. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  565. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  566. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  567. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  568. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  569. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  570. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  571. metadata/generated/schema/monitoring/__init__.py +1 -1
  572. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  573. metadata/generated/schema/security/__init__.py +1 -1
  574. metadata/generated/schema/security/client/__init__.py +1 -1
  575. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  576. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  577. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  578. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  579. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  580. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  581. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  582. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  583. metadata/generated/schema/security/credentials/__init__.py +1 -1
  584. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  585. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  586. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  587. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  588. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  589. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  590. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  591. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  592. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  593. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  594. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  595. metadata/generated/schema/security/secrets/__init__.py +1 -1
  596. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  597. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  598. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  599. metadata/generated/schema/security/securityConfiguration.py +1 -1
  600. metadata/generated/schema/security/ssl/__init__.py +1 -1
  601. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +16 -4
  602. metadata/generated/schema/security/ssl/verifySSLConfig.py +10 -1
  603. metadata/generated/schema/settings/__init__.py +1 -1
  604. metadata/generated/schema/settings/settings.py +5 -2
  605. metadata/generated/schema/system/__init__.py +1 -1
  606. metadata/generated/schema/system/entityError.py +1 -1
  607. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  608. metadata/generated/schema/system/indexingError.py +1 -1
  609. metadata/generated/schema/system/ui/__init__.py +1 -1
  610. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  611. metadata/generated/schema/system/ui/page.py +1 -1
  612. metadata/generated/schema/system/validationResponse.py +1 -1
  613. metadata/generated/schema/tests/__init__.py +1 -1
  614. metadata/generated/schema/tests/assigned.py +1 -1
  615. metadata/generated/schema/tests/basic.py +31 -15
  616. metadata/generated/schema/tests/customMetric.py +1 -1
  617. metadata/generated/schema/tests/resolved.py +1 -1
  618. metadata/generated/schema/tests/testCase.py +13 -2
  619. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  620. metadata/generated/schema/tests/testDefinition.py +22 -2
  621. metadata/generated/schema/tests/testSuite.py +1 -1
  622. metadata/generated/schema/type/__init__.py +1 -1
  623. metadata/generated/schema/type/auditLog.py +1 -1
  624. metadata/generated/schema/type/basic.py +7 -1
  625. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  626. metadata/generated/schema/type/changeEvent.py +1 -1
  627. metadata/generated/schema/type/changeEventType.py +1 -1
  628. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  629. metadata/generated/schema/type/csvDocumentation.py +1 -1
  630. metadata/generated/schema/type/csvErrorType.py +1 -1
  631. metadata/generated/schema/type/csvFile.py +1 -1
  632. metadata/generated/schema/type/csvImportResult.py +1 -1
  633. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  634. metadata/generated/schema/type/customProperties/complexTypes.py +86 -0
  635. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  636. metadata/generated/schema/type/customProperty.py +3 -3
  637. metadata/generated/schema/type/dailyCount.py +1 -1
  638. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  639. metadata/generated/schema/type/entityHierarchy.py +39 -0
  640. metadata/generated/schema/type/entityHistory.py +1 -1
  641. metadata/generated/schema/type/entityLineage.py +3 -1
  642. metadata/generated/schema/type/entityReference.py +1 -1
  643. metadata/generated/schema/type/entityReferenceList.py +1 -1
  644. metadata/generated/schema/type/entityRelationship.py +1 -1
  645. metadata/generated/schema/type/entityUsage.py +1 -1
  646. metadata/generated/schema/type/filterPattern.py +1 -1
  647. metadata/generated/schema/type/function.py +1 -1
  648. metadata/generated/schema/type/include.py +1 -1
  649. metadata/generated/schema/type/jdbcConnection.py +1 -1
  650. metadata/generated/schema/type/lifeCycle.py +1 -1
  651. metadata/generated/schema/type/paging.py +4 -1
  652. metadata/generated/schema/type/profile.py +1 -1
  653. metadata/generated/schema/type/queryParserData.py +1 -1
  654. metadata/generated/schema/type/reaction.py +1 -1
  655. metadata/generated/schema/type/schedule.py +1 -1
  656. metadata/generated/schema/type/schema.py +1 -1
  657. metadata/generated/schema/type/tableQuery.py +1 -1
  658. metadata/generated/schema/type/tableUsageCount.py +1 -1
  659. metadata/generated/schema/type/tagLabel.py +1 -1
  660. metadata/generated/schema/type/usageDetails.py +1 -1
  661. metadata/generated/schema/type/usageRequest.py +1 -1
  662. metadata/generated/schema/type/votes.py +1 -1
  663. metadata/great_expectations/action.py +0 -1
  664. metadata/ingestion/api/delete.py +33 -1
  665. metadata/ingestion/api/step.py +6 -1
  666. metadata/ingestion/api/topology_runner.py +122 -25
  667. metadata/ingestion/bulksink/metadata_usage.py +6 -1
  668. metadata/ingestion/lineage/models.py +34 -1
  669. metadata/ingestion/lineage/parser.py +15 -8
  670. metadata/ingestion/lineage/sql_lineage.py +21 -3
  671. metadata/ingestion/models/custom_properties.py +3 -0
  672. metadata/ingestion/models/life_cycle.py +4 -1
  673. metadata/ingestion/models/patch_request.py +177 -35
  674. metadata/ingestion/models/topology.py +81 -1
  675. metadata/ingestion/ometa/client.py +3 -0
  676. metadata/ingestion/ometa/mixins/es_mixin.py +95 -42
  677. metadata/ingestion/ometa/mixins/lineage_mixin.py +169 -4
  678. metadata/ingestion/ometa/mixins/patch_mixin.py +9 -4
  679. metadata/ingestion/ometa/mixins/server_mixin.py +50 -5
  680. metadata/ingestion/ometa/mixins/tests_mixin.py +55 -1
  681. metadata/ingestion/ometa/mixins/user_mixin.py +18 -6
  682. metadata/ingestion/ometa/ometa_api.py +6 -1
  683. metadata/ingestion/ometa/routes.py +3 -0
  684. metadata/ingestion/ometa/utils.py +2 -0
  685. metadata/ingestion/processor/query_parser.py +36 -26
  686. metadata/ingestion/sink/file.py +4 -1
  687. metadata/ingestion/sink/metadata_rest.py +19 -5
  688. metadata/ingestion/source/dashboard/dashboard_service.py +75 -16
  689. metadata/ingestion/source/dashboard/domodashboard/metadata.py +7 -5
  690. metadata/ingestion/source/dashboard/lightdash/metadata.py +7 -5
  691. metadata/ingestion/source/dashboard/looker/metadata.py +25 -18
  692. metadata/ingestion/source/dashboard/metabase/client.py +39 -8
  693. metadata/ingestion/source/dashboard/metabase/connection.py +2 -1
  694. metadata/ingestion/source/dashboard/metabase/metadata.py +9 -7
  695. metadata/ingestion/source/dashboard/metabase/models.py +1 -1
  696. metadata/ingestion/source/dashboard/mode/metadata.py +7 -5
  697. metadata/ingestion/source/dashboard/mstr/metadata.py +10 -5
  698. metadata/ingestion/source/dashboard/powerbi/client.py +13 -3
  699. metadata/ingestion/source/dashboard/powerbi/connection.py +13 -5
  700. metadata/ingestion/source/dashboard/powerbi/file_client.py +327 -0
  701. metadata/ingestion/source/dashboard/powerbi/metadata.py +156 -53
  702. metadata/ingestion/source/dashboard/powerbi/models.py +26 -0
  703. metadata/ingestion/source/dashboard/qlikcloud/__init__.py +0 -0
  704. metadata/ingestion/source/dashboard/qlikcloud/client.py +167 -0
  705. metadata/ingestion/source/dashboard/qlikcloud/connection.py +56 -0
  706. metadata/ingestion/source/dashboard/qlikcloud/constants.py +66 -0
  707. metadata/ingestion/source/dashboard/qlikcloud/metadata.py +249 -0
  708. metadata/ingestion/source/dashboard/qlikcloud/models.py +33 -0
  709. metadata/ingestion/source/dashboard/qliksense/client.py +9 -26
  710. metadata/ingestion/source/dashboard/qliksense/metadata.py +30 -17
  711. metadata/ingestion/source/dashboard/qliksense/models.py +1 -0
  712. metadata/ingestion/source/dashboard/quicksight/metadata.py +7 -5
  713. metadata/ingestion/source/dashboard/redash/metadata.py +10 -5
  714. metadata/ingestion/source/dashboard/superset/api_source.py +10 -5
  715. metadata/ingestion/source/dashboard/superset/db_source.py +12 -6
  716. metadata/ingestion/source/dashboard/superset/metadata.py +8 -1
  717. metadata/ingestion/source/dashboard/superset/mixin.py +20 -3
  718. metadata/ingestion/source/dashboard/superset/models.py +2 -0
  719. metadata/ingestion/source/dashboard/superset/queries.py +23 -6
  720. metadata/ingestion/source/dashboard/tableau/metadata.py +71 -10
  721. metadata/ingestion/source/database/athena/client.py +1 -1
  722. metadata/ingestion/source/database/athena/lineage.py +2 -0
  723. metadata/ingestion/source/database/athena/metadata.py +83 -15
  724. metadata/ingestion/source/database/athena/models.py +1 -1
  725. metadata/ingestion/source/database/athena/query_parser.py +6 -1
  726. metadata/ingestion/source/database/athena/usage.py +2 -0
  727. metadata/ingestion/source/database/azuresql/metadata.py +4 -2
  728. metadata/ingestion/source/database/azuresql/query_parser.py +4 -1
  729. metadata/ingestion/source/database/bigquery/helper.py +23 -12
  730. metadata/ingestion/source/database/bigquery/incremental_table_processor.py +86 -0
  731. metadata/ingestion/source/database/bigquery/metadata.py +224 -52
  732. metadata/ingestion/source/database/bigquery/models.py +35 -1
  733. metadata/ingestion/source/database/bigquery/queries.py +25 -12
  734. metadata/ingestion/source/database/bigquery/query_parser.py +3 -1
  735. metadata/ingestion/source/database/bigtable/metadata.py +6 -4
  736. metadata/ingestion/source/database/clickhouse/metadata.py +27 -17
  737. metadata/ingestion/source/database/clickhouse/query_parser.py +4 -2
  738. metadata/ingestion/source/database/common_db_source.py +117 -65
  739. metadata/ingestion/source/database/common_nosql_source.py +15 -15
  740. metadata/ingestion/source/database/couchbase/metadata.py +8 -6
  741. metadata/ingestion/source/database/database_service.py +43 -27
  742. metadata/ingestion/source/database/databricks/metadata.py +80 -34
  743. metadata/ingestion/source/database/databricks/queries.py +0 -1
  744. metadata/ingestion/source/database/databricks/query_parser.py +9 -2
  745. metadata/ingestion/source/database/datalake/connection.py +1 -2
  746. metadata/ingestion/source/database/datalake/metadata.py +21 -19
  747. metadata/ingestion/source/database/db2/metadata.py +4 -1
  748. metadata/ingestion/source/database/dbt/dbt_service.py +13 -11
  749. metadata/ingestion/source/database/dbt/metadata.py +97 -33
  750. metadata/ingestion/source/database/dbt/models.py +10 -1
  751. metadata/ingestion/source/database/deltalake/connection.py +2 -2
  752. metadata/ingestion/source/database/deltalake/metadata.py +19 -17
  753. metadata/ingestion/source/database/domodatabase/metadata.py +16 -11
  754. metadata/ingestion/source/database/doris/connection.py +0 -10
  755. metadata/ingestion/source/database/doris/metadata.py +23 -4
  756. metadata/ingestion/source/database/druid/metadata.py +5 -1
  757. metadata/ingestion/source/database/dynamodb/metadata.py +3 -1
  758. metadata/ingestion/source/database/extended_sample_data.py +4 -2
  759. metadata/ingestion/source/database/external_table_lineage_mixin.py +82 -0
  760. metadata/ingestion/source/database/glue/metadata.py +23 -21
  761. metadata/ingestion/source/database/greenplum/connection.py +0 -10
  762. metadata/ingestion/source/database/greenplum/metadata.py +26 -11
  763. metadata/ingestion/source/database/hive/metadata.py +29 -4
  764. metadata/ingestion/source/database/iceberg/helper.py +42 -5
  765. metadata/ingestion/source/database/iceberg/metadata.py +18 -16
  766. metadata/ingestion/source/database/iceberg/models.py +12 -4
  767. metadata/ingestion/source/database/impala/metadata.py +4 -1
  768. metadata/ingestion/source/database/incremental_metadata_extraction.py +144 -0
  769. metadata/ingestion/source/database/life_cycle_query_mixin.py +39 -36
  770. metadata/ingestion/source/database/mariadb/metadata.py +5 -1
  771. metadata/ingestion/source/database/mongodb/metadata.py +4 -2
  772. metadata/ingestion/source/database/mssql/metadata.py +15 -7
  773. metadata/ingestion/source/database/mssql/queries.py +18 -16
  774. metadata/ingestion/source/database/mssql/query_parser.py +4 -1
  775. metadata/ingestion/source/database/mssql/utils.py +3 -0
  776. metadata/ingestion/source/database/mysql/connection.py +0 -11
  777. metadata/ingestion/source/database/mysql/metadata.py +9 -2
  778. metadata/ingestion/source/database/oracle/connection.py +2 -2
  779. metadata/ingestion/source/database/oracle/metadata.py +33 -17
  780. metadata/ingestion/source/database/oracle/queries.py +13 -13
  781. metadata/ingestion/source/database/oracle/query_parser.py +4 -1
  782. metadata/ingestion/source/database/pinotdb/metadata.py +4 -1
  783. metadata/ingestion/source/database/postgres/connection.py +0 -10
  784. metadata/ingestion/source/database/postgres/metadata.py +38 -15
  785. metadata/ingestion/source/database/postgres/queries.py +17 -1
  786. metadata/ingestion/source/database/postgres/query_parser.py +4 -2
  787. metadata/ingestion/source/database/postgres/utils.py +98 -0
  788. metadata/ingestion/source/database/presto/connection.py +14 -0
  789. metadata/ingestion/source/database/presto/metadata.py +8 -5
  790. metadata/ingestion/source/database/query/lineage.py +5 -1
  791. metadata/ingestion/source/database/query/usage.py +4 -1
  792. metadata/ingestion/source/database/redshift/connection.py +0 -10
  793. metadata/ingestion/source/database/redshift/incremental_table_processor.py +192 -0
  794. metadata/ingestion/source/database/redshift/metadata.py +175 -26
  795. metadata/ingestion/source/database/redshift/models.py +74 -1
  796. metadata/ingestion/source/database/redshift/queries.py +17 -2
  797. metadata/ingestion/source/database/redshift/query_parser.py +3 -1
  798. metadata/ingestion/source/database/redshift/utils.py +13 -7
  799. metadata/ingestion/source/database/salesforce/metadata.py +13 -11
  800. metadata/ingestion/source/database/sample_data.py +56 -13
  801. metadata/ingestion/source/database/sample_usage.py +3 -1
  802. metadata/ingestion/source/database/saphana/metadata.py +6 -5
  803. metadata/ingestion/source/database/sas/metadata.py +8 -3
  804. metadata/ingestion/source/database/singlestore/metadata.py +5 -1
  805. metadata/ingestion/source/database/snowflake/metadata.py +193 -59
  806. metadata/ingestion/source/database/snowflake/models.py +24 -1
  807. metadata/ingestion/source/database/snowflake/queries.py +147 -25
  808. metadata/ingestion/source/database/snowflake/query_parser.py +3 -1
  809. metadata/ingestion/source/database/snowflake/utils.py +187 -11
  810. metadata/ingestion/source/database/sql_column_handler.py +2 -0
  811. metadata/ingestion/source/database/sqlalchemy_source.py +4 -4
  812. metadata/ingestion/source/database/sqlite/metadata.py +5 -1
  813. metadata/ingestion/source/database/stored_procedures_mixin.py +11 -9
  814. metadata/ingestion/source/database/trino/connection.py +20 -0
  815. metadata/ingestion/source/database/trino/metadata.py +7 -4
  816. metadata/ingestion/source/database/trino/query_parser.py +4 -1
  817. metadata/ingestion/source/database/unitycatalog/lineage.py +3 -1
  818. metadata/ingestion/source/database/unitycatalog/metadata.py +43 -32
  819. metadata/ingestion/source/database/unitycatalog/query_parser.py +4 -1
  820. metadata/ingestion/source/database/vertica/metadata.py +4 -2
  821. metadata/ingestion/source/database/vertica/query_parser.py +4 -2
  822. metadata/ingestion/source/messaging/common_broker_source.py +45 -6
  823. metadata/ingestion/source/messaging/kafka/metadata.py +21 -1
  824. metadata/ingestion/source/messaging/kinesis/metadata.py +11 -5
  825. metadata/ingestion/source/messaging/messaging_service.py +3 -3
  826. metadata/ingestion/source/messaging/redpanda/metadata.py +5 -1
  827. metadata/ingestion/source/metadata/amundsen/metadata.py +3 -1
  828. metadata/ingestion/source/metadata/atlas/metadata.py +3 -1
  829. metadata/ingestion/source/mlmodel/mlflow/metadata.py +4 -2
  830. metadata/ingestion/source/mlmodel/mlmodel_service.py +3 -3
  831. metadata/ingestion/source/mlmodel/sagemaker/metadata.py +8 -3
  832. metadata/ingestion/source/pipeline/airbyte/metadata.py +9 -7
  833. metadata/ingestion/source/pipeline/airflow/metadata.py +30 -14
  834. metadata/ingestion/source/pipeline/dagster/metadata.py +17 -15
  835. metadata/ingestion/source/pipeline/dagster/queries.py +53 -82
  836. metadata/ingestion/source/pipeline/databrickspipeline/metadata.py +10 -8
  837. metadata/ingestion/source/pipeline/domopipeline/metadata.py +6 -4
  838. metadata/ingestion/source/pipeline/fivetran/metadata.py +6 -4
  839. metadata/ingestion/source/pipeline/gluepipeline/metadata.py +7 -5
  840. metadata/ingestion/source/pipeline/kafkaconnect/__init__.py +0 -0
  841. metadata/ingestion/source/pipeline/kafkaconnect/client.py +278 -0
  842. metadata/ingestion/source/pipeline/kafkaconnect/connection.py +58 -0
  843. metadata/ingestion/source/pipeline/kafkaconnect/metadata.py +319 -0
  844. metadata/ingestion/source/pipeline/kafkaconnect/models.py +62 -0
  845. metadata/ingestion/source/pipeline/nifi/metadata.py +4 -2
  846. metadata/ingestion/source/pipeline/openlineage/__init__.py +0 -0
  847. metadata/ingestion/source/pipeline/openlineage/connection.py +88 -0
  848. metadata/ingestion/source/pipeline/openlineage/metadata.py +520 -0
  849. metadata/ingestion/source/pipeline/openlineage/models.py +88 -0
  850. metadata/ingestion/source/pipeline/openlineage/utils.py +59 -0
  851. metadata/ingestion/source/pipeline/pipeline_service.py +13 -3
  852. metadata/ingestion/source/pipeline/spline/metadata.py +8 -6
  853. metadata/ingestion/source/search/elasticsearch/metadata.py +8 -6
  854. metadata/ingestion/source/search/search_service.py +3 -3
  855. metadata/ingestion/source/sqa_types.py +20 -1
  856. metadata/ingestion/source/storage/s3/connection.py +10 -1
  857. metadata/ingestion/source/storage/s3/metadata.py +45 -30
  858. metadata/ingestion/source/storage/s3/models.py +8 -4
  859. metadata/ingestion/source/storage/storage_service.py +4 -4
  860. metadata/ingestion/stage/table_usage.py +6 -1
  861. metadata/mixins/pandas/pandas_mixin.py +3 -3
  862. metadata/pii/processor.py +6 -1
  863. metadata/profiler/__init__.py +0 -0
  864. metadata/profiler/adaptors/__init__.py +0 -0
  865. metadata/profiler/adaptors/adaptor_factory.py +43 -0
  866. metadata/profiler/adaptors/dynamodb.py +40 -0
  867. metadata/profiler/adaptors/factory.py +76 -0
  868. metadata/profiler/adaptors/mongodb.py +178 -0
  869. metadata/profiler/adaptors/nosql_adaptor.py +65 -0
  870. metadata/profiler/api/models.py +1 -1
  871. metadata/profiler/factory.py +41 -0
  872. metadata/profiler/interface/nosql/profiler_interface.py +236 -0
  873. metadata/profiler/interface/pandas/profiler_interface.py +51 -30
  874. metadata/profiler/interface/profiler_interface.py +6 -2
  875. metadata/profiler/interface/profiler_interface_factory.py +11 -22
  876. metadata/profiler/interface/sqlalchemy/databricks/profiler_interface.py +77 -0
  877. metadata/profiler/interface/sqlalchemy/profiler_interface.py +2 -1
  878. metadata/profiler/interface/sqlalchemy/unity_catalog/profiler_interface.py +3 -6
  879. metadata/profiler/metrics/composed/distinct_ratio.py +2 -1
  880. metadata/profiler/metrics/composed/duplicate_count.py +2 -1
  881. metadata/profiler/metrics/composed/ilike_ratio.py +2 -1
  882. metadata/profiler/metrics/composed/iqr.py +2 -1
  883. metadata/profiler/metrics/composed/like_ratio.py +2 -1
  884. metadata/profiler/metrics/composed/non_parametric_skew.py +2 -1
  885. metadata/profiler/metrics/composed/null_ratio.py +7 -4
  886. metadata/profiler/metrics/composed/unique_ratio.py +2 -1
  887. metadata/profiler/metrics/core.py +14 -1
  888. metadata/profiler/metrics/hybrid/histogram.py +2 -1
  889. metadata/profiler/metrics/registry.py +4 -0
  890. metadata/profiler/metrics/static/column_count.py +2 -1
  891. metadata/profiler/metrics/static/column_names.py +2 -1
  892. metadata/profiler/metrics/static/count.py +2 -1
  893. metadata/profiler/metrics/static/count_in_set.py +2 -1
  894. metadata/profiler/metrics/static/distinct_count.py +11 -2
  895. metadata/profiler/metrics/static/ilike_count.py +2 -1
  896. metadata/profiler/metrics/static/like_count.py +2 -1
  897. metadata/profiler/metrics/static/max.py +26 -7
  898. metadata/profiler/metrics/static/max_length.py +3 -2
  899. metadata/profiler/metrics/static/mean.py +30 -22
  900. metadata/profiler/metrics/static/min.py +25 -6
  901. metadata/profiler/metrics/static/min_length.py +3 -2
  902. metadata/profiler/metrics/static/not_like_count.py +2 -1
  903. metadata/profiler/metrics/static/not_regexp_match_count.py +2 -1
  904. metadata/profiler/metrics/static/null_count.py +2 -1
  905. metadata/profiler/metrics/static/null_missing_count.py +73 -0
  906. metadata/profiler/metrics/static/regexp_match_count.py +2 -1
  907. metadata/profiler/metrics/static/row_count.py +9 -3
  908. metadata/profiler/metrics/static/stddev.py +2 -1
  909. metadata/profiler/metrics/static/sum.py +22 -4
  910. metadata/profiler/metrics/static/unique_count.py +13 -4
  911. metadata/profiler/metrics/system/system.py +2 -1
  912. metadata/profiler/metrics/window/first_quartile.py +2 -1
  913. metadata/profiler/metrics/window/median.py +8 -2
  914. metadata/profiler/metrics/window/third_quartile.py +2 -1
  915. metadata/profiler/orm/converter/base.py +4 -1
  916. metadata/profiler/orm/converter/bigquery/converter.py +11 -0
  917. metadata/profiler/orm/converter/common.py +47 -0
  918. metadata/profiler/orm/converter/converter_registry.py +2 -0
  919. metadata/profiler/orm/converter/redshift/converter.py +48 -0
  920. metadata/profiler/orm/converter/snowflake/converter.py +13 -0
  921. metadata/profiler/orm/functions/conn_test.py +1 -1
  922. metadata/profiler/orm/functions/sum.py +4 -2
  923. metadata/profiler/orm/functions/table_metric_computer.py +1 -1
  924. metadata/profiler/orm/registry.py +6 -3
  925. metadata/profiler/processor/core.py +58 -97
  926. metadata/profiler/processor/default.py +5 -0
  927. metadata/profiler/processor/handle_partition.py +3 -3
  928. metadata/profiler/processor/metric_filter.py +267 -0
  929. metadata/profiler/processor/processor.py +4 -2
  930. metadata/profiler/processor/sampler/nosql/sampler.py +72 -0
  931. metadata/profiler/processor/sampler/pandas/sampler.py +5 -6
  932. metadata/profiler/processor/sampler/sampler_factory.py +9 -0
  933. metadata/profiler/processor/sampler/sampler_interface.py +2 -2
  934. metadata/profiler/processor/sampler/sqlalchemy/sampler.py +3 -3
  935. metadata/profiler/source/base/profiler_source.py +11 -3
  936. metadata/profiler/source/databricks/profiler_source.py +5 -1
  937. metadata/profiler/source/metadata.py +8 -1
  938. metadata/profiler/source/metadata_ext.py +2 -0
  939. metadata/readers/dataframe/avro.py +5 -5
  940. metadata/readers/dataframe/json.py +1 -1
  941. metadata/readers/file/adls.py +20 -0
  942. metadata/readers/file/base.py +6 -0
  943. metadata/readers/file/config_source_factory.py +12 -0
  944. metadata/readers/file/gcs.py +18 -0
  945. metadata/readers/file/local.py +12 -0
  946. metadata/readers/file/s3.py +16 -0
  947. metadata/utils/constants.py +32 -24
  948. metadata/utils/datalake/datalake_utils.py +40 -4
  949. metadata/utils/elasticsearch.py +8 -0
  950. metadata/utils/execution_time_tracker.py +69 -28
  951. metadata/utils/fqn.py +61 -7
  952. metadata/utils/helpers.py +2 -0
  953. metadata/utils/importer.py +15 -6
  954. metadata/utils/logger.py +1 -1
  955. metadata/utils/lru_cache.py +2 -0
  956. metadata/utils/messaging_utils.py +43 -0
  957. metadata/utils/partition.py +93 -28
  958. metadata/utils/sqlalchemy_utils.py +60 -1
  959. metadata/utils/ssl_manager.py +181 -0
  960. metadata/utils/tag_utils.py +30 -13
  961. metadata/utils/test_utils.py +65 -0
  962. metadata/workflow/application.py +6 -1
  963. metadata/workflow/base.py +1 -1
  964. metadata/workflow/ingestion.py +19 -0
  965. metadata/workflow/metadata.py +9 -1
  966. metadata/workflow/output_handler.py +24 -2
  967. metadata/workflow/workflow_output_handler.py +2 -0
  968. {openmetadata_ingestion-1.3.4.0.dist-info → openmetadata_ingestion-1.4.0.0rc2.dist-info}/METADATA +325 -326
  969. openmetadata_ingestion-1.4.0.0rc2.dist-info/RECORD +1501 -0
  970. metadata/applications/auto_tagger.py +0 -212
  971. metadata/cli/backup.py +0 -202
  972. metadata/cli/db_dump.py +0 -239
  973. metadata/cli/docker.py +0 -382
  974. metadata/cli/openmetadata_dag_config_migration.py +0 -109
  975. metadata/cli/openmetadata_imports_migration.py +0 -71
  976. metadata/cli/utils.py +0 -56
  977. metadata/generated/schema/entity/applications/configuration/external/autoTaggerAppConfig.py +0 -28
  978. openmetadata_ingestion-1.3.4.0.dist-info/RECORD +0 -1435
  979. {openmetadata_ingestion-1.3.4.0.dist-info → openmetadata_ingestion-1.4.0.0rc2.dist-info}/LICENSE +0 -0
  980. {openmetadata_ingestion-1.3.4.0.dist-info → openmetadata_ingestion-1.4.0.0rc2.dist-info}/WHEEL +0 -0
  981. {openmetadata_ingestion-1.3.4.0.dist-info → openmetadata_ingestion-1.4.0.0rc2.dist-info}/entry_points.txt +0 -0
  982. {openmetadata_ingestion-1.3.4.0.dist-info → openmetadata_ingestion-1.4.0.0rc2.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,43 @@
1
+ # Copyright 2024 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
+ factory for NoSQL adaptors that are used in the NoSQLProfiler.
13
+ """
14
+ from metadata.generated.schema.entity.services.connections.database.dynamoDBConnection import (
15
+ DynamoDBConnection,
16
+ )
17
+ from metadata.generated.schema.entity.services.connections.database.mongoDBConnection import (
18
+ MongoDBConnection,
19
+ )
20
+ from metadata.profiler.adaptors.dynamodb import DynamoDB
21
+ from metadata.profiler.adaptors.mongodb import MongoDB
22
+ from metadata.profiler.factory import Factory
23
+ from metadata.utils.logger import profiler_logger
24
+
25
+ logger = profiler_logger()
26
+
27
+
28
+ class NoSQLAdaptorFactory(Factory):
29
+ def create(self, interface_type: str, *args, **kwargs) -> any:
30
+ logger.debug(f"Creating NoSQL client for {interface_type}")
31
+ client_class = self._interface_type.get(interface_type)
32
+ if not client_class:
33
+ raise ValueError(f"Unknown NoSQL source: {interface_type}")
34
+ logger.debug(f"Using NoSQL client constructor: {client_class.__name__}")
35
+ return client_class(*args, **kwargs)
36
+
37
+
38
+ adaptors = profilers = {
39
+ MongoDBConnection.__name__: MongoDB,
40
+ DynamoDBConnection.__name__: DynamoDB,
41
+ }
42
+ factory = NoSQLAdaptorFactory()
43
+ factory.register_many(adaptors)
@@ -0,0 +1,40 @@
1
+ # Copyright 2024 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
+ DyanmoDB adaptor for the NoSQL profiler.
13
+ """
14
+ from typing import TYPE_CHECKING, Dict, List
15
+
16
+ from metadata.generated.schema.entity.data.table import Column, Table
17
+ from metadata.profiler.adaptors.nosql_adaptor import NoSQLAdaptor
18
+
19
+ if TYPE_CHECKING:
20
+ from mypy_boto3_dynamodb.service_resource import DynamoDBServiceResource
21
+ else:
22
+ DynamoDBServiceResource = None # pylint: disable=invalid-name
23
+
24
+
25
+ class DynamoDB(NoSQLAdaptor):
26
+ """A MongoDB client that serves as an adaptor for profiling data assets on MongoDB"""
27
+
28
+ def __init__(self, client: DynamoDBServiceResource):
29
+ self.client = client
30
+
31
+ def item_count(self, table: Table) -> int:
32
+ table = self.client.Table(table.name.__root__)
33
+ return table.item_count
34
+
35
+ def scan(
36
+ self, table: Table, columns: List[Column], limit: int
37
+ ) -> List[Dict[str, any]]:
38
+ table = self.client.Table(table.name.__root__)
39
+ response = table.scan(Limit=limit)
40
+ return response["Items"]
@@ -0,0 +1,76 @@
1
+ # Copyright 2024 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
+ factory for NoSQL adaptors that are used in the NoSQLProfiler.
13
+ """
14
+ from typing import Callable
15
+
16
+ from metadata.generated.schema.entity.services.connections.database.dynamoDBConnection import (
17
+ DynamoDBConnection,
18
+ )
19
+ from metadata.generated.schema.entity.services.connections.database.mongoDBConnection import (
20
+ MongoDBConnection,
21
+ )
22
+ from metadata.profiler.adaptors.dynamodb import DynamoDB
23
+ from metadata.profiler.adaptors.mongodb import MongoDB
24
+ from metadata.profiler.adaptors.nosql_adaptor import NoSQLAdaptor
25
+ from metadata.profiler.factory import Factory
26
+
27
+ NoSQLAdaptorConstructor = Callable[[any], NoSQLAdaptor]
28
+
29
+
30
+ class NoSQLAdaptorFactory(Factory):
31
+ """
32
+ A factory class for creating NoSQL client instances.
33
+
34
+ This class maintains a registry of callable constructors for different NoSQL client types.
35
+ The client types are registered with their corresponding constructors,
36
+ and can be created using the `construct` method.
37
+ """
38
+
39
+ def register(self, interface_type: str, interface_class: NoSQLAdaptorConstructor):
40
+ """
41
+ Register a client type with its constructor.
42
+
43
+ Args:
44
+ source_class_name (str): The class of the source client.
45
+ target_class (NoSQLClientConstructor): The constructor for the target client.
46
+
47
+ Returns:
48
+ None
49
+ """
50
+ self._interface_type[interface_type] = interface_class
51
+
52
+ def create(self, interface_type: any, *args, **kwargs) -> NoSQLAdaptor:
53
+ """
54
+ Create a client instance of the type of the given source client.
55
+
56
+ Args:
57
+ interface_type (str): The type of the source connection.
58
+
59
+ Returns:
60
+ NoSQLAdaptor: The created client instance.
61
+
62
+ Raises:
63
+ ValueError: If the type of the source client is not registered.
64
+ """
65
+ client_class = self._interface_type.get(interface_type)
66
+ if not client_class:
67
+ raise ValueError(f"Unknown NoSQL source: {interface_type}")
68
+ return client_class(*args, **kwargs)
69
+
70
+
71
+ factory = NoSQLAdaptorFactory()
72
+ adaptors = {
73
+ MongoDBConnection.__name__: MongoDB,
74
+ DynamoDBConnection.__name__: DynamoDB,
75
+ }
76
+ factory.register_many(adaptors)
@@ -0,0 +1,178 @@
1
+ # Copyright 2024 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
+ MongoDB adaptor for the NoSQL profiler.
13
+ """
14
+ import json
15
+ from enum import Enum
16
+ from typing import TYPE_CHECKING, Dict, List, Optional, Union
17
+
18
+ from pydantic import BaseModel, Field
19
+
20
+ from metadata.generated.schema.entity.data.table import Column, Table
21
+ from metadata.profiler.adaptors.nosql_adaptor import NoSQLAdaptor
22
+ from metadata.utils.sqa_like_column import SQALikeColumn
23
+
24
+ # pylint: disable=invalid-name
25
+ if TYPE_CHECKING:
26
+ from pymongo import MongoClient
27
+ from pymongo.command_cursor import CommandCursor
28
+ from pymongo.cursor import Cursor
29
+ else:
30
+ MongoClient = None
31
+ CommandCursor = None
32
+ Cursor = None
33
+
34
+
35
+ class AggregationFunction(Enum):
36
+ SUM = "$sum"
37
+ MEAN = "$avg"
38
+ COUNT = "$count"
39
+ MAX = "$max"
40
+ MIN = "$min"
41
+
42
+
43
+ class Executable(BaseModel):
44
+ def to_executable(self, client: MongoClient) -> Union[CommandCursor, Cursor]:
45
+ raise NotImplementedError
46
+
47
+
48
+ class Query(Executable):
49
+ database: str
50
+ collection: str
51
+ filter: dict = Field(default_factory=dict)
52
+ limit: Optional[int] = None
53
+
54
+ def to_executable(self, client: MongoClient) -> Cursor:
55
+ db = client[self.database]
56
+ collection = db[self.collection]
57
+ query = collection.find(self.filter)
58
+ if self.limit:
59
+ query = query.limit(self.limit)
60
+ return query
61
+
62
+
63
+ class Aggregation(Executable):
64
+ database: str
65
+ collection: str
66
+ column: str
67
+ aggregations: List[AggregationFunction]
68
+
69
+ def to_executable(self, client: MongoClient) -> CommandCursor:
70
+ db = client[self.database]
71
+ collection = db[self.collection]
72
+ return collection.aggregate(
73
+ [
74
+ {
75
+ "$group": {
76
+ "_id": None,
77
+ **{
78
+ a.name.lower(): {a.value: f"${self.column}"}
79
+ for a in self.aggregations
80
+ },
81
+ }
82
+ }
83
+ ]
84
+ )
85
+
86
+
87
+ class MongoDB(NoSQLAdaptor):
88
+ """A MongoDB client that serves as an adaptor for profiling data assets on MongoDB"""
89
+
90
+ def __init__(self, client: MongoClient):
91
+ self.client = client
92
+
93
+ def item_count(self, table: Table) -> int:
94
+ db = self.client[table.databaseSchema.name]
95
+ collection = db[table.name.__root__]
96
+ return collection.count_documents({})
97
+
98
+ def scan(
99
+ self, table: Table, columns: List[Column], limit: int
100
+ ) -> List[Dict[str, any]]:
101
+ return self.execute(
102
+ Query(
103
+ database=table.databaseSchema.name,
104
+ collection=table.name.__root__,
105
+ limit=limit,
106
+ )
107
+ )
108
+
109
+ def query(
110
+ self, table: Table, columns: List[Column], query: any, limit: int
111
+ ) -> List[Dict[str, any]]:
112
+ try:
113
+ json_query = json.loads(query)
114
+ except json.JSONDecodeError:
115
+ raise ValueError("Invalid JSON query")
116
+ return self.execute(
117
+ Query(
118
+ database=table.databaseSchema.name,
119
+ collection=table.name.__root__,
120
+ filter=json_query,
121
+ )
122
+ )
123
+
124
+ def get_aggregates(
125
+ self,
126
+ table: Table,
127
+ column: SQALikeColumn,
128
+ aggregate_functions: List[AggregationFunction],
129
+ ) -> Dict[str, Union[int, float]]:
130
+ """
131
+ Get the aggregate functions for a column in a table
132
+ Returns:
133
+ Dict[str, Union[int, float]]: A dictionary of the aggregate functions
134
+ Example:
135
+ {
136
+ "sum": 100,
137
+ "avg": 50,
138
+ "count": 2,
139
+ "max": 75,
140
+ "min": 25
141
+ }
142
+ """
143
+ row = self.execute(
144
+ Aggregation(
145
+ database=table.databaseSchema.name,
146
+ collection=table.name.__root__,
147
+ column=column.name,
148
+ aggregations=aggregate_functions,
149
+ )
150
+ )[0]
151
+ return {k: v for k, v in row.items() if k != "_id"}
152
+
153
+ def sum(self, table: Table, column: SQALikeColumn) -> AggregationFunction:
154
+ return AggregationFunction.SUM
155
+
156
+ def mean(self, table: Table, column: SQALikeColumn) -> AggregationFunction:
157
+ return AggregationFunction.MEAN
158
+
159
+ def max(self, table: Table, column: SQALikeColumn) -> AggregationFunction:
160
+ return AggregationFunction.MAX
161
+
162
+ def min(self, table: Table, column: SQALikeColumn) -> AggregationFunction:
163
+ return AggregationFunction.MIN
164
+
165
+ def execute(self, query: Executable) -> List[Dict[str, any]]:
166
+ records = list(query.to_executable(self.client))
167
+ result = []
168
+ for r in records:
169
+ result.append({c: self._json_safe(r.get(c)) for c in r})
170
+ return result
171
+
172
+ @staticmethod
173
+ def _json_safe(data: any):
174
+ try:
175
+ json.dumps(data)
176
+ return data
177
+ except Exception: # noqa
178
+ return str(data)
@@ -0,0 +1,65 @@
1
+ # Copyright 2024 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
+ NoSQL adaptor for the NoSQL profiler.
13
+ """
14
+ from abc import ABC, abstractmethod
15
+ from typing import Dict, List, Union
16
+
17
+ from metadata.generated.schema.entity.data.table import Column, Table
18
+ from metadata.utils.sqa_like_column import SQALikeColumn
19
+
20
+
21
+ class NoSQLAdaptor(ABC):
22
+ """
23
+ NoSQL adaptor for the NoSQL profiler. This class implememts the required methods for retreiving data from a NoSQL
24
+ database.
25
+ """
26
+
27
+ @abstractmethod
28
+ def item_count(self, table: Table) -> int:
29
+ raise NotImplementedError
30
+
31
+ @abstractmethod
32
+ def scan(
33
+ self, table: Table, columns: List[Column], limit: int
34
+ ) -> List[Dict[str, any]]:
35
+ pass
36
+
37
+ def query(
38
+ self, table: Table, columns: List[Column], query: any, limit: int
39
+ ) -> List[Dict[str, any]]:
40
+ raise NotImplementedError
41
+
42
+ def get_aggregates(
43
+ self, table: Table, column: SQALikeColumn, aggregate_functions: List[any]
44
+ ) -> Dict[str, Union[int, float]]:
45
+ raise NotImplementedError
46
+
47
+ def sum(
48
+ self, table: Table, column: Column # pylint: disable=unused-argument
49
+ ) -> any:
50
+ return None
51
+
52
+ def mean(
53
+ self, table: Table, column: Column # pylint: disable=unused-argument
54
+ ) -> any:
55
+ return None
56
+
57
+ def max(
58
+ self, table: Table, column: Column # pylint: disable=unused-argument
59
+ ) -> any:
60
+ return None
61
+
62
+ def min(
63
+ self, table: Table, column: Column # pylint: disable=unused-argument
64
+ ) -> any:
65
+ return None
@@ -122,7 +122,7 @@ class ProfilerResponse(ConfigModel):
122
122
 
123
123
 
124
124
  class ThreadPoolMetrics(ConfigModel):
125
- """thread pool metric"""
125
+ """A container for all metrics to be computed on the same thread."""
126
126
 
127
127
  metrics: Union[List[Union[Type[Metric], CustomMetric]], Type[Metric]]
128
128
  metric_type: MetricTypes
@@ -0,0 +1,41 @@
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
+ Factory class for creating profiler interface objects
14
+ """
15
+ from abc import ABC, abstractmethod
16
+
17
+
18
+ class Factory(ABC):
19
+ """Creational factory for interface objects"""
20
+
21
+ def __init__(self):
22
+ self._interface_type = {}
23
+
24
+ def register(self, interface_type: str, interface_class):
25
+ """Register a new interface"""
26
+ self._interface_type[interface_type] = interface_class
27
+
28
+ def register_many(self, interface_dict):
29
+ """
30
+ Registers multiple profiler interfaces at once.
31
+
32
+ Args:
33
+ interface_dict: A dictionary mapping connection class names (strings) to their
34
+ corresponding profiler interface classes.
35
+ """
36
+ for interface_type, interface_class in interface_dict.items():
37
+ self.register(interface_type, interface_class)
38
+
39
+ @abstractmethod
40
+ def create(self, interface_type: str, *args, **kwargs) -> any:
41
+ pass
@@ -0,0 +1,236 @@
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
+ # pylint: disable=arguments-differ
12
+
13
+ """
14
+ Interfaces with database for all database engine
15
+ supporting sqlalchemy abstraction layer
16
+ """
17
+ import traceback
18
+ from collections import defaultdict
19
+ from datetime import datetime, timezone
20
+ from typing import Dict, List, Optional, Type
21
+
22
+ from sqlalchemy import Column
23
+
24
+ from metadata.generated.schema.entity.data.table import TableData
25
+ from metadata.generated.schema.tests.customMetric import CustomMetric
26
+ from metadata.profiler.adaptors.factory import factory
27
+ from metadata.profiler.adaptors.nosql_adaptor import NoSQLAdaptor
28
+ from metadata.profiler.api.models import ThreadPoolMetrics
29
+ from metadata.profiler.interface.profiler_interface import ProfilerInterface
30
+ from metadata.profiler.metrics.core import Metric, MetricTypes
31
+ from metadata.profiler.metrics.registry import Metrics
32
+ from metadata.profiler.processor.metric_filter import MetricFilter
33
+ from metadata.profiler.processor.sampler.nosql.sampler import NoSQLSampler
34
+ from metadata.utils.logger import profiler_interface_registry_logger
35
+ from metadata.utils.sqa_like_column import SQALikeColumn
36
+
37
+ logger = profiler_interface_registry_logger()
38
+
39
+
40
+ class NoSQLProfilerInterface(ProfilerInterface):
41
+ """
42
+ Interface to interact with registry supporting
43
+ sqlalchemy.
44
+ """
45
+
46
+ # pylint: disable=too-many-arguments
47
+
48
+ def __init__(self, *args, **kwargs):
49
+ super().__init__(*args, **kwargs)
50
+ self.sampler = self._get_sampler()
51
+
52
+ def _compute_table_metrics(
53
+ self,
54
+ metrics: List[Type[Metric]],
55
+ runner: NoSQLAdaptor,
56
+ *args,
57
+ **kwargs,
58
+ ):
59
+ result = {}
60
+ for metric in metrics:
61
+ try:
62
+ fn = metric().nosql_fn(runner)
63
+ result[metric.name()] = fn(self.table)
64
+ except Exception as exc:
65
+ logger.debug(
66
+ f"{traceback.format_exc()}\n"
67
+ f"Error trying to compute metric {metric} for {self.table.fullyQualifiedName}: {exc}"
68
+ )
69
+ raise RuntimeError(
70
+ f"Error trying to compute metric {metric.name()} for {self.table.fullyQualifiedName}: {exc}"
71
+ )
72
+ return result
73
+
74
+ def _compute_static_metrics(
75
+ self,
76
+ metrics: List[Metrics],
77
+ runner: NoSQLAdaptor,
78
+ column: SQALikeColumn,
79
+ *args,
80
+ **kwargs,
81
+ ) -> Dict[str, any]:
82
+ try:
83
+ aggs = [metric(column).nosql_fn(runner)(self.table) for metric in metrics]
84
+ filtered = [agg for agg in aggs if agg is not None]
85
+ if not filtered:
86
+ return {}
87
+ row = runner.get_aggregates(self.table, column, filtered)
88
+ return dict(row)
89
+ except Exception as exc:
90
+ logger.debug(
91
+ f"{traceback.format_exc()}\n"
92
+ f"Error trying to compute metrics for {self.table.fullyQualifiedName}: {exc}"
93
+ )
94
+ raise RuntimeError(
95
+ f"Error trying to compute metris for {self.table.fullyQualifiedName}: {exc}"
96
+ )
97
+
98
+ def _compute_query_metrics(
99
+ self,
100
+ metric: Metrics,
101
+ runner,
102
+ *args,
103
+ **kwargs,
104
+ ):
105
+ return None
106
+
107
+ def _compute_window_metrics(
108
+ self,
109
+ metrics: List[Metrics],
110
+ runner,
111
+ *args,
112
+ **kwargs,
113
+ ):
114
+ return None
115
+
116
+ def _compute_system_metrics(
117
+ self,
118
+ metrics: Metrics,
119
+ runner: List,
120
+ *args,
121
+ **kwargs,
122
+ ):
123
+ return None
124
+
125
+ def _compute_custom_metrics(
126
+ self, metrics: List[CustomMetric], runner, *args, **kwargs
127
+ ):
128
+ return None
129
+
130
+ def compute_metrics(
131
+ self,
132
+ client: NoSQLAdaptor,
133
+ metric_func: ThreadPoolMetrics,
134
+ ):
135
+ """Run metrics in processor worker"""
136
+ logger.debug(f"Running profiler for {metric_func.table}")
137
+ try:
138
+ row = self._get_metric_fn[metric_func.metric_type.value](
139
+ metric_func.metrics,
140
+ client,
141
+ column=metric_func.column,
142
+ )
143
+ except Exception as exc:
144
+ name = f"{metric_func.column if metric_func.column is not None else metric_func.table}"
145
+ error = f"{name} metric_type.value: {exc}"
146
+ logger.error(error)
147
+ self.status.failed_profiler(error, traceback.format_exc())
148
+ row = None
149
+ if metric_func.column is not None:
150
+ column = metric_func.column.name
151
+ self.status.scanned(f"{metric_func.table.name.__root__}.{column}")
152
+ else:
153
+ self.status.scanned(metric_func.table.name.__root__)
154
+ column = None
155
+ return row, column, metric_func.metric_type.value
156
+
157
+ def fetch_sample_data(self, table, columns: List[SQALikeColumn]) -> TableData:
158
+ return self.sampler.fetch_sample_data(columns)
159
+
160
+ def _get_sampler(self) -> NoSQLSampler:
161
+ """Get NoSQL sampler from config"""
162
+ from metadata.profiler.processor.sampler.sampler_factory import ( # pylint: disable=import-outside-toplevel
163
+ sampler_factory_,
164
+ )
165
+
166
+ return sampler_factory_.create(
167
+ self.service_connection_config.__class__.__name__,
168
+ table=self.table,
169
+ client=factory.create(
170
+ self.service_connection_config.__class__.__name__,
171
+ client=self.connection,
172
+ ),
173
+ profile_sample_config=self.profile_sample_config,
174
+ partition_details=self.partition_details,
175
+ profile_sample_query=self.profile_query,
176
+ )
177
+
178
+ def get_composed_metrics(
179
+ self, column: Column, metric: Metrics, column_results: Dict
180
+ ):
181
+ return None
182
+
183
+ def get_hybrid_metrics(
184
+ self, column: Column, metric: Metrics, column_results: Dict, **kwargs
185
+ ):
186
+ return None
187
+
188
+ def get_all_metrics(
189
+ self,
190
+ metric_funcs: List[ThreadPoolMetrics],
191
+ ):
192
+ """get all profiler metrics"""
193
+ profile_results = {"table": {}, "columns": defaultdict(dict)}
194
+ runner = factory.create(
195
+ self.service_connection_config.__class__.__name__,
196
+ client=self.connection,
197
+ )
198
+ metric_list = [
199
+ self.compute_metrics(runner, metric_func)
200
+ for metric_func in MetricFilter.filter_empty_metrics(metric_funcs)
201
+ ]
202
+ for metric_result in metric_list:
203
+ profile, column, metric_type = metric_result
204
+ if profile:
205
+ if metric_type == MetricTypes.Table.value:
206
+ profile_results["table"].update(profile)
207
+ if metric_type == MetricTypes.System.value:
208
+ profile_results["system"] = profile
209
+ elif metric_type == MetricTypes.Custom.value and column is None:
210
+ profile_results["table"].update(profile)
211
+ else:
212
+ profile_results["columns"][column].update(
213
+ {
214
+ "name": column,
215
+ "timestamp": int(
216
+ datetime.now(tz=timezone.utc).timestamp() * 1000
217
+ ),
218
+ **profile,
219
+ }
220
+ )
221
+ return profile_results
222
+
223
+ @property
224
+ def table(self):
225
+ """OM Table entity"""
226
+ return self.table_entity
227
+
228
+ def get_columns(self) -> List[Optional[SQALikeColumn]]:
229
+ return [
230
+ SQALikeColumn(name=c.name.__root__, type=c.dataType)
231
+ for c in self.table.columns
232
+ ]
233
+
234
+ def close(self):
235
+ if getattr(self.connection, "close", None):
236
+ self.connection.close()