openmetadata-ingestion 1.3.3.0rc1__py3-none-any.whl → 1.4.0.0rc1__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (961) hide show
  1. metadata/automations/runner.py +9 -0
  2. metadata/cli/backup.py +7 -0
  3. metadata/cli/lineage.py +5 -1
  4. metadata/cli/restore.py +7 -0
  5. metadata/cmd.py +2 -152
  6. metadata/data_insight/processor/reports/cost_analysis_report_data_processor.py +0 -1
  7. metadata/data_quality/api/models.py +1 -0
  8. metadata/data_quality/processor/test_case_runner.py +9 -2
  9. metadata/data_quality/source/test_suite.py +6 -1
  10. metadata/data_quality/validations/base_test_handler.py +1 -1
  11. metadata/data_quality/validations/column/base/columnValuesMissingCount.py +4 -1
  12. metadata/data_quality/validations/column/sqlalchemy/columnValuesToBeUnique.py +28 -17
  13. metadata/data_quality/validations/mixins/sqa_validator_mixin.py +4 -1
  14. metadata/data_quality/validations/table/base/tableCustomSQLQuery.py +1 -1
  15. metadata/examples/workflows/airbyte.yaml +1 -0
  16. metadata/examples/workflows/airflow.yaml +1 -1
  17. metadata/examples/workflows/airflow_backend.yaml +1 -1
  18. metadata/examples/workflows/airflow_postgres.yaml +1 -1
  19. metadata/examples/workflows/amundsen.yaml +1 -0
  20. metadata/examples/workflows/athena.yaml +1 -0
  21. metadata/examples/workflows/athena_lineage.yaml +1 -1
  22. metadata/examples/workflows/athena_usage.yaml +1 -0
  23. metadata/examples/workflows/atlas.yaml +1 -0
  24. metadata/examples/workflows/azuresql.yaml +1 -0
  25. metadata/examples/workflows/azuresql_lineage.yaml +1 -0
  26. metadata/examples/workflows/azuresql_usage.yaml +1 -0
  27. metadata/examples/workflows/bigquery.yaml +1 -0
  28. metadata/examples/workflows/bigquery_lineage.yaml +1 -0
  29. metadata/examples/workflows/bigquery_profiler.yaml +1 -0
  30. metadata/examples/workflows/bigquery_usage.yaml +1 -0
  31. metadata/examples/workflows/bigtable.yaml +1 -1
  32. metadata/examples/workflows/clickhouse.yaml +1 -0
  33. metadata/examples/workflows/clickhouse_lineage.yaml +1 -0
  34. metadata/examples/workflows/clickhouse_usage.yaml +1 -0
  35. metadata/examples/workflows/couchbase.yaml +1 -1
  36. metadata/examples/workflows/dagster.yaml +1 -0
  37. metadata/examples/workflows/data_insight.yaml +1 -1
  38. metadata/examples/workflows/databricks.yaml +1 -0
  39. metadata/examples/workflows/databricks_lineage.yaml +1 -0
  40. metadata/examples/workflows/databricks_pipeline.yaml +1 -0
  41. metadata/examples/workflows/databricks_usage.yaml +1 -0
  42. metadata/examples/workflows/datalake_azure_client_secret.yaml +1 -0
  43. metadata/examples/workflows/datalake_gcs.yaml +1 -0
  44. metadata/examples/workflows/datalake_profiler.yaml +1 -0
  45. metadata/examples/workflows/datalake_s3.yaml +1 -0
  46. metadata/examples/workflows/db2.yaml +1 -0
  47. metadata/examples/workflows/db2_profiler.yaml +1 -0
  48. metadata/examples/workflows/dbt.yaml +2 -0
  49. metadata/examples/workflows/deltalake.yaml +1 -0
  50. metadata/examples/workflows/domodashboard.yaml +1 -0
  51. metadata/examples/workflows/dynamodb.yaml +1 -0
  52. metadata/examples/workflows/elasticsearch.yaml +1 -1
  53. metadata/examples/workflows/fivetran.yaml +1 -0
  54. metadata/examples/workflows/glue.yaml +1 -0
  55. metadata/examples/workflows/gluepipeline.yaml +1 -0
  56. metadata/examples/workflows/hive.yaml +1 -0
  57. metadata/examples/workflows/impala.yaml +1 -0
  58. metadata/examples/workflows/kafka.yaml +1 -1
  59. metadata/examples/workflows/kinesis.yaml +1 -1
  60. metadata/examples/workflows/lightdash.yaml +1 -0
  61. metadata/examples/workflows/looker.yaml +1 -0
  62. metadata/examples/workflows/mariadb.yaml +1 -0
  63. metadata/examples/workflows/metabase.yaml +1 -0
  64. metadata/examples/workflows/mlflow.yaml +1 -0
  65. metadata/examples/workflows/mode.yaml +3 -1
  66. metadata/examples/workflows/mongodb.yaml +1 -0
  67. metadata/examples/workflows/mssql.yaml +1 -0
  68. metadata/examples/workflows/mssql_lineage.yaml +1 -0
  69. metadata/examples/workflows/mssql_usage.yaml +1 -0
  70. metadata/examples/workflows/mstr.yaml +1 -0
  71. metadata/examples/workflows/mysql.yaml +1 -0
  72. metadata/examples/workflows/mysql_profiler.yaml +1 -0
  73. metadata/examples/workflows/openmetadata.yaml +1 -0
  74. metadata/examples/workflows/oracle.yaml +1 -0
  75. metadata/examples/workflows/oracle_lineage.yaml +1 -1
  76. metadata/examples/workflows/oracle_usage.yaml +1 -0
  77. metadata/examples/workflows/pinotdb.yaml +1 -0
  78. metadata/examples/workflows/postgres.yaml +1 -0
  79. metadata/examples/workflows/postgres_lineage.yaml +1 -1
  80. metadata/examples/workflows/postgres_usage.yaml +1 -1
  81. metadata/examples/workflows/powerbi.yaml +52 -0
  82. metadata/examples/workflows/presto.yaml +1 -0
  83. metadata/examples/workflows/qlik_sense.yaml +6 -4
  84. metadata/examples/workflows/qlikcloud.yaml +31 -0
  85. metadata/examples/workflows/query_log_usage.yaml +1 -0
  86. metadata/examples/workflows/quicksight.yaml +1 -0
  87. metadata/examples/workflows/redash.yaml +1 -0
  88. metadata/examples/workflows/redpanda.yaml +1 -0
  89. metadata/examples/workflows/redshift.yaml +1 -0
  90. metadata/examples/workflows/redshift_lineage.yaml +1 -0
  91. metadata/examples/workflows/redshift_profiler.yaml +1 -0
  92. metadata/examples/workflows/redshift_usage.yaml +1 -0
  93. metadata/examples/workflows/sagemaker.yaml +1 -1
  94. metadata/examples/workflows/salesforce.yaml +1 -0
  95. metadata/examples/workflows/sas.yaml +1 -1
  96. metadata/examples/workflows/singlestore.yaml +1 -0
  97. metadata/examples/workflows/snowflake.yaml +1 -0
  98. metadata/examples/workflows/snowflake_lineage.yaml +1 -0
  99. metadata/examples/workflows/snowflake_usage.yaml +1 -0
  100. metadata/examples/workflows/spline.yaml +5 -4
  101. metadata/examples/workflows/sqlite.yaml +1 -0
  102. metadata/examples/workflows/superset.yaml +1 -0
  103. metadata/examples/workflows/tableau.yaml +1 -0
  104. metadata/examples/workflows/test_suite.yaml +13 -16
  105. metadata/examples/workflows/trino.yaml +1 -0
  106. metadata/examples/workflows/trino_lineage.yaml +1 -0
  107. metadata/examples/workflows/trino_usage.yaml +1 -0
  108. metadata/examples/workflows/unity_catalog.yaml +1 -1
  109. metadata/examples/workflows/unity_catalog_lineage.yaml +1 -1
  110. metadata/examples/workflows/unity_catalog_usage.yaml +1 -1
  111. metadata/examples/workflows/vertica.yaml +1 -0
  112. metadata/generated/antlr/EntityLinkLexer.py +354 -349
  113. metadata/generated/schema/analytics/__init__.py +1 -1
  114. metadata/generated/schema/analytics/basic.py +1 -1
  115. metadata/generated/schema/analytics/reportData.py +1 -1
  116. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  117. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  118. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  119. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  120. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  121. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  122. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  123. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  124. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  125. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  126. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  127. metadata/generated/schema/api/__init__.py +1 -1
  128. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  129. metadata/generated/schema/api/analytics/__init__.py +1 -1
  130. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  131. metadata/generated/schema/api/automations/__init__.py +1 -1
  132. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  133. metadata/generated/schema/api/bulkAssets.py +1 -1
  134. metadata/generated/schema/api/classification/__init__.py +1 -1
  135. metadata/generated/schema/api/classification/createClassification.py +2 -3
  136. metadata/generated/schema/api/classification/createTag.py +2 -3
  137. metadata/generated/schema/api/classification/loadTags.py +1 -1
  138. metadata/generated/schema/api/createBot.py +1 -1
  139. metadata/generated/schema/api/createEventPublisherJob.py +1 -1
  140. metadata/generated/schema/api/createType.py +1 -1
  141. metadata/generated/schema/api/data/__init__.py +1 -1
  142. metadata/generated/schema/api/data/createChart.py +1 -1
  143. metadata/generated/schema/api/data/createContainer.py +4 -1
  144. metadata/generated/schema/api/data/createCustomProperty.py +1 -1
  145. metadata/generated/schema/api/data/createDashboard.py +1 -1
  146. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  147. metadata/generated/schema/api/data/createDatabase.py +1 -1
  148. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  149. metadata/generated/schema/api/data/createGlossary.py +1 -1
  150. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  151. metadata/generated/schema/api/data/createMlModel.py +1 -1
  152. metadata/generated/schema/api/data/createPipeline.py +1 -1
  153. metadata/generated/schema/api/data/createQuery.py +1 -1
  154. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  155. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  156. metadata/generated/schema/api/data/createTable.py +1 -1
  157. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  158. metadata/generated/schema/api/data/createTopic.py +1 -1
  159. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  160. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  161. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  162. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  163. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  164. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  165. metadata/generated/schema/api/docStore/__init__.py +1 -1
  166. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  167. metadata/generated/schema/api/domains/__init__.py +1 -1
  168. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  169. metadata/generated/schema/api/domains/createDomain.py +1 -1
  170. metadata/generated/schema/api/feed/__init__.py +1 -1
  171. metadata/generated/schema/api/feed/closeTask.py +1 -1
  172. metadata/generated/schema/api/feed/createPost.py +1 -1
  173. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  174. metadata/generated/schema/api/feed/createThread.py +1 -1
  175. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  176. metadata/generated/schema/api/feed/threadCount.py +1 -1
  177. metadata/generated/schema/api/lineage/__init__.py +1 -1
  178. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  179. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  180. metadata/generated/schema/api/policies/__init__.py +1 -1
  181. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  182. metadata/generated/schema/api/services/__init__.py +1 -1
  183. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  184. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  185. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  186. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  187. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  188. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  189. metadata/generated/schema/api/services/createSearchService.py +1 -1
  190. metadata/generated/schema/api/services/createStorageService.py +1 -1
  191. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  192. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  193. metadata/generated/schema/api/setOwner.py +1 -1
  194. metadata/generated/schema/api/teams/__init__.py +1 -1
  195. metadata/generated/schema/api/teams/createPersona.py +1 -1
  196. metadata/generated/schema/api/teams/createRole.py +1 -1
  197. metadata/generated/schema/api/teams/createTeam.py +1 -1
  198. metadata/generated/schema/api/teams/createUser.py +1 -1
  199. metadata/generated/schema/api/tests/__init__.py +1 -1
  200. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  201. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  202. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  203. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  204. metadata/generated/schema/api/tests/createTestDefinition.py +1 -1
  205. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  206. metadata/generated/schema/api/voteRequest.py +1 -1
  207. metadata/generated/schema/auth/__init__.py +1 -1
  208. metadata/generated/schema/auth/basicAuth.py +1 -1
  209. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  210. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  211. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  212. metadata/generated/schema/auth/emailRequest.py +1 -1
  213. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  214. metadata/generated/schema/auth/generateToken.py +1 -1
  215. metadata/generated/schema/auth/jwtAuth.py +1 -1
  216. metadata/generated/schema/auth/loginRequest.py +1 -1
  217. metadata/generated/schema/auth/logoutRequest.py +1 -1
  218. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  219. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  220. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  221. metadata/generated/schema/auth/refreshToken.py +1 -1
  222. metadata/generated/schema/auth/registrationRequest.py +1 -1
  223. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  224. metadata/generated/schema/auth/revokeToken.py +1 -1
  225. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  226. metadata/generated/schema/auth/ssoAuth.py +1 -1
  227. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  228. metadata/generated/schema/configuration/__init__.py +1 -1
  229. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  230. metadata/generated/schema/configuration/authConfig.py +1 -1
  231. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  232. metadata/generated/schema/configuration/authorizerConfiguration.py +4 -1
  233. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  234. metadata/generated/schema/configuration/dataQualityConfiguration.py +1 -1
  235. metadata/generated/schema/configuration/elasticSearchConfiguration.py +4 -1
  236. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  237. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  238. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  239. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  240. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  241. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  242. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  243. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  244. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  245. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  246. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  247. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  248. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  249. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  250. metadata/generated/schema/configuration/profilerConfiguration.py +66 -0
  251. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  252. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  253. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  254. metadata/generated/schema/configuration/themeConfiguration.py +32 -0
  255. metadata/generated/schema/configuration/uiThemePreference.py +23 -0
  256. metadata/generated/schema/dataInsight/__init__.py +1 -1
  257. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  258. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  259. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  260. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  261. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  262. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  263. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  264. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  265. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  266. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  267. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  268. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  269. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  270. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  271. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithDescriptionByType.py +1 -1
  272. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +1 -1
  273. metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +1 -1
  274. metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +1 -1
  275. metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +1 -1
  276. metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +1 -1
  277. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  278. metadata/generated/schema/email/__init__.py +1 -1
  279. metadata/generated/schema/email/emailRequest.py +1 -1
  280. metadata/generated/schema/email/smtpSettings.py +1 -1
  281. metadata/generated/schema/entity/__init__.py +1 -1
  282. metadata/generated/schema/entity/applications/__init__.py +1 -1
  283. metadata/generated/schema/entity/applications/app.py +1 -1
  284. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  285. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  286. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +3 -3
  287. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  288. metadata/generated/schema/entity/applications/configuration/external/automator/__init__.py +5 -0
  289. metadata/generated/schema/entity/applications/configuration/external/automator/addDescriptionAction.py +36 -0
  290. metadata/generated/schema/entity/applications/configuration/external/automator/addDomainAction.py +31 -0
  291. metadata/generated/schema/entity/applications/configuration/external/automator/addOwnerAction.py +31 -0
  292. metadata/generated/schema/entity/applications/configuration/external/automator/addTagsAction.py +36 -0
  293. metadata/generated/schema/entity/applications/configuration/external/automator/addTierAction.py +31 -0
  294. metadata/generated/schema/entity/applications/configuration/external/automator/lineagePropagationAction.py +28 -0
  295. metadata/generated/schema/entity/applications/configuration/external/automator/mlTaggingAction.py +22 -0
  296. metadata/generated/schema/entity/applications/configuration/external/automator/removeDescriptionAction.py +30 -0
  297. metadata/generated/schema/entity/applications/configuration/external/automator/removeDomainAction.py +22 -0
  298. metadata/generated/schema/entity/applications/configuration/external/automator/removeOwnerAction.py +22 -0
  299. metadata/generated/schema/entity/applications/configuration/external/automator/removeTagsAction.py +31 -0
  300. metadata/generated/schema/entity/applications/configuration/external/automator/removeTierAction.py +22 -0
  301. metadata/generated/schema/entity/applications/configuration/external/automatorAppConfig.py +75 -0
  302. metadata/generated/schema/entity/applications/configuration/external/metaPilotAppConfig.py +1 -1
  303. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  304. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  305. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  306. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +1 -1
  307. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  308. metadata/generated/schema/entity/applications/configuration/private/external/metaPilotAppPrivateConfig.py +1 -1
  309. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  310. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  311. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  312. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  313. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +5 -1
  314. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  315. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  316. metadata/generated/schema/entity/automations/__init__.py +1 -1
  317. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  318. metadata/generated/schema/entity/automations/workflow.py +1 -1
  319. metadata/generated/schema/entity/bot.py +1 -1
  320. metadata/generated/schema/entity/classification/__init__.py +1 -1
  321. metadata/generated/schema/entity/classification/classification.py +2 -3
  322. metadata/generated/schema/entity/classification/tag.py +3 -9
  323. metadata/generated/schema/entity/data/__init__.py +1 -1
  324. metadata/generated/schema/entity/data/chart.py +1 -1
  325. metadata/generated/schema/entity/data/container.py +4 -1
  326. metadata/generated/schema/entity/data/dashboard.py +1 -1
  327. metadata/generated/schema/entity/data/dashboardDataModel.py +2 -2
  328. metadata/generated/schema/entity/data/database.py +1 -1
  329. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  330. metadata/generated/schema/entity/data/glossary.py +1 -1
  331. metadata/generated/schema/entity/data/glossaryTerm.py +4 -1
  332. metadata/generated/schema/entity/data/metrics.py +1 -1
  333. metadata/generated/schema/entity/data/mlmodel.py +2 -2
  334. metadata/generated/schema/entity/data/pipeline.py +1 -1
  335. metadata/generated/schema/entity/data/query.py +1 -1
  336. metadata/generated/schema/entity/data/report.py +1 -1
  337. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  338. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  339. metadata/generated/schema/entity/data/table.py +21 -20
  340. metadata/generated/schema/entity/data/topic.py +1 -1
  341. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  342. metadata/generated/schema/entity/docStore/document.py +1 -1
  343. metadata/generated/schema/entity/domains/__init__.py +1 -1
  344. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  345. metadata/generated/schema/entity/domains/domain.py +1 -1
  346. metadata/generated/schema/entity/events/__init__.py +1 -1
  347. metadata/generated/schema/entity/events/webhook.py +1 -1
  348. metadata/generated/schema/entity/feed/__init__.py +1 -1
  349. metadata/generated/schema/entity/feed/assets.py +18 -0
  350. metadata/generated/schema/entity/feed/customProperty.py +17 -0
  351. metadata/generated/schema/entity/feed/description.py +24 -0
  352. metadata/generated/schema/entity/feed/domain.py +23 -0
  353. metadata/generated/schema/entity/feed/entityInfo.py +19 -0
  354. metadata/generated/schema/entity/feed/owner.py +23 -0
  355. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  356. metadata/generated/schema/entity/feed/tag.py +23 -0
  357. metadata/generated/schema/entity/feed/testCaseResult.py +23 -0
  358. metadata/generated/schema/entity/feed/thread.py +71 -2
  359. metadata/generated/schema/entity/policies/__init__.py +1 -1
  360. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  361. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +3 -1
  362. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  363. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  364. metadata/generated/schema/entity/policies/filters.py +3 -3
  365. metadata/generated/schema/entity/policies/policy.py +1 -1
  366. metadata/generated/schema/entity/services/__init__.py +1 -1
  367. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  368. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  369. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  370. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  371. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  372. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  373. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  374. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  375. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  376. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  377. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  378. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  379. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  380. metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +1 -1
  381. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +33 -2
  382. metadata/generated/schema/entity/services/connections/dashboard/powerbi/__init__.py +3 -0
  383. metadata/generated/schema/entity/services/connections/dashboard/powerbi/azureConfig.py +37 -0
  384. metadata/generated/schema/entity/services/connections/dashboard/powerbi/bucketDetails.py +25 -0
  385. metadata/generated/schema/entity/services/connections/dashboard/powerbi/gcsConfig.py +37 -0
  386. metadata/generated/schema/entity/services/connections/dashboard/powerbi/s3Config.py +37 -0
  387. metadata/generated/schema/entity/services/connections/dashboard/qlikCloudConnection.py +38 -0
  388. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +6 -15
  389. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  390. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  391. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  392. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  393. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  394. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  395. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  396. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  397. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +1 -1
  398. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  399. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  400. metadata/generated/schema/entity/services/connections/database/common/azureConfig.py +1 -1
  401. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  402. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  403. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  404. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  405. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  406. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  407. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  408. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  409. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  410. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  411. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  412. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  413. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  414. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  415. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +4 -13
  416. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  417. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +4 -1
  418. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  419. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +2 -15
  420. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  421. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  422. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  423. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  424. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  425. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  426. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  427. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  428. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  429. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  430. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  431. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +4 -1
  432. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  433. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +4 -13
  434. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  435. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +1 -1
  436. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +2 -15
  437. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +11 -1
  438. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +2 -15
  439. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  440. metadata/generated/schema/entity/services/connections/database/sapHana/__init__.py +1 -1
  441. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaHDBConnection.py +1 -1
  442. metadata/generated/schema/entity/services/connections/database/sapHana/sapHanaSQLConnection.py +1 -1
  443. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  444. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  445. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  446. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  447. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  448. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +6 -1
  449. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  450. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  451. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  452. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  453. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +7 -1
  454. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  455. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  456. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +1 -1
  457. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  458. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  459. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +7 -3
  460. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  461. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  462. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +1 -1
  463. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  464. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  465. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  466. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  467. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  468. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  469. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  470. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  471. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  472. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  473. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  474. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  475. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  476. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  477. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  478. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  479. metadata/generated/schema/entity/services/connections/pipeline/kafkaConnectConnection.py +61 -0
  480. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  481. metadata/generated/schema/entity/services/connections/pipeline/openLineageConnection.py +73 -0
  482. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  483. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  484. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  485. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  486. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  487. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  488. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  489. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  490. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  491. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  492. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  493. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  494. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  495. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  496. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  497. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  498. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  499. metadata/generated/schema/entity/services/dashboardService.py +4 -1
  500. metadata/generated/schema/entity/services/databaseService.py +1 -1
  501. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  502. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  503. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  504. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  505. metadata/generated/schema/entity/services/messagingService.py +1 -1
  506. metadata/generated/schema/entity/services/metadataService.py +1 -1
  507. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  508. metadata/generated/schema/entity/services/pipelineService.py +7 -1
  509. metadata/generated/schema/entity/services/searchService.py +1 -1
  510. metadata/generated/schema/entity/services/serviceType.py +1 -1
  511. metadata/generated/schema/entity/services/storageService.py +1 -1
  512. metadata/generated/schema/entity/teams/__init__.py +1 -1
  513. metadata/generated/schema/entity/teams/persona.py +1 -1
  514. metadata/generated/schema/entity/teams/role.py +1 -1
  515. metadata/generated/schema/entity/teams/team.py +1 -1
  516. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  517. metadata/generated/schema/entity/teams/user.py +1 -1
  518. metadata/generated/schema/entity/type.py +1 -1
  519. metadata/generated/schema/entity/utils/__init__.py +1 -1
  520. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  521. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  522. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  523. metadata/generated/schema/events/__init__.py +1 -1
  524. metadata/generated/schema/events/alertMetrics.py +1 -1
  525. metadata/generated/schema/events/api/__init__.py +1 -1
  526. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  527. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  528. metadata/generated/schema/events/eventFilterRule.py +10 -1
  529. metadata/generated/schema/events/eventSubscription.py +6 -2
  530. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  531. metadata/generated/schema/events/failedEvent.py +1 -1
  532. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  533. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  534. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  535. metadata/generated/schema/metadataIngestion/application.py +1 -1
  536. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  537. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +19 -6
  538. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  539. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +32 -1
  540. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +23 -23
  541. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  542. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  543. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  544. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  545. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  546. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  547. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  548. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  549. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  550. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  551. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  552. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  553. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  554. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  555. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +22 -4
  556. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  557. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  558. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  559. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  560. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  561. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  562. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  563. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  564. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  565. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  566. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  567. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  568. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  569. metadata/generated/schema/monitoring/__init__.py +1 -1
  570. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  571. metadata/generated/schema/security/__init__.py +1 -1
  572. metadata/generated/schema/security/client/__init__.py +1 -1
  573. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  574. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  575. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  576. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  577. metadata/generated/schema/security/client/oidcClientConfig.py +1 -1
  578. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  579. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  580. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  581. metadata/generated/schema/security/credentials/__init__.py +1 -1
  582. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  583. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  584. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  585. metadata/generated/schema/security/credentials/azureCredentials.py +1 -1
  586. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  587. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  588. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  589. metadata/generated/schema/security/credentials/gcpExternalAccount.py +1 -1
  590. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  591. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  592. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  593. metadata/generated/schema/security/secrets/__init__.py +1 -1
  594. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  595. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  596. metadata/generated/schema/security/secrets/secretsManagerProvider.py +1 -1
  597. metadata/generated/schema/security/securityConfiguration.py +1 -1
  598. metadata/generated/schema/security/ssl/__init__.py +1 -1
  599. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +16 -4
  600. metadata/generated/schema/security/ssl/verifySSLConfig.py +10 -1
  601. metadata/generated/schema/settings/__init__.py +1 -1
  602. metadata/generated/schema/settings/settings.py +5 -2
  603. metadata/generated/schema/system/__init__.py +1 -1
  604. metadata/generated/schema/system/entityError.py +1 -1
  605. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  606. metadata/generated/schema/system/indexingError.py +1 -1
  607. metadata/generated/schema/system/ui/__init__.py +1 -1
  608. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  609. metadata/generated/schema/system/ui/page.py +1 -1
  610. metadata/generated/schema/system/validationResponse.py +1 -1
  611. metadata/generated/schema/tests/__init__.py +1 -1
  612. metadata/generated/schema/tests/assigned.py +1 -1
  613. metadata/generated/schema/tests/basic.py +31 -15
  614. metadata/generated/schema/tests/customMetric.py +1 -1
  615. metadata/generated/schema/tests/resolved.py +1 -1
  616. metadata/generated/schema/tests/testCase.py +12 -1
  617. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  618. metadata/generated/schema/tests/testDefinition.py +21 -1
  619. metadata/generated/schema/tests/testSuite.py +1 -1
  620. metadata/generated/schema/type/__init__.py +1 -1
  621. metadata/generated/schema/type/auditLog.py +1 -1
  622. metadata/generated/schema/type/basic.py +1 -1
  623. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  624. metadata/generated/schema/type/changeEvent.py +1 -1
  625. metadata/generated/schema/type/changeEventType.py +1 -1
  626. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  627. metadata/generated/schema/type/csvDocumentation.py +1 -1
  628. metadata/generated/schema/type/csvErrorType.py +1 -1
  629. metadata/generated/schema/type/csvFile.py +1 -1
  630. metadata/generated/schema/type/csvImportResult.py +1 -1
  631. metadata/generated/schema/type/customProperties/__init__.py +1 -1
  632. metadata/generated/schema/type/customProperties/complexTypes.py +87 -0
  633. metadata/generated/schema/type/customProperties/enumConfig.py +1 -1
  634. metadata/generated/schema/type/customProperty.py +3 -3
  635. metadata/generated/schema/type/dailyCount.py +1 -1
  636. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  637. metadata/generated/schema/type/entityHierarchy.py +39 -0
  638. metadata/generated/schema/type/entityHistory.py +1 -1
  639. metadata/generated/schema/type/entityLineage.py +3 -1
  640. metadata/generated/schema/type/entityReference.py +1 -1
  641. metadata/generated/schema/type/entityReferenceList.py +1 -1
  642. metadata/generated/schema/type/entityRelationship.py +1 -1
  643. metadata/generated/schema/type/entityUsage.py +1 -1
  644. metadata/generated/schema/type/filterPattern.py +1 -1
  645. metadata/generated/schema/type/function.py +1 -1
  646. metadata/generated/schema/type/include.py +1 -1
  647. metadata/generated/schema/type/jdbcConnection.py +1 -1
  648. metadata/generated/schema/type/lifeCycle.py +1 -1
  649. metadata/generated/schema/type/paging.py +4 -1
  650. metadata/generated/schema/type/profile.py +1 -1
  651. metadata/generated/schema/type/queryParserData.py +1 -1
  652. metadata/generated/schema/type/reaction.py +1 -1
  653. metadata/generated/schema/type/schedule.py +1 -1
  654. metadata/generated/schema/type/schema.py +1 -1
  655. metadata/generated/schema/type/tableQuery.py +1 -1
  656. metadata/generated/schema/type/tableUsageCount.py +1 -1
  657. metadata/generated/schema/type/tagLabel.py +1 -1
  658. metadata/generated/schema/type/usageDetails.py +1 -1
  659. metadata/generated/schema/type/usageRequest.py +1 -1
  660. metadata/generated/schema/type/votes.py +1 -1
  661. metadata/great_expectations/action.py +0 -1
  662. metadata/ingestion/api/delete.py +33 -1
  663. metadata/ingestion/api/step.py +6 -1
  664. metadata/ingestion/api/topology_runner.py +122 -25
  665. metadata/ingestion/bulksink/metadata_usage.py +6 -1
  666. metadata/ingestion/lineage/models.py +34 -1
  667. metadata/ingestion/lineage/parser.py +15 -8
  668. metadata/ingestion/lineage/sql_lineage.py +21 -3
  669. metadata/ingestion/models/custom_properties.py +1 -0
  670. metadata/ingestion/models/life_cycle.py +4 -1
  671. metadata/ingestion/models/patch_request.py +176 -34
  672. metadata/ingestion/models/topology.py +81 -1
  673. metadata/ingestion/ometa/client.py +3 -0
  674. metadata/ingestion/ometa/mixins/es_mixin.py +95 -42
  675. metadata/ingestion/ometa/mixins/lineage_mixin.py +169 -4
  676. metadata/ingestion/ometa/mixins/patch_mixin.py +5 -2
  677. metadata/ingestion/ometa/mixins/server_mixin.py +48 -0
  678. metadata/ingestion/ometa/mixins/tests_mixin.py +55 -1
  679. metadata/ingestion/ometa/mixins/user_mixin.py +2 -2
  680. metadata/ingestion/ometa/ometa_api.py +6 -1
  681. metadata/ingestion/ometa/routes.py +3 -0
  682. metadata/ingestion/ometa/utils.py +2 -0
  683. metadata/ingestion/processor/query_parser.py +7 -1
  684. metadata/ingestion/sink/file.py +4 -1
  685. metadata/ingestion/sink/metadata_rest.py +19 -5
  686. metadata/ingestion/source/dashboard/dashboard_service.py +75 -16
  687. metadata/ingestion/source/dashboard/domodashboard/metadata.py +7 -5
  688. metadata/ingestion/source/dashboard/lightdash/metadata.py +7 -5
  689. metadata/ingestion/source/dashboard/looker/metadata.py +25 -18
  690. metadata/ingestion/source/dashboard/metabase/client.py +39 -8
  691. metadata/ingestion/source/dashboard/metabase/connection.py +2 -1
  692. metadata/ingestion/source/dashboard/metabase/metadata.py +9 -7
  693. metadata/ingestion/source/dashboard/metabase/models.py +1 -1
  694. metadata/ingestion/source/dashboard/mode/metadata.py +7 -5
  695. metadata/ingestion/source/dashboard/mstr/metadata.py +10 -5
  696. metadata/ingestion/source/dashboard/powerbi/client.py +13 -3
  697. metadata/ingestion/source/dashboard/powerbi/connection.py +13 -5
  698. metadata/ingestion/source/dashboard/powerbi/file_client.py +327 -0
  699. metadata/ingestion/source/dashboard/powerbi/metadata.py +130 -52
  700. metadata/ingestion/source/dashboard/powerbi/models.py +26 -0
  701. metadata/ingestion/source/dashboard/qlikcloud/__init__.py +0 -0
  702. metadata/ingestion/source/dashboard/qlikcloud/client.py +167 -0
  703. metadata/ingestion/source/dashboard/qlikcloud/connection.py +56 -0
  704. metadata/ingestion/source/dashboard/qlikcloud/constants.py +66 -0
  705. metadata/ingestion/source/dashboard/qlikcloud/metadata.py +249 -0
  706. metadata/ingestion/source/dashboard/qlikcloud/models.py +33 -0
  707. metadata/ingestion/source/dashboard/qliksense/client.py +9 -26
  708. metadata/ingestion/source/dashboard/qliksense/metadata.py +30 -17
  709. metadata/ingestion/source/dashboard/qliksense/models.py +1 -0
  710. metadata/ingestion/source/dashboard/quicksight/metadata.py +7 -5
  711. metadata/ingestion/source/dashboard/redash/metadata.py +10 -5
  712. metadata/ingestion/source/dashboard/superset/api_source.py +10 -5
  713. metadata/ingestion/source/dashboard/superset/db_source.py +12 -6
  714. metadata/ingestion/source/dashboard/superset/metadata.py +8 -1
  715. metadata/ingestion/source/dashboard/superset/mixin.py +20 -3
  716. metadata/ingestion/source/dashboard/superset/models.py +2 -0
  717. metadata/ingestion/source/dashboard/superset/queries.py +23 -6
  718. metadata/ingestion/source/dashboard/tableau/metadata.py +71 -10
  719. metadata/ingestion/source/database/athena/metadata.py +83 -15
  720. metadata/ingestion/source/database/athena/query_parser.py +4 -1
  721. metadata/ingestion/source/database/azuresql/metadata.py +4 -2
  722. metadata/ingestion/source/database/azuresql/query_parser.py +4 -1
  723. metadata/ingestion/source/database/bigquery/helper.py +23 -12
  724. metadata/ingestion/source/database/bigquery/incremental_table_processor.py +86 -0
  725. metadata/ingestion/source/database/bigquery/metadata.py +196 -43
  726. metadata/ingestion/source/database/bigquery/models.py +35 -1
  727. metadata/ingestion/source/database/bigquery/queries.py +25 -12
  728. metadata/ingestion/source/database/bigquery/query_parser.py +3 -1
  729. metadata/ingestion/source/database/bigtable/metadata.py +6 -4
  730. metadata/ingestion/source/database/clickhouse/metadata.py +3 -1
  731. metadata/ingestion/source/database/clickhouse/query_parser.py +4 -2
  732. metadata/ingestion/source/database/common_db_source.py +92 -46
  733. metadata/ingestion/source/database/common_nosql_source.py +15 -15
  734. metadata/ingestion/source/database/couchbase/metadata.py +8 -6
  735. metadata/ingestion/source/database/database_service.py +40 -26
  736. metadata/ingestion/source/database/databricks/metadata.py +71 -19
  737. metadata/ingestion/source/database/databricks/queries.py +3 -1
  738. metadata/ingestion/source/database/databricks/query_parser.py +9 -2
  739. metadata/ingestion/source/database/datalake/connection.py +1 -2
  740. metadata/ingestion/source/database/datalake/metadata.py +21 -19
  741. metadata/ingestion/source/database/db2/metadata.py +4 -1
  742. metadata/ingestion/source/database/dbt/dbt_service.py +13 -11
  743. metadata/ingestion/source/database/dbt/metadata.py +89 -19
  744. metadata/ingestion/source/database/dbt/models.py +10 -1
  745. metadata/ingestion/source/database/deltalake/metadata.py +18 -16
  746. metadata/ingestion/source/database/domodatabase/metadata.py +16 -11
  747. metadata/ingestion/source/database/doris/connection.py +0 -10
  748. metadata/ingestion/source/database/doris/metadata.py +23 -4
  749. metadata/ingestion/source/database/druid/metadata.py +5 -1
  750. metadata/ingestion/source/database/dynamodb/metadata.py +3 -1
  751. metadata/ingestion/source/database/extended_sample_data.py +4 -2
  752. metadata/ingestion/source/database/external_table_lineage_mixin.py +82 -0
  753. metadata/ingestion/source/database/glue/metadata.py +23 -21
  754. metadata/ingestion/source/database/greenplum/connection.py +0 -10
  755. metadata/ingestion/source/database/greenplum/metadata.py +26 -11
  756. metadata/ingestion/source/database/hive/metadata.py +6 -4
  757. metadata/ingestion/source/database/iceberg/helper.py +42 -5
  758. metadata/ingestion/source/database/iceberg/metadata.py +18 -16
  759. metadata/ingestion/source/database/iceberg/models.py +12 -4
  760. metadata/ingestion/source/database/impala/metadata.py +4 -1
  761. metadata/ingestion/source/database/incremental_metadata_extraction.py +144 -0
  762. metadata/ingestion/source/database/life_cycle_query_mixin.py +39 -36
  763. metadata/ingestion/source/database/mariadb/metadata.py +5 -1
  764. metadata/ingestion/source/database/mongodb/metadata.py +4 -2
  765. metadata/ingestion/source/database/mssql/metadata.py +9 -7
  766. metadata/ingestion/source/database/mssql/queries.py +18 -16
  767. metadata/ingestion/source/database/mssql/query_parser.py +4 -1
  768. metadata/ingestion/source/database/mssql/utils.py +3 -0
  769. metadata/ingestion/source/database/mysql/connection.py +0 -11
  770. metadata/ingestion/source/database/mysql/metadata.py +4 -2
  771. metadata/ingestion/source/database/oracle/connection.py +2 -2
  772. metadata/ingestion/source/database/oracle/metadata.py +7 -5
  773. metadata/ingestion/source/database/oracle/queries.py +13 -13
  774. metadata/ingestion/source/database/oracle/query_parser.py +4 -1
  775. metadata/ingestion/source/database/pinotdb/metadata.py +4 -1
  776. metadata/ingestion/source/database/postgres/connection.py +0 -10
  777. metadata/ingestion/source/database/postgres/metadata.py +34 -15
  778. metadata/ingestion/source/database/postgres/queries.py +17 -1
  779. metadata/ingestion/source/database/postgres/query_parser.py +4 -2
  780. metadata/ingestion/source/database/postgres/utils.py +98 -0
  781. metadata/ingestion/source/database/presto/connection.py +14 -0
  782. metadata/ingestion/source/database/presto/metadata.py +8 -5
  783. metadata/ingestion/source/database/query/lineage.py +5 -1
  784. metadata/ingestion/source/database/query/usage.py +4 -1
  785. metadata/ingestion/source/database/redshift/connection.py +0 -10
  786. metadata/ingestion/source/database/redshift/incremental_table_processor.py +192 -0
  787. metadata/ingestion/source/database/redshift/metadata.py +167 -25
  788. metadata/ingestion/source/database/redshift/models.py +74 -1
  789. metadata/ingestion/source/database/redshift/queries.py +17 -2
  790. metadata/ingestion/source/database/redshift/query_parser.py +3 -1
  791. metadata/ingestion/source/database/redshift/utils.py +13 -7
  792. metadata/ingestion/source/database/salesforce/metadata.py +13 -11
  793. metadata/ingestion/source/database/sample_data.py +55 -10
  794. metadata/ingestion/source/database/sample_usage.py +3 -1
  795. metadata/ingestion/source/database/saphana/metadata.py +6 -5
  796. metadata/ingestion/source/database/sas/metadata.py +8 -3
  797. metadata/ingestion/source/database/singlestore/metadata.py +5 -1
  798. metadata/ingestion/source/database/snowflake/metadata.py +189 -58
  799. metadata/ingestion/source/database/snowflake/models.py +24 -1
  800. metadata/ingestion/source/database/snowflake/queries.py +143 -25
  801. metadata/ingestion/source/database/snowflake/query_parser.py +3 -1
  802. metadata/ingestion/source/database/snowflake/utils.py +167 -11
  803. metadata/ingestion/source/database/sql_column_handler.py +2 -0
  804. metadata/ingestion/source/database/sqlalchemy_source.py +2 -2
  805. metadata/ingestion/source/database/sqlite/metadata.py +5 -1
  806. metadata/ingestion/source/database/stored_procedures_mixin.py +11 -9
  807. metadata/ingestion/source/database/trino/connection.py +7 -0
  808. metadata/ingestion/source/database/trino/metadata.py +7 -4
  809. metadata/ingestion/source/database/trino/query_parser.py +4 -1
  810. metadata/ingestion/source/database/unitycatalog/lineage.py +3 -1
  811. metadata/ingestion/source/database/unitycatalog/metadata.py +43 -32
  812. metadata/ingestion/source/database/unitycatalog/query_parser.py +4 -1
  813. metadata/ingestion/source/database/vertica/metadata.py +4 -2
  814. metadata/ingestion/source/database/vertica/query_parser.py +4 -2
  815. metadata/ingestion/source/messaging/common_broker_source.py +3 -3
  816. metadata/ingestion/source/messaging/kafka/metadata.py +21 -1
  817. metadata/ingestion/source/messaging/kinesis/metadata.py +11 -5
  818. metadata/ingestion/source/messaging/messaging_service.py +3 -3
  819. metadata/ingestion/source/messaging/redpanda/metadata.py +5 -1
  820. metadata/ingestion/source/metadata/amundsen/metadata.py +3 -1
  821. metadata/ingestion/source/metadata/atlas/metadata.py +3 -1
  822. metadata/ingestion/source/mlmodel/mlflow/metadata.py +4 -2
  823. metadata/ingestion/source/mlmodel/mlmodel_service.py +3 -3
  824. metadata/ingestion/source/mlmodel/sagemaker/metadata.py +8 -3
  825. metadata/ingestion/source/pipeline/airbyte/metadata.py +9 -7
  826. metadata/ingestion/source/pipeline/airflow/metadata.py +30 -14
  827. metadata/ingestion/source/pipeline/dagster/metadata.py +17 -15
  828. metadata/ingestion/source/pipeline/databrickspipeline/metadata.py +10 -8
  829. metadata/ingestion/source/pipeline/domopipeline/metadata.py +6 -4
  830. metadata/ingestion/source/pipeline/fivetran/metadata.py +6 -4
  831. metadata/ingestion/source/pipeline/gluepipeline/metadata.py +7 -5
  832. metadata/ingestion/source/pipeline/nifi/metadata.py +4 -2
  833. metadata/ingestion/source/pipeline/openlineage/__init__.py +0 -0
  834. metadata/ingestion/source/pipeline/openlineage/connection.py +88 -0
  835. metadata/ingestion/source/pipeline/openlineage/metadata.py +520 -0
  836. metadata/ingestion/source/pipeline/openlineage/models.py +88 -0
  837. metadata/ingestion/source/pipeline/openlineage/utils.py +59 -0
  838. metadata/ingestion/source/pipeline/pipeline_service.py +13 -3
  839. metadata/ingestion/source/pipeline/spline/metadata.py +8 -6
  840. metadata/ingestion/source/search/elasticsearch/metadata.py +8 -6
  841. metadata/ingestion/source/search/search_service.py +3 -3
  842. metadata/ingestion/source/sqa_types.py +20 -1
  843. metadata/ingestion/source/storage/s3/metadata.py +33 -7
  844. metadata/ingestion/source/storage/s3/models.py +4 -0
  845. metadata/ingestion/source/storage/storage_service.py +4 -4
  846. metadata/ingestion/stage/table_usage.py +6 -1
  847. metadata/mixins/pandas/pandas_mixin.py +3 -3
  848. metadata/pii/processor.py +6 -1
  849. metadata/profiler/__init__.py +0 -0
  850. metadata/profiler/adaptors/__init__.py +0 -0
  851. metadata/profiler/adaptors/adaptor_factory.py +43 -0
  852. metadata/profiler/adaptors/dynamodb.py +40 -0
  853. metadata/profiler/adaptors/factory.py +76 -0
  854. metadata/profiler/adaptors/mongodb.py +178 -0
  855. metadata/profiler/adaptors/nosql_adaptor.py +65 -0
  856. metadata/profiler/api/models.py +1 -1
  857. metadata/profiler/factory.py +41 -0
  858. metadata/profiler/interface/nosql/profiler_interface.py +236 -0
  859. metadata/profiler/interface/pandas/profiler_interface.py +51 -30
  860. metadata/profiler/interface/profiler_interface.py +6 -2
  861. metadata/profiler/interface/profiler_interface_factory.py +11 -22
  862. metadata/profiler/interface/sqlalchemy/databricks/profiler_interface.py +79 -0
  863. metadata/profiler/interface/sqlalchemy/profiler_interface.py +3 -1
  864. metadata/profiler/interface/sqlalchemy/unity_catalog/profiler_interface.py +3 -6
  865. metadata/profiler/metrics/composed/distinct_ratio.py +2 -1
  866. metadata/profiler/metrics/composed/duplicate_count.py +2 -1
  867. metadata/profiler/metrics/composed/ilike_ratio.py +2 -1
  868. metadata/profiler/metrics/composed/iqr.py +2 -1
  869. metadata/profiler/metrics/composed/like_ratio.py +2 -1
  870. metadata/profiler/metrics/composed/non_parametric_skew.py +2 -1
  871. metadata/profiler/metrics/composed/null_ratio.py +7 -4
  872. metadata/profiler/metrics/composed/unique_ratio.py +2 -1
  873. metadata/profiler/metrics/core.py +14 -1
  874. metadata/profiler/metrics/hybrid/histogram.py +2 -1
  875. metadata/profiler/metrics/registry.py +4 -0
  876. metadata/profiler/metrics/static/column_count.py +2 -1
  877. metadata/profiler/metrics/static/column_names.py +2 -1
  878. metadata/profiler/metrics/static/count.py +2 -1
  879. metadata/profiler/metrics/static/count_in_set.py +2 -1
  880. metadata/profiler/metrics/static/distinct_count.py +11 -2
  881. metadata/profiler/metrics/static/ilike_count.py +2 -1
  882. metadata/profiler/metrics/static/like_count.py +2 -1
  883. metadata/profiler/metrics/static/max.py +26 -7
  884. metadata/profiler/metrics/static/max_length.py +3 -2
  885. metadata/profiler/metrics/static/mean.py +30 -22
  886. metadata/profiler/metrics/static/min.py +25 -6
  887. metadata/profiler/metrics/static/min_length.py +3 -2
  888. metadata/profiler/metrics/static/not_like_count.py +2 -1
  889. metadata/profiler/metrics/static/not_regexp_match_count.py +2 -1
  890. metadata/profiler/metrics/static/null_count.py +2 -1
  891. metadata/profiler/metrics/static/null_missing_count.py +73 -0
  892. metadata/profiler/metrics/static/regexp_match_count.py +2 -1
  893. metadata/profiler/metrics/static/row_count.py +9 -3
  894. metadata/profiler/metrics/static/stddev.py +2 -1
  895. metadata/profiler/metrics/static/sum.py +22 -4
  896. metadata/profiler/metrics/static/unique_count.py +13 -4
  897. metadata/profiler/metrics/system/system.py +2 -1
  898. metadata/profiler/metrics/window/first_quartile.py +2 -1
  899. metadata/profiler/metrics/window/median.py +8 -2
  900. metadata/profiler/metrics/window/third_quartile.py +2 -1
  901. metadata/profiler/orm/converter/base.py +4 -1
  902. metadata/profiler/orm/converter/bigquery/converter.py +11 -0
  903. metadata/profiler/orm/converter/common.py +47 -0
  904. metadata/profiler/orm/converter/converter_registry.py +2 -0
  905. metadata/profiler/orm/converter/redshift/converter.py +48 -0
  906. metadata/profiler/orm/converter/snowflake/converter.py +13 -0
  907. metadata/profiler/orm/functions/conn_test.py +1 -1
  908. metadata/profiler/orm/functions/sum.py +4 -2
  909. metadata/profiler/orm/functions/table_metric_computer.py +39 -20
  910. metadata/profiler/orm/registry.py +6 -3
  911. metadata/profiler/processor/core.py +58 -97
  912. metadata/profiler/processor/default.py +5 -0
  913. metadata/profiler/processor/handle_partition.py +3 -3
  914. metadata/profiler/processor/metric_filter.py +265 -0
  915. metadata/profiler/processor/processor.py +4 -2
  916. metadata/profiler/processor/sampler/nosql/sampler.py +72 -0
  917. metadata/profiler/processor/sampler/pandas/sampler.py +5 -6
  918. metadata/profiler/processor/sampler/sampler_factory.py +9 -0
  919. metadata/profiler/processor/sampler/sampler_interface.py +2 -2
  920. metadata/profiler/processor/sampler/sqlalchemy/sampler.py +3 -3
  921. metadata/profiler/source/base/profiler_source.py +11 -3
  922. metadata/profiler/source/databricks/profiler_source.py +5 -1
  923. metadata/profiler/source/metadata.py +8 -1
  924. metadata/profiler/source/metadata_ext.py +2 -0
  925. metadata/readers/dataframe/avro.py +5 -5
  926. metadata/readers/dataframe/json.py +1 -1
  927. metadata/readers/file/adls.py +20 -0
  928. metadata/readers/file/base.py +6 -0
  929. metadata/readers/file/config_source_factory.py +12 -0
  930. metadata/readers/file/gcs.py +18 -0
  931. metadata/readers/file/local.py +12 -0
  932. metadata/readers/file/s3.py +16 -0
  933. metadata/utils/constants.py +32 -24
  934. metadata/utils/datalake/datalake_utils.py +40 -4
  935. metadata/utils/execution_time_tracker.py +69 -28
  936. metadata/utils/fqn.py +61 -7
  937. metadata/utils/helpers.py +2 -0
  938. metadata/utils/importer.py +15 -6
  939. metadata/utils/logger.py +1 -1
  940. metadata/utils/lru_cache.py +2 -0
  941. metadata/utils/partition.py +93 -28
  942. metadata/utils/sqlalchemy_utils.py +15 -0
  943. metadata/utils/ssl_manager.py +181 -0
  944. metadata/utils/tag_utils.py +30 -13
  945. metadata/utils/test_utils.py +65 -0
  946. metadata/workflow/application.py +6 -1
  947. metadata/workflow/base.py +1 -1
  948. metadata/workflow/ingestion.py +19 -0
  949. metadata/workflow/metadata.py +9 -1
  950. metadata/workflow/output_handler.py +24 -2
  951. metadata/workflow/workflow_output_handler.py +2 -0
  952. {openmetadata_ingestion-1.3.3.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc1.dist-info}/METADATA +306 -307
  953. {openmetadata_ingestion-1.3.3.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc1.dist-info}/RECORD +957 -894
  954. metadata/cli/docker.py +0 -382
  955. metadata/cli/openmetadata_dag_config_migration.py +0 -109
  956. metadata/cli/openmetadata_imports_migration.py +0 -71
  957. metadata/generated/schema/entity/applications/configuration/external/autoTaggerAppConfig.py +0 -28
  958. {openmetadata_ingestion-1.3.3.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc1.dist-info}/LICENSE +0 -0
  959. {openmetadata_ingestion-1.3.3.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc1.dist-info}/WHEEL +0 -0
  960. {openmetadata_ingestion-1.3.3.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc1.dist-info}/entry_points.txt +0 -0
  961. {openmetadata_ingestion-1.3.3.0rc1.dist-info → openmetadata_ingestion-1.4.0.0rc1.dist-info}/top_level.txt +0 -0
