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
@@ -33,7 +33,9 @@ from metadata.generated.schema.entity.data.database import Database
33
33
  from metadata.generated.schema.entity.data.databaseSchema import DatabaseSchema
34
34
  from metadata.generated.schema.entity.data.storedProcedure import StoredProcedureCode
35
35
  from metadata.generated.schema.entity.data.table import (
36
- IntervalType,
36
+ PartitionColumnDetails,
37
+ PartitionIntervalTypes,
38
+ Table,
37
39
  TablePartition,
38
40
  TableType,
39
41
  )
@@ -51,6 +53,7 @@ from metadata.generated.schema.security.credentials.gcpValues import (
51
53
  )
52
54
  from metadata.generated.schema.type.basic import EntityName, SourceUrl
53
55
  from metadata.generated.schema.type.tagLabel import TagLabel
56
+ from metadata.ingestion.api.delete import delete_entity_by_name
54
57
  from metadata.ingestion.api.models import Either
55
58
  from metadata.ingestion.api.steps import InvalidSourceException
56
59
  from metadata.ingestion.models.ometa_classification import OMetaTagAndClassification
@@ -61,6 +64,9 @@ from metadata.ingestion.source.database.bigquery.helper import (
61
64
  get_inspector_details,
62
65
  get_pk_constraint,
63
66
  )