@@ -12,7 +12,8 @@
12
12
  Snowflake models
13
13
  """
14
14
  import urllib
15
- from typing import Optional
15
+ from datetime import datetime
16
+ from typing import List, Optional
16
17
 
17
18
  from pydantic import BaseModel, Field, validator
18
19
  from requests.utils import quote
@@ -72,3 +73,25 @@ class SnowflakeStoredProcedure(BaseModel):
72
73
 
73
74
  def unquote_signature(self) -> Optional[str]:
74
75
  return urllib.parse.unquote(self.signature) if self.signature else "()"
76
+
77
+
78
+ class SnowflakeTable(BaseModel):
79
+ """Models the items returned from the Table and View Queries used to get the entities to process.
80
+ :name: Holds the table/view name.
81
+ :deleted: Holds either a datetime if the table was deleted or None.
82
+ """
83
+
84
+ name: str
85
+ deleted: Optional[datetime]
86
+
87
+
88
+ class SnowflakeTableList(BaseModel):
89
+ """Understands how to return the deleted and not deleted tables/views from a given list."""
90
+
91
+ tables: List[SnowflakeTable]
92
+
93
+ def get_deleted(self) -> List[SnowflakeTable]:
94
+ return [table for table in self.tables if table.deleted]
95
+
96
+ def get_not_deleted(self) -> List[SnowflakeTable]:
97
+ return [table for table in self.tables if not table.deleted]
@@ -45,41 +45,155 @@ SNOWFLAKE_FETCH_ALL_TAGS = textwrap.dedent(
45
45
  """
46
46
  )
47
47
 
48
- SNOWFLAKE_GET_TABLE_NAMES = """
49
- select TABLE_NAME from information_schema.tables
50
- where TABLE_SCHEMA = '{}' and TABLE_TYPE = 'BASE TABLE'
51
- """
52
-
53
48
  SNOWFLAKE_GET_EXTERNAL_TABLE_NAMES = """
54
- select TABLE_NAME from information_schema.tables
55
- where TABLE_SCHEMA = '{}' AND TABLE_TYPE = 'EXTERNAL TABLE'
49
+ select TABLE_NAME, NULL from information_schema.tables
50
+ where TABLE_SCHEMA = '{schema}' AND TABLE_TYPE = 'EXTERNAL TABLE'
56
51
  """
57
52
 
53
+ SNOWFLAKE_INCREMENTAL_GET_EXTERNAL_TABLE_NAMES = """
54
+ select TABLE_NAME, DELETED
55
+ from (
56
+ select
57
+ TABLE_NAME,
58
+ DELETED,
59
+ ROW_NUMBER() over (
60
+ partition by TABLE_NAME order by LAST_DDL desc
61
+ ) as ROW_NUMBER
62
+ from snowflake.account_usage.tables
63
+ where TABLE_CATALOG = '{database}'
64
+ and TABLE_SCHEMA = '{schema}'
65
+ and TABLE_TYPE = 'EXTERNAL TABLE'
66
+ and DATE_PART(epoch_millisecond, LAST_DDL) >= '{date}'
67
+ )
68
+ where ROW_NUMBER = 1
69
+ """
58
70
 