67
+ from metadata.ingestion.source.database.bigquery.incremental_table_processor import (
68
+ BigQueryIncrementalTableProcessor,
69
+ )
64
70
  from metadata.ingestion.source.database.bigquery.models import (
65
71
  STORED_PROC_LANGUAGE_MAP,
66
72
  BigQueryStoredProcedure,
@@ -77,6 +83,9 @@ from metadata.ingestion.source.database.common_db_source import (
77
83
  CommonDbSourceService,
78
84
  TableNameAndType,
79
85
  )
86
+ from metadata.ingestion.source.database.incremental_metadata_extraction import (
87
+ IncrementalConfig,
88
+ )
80
89
  from metadata.ingestion.source.database.life_cycle_query_mixin import (
81
90
  LifeCycleQueryMixin,
82
91
  )
@@ -87,7 +96,7 @@ from metadata.ingestion.source.database.stored_procedures_mixin import (
87
96
  )
88
97
  from metadata.utils import fqn
89
98
  from metadata.utils.credentials import GOOGLE_CREDENTIALS
90
- from metadata.utils.filters import filter_by_database
99
+ from metadata.utils.filters import filter_by_database, filter_by_schema
91
100
  from metadata.utils.helpers import get_start_and_end
92
101
  from metadata.utils.logger import ingestion_logger
93
102
  from metadata.utils.sqlalchemy_utils import is_complex_type
@@ -210,7 +219,7 @@ class BigquerySource(
210
219
  Database metadata from Bigquery Source
211
220
  """
212
221
 
213
- def __init__(self, config, metadata):
222
+ def __init__(self, config, metadata, incremental_configuration: IncrementalConfig):
214
223
  # Check if the engine is established before setting project IDs
215
224
  # This ensures that we don't try to set project IDs when there is no engine
216
225
  # as per service connection config, which would result in an error.
@@ -227,15 +236,32 @@ class BigquerySource(
227
236
  self.test_connection = self._test_connection
228
237
  self.test_connection()
229
238
 
239
+ self.context.get_global().deleted_tables = []
240
+ self.incremental = incremental_configuration
241
+ self.incremental_table_processor: Optional[
242
+ BigQueryIncrementalTableProcessor
243
+ ] = None
244
+
245
+ if self.incremental.enabled:
246
+ logger.info(
247
+ "Starting Incremental Metadata Extraction.\n\t Considering Table changes from %s",
248
+ self.incremental.start_datetime_utc,
249
+ )
250
+
230
251
  @classmethod
231
- def create(cls, config_dict, metadata: OpenMetadata):
252
+ def create(
253
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
254
+ ):
232
255
  config: WorkflowSource = WorkflowSource.parse_obj(config_dict)
233
256
  connection: BigQueryConnection = config.serviceConnection.__root__.config
234
257
  if not isinstance(connection, BigQueryConnection):
235
258
  raise InvalidSourceException(
236
259
  f"Expected BigQueryConnection, but got {connection}"
237
260
  )
238
- return cls(config, metadata)
261
+ incremental_config = IncrementalConfig.create(
262
+ config.sourceConfig.config.incremental, pipeline_name, metadata
263
+ )
264
+ return cls(config, metadata, incremental_config)
239
265
 
240
266
  @staticmethod
241
267
  def set_project_id() -> List[str]:
@@ -267,18 +293,56 @@ class BigquerySource(
267
293
  This is useful for sources where we need fine-grained
268
294
  logic on how to handle table types, e.g., external, foreign,...
269
295
  """
296
+ table_names_and_types = (
297
+ self.engine.execute(
298
+ BIGQUERY_TABLE_AND_TYPE.format(
299
+ project_id=self.client.project, schema_name=schema_name
300
+ )
301
+ )
302
+ or []
303
+ )
304
+
305
+ if self.incremental.enabled:
306
+ table_names_and_types = [
307
+ (table_name, table_type)
308
+ for table_name, table_type in table_names_and_types
309
+ if table_name
310
+ in self.incremental_table_processor.get_not_deleted(schema_name)
311
+ ]
270
312
 
271
313
  return [
272
314
  TableNameAndType(
273
315
  name=table_name,
274
316
  type_=_bigquery_table_types.get(table_type, TableType.Regular),
275
317
  )
276
- for table_name, table_type in self.engine.execute(
277
- BIGQUERY_TABLE_AND_TYPE.format(
278
- project_id=self.client.project, schema_name=schema_name
279
- )
280
- )
281
- or []
318
+ for table_name, table_type in table_names_and_types
319
+ ]
320
+
321
+ def query_view_names_and_types(
322
+ self, schema_name: str
323
+ ) -> Iterable[TableNameAndType]:
324
+ """
325
+ Connect to the source database to get the view
326
+ name and type. By default, use the inspector method
327
+ to get the names and pass the View type.
328
+
329
+ This is useful for sources where we need fine-grained
330
+ logic on how to handle table types, e.g., material views,...
331
+ """
332
+
333
+ view_names = self.inspector.get_view_names(schema_name) or []
334
+
335
+ if self.incremental.enabled:
336
+ view_names = [
337
+ view_name
338
+ for view_name in view_names
339
+ if view_name
340
+ in self.incremental_table_processor.get_not_deleted(schema_name)
341
+ ]
342
+
343
+ return [
344
+ TableNameAndType(name=view_name, type_=TableType.View)
345
+ for view_name in view_names
282
346
  ]
283
347
 
284
348
  def yield_tag(
@@ -302,7 +366,7 @@ class BigquerySource(
302
366
  include_tags=self.source_config.includeTags,
303
367
  )
304
368
  # Fetching policy tags on the column level
305
- list_project_ids = [self.context.database]
369
+ list_project_ids = [self.context.get().database]
306
370
  if not self.service_connection.taxonomyProjectID:
307
371
  self.service_connection.taxonomyProjectID = []
308
372
  list_project_ids.extend(self.service_connection.taxonomyProjectID)
@@ -351,6 +415,59 @@ class BigquerySource(
351
415
  )
352
416
  return ""
353
417
 
418
+ def _prepare_schema_incremental_data(self, schema_name: str):
419
+ """Prepares the data for Incremental Extraction.
420
+
421
+ 1. Queries Cloud Logging for the changes
422
+ 2. Sets the table map with the changes within the BigQueryIncrementalTableProcessor
423
+ 3. Adds the Deleted Tables to the context
424
+ """
425
+ self.incremental_table_processor.set_changed_tables_map(
426
+ project=self.client.project,
427
+ dataset=schema_name,
428
+ start_date=self.incremental.start_datetime_utc,
429
+ )
430
+
431
+ self.context.get_global().deleted_tables.extend(
432
+ [
433
+ fqn.build(
434
+ metadata=self.metadata,
435
+ entity_type=Table,
436
+ service_name=self.context.get().database_service,
437
+ database_name=self.context.get().database,
438
+ schema_name=schema_name,
439
+ table_name=table_name,
440
+ )
441
+ for table_name in self.incremental_table_processor.get_deleted(
442
+ schema_name
443
+ )
444
+ ]
445
+ )
446
+
447
+ def _get_filtered_schema_names(
448
+ self, return_fqn: bool = False, add_to_status: bool = True
449
+ ) -> Iterable[str]:
450
+ for schema_name in self.get_raw_database_schema_names():
451
+ schema_fqn = fqn.build(
452
+ self.metadata,
453
+ entity_type=DatabaseSchema,
454
+ service_name=self.context.get().database_service,
455
+ database_name=self.context.get().database,
456
+ schema_name=schema_name,
457
+ )
458
+ if filter_by_schema(
459
+ self.source_config.schemaFilterPattern,
460
+ schema_fqn if self.source_config.useFqnForFiltering else schema_name,
461
+ ):
462
+ if add_to_status:
463
+ self.status.filter(schema_fqn, "Schema Filtered Out")
464
+ continue
465
+
466
+ if self.incremental.enabled:
467
+ self._prepare_schema_incremental_data(schema_name)
468
+
469
+ yield schema_fqn if return_fqn else schema_name
470
+
354
471
  def yield_database_schema(
355
472
  self, schema_name: str
356
473
  ) -> Iterable[CreateDatabaseSchemaRequest]:
@@ -364,12 +481,12 @@ class BigquerySource(
364
481
  database=fqn.build(
365
482
  metadata=self.metadata,
366
483
  entity_type=Database,
367
- service_name=self.context.database_service,
368
- database_name=self.context.database,
484
+ service_name=self.context.get().database_service,
485
+ database_name=self.context.get().database,
369
486
  ),
370
487
  description=self.get_schema_description(schema_name),
371
488
  sourceUrl=self.get_source_url(
372
- database_name=self.context.database,
489
+ database_name=self.context.get().database,
373
490
  schema_name=schema_name,
374
491
  ),
375
492
  )
@@ -388,8 +505,8 @@ class BigquerySource(
388
505
  yield Either(right=database_schema_request_obj)
389
506
 
390
507
  def get_table_obj(self, table_name: str):
391
- schema_name = self.context.database_schema
392
- database = self.context.database
508
+ schema_name = self.context.get().database_schema
509
+ database = self.context.get().database
393
510
  bq_table_fqn = fqn._build(database, schema_name, table_name)
394
511
  return self.client.get_table(bq_table_fqn)
395
512
 
@@ -448,7 +565,8 @@ class BigquerySource(
448
565
  self.temp_credentials_file_path.append(os.environ[GOOGLE_CREDENTIALS])
449
566
  self.client = inspector_details.client
450
567
  self.engine = inspector_details.engine
451
- self.inspector = inspector_details.inspector
568
+ thread_id = self.context.get_current_thread_id()
569
+ self._inspector_map[thread_id] = inspector_details.inspector
452
570
 
453
571
  def get_configured_database(self) -> Optional[str]:
454
572
  return None
@@ -461,7 +579,7 @@ class BigquerySource(
461
579
  database_fqn = fqn.build(
462
580
  self.metadata,
463
581
  entity_type=Database,
464
- service_name=self.context.database_service,
582
+ service_name=self.context.get().database_service,
465
583
  database_name=project_id,
466
584
  )
467
585
  if filter_by_database(
@@ -472,6 +590,10 @@ class BigquerySource(
472
590
  else:
473
591
  try:
474
592
  self.set_inspector(database_name=project_id)
593
+ if self.incremental.enabled:
594
+ self.incremental_table_processor = (
595
+ BigQueryIncrementalTableProcessor.from_project(project_id)
596
+ )
475
597
  yield project_id
476
598
  except Exception as exc:
477
599
  logger.debug(traceback.format_exc())
@@ -485,7 +607,7 @@ class BigquerySource(
485
607
  if table_type == TableType.View:
486
608
  try:
487
609
  view_definition = inspector.get_view_definition(
488
- fqn._build(self.context.database, schema_name, table_name)
610
+ fqn._build(self.context.get().database, schema_name, table_name)
489
611
  )
490
612
  view_definition = (
491
613
  "" if view_definition is None else str(view_definition)
@@ -498,39 +620,47 @@ class BigquerySource(
498
620
 
499
621
  def get_table_partition_details(
500
622
  self, table_name: str, schema_name: str, inspector: Inspector
501
- ) -> Tuple[bool, TablePartition]:
623
+ ) -> Tuple[bool, Optional[TablePartition]]:
502
624
  """
503
625
  check if the table is partitioned table and return the partition details
504
626
  """
505
- database = self.context.database
627
+ database = self.context.get().database
506
628
  table = self.client.get_table(fqn._build(database, schema_name, table_name))
507
629
  if table.time_partitioning is not None:
508
630
  if table.time_partitioning.field:
509
631
  table_partition = TablePartition(
510
- interval=str(table.time_partitioning.type_),
511
- intervalType=IntervalType.TIME_UNIT.value,
632
+ columns=[
633
+ PartitionColumnDetails(
634
+ columnName=table.time_partitioning.field,
635
+ interval=str(table.time_partitioning.type_),
636
+ intervalType=PartitionIntervalTypes.TIME_UNIT,
637
+ )
638
+ ]
512
639
  )
513
- table_partition.columns = [table.time_partitioning.field]
514
640
  return True, table_partition
515
-
516
641
  return True, TablePartition(
517
- interval=str(table.time_partitioning.type_),
518
- intervalType=IntervalType.INGESTION_TIME.value,
642
+ columns=[
643
+ PartitionColumnDetails(
644
+ columnName="_PARTITIONTIME"
645
+ if table.time_partitioning.type_ == "HOUR"
646
+ else "_PARTITIONDATE",
647
+ interval=str(table.time_partitioning.type_),
648
+ intervalType=PartitionIntervalTypes.INGESTION_TIME,
649
+ )
650
+ ]
519
651
  )
520
652
  if table.range_partitioning:
521
- table_partition = TablePartition(
522
- intervalType=IntervalType.INTEGER_RANGE.value,
653
+ table_partition = PartitionColumnDetails(
654
+ columnName=table.range_partitioning.field,
655
+ intervalType=PartitionIntervalTypes.INTEGER_RANGE,
656
+ interval=None,
523
657
  )
524
658
  if hasattr(table.range_partitioning, "range_") and hasattr(
525
659
  table.range_partitioning.range_, "interval"
526
660
  ):
527
661
  table_partition.interval = table.range_partitioning.range_.interval
528
- if (
529
- hasattr(table.range_partitioning, "field")
530
- and table.range_partitioning.field
531
- ):
532
- table_partition.columns = [table.range_partitioning.field]
533
- return True, table_partition
662
+ table_partition.columnName = table.range_partitioning.field
663
+ return True, TablePartition(columns=[table_partition])
534
664
  return False, None
535
665
 
536
666
  def clean_raw_data_type(self, raw_data_type):
@@ -611,8 +741,8 @@ class BigquerySource(
611
741
  if self.source_config.includeStoredProcedures:
612
742
  results = self.engine.execute(
613
743
  BIGQUERY_GET_STORED_PROCEDURES.format(
614
- database_name=self.context.database,
615
- schema_name=self.context.database_schema,
744
+ database_name=self.context.get().database,
745
+ schema_name=self.context.get().database_schema,
616
746
  )
617
747
  ).all()
618
748
  for row in results:
@@ -636,14 +766,14 @@ class BigquerySource(
636
766
  databaseSchema=fqn.build(
637
767
  metadata=self.metadata,
638
768
  entity_type=DatabaseSchema,
639
- service_name=self.context.database_service,
640
- database_name=self.context.database,
641
- schema_name=self.context.database_schema,
769
+ service_name=self.context.get().database_service,
770
+ database_name=self.context.get().database,
771
+ schema_name=self.context.get().database_schema,
642
772
  ),
643
773
  sourceUrl=SourceUrl(
644
774
  __root__=self.get_stored_procedure_url(
645
- database_name=self.context.database,
646
- schema_name=self.context.database_schema,
775
+ database_name=self.context.get().database,
776
+ schema_name=self.context.get().database_schema,
647
777
  # Follow the same building strategy as tables
648
778
  table_name=stored_procedure.name,
649
779
  )
@@ -675,3 +805,26 @@ class BigquerySource(
675
805
  )
676
806
 
677
807
  return queries_dict
808
+
809
+ def mark_tables_as_deleted(self):
810
+ """
811
+ Use the current inspector to mark tables as deleted
812
+ """
813
+ if self.incremental.enabled:
814
+ if not self.context.get().__dict__.get("database"):
815
+ raise ValueError(
816
+ "No Database found in the context. We cannot run the table deletion."
817
+ )
818
+
819
+ if self.source_config.markDeletedTables:
820
+ logger.info(
821
+ f"Mark Deleted Tables set to True. Processing database [{self.context.get().database}]"
822
+ )
823
+ yield from delete_entity_by_name(
824
+ self.metadata,
825
+ entity_type=Table,
826
+ entity_names=self.context.get_global().deleted_tables,
827
+ mark_deleted_entity=self.source_config.markDeletedTables,
828
+ )
829
+ else:
830
+ yield from super().mark_tables_as_deleted()
@@ -11,7 +11,8 @@
11
11
  """
12
12
  BigQuery models
13
13
  """
14
- from typing import Optional
14
+ from datetime import datetime
15
+ from typing import Dict, List, Optional
15
16
 
16
17
  from pydantic import BaseModel, Field
17
18
 
@@ -20,6 +21,9 @@ from metadata.utils.logger import ingestion_logger
20
21
 
21
22
  logger = ingestion_logger()
22
23
 
24
+ TableName = str
25
+ SchemaName = str
26
+
23
27
  STORED_PROC_LANGUAGE_MAP = {
24
28
  "SQL": Language.SQL,
25
29
  "JAVASCRIPT": Language.JavaScript,
@@ -34,3 +38,33 @@ class BigQueryStoredProcedure(BaseModel):
34
38
  language: Optional[str] = Field(
35
39
  None, description="Will only be informed for non-SQL routines."
36
40
  )
41
+
42
+
43
+ class BigQueryTable(BaseModel):
44
+ name: TableName
45
+ timestamp: datetime
46
+ deleted: bool
47
+
48
+
49
+ class BigQueryTableMap(BaseModel):
50
+ table_map: Dict[SchemaName, Dict[TableName, BigQueryTable]]
51
+
52
+ def add(self, schema_name: SchemaName, table_map: Dict[TableName, BigQueryTable]):
53
+ """Adds a new schema table map."""
54
+ self.table_map[schema_name] = table_map
55
+
56
+ def get_deleted(self, schema_name: SchemaName) -> List[TableName]:
57
+ """Returns all deleted table names for a given schema."""
58
+ return [
59
+ table.name
60
+ for table in self.table_map.get(schema_name, {}).values()
61
+ if table.deleted
62
+ ]
63
+
64
+ def get_not_deleted(self, schema_name: SchemaName) -> List[TableName]:
65
+ """Returns all not deleted table names for a given schema."""
66
+ return [
67
+ table.name
68
+ for table in self.table_map.get(schema_name, {}).values()
69
+ if not table.deleted
70
+ ]
@@ -38,7 +38,7 @@ WHERE creation_time BETWEEN "{start_time}" AND "{end_time}"
38
38
  )
39
39
 
40
40
  BIGQUERY_TEST_STATEMENT = textwrap.dedent(
41
- """SELECT query FROM `region-{region}`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
41
+ """SELECT query FROM `region-{region}`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
42
42
  where creation_time > '{creation_date}' limit 1"""
43
43
  )
44
44
 
@@ -46,8 +46,8 @@ BIGQUERY_TEST_STATEMENT = textwrap.dedent(
46
46
  BIGQUERY_SCHEMA_DESCRIPTION = textwrap.dedent(
47
47
  """
48
48
  SELECT option_value as schema_description FROM
49
- `{project_id}`.`region-{region}`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS
50
- where schema_name = '{schema_name}' and option_name = 'description'
49
+ `{project_id}`.`region-{region}`.INFORMATION_SCHEMA.SCHEMATA_OPTIONS
50
+ where schema_name = '{schema_name}' and option_name = 'description'
51
51
  and option_value is not null
52
52
  """
53
53
  )
@@ -62,27 +62,28 @@ BIGQUERY_TABLE_CONSTRAINTS = textwrap.dedent(
62
62
  """
63
63
  SELECT *
64
64
  FROM `{project_id}`.{schema_name}.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
65
- WHERE table_name = '{table_name}' AND constraint_name LIKE '%pk$';
65
+ WHERE constraint_name LIKE '%pk$';
66
66
  """
67
67
  )
68
68
 
69
69
  BIGQUERY_FOREIGN_CONSTRAINTS = textwrap.dedent(
70
70
  """
71
- SELECT
72
- c.table_name AS referred_table,
73
- r.table_schema as referred_schema,
74
- r.constraint_name as name,
71
+ SELECT
72
+ c.table_name AS referred_table,
73
+ r.table_schema as referred_schema,
74
+ r.constraint_name as name,
75
75
  c.column_name as referred_columns,
76
- c.column_name as constrained_columns
76
+ c.column_name as constrained_columns,
77
+ r.table_name as table_name
77
78
  FROM `{project_id}`.{schema_name}.INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE c
78
79
  JOIN `{project_id}`.{schema_name}.INFORMATION_SCHEMA.TABLE_CONSTRAINTS r ON c.constraint_name = r.constraint_name
79
- WHERE r.constraint_type = 'FOREIGN KEY' AND r.table_name='{table_name}';
80
+ WHERE r.constraint_type = 'FOREIGN KEY';
80
81
  """
81
82
  )
82
83
 
83
84
  BIGQUERY_GET_STORED_PROCEDURES = textwrap.dedent(
84
85
  """
85
- SELECT
86
+ SELECT
86
87
  routine_name as name,
87
88
  routine_definition as definition,
88
89
  external_language as language
@@ -151,7 +152,7 @@ ORDER BY procedure_start_time DESC
151
152
 
152
153
  BIGQUERY_LIFE_CYCLE_QUERY = textwrap.dedent(
153
154
  """
154
- select
155
+ select
155
156
  table_name as table_name,
156
157
  creation_time as created_at
157
158
  from `{schema_name}`.INFORMATION_SCHEMA.TABLES
@@ -159,3 +160,15 @@ where table_schema = '{schema_name}'
159
160
  and table_catalog = '{database_name}'
160
161
  """
161
162
  )
163
+
164
+ BIGQUERY_GET_CHANGED_TABLES_FROM_CLOUD_LOGGING = """
165
+ protoPayload.metadata.@type="type.googleapis.com/google.cloud.audit.BigQueryAuditMetadata"
166
+ AND (
167
+ protoPayload.methodName = ("google.cloud.bigquery.v2.TableService.UpdateTable" OR "google.cloud.bigquery.v2.TableService.InsertTable" OR "google.cloud.bigquery.v2.TableService.PatchTable" OR "google.cloud.bigquery.v2.TableService.DeleteTable")
168
+ OR
169
+ (protoPayload.methodName = "google.cloud.bigquery.v2.JobService.InsertJob" AND (protoPayload.metadata.tableCreation:* OR protoPayload.metadata.tableChange:* OR protoPayload.metadata.tableDeletion:*))
170
+ )
171
+ AND resource.labels.project_id = "{project}"
172
+ AND resource.labels.dataset_id = "{dataset}"
173
+ AND timestamp >= "{start_date}"
174
+ """
@@ -45,7 +45,9 @@ class BigqueryQueryParserSource(QueryParserSource, ABC):
45
45
  self.database = self.project_id
46
46
 
47
47
  @classmethod
48
- def create(cls, config_dict, metadata: OpenMetadata):
48
+ def create(
49
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
50
+ ):
49
51
  config: WorkflowSource = WorkflowSource.parse_obj(config_dict)
50
52
  connection: BigQueryConnection = config.serviceConnection.__root__.config
51
53
  if not isinstance(connection, BigQueryConnection):
@@ -71,7 +71,9 @@ class BigtableSource(CommonNoSQLSource, MultiDBSource):
71
71
  self.tables: Dict[ProjectId, Dict[InstanceId, Dict[TableId, Table]]] = {}
72
72
 
73
73
  @classmethod
74
- def create(cls, config_dict, metadata: OpenMetadata):
74
+ def create(
75
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
76
+ ):
75
77
  config: WorkflowSource = WorkflowSource.parse_obj(config_dict)
76
78
  connection: BigTableConnection = config.serviceConnection.__root__.config
77
79
  if not isinstance(connection, BigTableConnection):
@@ -96,7 +98,7 @@ class BigtableSource(CommonNoSQLSource, MultiDBSource):
96
98
  yield from self.client.project_ids()
97
99
 
98
100
  def get_schema_name_list(self) -> List[str]:
99
- project_id = self.context.database
101
+ project_id = self.context.get().database
100
102
  try:
101
103
  # the first element is a list of instances
102
104
  # the second element is another collection (seems empty) and I do not know what is its purpose
@@ -113,7 +115,7 @@ class BigtableSource(CommonNoSQLSource, MultiDBSource):
113
115
  raise
114
116
 
115
117
  def get_table_name_list(self, schema_name: str) -> List[str]:
116
- project_id = self.context.database
118
+ project_id = self.context.get().database
117
119
  try:
118
120
  instance = self._get_instance(project_id, schema_name)
119
121
  if instance is None:
@@ -146,7 +148,7 @@ class BigtableSource(CommonNoSQLSource, MultiDBSource):
146
148
  def get_table_columns_dict(
147
149
  self, schema_name: str, table_name: str
148
150
  ) -> Union[List[Dict], Dict]:
149
- project_id = self.context.database
151
+ project_id = self.context.get().database
150
152
  try:
151
153
  table = self._get_table(project_id, schema_name, table_name)
152
154
  if table is None:
@@ -104,7 +104,9 @@ class ClickhouseSource(CommonDbSourceService):
104
104
  """
105
105
 
106
106
  @classmethod
107
- def create(cls, config_dict, metadata: OpenMetadata):
107
+ def create(
108
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
109
+ ):
108
110
  config: WorkflowSource = WorkflowSource.parse_obj(config_dict)
109
111
  connection: ClickhouseConnection = config.serviceConnection.__root__.config
110
112
  if not isinstance(connection, ClickhouseConnection):
@@ -16,7 +16,7 @@ import ast
16
16
  import traceback
17
17
  from abc import ABC
18
18
  from datetime import datetime
19
- from typing import List
19
+ from typing import List, Optional
20
20
 
21
21
  from metadata.generated.schema.entity.data.database import Database
22
22
  from metadata.generated.schema.entity.services.connections.database.clickhouseConnection import (
@@ -39,7 +39,9 @@ class ClickhouseQueryParserSource(QueryParserSource, ABC):
39
39
  """
40
40
 
41
41
  @classmethod
42
- def create(cls, config_dict, metadata: OpenMetadata):
42
+ def create(
43
+ cls, config_dict, metadata: OpenMetadata, pipeline_name: Optional[str] = None
44
+ ):
43
45
  config: WorkflowSource = WorkflowSource.parse_obj(config_dict)
44
46
  connection: ClickhouseConnection = config.serviceConnection.__root__.config
45
47
  if not isinstance(connection, ClickhouseConnection):