59
71
  SNOWFLAKE_GET_WITHOUT_TRANSIENT_TABLE_NAMES = """
60
- select TABLE_NAME from information_schema.tables
61
- where TABLE_SCHEMA = '{}'
62
- AND TABLE_TYPE = 'BASE TABLE'
72
+ select TABLE_NAME, NULL from information_schema.tables
73
+ where TABLE_SCHEMA = '{schema}'
74
+ AND TABLE_TYPE = 'BASE TABLE'
63
75
  AND IS_TRANSIENT != 'YES'
76
+ AND IS_DYNAMIC != 'YES'
77
+ """
78
+
79
+ SNOWFLAKE_INCREMENTAL_GET_WITHOUT_TRANSIENT_TABLE_NAMES = """
80
+ select TABLE_NAME, DELETED
81
+ from (
82
+ select
83
+ TABLE_NAME,
84
+ DELETED,
85
+ ROW_NUMBER() over (
86
+ partition by TABLE_NAME order by LAST_DDL desc
87
+ ) as ROW_NUMBER
88
+ from snowflake.account_usage.tables
89
+ where TABLE_CATALOG = '{database}'
90
+ and TABLE_SCHEMA = '{schema}'
91
+ and TABLE_TYPE = 'BASE TABLE'
92
+ and IS_TRANSIENT != 'YES'
93
+ AND IS_DYNAMIC != 'YES'
94
+ and DATE_PART(epoch_millisecond, LAST_DDL) >= '{date}'
95
+ )
96
+ where ROW_NUMBER = 1
64
97
  """
65
98
 
66
99
  SNOWFLAKE_GET_VIEW_NAMES = """
67
- select TABLE_NAME from information_schema.tables
68
- where TABLE_SCHEMA = '{}' and TABLE_TYPE = 'VIEW'
100
+ select TABLE_NAME, NULL from information_schema.tables
101
+ where TABLE_SCHEMA = '{schema}' and TABLE_TYPE = 'VIEW'
102
+ """
103
+
104
+ SNOWFLAKE_INCREMENTAL_GET_VIEW_NAMES = """
105
+ select TABLE_NAME, DELETED
106
+ from (
107
+ select
108
+ TABLE_NAME,
109
+ DELETED,
110
+ ROW_NUMBER() over (
111
+ partition by TABLE_NAME order by LAST_DDL desc
112
+ ) as ROW_NUMBER
113
+ from snowflake.account_usage.tables
114
+ where TABLE_CATALOG = '{database}'
115
+ and TABLE_SCHEMA = '{schema}'
116
+ and TABLE_TYPE = 'VIEW'
117
+ and DATE_PART(epoch_millisecond, LAST_DDL) >= '{date}'
118
+ )
119
+ where ROW_NUMBER = 1
69
120
  """
70
121
 
71
122
  SNOWFLAKE_GET_MVIEW_NAMES = """
72
- select TABLE_NAME from information_schema.tables
73
- where TABLE_SCHEMA = '{}' and TABLE_TYPE = 'MATERIALIZED VIEW'
123
+ select TABLE_NAME, NULL from information_schema.tables
124
+ where TABLE_SCHEMA = '{schema}' and TABLE_TYPE = 'MATERIALIZED VIEW'
125
+ """
126
+
127
+ SNOWFLAKE_INCREMENTAL_GET_MVIEW_NAMES = """
128
+ select TABLE_NAME, DELETED
129
+ from (
130
+ select
131
+ TABLE_NAME,
132
+ DELETED,
133
+ ROW_NUMBER() over (
134
+ partition by TABLE_NAME order by LAST_DDL desc
135
+ ) as ROW_NUMBER
136
+ from snowflake.account_usage.tables
137
+ where TABLE_CATALOG = '{database}'
138
+ and TABLE_SCHEMA = '{schema}'
139
+ and TABLE_TYPE = 'MATERIALIZED VIEW'
140
+ and DATE_PART(epoch_millisecond, LAST_DDL) >= '{date}'
141
+ )
142
+ where ROW_NUMBER = 1
74
143
  """
75
144
 
76
145
  SNOWFLAKE_GET_TRANSIENT_NAMES = """
77
- select TABLE_NAME from information_schema.tables
78
- where TABLE_SCHEMA = '{}'
79
- AND TABLE_TYPE = 'BASE TABLE'
146
+ select TABLE_NAME, NULL from information_schema.tables
147
+ where TABLE_SCHEMA = '{schema}'
148
+ AND TABLE_TYPE = 'BASE TABLE'
80
149
  AND IS_TRANSIENT = 'YES'
81
150
  """
82
151
 
152
+ SNOWFLAKE_INCREMENTAL_GET_TRANSIENT_NAMES = """
153
+ select TABLE_NAME, DELETED
154
+ from (
155
+ select
156
+ TABLE_NAME,
157
+ DELETED,
158
+ ROW_NUMBER() over (
159
+ partition by TABLE_NAME order by LAST_DDL desc
160
+ ) as ROW_NUMBER
161
+ from snowflake.account_usage.tables
162
+ where TABLE_CATALOG = '{database}'
163
+ and TABLE_SCHEMA = '{schema}'
164
+ and TABLE_TYPE = 'BASE TABLE'
165
+ and IS_TRANSIENT = 'YES'
166
+ and DATE_PART(epoch_millisecond, LAST_DDL) >= '{date}'
167
+ )
168
+ where ROW_NUMBER = 1
169
+ """
170
+
171
+ SNOWFLAKE_GET_DYNAMIC_TABLE_NAMES = """
172
+ select TABLE_NAME, NULL from information_schema.tables
173
+ where TABLE_SCHEMA = '{schema}'
174
+ AND TABLE_TYPE = 'BASE TABLE'
175
+ AND IS_DYNAMIC = 'YES'
176
+ """
177
+
178
+ SNOWFLAKE_INCREMENTAL_GET_DYNAMIC_TABLE_NAMES = """
179
+ select TABLE_NAME, DELETED
180
+ from (
181
+ select
182
+ TABLE_NAME,
183
+ DELETED,
184
+ ROW_NUMBER() over (
185
+ partition by TABLE_NAME order by LAST_DDL desc
186
+ ) as ROW_NUMBER
187
+ from snowflake.account_usage.tables
188
+ where TABLE_CATALOG = '{database}'
189
+ and TABLE_SCHEMA = '{schema}'
190
+ and TABLE_TYPE = 'BASE TABLE'
191
+ and IS_DYNAMIC = 'YES'
192
+ and DATE_PART(epoch_millisecond, LAST_DDL) >= '{date}'
193
+ )
194
+ where ROW_NUMBER = 1
195
+ """
196
+
83
197
  SNOWFLAKE_GET_COMMENTS = textwrap.dedent(
84
198
  """
85
199
  select
@@ -96,17 +210,17 @@ SNOWFLAKE_GET_CLUSTER_KEY = """
96
210
  select CLUSTERING_KEY,
97
211
  TABLE_SCHEMA,
98
212
  TABLE_NAME
99
- from information_schema.tables
213
+ from information_schema.tables
100
214
  where TABLE_TYPE = 'BASE TABLE'
101
215
  and CLUSTERING_KEY is not null
102
216
  """
103
217
 
104
218
 
105
219
  SNOWFLAKE_GET_SCHEMA_COMMENTS = """
106
- SELECT
220
+ SELECT
107
221
  catalog_name DATABASE_NAME,
108
222
  SCHEMA_NAME,
109
- COMMENT
223
+ COMMENT
110
224
  FROM information_schema.schemata
111
225
  """
112
226
 
@@ -115,6 +229,10 @@ SNOWFLAKE_GET_DATABASE_COMMENTS = """
115
229
  select DATABASE_NAME,COMMENT from information_schema.databases
116
230
  """
117
231
 
232
+ SNOWFLAKE_GET_EXTERNAL_LOCATIONS = """
233
+ SHOW EXTERNAL TABLES IN DATABASE "{database_name}"
234
+ """
235
+
118
236
  SNOWFLAKE_TEST_FETCH_TAG = """
119
237
  select TAG_NAME from snowflake.account_usage.tag_references limit 1
120
238
  """
@@ -124,7 +242,7 @@ SELECT query_text from snowflake.account_usage.query_history limit 1
124
242
  """
125
243
 
126
244
  SNOWFLAKE_TEST_GET_TABLES = """
127
- SELECT TABLE_NAME FROM "{database_name}".information_schema.tables LIMIT 1
245
+ SELECT TABLE_NAME FROM "{database_name}".information_schema.tables LIMIT 1
128
246
  """
129
247
 
130
248
  SNOWFLAKE_GET_DATABASES = "SHOW DATABASES"
@@ -155,7 +273,7 @@ SNOWFLAKE_GET_CURRENT_ACCOUNT = "SELECT CURRENT_ACCOUNT_NAME() AS ACCOUNT"
155
273
 
156
274
  SNOWFLAKE_LIFE_CYCLE_QUERY = textwrap.dedent(
157
275
  """
158
- select
276
+ select
159
277
  table_name as table_name,
160
278
  created as created_at
161
279
  from snowflake.account_usage.tables
@@ -166,7 +284,7 @@ and table_catalog = '{database_name}'
166
284
 
167
285
  SNOWFLAKE_GET_STORED_PROCEDURES = textwrap.dedent(
168
286
  """
169
- SELECT
287
+ SELECT
170
288
  PROCEDURE_NAME AS name,
171
289
  PROCEDURE_OWNER AS owner,
172
290
  PROCEDURE_LANGUAGE AS language,
@@ -193,7 +311,7 @@ WITH SP_HISTORY AS (
193
311
  END_TIME
194
312
  FROM SNOWFLAKE.ACCOUNT_USAGE.QUERY_HISTORY SP
195
313
  WHERE QUERY_TYPE = 'CALL'
196
- AND START_TIME >= '{start_date}'
314
+ AND START_TIME >= '{start_date}'
197
315
  ),
198
316
  Q_HISTORY AS (
199
317
  SELECT
@@ -210,7 +328,7 @@ Q_HISTORY AS (
210
328
  WHERE QUERY_TYPE <> 'CALL'
211
329
  AND QUERY_TEXT NOT LIKE '/* {{"app": "OpenMetadata", %%}} */%%'
212
330
  AND QUERY_TEXT NOT LIKE '/* {{"app": "dbt", %%}} */%%'
213
- AND START_TIME >= '{start_date}'
331
+ AND START_TIME >= '{start_date}'
214
332
  )
215
333
  SELECT
216
334
  Q.QUERY_TYPE AS QUERY_TYPE,
@@ -40,7 +40,9 @@ class SnowflakeQueryParserSource(QueryParserSource, ABC):
40
40
  """
41
41
 
42
42
  @classmethod
43
- def create(cls, config_dict, metadata: OpenMetadata):
43
+ def create(
44
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
45
+ ):
44
46
  config: WorkflowSource = WorkflowSource.parse_obj(config_dict)
45
47
  connection: SnowflakeConnection = config.serviceConnection.__root__.config
46
48
  if not isinstance(connection, SnowflakeConnection):
@@ -13,7 +13,7 @@
13
13
  Module to define overriden dialect methods
14
14
  """
15
15
 
16
- from typing import Optional
16
+ from typing import Dict, Optional
17
17
 
18
18
  import sqlalchemy.types as sqltypes
19
19
  from sqlalchemy import exc as sa_exc
@@ -22,14 +22,28 @@ from sqlalchemy.engine import reflection
22
22
  from sqlalchemy.sql import text
23
23
  from sqlalchemy.types import FLOAT
24
24
 
25
+ from metadata.ingestion.source.database.incremental_metadata_extraction import (
26
+ IncrementalConfig,
27
+ )
28
+ from metadata.ingestion.source.database.snowflake.models import (
29
+ SnowflakeTable,
30
+ SnowflakeTableList,
31
+ )
25
32
  from metadata.ingestion.source.database.snowflake.queries import (
26
33
  SNOWFLAKE_GET_COMMENTS,
34
+ SNOWFLAKE_GET_DYNAMIC_TABLE_NAMES,
27
35
  SNOWFLAKE_GET_EXTERNAL_TABLE_NAMES,
28
36
  SNOWFLAKE_GET_MVIEW_NAMES,
29
37
  SNOWFLAKE_GET_SCHEMA_COLUMNS,
30
38
  SNOWFLAKE_GET_TRANSIENT_NAMES,
31
39
  SNOWFLAKE_GET_VIEW_NAMES,
32
40
  SNOWFLAKE_GET_WITHOUT_TRANSIENT_TABLE_NAMES,
41
+ SNOWFLAKE_INCREMENTAL_GET_DYNAMIC_TABLE_NAMES,
42
+ SNOWFLAKE_INCREMENTAL_GET_EXTERNAL_TABLE_NAMES,
43
+ SNOWFLAKE_INCREMENTAL_GET_MVIEW_NAMES,
44
+ SNOWFLAKE_INCREMENTAL_GET_TRANSIENT_NAMES,
45
+ SNOWFLAKE_INCREMENTAL_GET_VIEW_NAMES,
46
+ SNOWFLAKE_INCREMENTAL_GET_WITHOUT_TRANSIENT_TABLE_NAMES,
33
47
  )
34
48
  from metadata.utils import fqn
35
49
  from metadata.utils.sqlalchemy_utils import (
@@ -37,6 +51,36 @@ from metadata.utils.sqlalchemy_utils import (
37
51
  get_table_comment_wrapper,
38
52
  )
39
53
 
54
+ Query = str
55
+ QueryMap = Dict[str, Query]
56
+
57
+
58
+ TABLE_QUERY_MAPS = {
59
+ "full": {
60
+ "default": SNOWFLAKE_GET_WITHOUT_TRANSIENT_TABLE_NAMES,
61
+ "transient_tables": SNOWFLAKE_GET_TRANSIENT_NAMES,
62
+ "external_tables": SNOWFLAKE_GET_EXTERNAL_TABLE_NAMES,
63
+ "dynamic_tables": SNOWFLAKE_GET_DYNAMIC_TABLE_NAMES,
64
+ },
65
+ "incremental": {
66
+ "default": SNOWFLAKE_INCREMENTAL_GET_WITHOUT_TRANSIENT_TABLE_NAMES,
67
+ "transient_tables": SNOWFLAKE_INCREMENTAL_GET_TRANSIENT_NAMES,
68
+ "external_tables": SNOWFLAKE_INCREMENTAL_GET_EXTERNAL_TABLE_NAMES,
69
+ "dynamic_tables": SNOWFLAKE_INCREMENTAL_GET_DYNAMIC_TABLE_NAMES,
70
+ },
71
+ }
72
+
73
+ VIEW_QUERY_MAPS = {
74
+ "full": {
75
+ "views": SNOWFLAKE_GET_VIEW_NAMES,
76
+ "materialized_views": SNOWFLAKE_GET_MVIEW_NAMES,
77
+ },
78
+ "incremental": {
79
+ "views": SNOWFLAKE_INCREMENTAL_GET_VIEW_NAMES,
80
+ "materialized_views": SNOWFLAKE_INCREMENTAL_GET_MVIEW_NAMES,
81
+ },
82
+ }
83
+
40
84
 
41
85
  def _quoted_name(entity_name: Optional[str]) -> Optional[str]:
42
86
  if entity_name:
@@ -88,25 +132,78 @@ def get_view_names_reflection(self, schema=None, **kw):
88
132
  )
89
133
 
90
134
 
91
- def get_table_names(self, connection, schema, **kw):
92
- query = SNOWFLAKE_GET_WITHOUT_TRANSIENT_TABLE_NAMES
135
+ def _get_query_map(
136
+ incremental: Optional[IncrementalConfig], query_maps: Dict[str, QueryMap]
137
+ ):
138
+ """Returns the proper queries depending if the extraction is Incremental or Full."""
139
+ if incremental and incremental.enabled:
140
+ return query_maps["incremental"]
141
+ return query_maps["full"]
142
+
143
+
144
+ def _get_query_parameters(
145
+ self, connection, schema: str, incremental: Optional[IncrementalConfig]
146
+ ):
147
+ """Returns the proper query parameters depending if the extraciton is Incremental or Full"""
148
+ parameters = {"schema": fqn.unquote_name(schema)}
149
+
150
+ if incremental and incremental.enabled:
151
+ database, _ = self._current_database_schema(connection) # pylint: disable=W0212
152
+ parameters = {
153
+ **parameters,
154
+ "date": incremental.start_timestamp,
155
+ "database": database,
156
+ }
157
+
158
+ return parameters
159
+
160
+
161
+ def get_table_names(self, connection, schema: str, **kw):
162
+ """Return the Table names to process based on the incremental setup."""
163
+ incremental = kw.get("incremental")
164
+
165
+ queries = _get_query_map(incremental, TABLE_QUERY_MAPS)
166
+ parameters = _get_query_parameters(self, connection, schema, incremental)
167
+
168
+ query = queries["default"]
169
+
93
170
  if kw.get("include_transient_tables"):
94
- query = SNOWFLAKE_GET_TRANSIENT_NAMES
171
+ query = queries["transient_tables"]
95
172
 
96
173
  if kw.get("external_tables"):
97
- query = SNOWFLAKE_GET_EXTERNAL_TABLE_NAMES
98
- cursor = connection.execute(query.format(fqn.unquote_name(schema)))
99
- result = [self.normalize_name(row[0]) for row in cursor]
174
+ query = queries["external_tables"]
175
+
176
+ if kw.get("dynamic_tables"):
177
+ query = queries["dynamic_tables"]
178
+
179
+ cursor = connection.execute(query.format(**parameters))
180
+ result = SnowflakeTableList(
181
+ tables=[
182
+ SnowflakeTable(name=self.normalize_name(row[0]), deleted=row[1])
183
+ for row in cursor
184
+ ]
185
+ )
100
186
  return result
101
187
 
102
188
 
103
189
  def get_view_names(self, connection, schema, **kw):
190
+ incremental = kw.get("incremental")
191
+
192
+ queries = _get_query_map(incremental, VIEW_QUERY_MAPS)
193
+ parameters = _get_query_parameters(self, connection, schema, incremental)
194
+
104
195
  if kw.get("materialized_views"):
105
- query = SNOWFLAKE_GET_MVIEW_NAMES
196
+ query = queries["materialized_views"]
106
197
  else:
107
- query = SNOWFLAKE_GET_VIEW_NAMES
108
- cursor = connection.execute(query.format(schema))
109
- result = [self.normalize_name(row[0]) for row in cursor]
198
+ query = queries["views"]
199
+
200
+ cursor = connection.execute(query.format(**parameters))
201
+ result = SnowflakeTableList(
202
+ tables=[
203
+ SnowflakeTable(name=self.normalize_name(row[0]), deleted=row[1])
204
+ for row in cursor
205
+ ]
206
+ )
110
207
  return result
111
208
 
112
209
 
@@ -290,6 +387,65 @@ def get_foreign_keys(self, connection, table_name, schema=None, **kw):
290
387
  return foreign_key_map.get(table_name, [])
291
388
 
292
389
 
390
+ @reflection.cache
391
+ def get_schema_foreign_keys(self, connection, schema, **kw):
392
+ current_database, current_schema = self._current_database_schema(connection, **kw)
393
+ result = connection.execute(
394
+ text(
395
+ f"SHOW /* sqlalchemy:_get_schema_foreign_keys */ IMPORTED KEYS IN SCHEMA {schema}"
396
+ )
397
+ )
398
+ foreign_key_map = {}
399
+ for row in result:
400
+ name = self.normalize_name(row._mapping["fk_name"])
401
+ if name not in foreign_key_map:
402
+ referred_schema = self.normalize_name(row._mapping["pk_schema_name"])
403
+ foreign_key_map[name] = {
404
+ "constrained_columns": [
405
+ self.normalize_name(row._mapping["fk_column_name"])
406
+ ],
407
+ # referred schema should be None in context where it doesn't need to be specified
408
+ # https://docs.sqlalchemy.org/en/14/core/reflection.html#reflection-schema-qualified-interaction
409
+ "referred_schema": (
410
+ referred_schema
411
+ if referred_schema not in (self.default_schema_name, current_schema)
412
+ else None
413
+ ),
414
+ "referred_table": self.normalize_name(row._mapping["pk_table_name"]),
415
+ "referred_columns": [
416
+ self.normalize_name(row._mapping["pk_column_name"])
417
+ ],
418
+ "referred_database": self.normalize_name(
419
+ row._mapping["pk_database_name"]
420
+ ),
421
+ "name": name,
422
+ "table_name": self.normalize_name(row._mapping["fk_table_name"]),
423
+ }
424
+ options = {}
425
+ if self.normalize_name(row._mapping["delete_rule"]) != "NO ACTION":
426
+ options["ondelete"] = self.normalize_name(row._mapping["delete_rule"])
427
+ if self.normalize_name(row._mapping["update_rule"]) != "NO ACTION":
428
+ options["onupdate"] = self.normalize_name(row._mapping["update_rule"])
429
+ foreign_key_map[name]["options"] = options
430
+ else:
431
+ foreign_key_map[name]["constrained_columns"].append(
432
+ self.normalize_name(row._mapping["fk_column_name"])
433
+ )
434
+ foreign_key_map[name]["referred_columns"].append(
435
+ self.normalize_name(row._mapping["pk_column_name"])
436
+ )
437
+
438
+ ans = {}
439
+
440
+ for _, v in foreign_key_map.items():
441
+ if v["table_name"] not in ans:
442
+ ans[v["table_name"]] = []
443
+ ans[v["table_name"]].append(
444
+ {k2: v2 for k2, v2 in v.items() if k2 != "table_name"}
445
+ )
446
+ return ans
447
+
448
+
293
449
  @reflection.cache
294
450
  def get_unique_constraints(self, connection, table_name, schema, **kw):
295
451
  schema = schema or self.default_schema_name
@@ -26,6 +26,7 @@ from metadata.generated.schema.entity.data.table import (
26
26
  TableConstraint,
27
27
  )
28
28
  from metadata.ingestion.source.database.column_type_parser import ColumnTypeParser
29
+ from metadata.utils.execution_time_tracker import calculate_execution_time
29
30
  from metadata.utils.helpers import clean_up_starting_ending_double_quotes_in_string
30
31
  from metadata.utils.logger import ingestion_logger
31
32
 
@@ -195,6 +196,7 @@ class SqlColumnHandlerMixin:
195
196
  ]
196
197
  return Column(**parsed_string)
197
198
 
199
+ @calculate_execution_time()
198
200
  def get_columns_and_constraints( # pylint: disable=too-many-locals
199
201
  self, schema_name: str, table_name: str, db_name: str, inspector: Inspector
200
202
  ) -> Tuple[
@@ -24,7 +24,7 @@ from metadata.generated.schema.metadataIngestion.databaseServiceMetadataPipeline
24
24
  from metadata.generated.schema.metadataIngestion.workflow import (
25
25
  Source as WorkflowSource,
26
26
  )
27
- from metadata.ingestion.models.topology import TopologyContext
27
+ from metadata.ingestion.models.topology import TopologyContextManager
28
28
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
29
29
  from metadata.utils.logger import ingestion_logger
30
30
 
@@ -38,7 +38,7 @@ class SqlAlchemySource(ABC):
38
38
 
39
39
  engine: Engine
40
40
  metadata: OpenMetadata
41
- context: TopologyContext
41
+ context: TopologyContextManager
42
42
  database_source_state: Set
43
43
  source_config: DatabaseServiceMetadataPipeline
44
44
  config: WorkflowSource
@@ -14,6 +14,8 @@ Sqlite source implementation.
14
14
  Useful for testing!
15
15
  """
16
16
 
17
+ from typing import Optional
18
+
17
19
  from metadata.generated.schema.entity.services.connections.database.sqliteConnection import (
18
20
  SQLiteConnection,
19
21
  )
@@ -32,7 +34,9 @@ class SqliteSource(CommonDbSourceService):
32
34
  """
33
35
 
34
36
  @classmethod
35
- def create(cls, config_dict, metadata: OpenMetadata):
37
+ def create(
38
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
39
+ ):
36
40
  config: WorkflowSource = WorkflowSource.parse_obj(config_dict)
37
41
  connection = config.serviceConnection.__root__.config
38
42
  if not isinstance(connection, SQLiteConnection):
@@ -37,7 +37,7 @@ from metadata.ingestion.api.models import Either
37
37
  from metadata.ingestion.api.status import Status
38
38
  from metadata.ingestion.lineage.models import ConnectionTypeDialectMapper
39
39
  from metadata.ingestion.lineage.sql_lineage import get_lineage_by_query
40
- from metadata.ingestion.models.topology import TopologyContext
40
+ from metadata.ingestion.models.topology import TopologyContextManager
41
41
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
42
42
  from metadata.utils.logger import ingestion_logger
43
43
  from metadata.utils.stored_procedures import get_procedure_name_from_call
@@ -81,7 +81,7 @@ class StoredProcedureMixin(ABC):
81
81
  It should be inherited in those Sources that implement Stored Procedure ingestion.
82
82
  """
83
83
 
84
- context: TopologyContext
84
+ context: TopologyContextManager
85
85
  status: Status
86
86
  source_config: DatabaseServiceMetadataPipeline
87
87
  engine: Engine
@@ -148,16 +148,16 @@ class StoredProcedureMixin(ABC):
148
148
  self, query_by_procedure: QueryByProcedure, procedure: StoredProcedure
149
149
  ) -> Iterable[Either[AddLineageRequest]]:
150
150
  """Add procedure lineage from its query"""
151
- self.context.stored_procedure_query_lineage = False
151
+ self.context.get().stored_procedure_query_lineage = False
152
152
  if self.is_lineage_query(
153
153
  query_type=query_by_procedure.query_type,
154
154
  query_text=query_by_procedure.query_text,
155
155
  ):
156
- self.context.stored_procedure_query_lineage = True
156
+ self.context.get().stored_procedure_query_lineage = True
157
157
  for either_lineage in get_lineage_by_query(
158
158
  self.metadata,
159
159
  query=query_by_procedure.query_text,
160
- service_name=self.context.database_service,
160
+ service_name=self.context.get().database_service,
161
161
  database_name=query_by_procedure.query_database_name,
162
162
  schema_name=query_by_procedure.query_schema_name,
163
163
  dialect=ConnectionTypeDialectMapper.dialect_of(
@@ -193,8 +193,10 @@ class StoredProcedureMixin(ABC):
193
193
  id=procedure.id,
194
194
  type="storedProcedure",
195
195
  ),
196
- processedLineage=bool(self.context.stored_procedure_query_lineage),
197
- service=self.context.database_service,
196
+ processedLineage=bool(
197
+ self.context.get().stored_procedure_query_lineage
198
+ ),
199
+ service=self.context.get().database_service,
198
200
  )
199
201
  )
200
202
 
@@ -202,12 +204,12 @@ class StoredProcedureMixin(ABC):
202
204
  self,
203
205
  ) -> Iterable[Either[Union[AddLineageRequest, CreateQueryRequest]]]:
204
206
  """Get all the queries and procedures list and yield them"""
205
- if self.context.stored_procedures:
207
+ if self.context.get().stored_procedures:
206
208
  logger.info("Processing Lineage for Stored Procedures")
207
209
  # First, get all the query history
208
210
  queries_dict = self.get_stored_procedure_queries_dict()
209
211
  # Then for each procedure, iterate over all its queries
210
- for procedure_fqn in self.context.stored_procedures:
212
+ for procedure_fqn in self.context.get().stored_procedures:
211
213
  procedure = self.metadata.get_by_name(
212
214
  entity=StoredProcedure, fqn=procedure_fqn
213
215
  )
@@ -91,6 +91,13 @@ def get_connection(connection: TrinoConnection) -> Engine:
91
91
  """
92
92
  Create connection
93
93
  """
94
+ if connection.verify:
95
+ connection.connectionArguments = (
96
+ connection.connectionArguments or init_empty_connection_arguments()
97
+ )
98
+ connection.connectionArguments.__root__["verify"] = {
99
+ "verify": connection.verify
100
+ }
94
101
  return create_generic_db_connection(
95
102
  connection=connection,
96
103
  get_connection_url_fn=get_connection_url,