openmetadata-ingestion 1.3.0.1__py3-none-any.whl → 1.3.1.0__py3-none-any.whl

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

Potentially problematic release.


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

Files changed (574) hide show
  1. metadata/cli/db_dump.py +1 -0
  2. metadata/data_insight/processor/reports/cost_analysis_report_data_processor.py +39 -47
  3. metadata/data_insight/processor/reports/data_processor.py +1 -0
  4. metadata/data_insight/producer/cost_analysis_producer.py +78 -14
  5. metadata/data_insight/producer/entity_producer.py +1 -1
  6. metadata/data_insight/producer/producer_interface.py +1 -1
  7. metadata/data_insight/producer/web_analytics_producer.py +1 -1
  8. metadata/data_insight/source/metadata.py +10 -1
  9. metadata/data_quality/validations/table/base/tableColumnToMatchSet.py +2 -1
  10. metadata/data_quality/validations/table/pandas/tableColumnToMatchSet.py +2 -1
  11. metadata/data_quality/validations/table/sqlalchemy/tableColumnToMatchSet.py +7 -2
  12. metadata/examples/workflows/bigtable.yaml +32 -0
  13. metadata/generated/antlr/EntityLinkLexer.py +353 -319
  14. metadata/generated/schema/analytics/__init__.py +1 -1
  15. metadata/generated/schema/analytics/basic.py +1 -1
  16. metadata/generated/schema/analytics/reportData.py +1 -1
  17. metadata/generated/schema/analytics/reportDataType/__init__.py +1 -1
  18. metadata/generated/schema/analytics/reportDataType/aggregatedCostAnalysisReportData.py +1 -1
  19. metadata/generated/schema/analytics/reportDataType/entityReportData.py +1 -1
  20. metadata/generated/schema/analytics/reportDataType/rawCostAnalysisReportData.py +1 -1
  21. metadata/generated/schema/analytics/reportDataType/webAnalyticEntityViewReportData.py +1 -1
  22. metadata/generated/schema/analytics/reportDataType/webAnalyticUserActivityReportData.py +1 -1
  23. metadata/generated/schema/analytics/webAnalyticEvent.py +1 -1
  24. metadata/generated/schema/analytics/webAnalyticEventData.py +1 -1
  25. metadata/generated/schema/analytics/webAnalyticEventType/__init__.py +1 -1
  26. metadata/generated/schema/analytics/webAnalyticEventType/customEvent.py +1 -1
  27. metadata/generated/schema/analytics/webAnalyticEventType/pageViewEvent.py +1 -1
  28. metadata/generated/schema/api/__init__.py +1 -1
  29. metadata/generated/schema/api/addGlossaryToAssetsRequest.py +1 -1
  30. metadata/generated/schema/api/analytics/__init__.py +1 -1
  31. metadata/generated/schema/api/analytics/createWebAnalyticEvent.py +1 -1
  32. metadata/generated/schema/api/automations/__init__.py +1 -1
  33. metadata/generated/schema/api/automations/createWorkflow.py +1 -1
  34. metadata/generated/schema/api/bulkAssets.py +1 -1
  35. metadata/generated/schema/api/classification/__init__.py +1 -1
  36. metadata/generated/schema/api/classification/createClassification.py +1 -1
  37. metadata/generated/schema/api/classification/createTag.py +1 -1
  38. metadata/generated/schema/api/classification/loadTags.py +1 -1
  39. metadata/generated/schema/api/createBot.py +1 -1
  40. metadata/generated/schema/api/createEventPublisherJob.py +2 -2
  41. metadata/generated/schema/api/createType.py +1 -1
  42. metadata/generated/schema/api/data/__init__.py +1 -1
  43. metadata/generated/schema/api/data/createChart.py +1 -1
  44. metadata/generated/schema/api/data/createContainer.py +1 -1
  45. metadata/generated/schema/api/data/createCustomProperty.py +6 -10
  46. metadata/generated/schema/api/data/createDashboard.py +1 -1
  47. metadata/generated/schema/api/data/createDashboardDataModel.py +1 -1
  48. metadata/generated/schema/api/data/createDatabase.py +1 -1
  49. metadata/generated/schema/api/data/createDatabaseSchema.py +1 -1
  50. metadata/generated/schema/api/data/createGlossary.py +1 -1
  51. metadata/generated/schema/api/data/createGlossaryTerm.py +1 -1
  52. metadata/generated/schema/api/data/createMlModel.py +1 -1
  53. metadata/generated/schema/api/data/createPipeline.py +1 -1
  54. metadata/generated/schema/api/data/createQuery.py +1 -1
  55. metadata/generated/schema/api/data/createSearchIndex.py +1 -1
  56. metadata/generated/schema/api/data/createStoredProcedure.py +1 -1
  57. metadata/generated/schema/api/data/createTable.py +1 -1
  58. metadata/generated/schema/api/data/createTableProfile.py +1 -1
  59. metadata/generated/schema/api/data/createTopic.py +1 -1
  60. metadata/generated/schema/api/data/loadGlossary.py +1 -1
  61. metadata/generated/schema/api/data/restoreEntity.py +1 -1
  62. metadata/generated/schema/api/dataInsight/__init__.py +1 -1
  63. metadata/generated/schema/api/dataInsight/createDataInsightChart.py +1 -1
  64. metadata/generated/schema/api/dataInsight/kpi/__init__.py +1 -1
  65. metadata/generated/schema/api/dataInsight/kpi/createKpiRequest.py +1 -1
  66. metadata/generated/schema/api/docStore/__init__.py +1 -1
  67. metadata/generated/schema/api/docStore/createDocument.py +1 -1
  68. metadata/generated/schema/api/domains/__init__.py +1 -1
  69. metadata/generated/schema/api/domains/createDataProduct.py +1 -1
  70. metadata/generated/schema/api/domains/createDomain.py +1 -1
  71. metadata/generated/schema/api/feed/__init__.py +1 -1
  72. metadata/generated/schema/api/feed/closeTask.py +1 -1
  73. metadata/generated/schema/api/feed/createPost.py +1 -1
  74. metadata/generated/schema/api/feed/createSuggestion.py +1 -1
  75. metadata/generated/schema/api/feed/createThread.py +1 -1
  76. metadata/generated/schema/api/feed/resolveTask.py +1 -1
  77. metadata/generated/schema/api/feed/threadCount.py +1 -1
  78. metadata/generated/schema/api/lineage/__init__.py +1 -1
  79. metadata/generated/schema/api/lineage/addLineage.py +1 -1
  80. metadata/generated/schema/api/openMetadataServerVersion.py +1 -1
  81. metadata/generated/schema/api/policies/__init__.py +1 -1
  82. metadata/generated/schema/api/policies/createPolicy.py +1 -1
  83. metadata/generated/schema/api/services/__init__.py +1 -1
  84. metadata/generated/schema/api/services/createDashboardService.py +1 -1
  85. metadata/generated/schema/api/services/createDatabaseService.py +1 -1
  86. metadata/generated/schema/api/services/createMessagingService.py +1 -1
  87. metadata/generated/schema/api/services/createMetadataService.py +1 -1
  88. metadata/generated/schema/api/services/createMlModelService.py +1 -1
  89. metadata/generated/schema/api/services/createPipelineService.py +1 -1
  90. metadata/generated/schema/api/services/createSearchService.py +1 -1
  91. metadata/generated/schema/api/services/createStorageService.py +1 -1
  92. metadata/generated/schema/api/services/ingestionPipelines/__init__.py +1 -1
  93. metadata/generated/schema/api/services/ingestionPipelines/createIngestionPipeline.py +1 -1
  94. metadata/generated/schema/api/setOwner.py +1 -1
  95. metadata/generated/schema/api/teams/__init__.py +1 -1
  96. metadata/generated/schema/api/teams/createPersona.py +1 -1
  97. metadata/generated/schema/api/teams/createRole.py +1 -1
  98. metadata/generated/schema/api/teams/createTeam.py +1 -1
  99. metadata/generated/schema/api/teams/createUser.py +1 -1
  100. metadata/generated/schema/api/tests/__init__.py +1 -1
  101. metadata/generated/schema/api/tests/createCustomMetric.py +1 -1
  102. metadata/generated/schema/api/tests/createLogicalTestCases.py +1 -1
  103. metadata/generated/schema/api/tests/createTestCase.py +1 -1
  104. metadata/generated/schema/api/tests/createTestCaseResolutionStatus.py +1 -1
  105. metadata/generated/schema/api/tests/createTestDefinition.py +2 -1
  106. metadata/generated/schema/api/tests/createTestSuite.py +1 -1
  107. metadata/generated/schema/api/voteRequest.py +1 -1
  108. metadata/generated/schema/auth/__init__.py +1 -1
  109. metadata/generated/schema/auth/basicAuth.py +1 -1
  110. metadata/generated/schema/auth/basicLoginRequest.py +1 -1
  111. metadata/generated/schema/auth/changePasswordRequest.py +1 -1
  112. metadata/generated/schema/auth/createPersonalToken.py +1 -1
  113. metadata/generated/schema/auth/emailRequest.py +1 -1
  114. metadata/generated/schema/auth/emailVerificationToken.py +1 -1
  115. metadata/generated/schema/auth/generateToken.py +1 -1
  116. metadata/generated/schema/auth/jwtAuth.py +1 -1
  117. metadata/generated/schema/auth/loginRequest.py +1 -1
  118. metadata/generated/schema/auth/logoutRequest.py +1 -1
  119. metadata/generated/schema/auth/passwordResetRequest.py +1 -1
  120. metadata/generated/schema/auth/passwordResetToken.py +1 -1
  121. metadata/generated/schema/auth/personalAccessToken.py +1 -1
  122. metadata/generated/schema/auth/refreshToken.py +1 -1
  123. metadata/generated/schema/auth/registrationRequest.py +1 -1
  124. metadata/generated/schema/auth/revokePersonalToken.py +1 -1
  125. metadata/generated/schema/auth/revokeToken.py +1 -1
  126. metadata/generated/schema/auth/serviceTokenEnum.py +1 -1
  127. metadata/generated/schema/auth/ssoAuth.py +1 -1
  128. metadata/generated/schema/auth/tokenRefreshRequest.py +1 -1
  129. metadata/generated/schema/configuration/__init__.py +1 -1
  130. metadata/generated/schema/configuration/appsPrivateConfiguration.py +1 -1
  131. metadata/generated/schema/configuration/authConfig.py +1 -1
  132. metadata/generated/schema/configuration/authenticationConfiguration.py +1 -1
  133. metadata/generated/schema/configuration/authorizerConfiguration.py +1 -1
  134. metadata/generated/schema/configuration/changeEventConfiguration.py +1 -1
  135. metadata/generated/schema/configuration/dataQualityConfiguration.py +16 -0
  136. metadata/generated/schema/configuration/elasticSearchConfiguration.py +1 -1
  137. metadata/generated/schema/configuration/eventHandlerConfiguration.py +1 -1
  138. metadata/generated/schema/configuration/fernetConfiguration.py +1 -1
  139. metadata/generated/schema/configuration/jwtTokenConfiguration.py +1 -1
  140. metadata/generated/schema/configuration/kafkaEventConfiguration.py +1 -1
  141. metadata/generated/schema/configuration/ldapConfiguration.py +1 -1
  142. metadata/generated/schema/configuration/ldapTrustStoreConfig/__init__.py +1 -1
  143. metadata/generated/schema/configuration/ldapTrustStoreConfig/customTrustManagerConfig.py +1 -1
  144. metadata/generated/schema/configuration/ldapTrustStoreConfig/hostNameConfig.py +1 -1
  145. metadata/generated/schema/configuration/ldapTrustStoreConfig/jvmDefaultConfig.py +1 -1
  146. metadata/generated/schema/configuration/ldapTrustStoreConfig/trustAllConfig.py +1 -1
  147. metadata/generated/schema/configuration/ldapTrustStoreConfig/truststoreConfig.py +1 -1
  148. metadata/generated/schema/configuration/loginConfiguration.py +1 -1
  149. metadata/generated/schema/configuration/logoConfiguration.py +1 -1
  150. metadata/generated/schema/configuration/pipelineServiceClientConfiguration.py +1 -1
  151. metadata/generated/schema/configuration/slackAppConfiguration.py +1 -1
  152. metadata/generated/schema/configuration/taskNotificationConfiguration.py +1 -1
  153. metadata/generated/schema/configuration/testResultNotificationConfiguration.py +1 -1
  154. metadata/generated/schema/dataInsight/__init__.py +1 -1
  155. metadata/generated/schema/dataInsight/dataInsightChart.py +1 -1
  156. metadata/generated/schema/dataInsight/dataInsightChartResult.py +1 -1
  157. metadata/generated/schema/dataInsight/kpi/__init__.py +1 -1
  158. metadata/generated/schema/dataInsight/kpi/basic.py +1 -1
  159. metadata/generated/schema/dataInsight/kpi/kpi.py +1 -1
  160. metadata/generated/schema/dataInsight/type/__init__.py +1 -1
  161. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsCount.py +1 -1
  162. metadata/generated/schema/dataInsight/type/aggregatedUnusedAssetsSize.py +1 -1
  163. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsCount.py +1 -1
  164. metadata/generated/schema/dataInsight/type/aggregatedUsedVsUnusedAssetsSize.py +1 -1
  165. metadata/generated/schema/dataInsight/type/dailyActiveUsers.py +1 -1
  166. metadata/generated/schema/dataInsight/type/mostActiveUsers.py +1 -1
  167. metadata/generated/schema/dataInsight/type/mostViewedEntities.py +1 -1
  168. metadata/generated/schema/dataInsight/type/pageViewsByEntities.py +1 -1
  169. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithDescriptionByType.py +1 -1
  170. metadata/generated/schema/dataInsight/type/percentageOfEntitiesWithOwnerByType.py +1 -1
  171. metadata/generated/schema/dataInsight/type/percentageOfServicesWithDescription.py +1 -1
  172. metadata/generated/schema/dataInsight/type/percentageOfServicesWithOwner.py +1 -1
  173. metadata/generated/schema/dataInsight/type/totalEntitiesByTier.py +1 -1
  174. metadata/generated/schema/dataInsight/type/totalEntitiesByType.py +1 -1
  175. metadata/generated/schema/dataInsight/type/unusedAssets.py +1 -1
  176. metadata/generated/schema/email/__init__.py +1 -1
  177. metadata/generated/schema/email/emailRequest.py +1 -1
  178. metadata/generated/schema/email/smtpSettings.py +1 -1
  179. metadata/generated/schema/entity/__init__.py +1 -1
  180. metadata/generated/schema/entity/applications/__init__.py +1 -1
  181. metadata/generated/schema/entity/applications/app.py +1 -1
  182. metadata/generated/schema/entity/applications/appRunRecord.py +1 -1
  183. metadata/generated/schema/entity/applications/configuration/__init__.py +1 -1
  184. metadata/generated/schema/entity/applications/configuration/applicationConfig.py +1 -1
  185. metadata/generated/schema/entity/applications/configuration/external/__init__.py +1 -1
  186. metadata/generated/schema/entity/applications/configuration/external/autoTaggerAppConfig.py +1 -1
  187. metadata/generated/schema/entity/applications/configuration/external/metaPilotAppConfig.py +1 -1
  188. metadata/generated/schema/entity/applications/configuration/internal/__init__.py +1 -1
  189. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsAppConfig.py +1 -1
  190. metadata/generated/schema/entity/applications/configuration/internal/dataInsightsReportAppConfig.py +1 -1
  191. metadata/generated/schema/entity/applications/configuration/internal/searchIndexingAppConfig.py +2 -2
  192. metadata/generated/schema/entity/applications/configuration/private/external/__init__.py +1 -1
  193. metadata/generated/schema/entity/applications/configuration/private/external/metaPilotAppPrivateConfig.py +1 -1
  194. metadata/generated/schema/entity/applications/createAppRequest.py +1 -1
  195. metadata/generated/schema/entity/applications/jobStatus.py +1 -1
  196. metadata/generated/schema/entity/applications/liveExecutionContext.py +1 -1
  197. metadata/generated/schema/entity/applications/marketplace/__init__.py +1 -1
  198. metadata/generated/schema/entity/applications/marketplace/appMarketPlaceDefinition.py +1 -1
  199. metadata/generated/schema/entity/applications/marketplace/createAppMarketPlaceDefinitionReq.py +1 -1
  200. metadata/generated/schema/entity/applications/scheduledExecutionContext.py +1 -1
  201. metadata/generated/schema/entity/automations/__init__.py +1 -1
  202. metadata/generated/schema/entity/automations/testServiceConnection.py +1 -1
  203. metadata/generated/schema/entity/automations/workflow.py +1 -1
  204. metadata/generated/schema/entity/bot.py +1 -1
  205. metadata/generated/schema/entity/classification/__init__.py +1 -1
  206. metadata/generated/schema/entity/classification/classification.py +1 -1
  207. metadata/generated/schema/entity/classification/tag.py +1 -1
  208. metadata/generated/schema/entity/data/__init__.py +1 -1
  209. metadata/generated/schema/entity/data/chart.py +1 -1
  210. metadata/generated/schema/entity/data/container.py +1 -1
  211. metadata/generated/schema/entity/data/dashboard.py +1 -1
  212. metadata/generated/schema/entity/data/dashboardDataModel.py +1 -1
  213. metadata/generated/schema/entity/data/database.py +1 -1
  214. metadata/generated/schema/entity/data/databaseSchema.py +1 -1
  215. metadata/generated/schema/entity/data/glossary.py +1 -1
  216. metadata/generated/schema/entity/data/glossaryTerm.py +1 -1
  217. metadata/generated/schema/entity/data/metrics.py +1 -1
  218. metadata/generated/schema/entity/data/mlmodel.py +2 -2
  219. metadata/generated/schema/entity/data/pipeline.py +1 -1
  220. metadata/generated/schema/entity/data/query.py +1 -1
  221. metadata/generated/schema/entity/data/report.py +1 -1
  222. metadata/generated/schema/entity/data/searchIndex.py +1 -1
  223. metadata/generated/schema/entity/data/storedProcedure.py +1 -1
  224. metadata/generated/schema/entity/data/table.py +1 -1
  225. metadata/generated/schema/entity/data/topic.py +1 -1
  226. metadata/generated/schema/entity/docStore/__init__.py +1 -1
  227. metadata/generated/schema/entity/docStore/document.py +1 -1
  228. metadata/generated/schema/entity/domains/__init__.py +1 -1
  229. metadata/generated/schema/entity/domains/dataProduct.py +1 -1
  230. metadata/generated/schema/entity/domains/domain.py +1 -1
  231. metadata/generated/schema/entity/events/__init__.py +1 -1
  232. metadata/generated/schema/entity/events/webhook.py +1 -1
  233. metadata/generated/schema/entity/feed/__init__.py +1 -1
  234. metadata/generated/schema/entity/feed/suggestion.py +1 -1
  235. metadata/generated/schema/entity/feed/thread.py +1 -1
  236. metadata/generated/schema/entity/policies/__init__.py +1 -1
  237. metadata/generated/schema/entity/policies/accessControl/__init__.py +1 -1
  238. metadata/generated/schema/entity/policies/accessControl/resourceDescriptor.py +1 -1
  239. metadata/generated/schema/entity/policies/accessControl/resourcePermission.py +1 -1
  240. metadata/generated/schema/entity/policies/accessControl/rule.py +1 -1
  241. metadata/generated/schema/entity/policies/filters.py +1 -1
  242. metadata/generated/schema/entity/policies/policy.py +1 -1
  243. metadata/generated/schema/entity/services/__init__.py +1 -1
  244. metadata/generated/schema/entity/services/connections/__init__.py +1 -1
  245. metadata/generated/schema/entity/services/connections/common/__init__.py +1 -1
  246. metadata/generated/schema/entity/services/connections/common/sslCertPaths.py +1 -1
  247. metadata/generated/schema/entity/services/connections/common/sslCertValues.py +1 -1
  248. metadata/generated/schema/entity/services/connections/common/sslConfig.py +1 -1
  249. metadata/generated/schema/entity/services/connections/connectionBasicType.py +1 -1
  250. metadata/generated/schema/entity/services/connections/dashboard/__init__.py +1 -1
  251. metadata/generated/schema/entity/services/connections/dashboard/customDashboardConnection.py +1 -1
  252. metadata/generated/schema/entity/services/connections/dashboard/domoDashboardConnection.py +1 -1
  253. metadata/generated/schema/entity/services/connections/dashboard/lightdashConnection.py +1 -1
  254. metadata/generated/schema/entity/services/connections/dashboard/lookerConnection.py +1 -1
  255. metadata/generated/schema/entity/services/connections/dashboard/metabaseConnection.py +1 -1
  256. metadata/generated/schema/entity/services/connections/dashboard/modeConnection.py +1 -1
  257. metadata/generated/schema/entity/services/connections/dashboard/mstrConnection.py +1 -1
  258. metadata/generated/schema/entity/services/connections/dashboard/powerBIConnection.py +1 -1
  259. metadata/generated/schema/entity/services/connections/dashboard/qlikSenseConnection.py +1 -1
  260. metadata/generated/schema/entity/services/connections/dashboard/quickSightConnection.py +1 -1
  261. metadata/generated/schema/entity/services/connections/dashboard/redashConnection.py +1 -1
  262. metadata/generated/schema/entity/services/connections/dashboard/supersetConnection.py +1 -1
  263. metadata/generated/schema/entity/services/connections/dashboard/tableauConnection.py +1 -1
  264. metadata/generated/schema/entity/services/connections/database/__init__.py +1 -1
  265. metadata/generated/schema/entity/services/connections/database/athenaConnection.py +1 -1
  266. metadata/generated/schema/entity/services/connections/database/azureSQLConnection.py +1 -1
  267. metadata/generated/schema/entity/services/connections/database/bigQueryConnection.py +1 -1
  268. metadata/generated/schema/entity/services/connections/database/bigTableConnection.py +41 -0
  269. metadata/generated/schema/entity/services/connections/database/clickhouseConnection.py +1 -1
  270. metadata/generated/schema/entity/services/connections/database/common/__init__.py +1 -1
  271. metadata/generated/schema/entity/services/connections/database/common/basicAuth.py +1 -1
  272. metadata/generated/schema/entity/services/connections/database/common/iamAuthConfig.py +1 -1
  273. metadata/generated/schema/entity/services/connections/database/common/jwtAuth.py +1 -1
  274. metadata/generated/schema/entity/services/connections/database/couchbaseConnection.py +1 -1
  275. metadata/generated/schema/entity/services/connections/database/customDatabaseConnection.py +1 -1
  276. metadata/generated/schema/entity/services/connections/database/databricksConnection.py +1 -1
  277. metadata/generated/schema/entity/services/connections/database/datalake/__init__.py +1 -1
  278. metadata/generated/schema/entity/services/connections/database/datalake/azureConfig.py +1 -1
  279. metadata/generated/schema/entity/services/connections/database/datalake/gcsConfig.py +1 -1
  280. metadata/generated/schema/entity/services/connections/database/datalake/s3Config.py +1 -1
  281. metadata/generated/schema/entity/services/connections/database/datalakeConnection.py +1 -1
  282. metadata/generated/schema/entity/services/connections/database/db2Connection.py +1 -1
  283. metadata/generated/schema/entity/services/connections/database/deltaLakeConnection.py +1 -1
  284. metadata/generated/schema/entity/services/connections/database/domoDatabaseConnection.py +1 -1
  285. metadata/generated/schema/entity/services/connections/database/dorisConnection.py +1 -1
  286. metadata/generated/schema/entity/services/connections/database/druidConnection.py +1 -1
  287. metadata/generated/schema/entity/services/connections/database/dynamoDBConnection.py +1 -1
  288. metadata/generated/schema/entity/services/connections/database/glueConnection.py +1 -1
  289. metadata/generated/schema/entity/services/connections/database/greenplumConnection.py +1 -1
  290. metadata/generated/schema/entity/services/connections/database/hiveConnection.py +1 -1
  291. metadata/generated/schema/entity/services/connections/database/iceberg/__init__.py +1 -1
  292. metadata/generated/schema/entity/services/connections/database/iceberg/dynamoDbCatalogConnection.py +1 -1
  293. metadata/generated/schema/entity/services/connections/database/iceberg/glueCatalogConnection.py +1 -1
  294. metadata/generated/schema/entity/services/connections/database/iceberg/hiveCatalogConnection.py +1 -1
  295. metadata/generated/schema/entity/services/connections/database/iceberg/icebergCatalog.py +1 -1
  296. metadata/generated/schema/entity/services/connections/database/iceberg/icebergFileSystem.py +1 -1
  297. metadata/generated/schema/entity/services/connections/database/iceberg/restCatalogConnection.py +1 -1
  298. metadata/generated/schema/entity/services/connections/database/icebergConnection.py +1 -1
  299. metadata/generated/schema/entity/services/connections/database/impalaConnection.py +1 -1
  300. metadata/generated/schema/entity/services/connections/database/mariaDBConnection.py +1 -1
  301. metadata/generated/schema/entity/services/connections/database/mongoDBConnection.py +1 -1
  302. metadata/generated/schema/entity/services/connections/database/mssqlConnection.py +1 -1
  303. metadata/generated/schema/entity/services/connections/database/mysqlConnection.py +1 -1
  304. metadata/generated/schema/entity/services/connections/database/oracleConnection.py +1 -1
  305. metadata/generated/schema/entity/services/connections/database/pinotDBConnection.py +8 -6
  306. metadata/generated/schema/entity/services/connections/database/postgresConnection.py +1 -1
  307. metadata/generated/schema/entity/services/connections/database/prestoConnection.py +1 -1
  308. metadata/generated/schema/entity/services/connections/database/redshiftConnection.py +1 -1
  309. metadata/generated/schema/entity/services/connections/database/salesforceConnection.py +1 -1
  310. metadata/generated/schema/entity/services/connections/database/sapHanaConnection.py +1 -1
  311. metadata/generated/schema/entity/services/connections/database/sasConnection.py +1 -1
  312. metadata/generated/schema/entity/services/connections/database/singleStoreConnection.py +1 -1
  313. metadata/generated/schema/entity/services/connections/database/snowflakeConnection.py +1 -1
  314. metadata/generated/schema/entity/services/connections/database/sqliteConnection.py +1 -1
  315. metadata/generated/schema/entity/services/connections/database/trinoConnection.py +1 -1
  316. metadata/generated/schema/entity/services/connections/database/unityCatalogConnection.py +1 -1
  317. metadata/generated/schema/entity/services/connections/database/verticaConnection.py +1 -1
  318. metadata/generated/schema/entity/services/connections/messaging/__init__.py +1 -1
  319. metadata/generated/schema/entity/services/connections/messaging/customMessagingConnection.py +1 -1
  320. metadata/generated/schema/entity/services/connections/messaging/kafkaConnection.py +14 -2
  321. metadata/generated/schema/entity/services/connections/messaging/kinesisConnection.py +1 -1
  322. metadata/generated/schema/entity/services/connections/messaging/pulsarConnection.py +1 -1
  323. metadata/generated/schema/entity/services/connections/messaging/redpandaConnection.py +14 -2
  324. metadata/generated/schema/entity/services/connections/messaging/saslMechanismType.py +1 -1
  325. metadata/generated/schema/entity/services/connections/metadata/__init__.py +1 -1
  326. metadata/generated/schema/entity/services/connections/metadata/alationConnection.py +1 -1
  327. metadata/generated/schema/entity/services/connections/metadata/amundsenConnection.py +1 -1
  328. metadata/generated/schema/entity/services/connections/metadata/atlasConnection.py +1 -1
  329. metadata/generated/schema/entity/services/connections/metadata/metadataESConnection.py +2 -2
  330. metadata/generated/schema/entity/services/connections/metadata/openMetadataConnection.py +1 -1
  331. metadata/generated/schema/entity/services/connections/mlmodel/__init__.py +1 -1
  332. metadata/generated/schema/entity/services/connections/mlmodel/customMlModelConnection.py +1 -1
  333. metadata/generated/schema/entity/services/connections/mlmodel/mlflowConnection.py +1 -1
  334. metadata/generated/schema/entity/services/connections/mlmodel/sageMakerConnection.py +1 -1
  335. metadata/generated/schema/entity/services/connections/mlmodel/sklearnConnection.py +1 -1
  336. metadata/generated/schema/entity/services/connections/pipeline/__init__.py +1 -1
  337. metadata/generated/schema/entity/services/connections/pipeline/airbyteConnection.py +1 -1
  338. metadata/generated/schema/entity/services/connections/pipeline/airflowConnection.py +1 -1
  339. metadata/generated/schema/entity/services/connections/pipeline/backendConnection.py +1 -1
  340. metadata/generated/schema/entity/services/connections/pipeline/customPipelineConnection.py +1 -1
  341. metadata/generated/schema/entity/services/connections/pipeline/dagsterConnection.py +1 -1
  342. metadata/generated/schema/entity/services/connections/pipeline/databricksPipelineConnection.py +1 -1
  343. metadata/generated/schema/entity/services/connections/pipeline/domoPipelineConnection.py +1 -1
  344. metadata/generated/schema/entity/services/connections/pipeline/fivetranConnection.py +1 -1
  345. metadata/generated/schema/entity/services/connections/pipeline/gluePipelineConnection.py +1 -1
  346. metadata/generated/schema/entity/services/connections/pipeline/nifiConnection.py +1 -1
  347. metadata/generated/schema/entity/services/connections/pipeline/sparkConnection.py +1 -1
  348. metadata/generated/schema/entity/services/connections/pipeline/splineConnection.py +1 -1
  349. metadata/generated/schema/entity/services/connections/search/__init__.py +1 -1
  350. metadata/generated/schema/entity/services/connections/search/customSearchConnection.py +1 -1
  351. metadata/generated/schema/entity/services/connections/search/elasticSearch/__init__.py +1 -1
  352. metadata/generated/schema/entity/services/connections/search/elasticSearch/apiAuth.py +1 -1
  353. metadata/generated/schema/entity/services/connections/search/elasticSearch/basicAuth.py +1 -1
  354. metadata/generated/schema/entity/services/connections/search/elasticSearchConnection.py +1 -1
  355. metadata/generated/schema/entity/services/connections/search/openSearchConnection.py +1 -1
  356. metadata/generated/schema/entity/services/connections/serviceConnection.py +1 -1
  357. metadata/generated/schema/entity/services/connections/storage/__init__.py +1 -1
  358. metadata/generated/schema/entity/services/connections/storage/adlsConnection.py +1 -1
  359. metadata/generated/schema/entity/services/connections/storage/customStorageConnection.py +1 -1
  360. metadata/generated/schema/entity/services/connections/storage/gcsConnection.py +1 -1
  361. metadata/generated/schema/entity/services/connections/storage/s3Connection.py +1 -1
  362. metadata/generated/schema/entity/services/connections/testConnectionDefinition.py +1 -1
  363. metadata/generated/schema/entity/services/connections/testConnectionResult.py +1 -1
  364. metadata/generated/schema/entity/services/dashboardService.py +1 -1
  365. metadata/generated/schema/entity/services/databaseService.py +4 -1
  366. metadata/generated/schema/entity/services/ingestionPipelines/__init__.py +1 -1
  367. metadata/generated/schema/entity/services/ingestionPipelines/ingestionPipeline.py +1 -1
  368. metadata/generated/schema/entity/services/ingestionPipelines/pipelineServiceClientResponse.py +1 -1
  369. metadata/generated/schema/entity/services/ingestionPipelines/status.py +1 -1
  370. metadata/generated/schema/entity/services/messagingService.py +1 -1
  371. metadata/generated/schema/entity/services/metadataService.py +1 -1
  372. metadata/generated/schema/entity/services/mlmodelService.py +1 -1
  373. metadata/generated/schema/entity/services/pipelineService.py +1 -1
  374. metadata/generated/schema/entity/services/searchService.py +1 -1
  375. metadata/generated/schema/entity/services/serviceType.py +1 -1
  376. metadata/generated/schema/entity/services/storageService.py +1 -1
  377. metadata/generated/schema/entity/teams/__init__.py +1 -1
  378. metadata/generated/schema/entity/teams/persona.py +1 -1
  379. metadata/generated/schema/entity/teams/role.py +1 -1
  380. metadata/generated/schema/entity/teams/team.py +1 -1
  381. metadata/generated/schema/entity/teams/teamHierarchy.py +1 -1
  382. metadata/generated/schema/entity/teams/user.py +1 -1
  383. metadata/generated/schema/entity/type.py +3 -18
  384. metadata/generated/schema/entity/utils/__init__.py +1 -1
  385. metadata/generated/schema/entity/utils/entitiesCount.py +1 -1
  386. metadata/generated/schema/entity/utils/servicesCount.py +1 -1
  387. metadata/generated/schema/entity/utils/supersetApiConnection.py +1 -1
  388. metadata/generated/schema/events/__init__.py +1 -1
  389. metadata/generated/schema/events/alertMetrics.py +1 -1
  390. metadata/generated/schema/events/api/__init__.py +1 -1
  391. metadata/generated/schema/events/api/createEventSubscription.py +1 -1
  392. metadata/generated/schema/events/emailAlertConfig.py +1 -1
  393. metadata/generated/schema/events/eventFilterRule.py +1 -1
  394. metadata/generated/schema/events/eventSubscription.py +3 -2
  395. metadata/generated/schema/events/eventSubscriptionOffset.py +1 -1
  396. metadata/generated/schema/events/failedEvent.py +1 -1
  397. metadata/generated/schema/events/filterResourceDescriptor.py +1 -1
  398. metadata/generated/schema/events/subscriptionResourceDescriptor.py +1 -1
  399. metadata/generated/schema/metadataIngestion/__init__.py +1 -1
  400. metadata/generated/schema/metadataIngestion/application.py +1 -1
  401. metadata/generated/schema/metadataIngestion/applicationPipeline.py +1 -1
  402. metadata/generated/schema/metadataIngestion/dashboardServiceMetadataPipeline.py +1 -1
  403. metadata/generated/schema/metadataIngestion/dataInsightPipeline.py +1 -1
  404. metadata/generated/schema/metadataIngestion/databaseServiceMetadataPipeline.py +1 -1
  405. metadata/generated/schema/metadataIngestion/databaseServiceProfilerPipeline.py +1 -1
  406. metadata/generated/schema/metadataIngestion/databaseServiceQueryLineagePipeline.py +1 -1
  407. metadata/generated/schema/metadataIngestion/databaseServiceQueryUsagePipeline.py +1 -1
  408. metadata/generated/schema/metadataIngestion/dbtPipeline.py +1 -1
  409. metadata/generated/schema/metadataIngestion/dbtconfig/__init__.py +1 -1
  410. metadata/generated/schema/metadataIngestion/dbtconfig/dbtAzureConfig.py +1 -1
  411. metadata/generated/schema/metadataIngestion/dbtconfig/dbtBucketDetails.py +1 -1
  412. metadata/generated/schema/metadataIngestion/dbtconfig/dbtCloudConfig.py +1 -1
  413. metadata/generated/schema/metadataIngestion/dbtconfig/dbtGCSConfig.py +1 -1
  414. metadata/generated/schema/metadataIngestion/dbtconfig/dbtHttpConfig.py +1 -1
  415. metadata/generated/schema/metadataIngestion/dbtconfig/dbtLocalConfig.py +1 -1
  416. metadata/generated/schema/metadataIngestion/dbtconfig/dbtS3Config.py +1 -1
  417. metadata/generated/schema/metadataIngestion/messagingServiceMetadataPipeline.py +1 -1
  418. metadata/generated/schema/metadataIngestion/metadataToElasticSearchPipeline.py +1 -1
  419. metadata/generated/schema/metadataIngestion/mlmodelServiceMetadataPipeline.py +1 -1
  420. metadata/generated/schema/metadataIngestion/pipelineServiceMetadataPipeline.py +1 -1
  421. metadata/generated/schema/metadataIngestion/searchServiceMetadataPipeline.py +1 -1
  422. metadata/generated/schema/metadataIngestion/storage/__init__.py +1 -1
  423. metadata/generated/schema/metadataIngestion/storage/containerMetadataConfig.py +1 -1
  424. metadata/generated/schema/metadataIngestion/storage/manifestMetadataConfig.py +1 -1
  425. metadata/generated/schema/metadataIngestion/storage/storageBucketDetails.py +1 -1
  426. metadata/generated/schema/metadataIngestion/storage/storageMetadataADLSConfig.py +1 -1
  427. metadata/generated/schema/metadataIngestion/storage/storageMetadataGCSConfig.py +1 -1
  428. metadata/generated/schema/metadataIngestion/storage/storageMetadataHttpConfig.py +1 -1
  429. metadata/generated/schema/metadataIngestion/storage/storageMetadataLocalConfig.py +1 -1
  430. metadata/generated/schema/metadataIngestion/storage/storageMetadataS3Config.py +1 -1
  431. metadata/generated/schema/metadataIngestion/storageServiceMetadataPipeline.py +1 -1
  432. metadata/generated/schema/metadataIngestion/testSuitePipeline.py +1 -1
  433. metadata/generated/schema/metadataIngestion/workflow.py +1 -1
  434. metadata/generated/schema/monitoring/__init__.py +1 -1
  435. metadata/generated/schema/monitoring/eventMonitorProvider.py +1 -1
  436. metadata/generated/schema/security/__init__.py +1 -1
  437. metadata/generated/schema/security/client/__init__.py +1 -1
  438. metadata/generated/schema/security/client/auth0SSOClientConfig.py +1 -1
  439. metadata/generated/schema/security/client/azureSSOClientConfig.py +1 -1
  440. metadata/generated/schema/security/client/customOidcSSOClientConfig.py +1 -1
  441. metadata/generated/schema/security/client/googleSSOClientConfig.py +1 -1
  442. metadata/generated/schema/security/client/oktaSSOClientConfig.py +1 -1
  443. metadata/generated/schema/security/client/openMetadataJWTClientConfig.py +1 -1
  444. metadata/generated/schema/security/client/samlSSOClientConfig.py +1 -1
  445. metadata/generated/schema/security/credentials/__init__.py +1 -1
  446. metadata/generated/schema/security/credentials/accessTokenAuth.py +1 -1
  447. metadata/generated/schema/security/credentials/apiAccessTokenAuth.py +1 -1
  448. metadata/generated/schema/security/credentials/awsCredentials.py +1 -1
  449. metadata/generated/schema/security/credentials/azureCredentials.py +16 -9
  450. metadata/generated/schema/security/credentials/basicAuth.py +1 -1
  451. metadata/generated/schema/security/credentials/bitbucketCredentials.py +1 -1
  452. metadata/generated/schema/security/credentials/gcpCredentials.py +1 -1
  453. metadata/generated/schema/security/credentials/gcpValues.py +1 -1
  454. metadata/generated/schema/security/credentials/gitCredentials.py +1 -1
  455. metadata/generated/schema/security/credentials/githubCredentials.py +1 -1
  456. metadata/generated/schema/security/secrets/__init__.py +1 -1
  457. metadata/generated/schema/security/secrets/secretsManagerClientLoader.py +1 -1
  458. metadata/generated/schema/security/secrets/secretsManagerConfiguration.py +1 -1
  459. metadata/generated/schema/security/secrets/secretsManagerProvider.py +3 -1
  460. metadata/generated/schema/security/securityConfiguration.py +1 -1
  461. metadata/generated/schema/security/ssl/__init__.py +1 -1
  462. metadata/generated/schema/security/ssl/validateSSLClientConfig.py +1 -1
  463. metadata/generated/schema/security/ssl/verifySSLConfig.py +1 -1
  464. metadata/generated/schema/settings/__init__.py +1 -1
  465. metadata/generated/schema/settings/settings.py +1 -1
  466. metadata/generated/schema/system/__init__.py +1 -1
  467. metadata/generated/schema/system/entityError.py +1 -1
  468. metadata/generated/schema/system/eventPublisherJob.py +1 -1
  469. metadata/generated/schema/system/indexingError.py +1 -1
  470. metadata/generated/schema/system/ui/__init__.py +1 -1
  471. metadata/generated/schema/system/ui/knowledgePanel.py +1 -1
  472. metadata/generated/schema/system/ui/page.py +1 -1
  473. metadata/generated/schema/tests/__init__.py +1 -1
  474. metadata/generated/schema/tests/assigned.py +1 -1
  475. metadata/generated/schema/tests/basic.py +1 -1
  476. metadata/generated/schema/tests/customMetric.py +1 -1
  477. metadata/generated/schema/tests/resolved.py +1 -1
  478. metadata/generated/schema/tests/testCase.py +1 -1
  479. metadata/generated/schema/tests/testCaseResolutionStatus.py +1 -1
  480. metadata/generated/schema/tests/testDefinition.py +2 -1
  481. metadata/generated/schema/tests/testSuite.py +1 -1
  482. metadata/generated/schema/type/__init__.py +1 -1
  483. metadata/generated/schema/type/auditLog.py +1 -1
  484. metadata/generated/schema/type/basic.py +6 -2
  485. metadata/generated/schema/type/bulkOperationResult.py +1 -1
  486. metadata/generated/schema/type/changeEvent.py +1 -1
  487. metadata/generated/schema/type/changeEventType.py +1 -1
  488. metadata/generated/schema/type/collectionDescriptor.py +1 -1
  489. metadata/generated/schema/type/csvDocumentation.py +1 -1
  490. metadata/generated/schema/type/csvErrorType.py +1 -1
  491. metadata/generated/schema/type/csvFile.py +1 -1
  492. metadata/generated/schema/type/csvImportResult.py +1 -1
  493. metadata/generated/schema/type/customProperties/__init__.py +3 -0
  494. metadata/generated/schema/type/customProperties/enumConfig.py +17 -0
  495. metadata/generated/schema/type/customProperty.py +52 -0
  496. metadata/generated/schema/type/dailyCount.py +1 -1
  497. metadata/generated/schema/type/databaseConnectionConfig.py +1 -1
  498. metadata/generated/schema/type/entityHistory.py +1 -1
  499. metadata/generated/schema/type/entityLineage.py +1 -1
  500. metadata/generated/schema/type/entityReference.py +1 -1
  501. metadata/generated/schema/type/entityReferenceList.py +1 -1
  502. metadata/generated/schema/type/entityRelationship.py +1 -1
  503. metadata/generated/schema/type/entityUsage.py +1 -1
  504. metadata/generated/schema/type/filterPattern.py +1 -1
  505. metadata/generated/schema/type/function.py +1 -1
  506. metadata/generated/schema/type/include.py +1 -1
  507. metadata/generated/schema/type/jdbcConnection.py +1 -1
  508. metadata/generated/schema/type/lifeCycle.py +1 -1
  509. metadata/generated/schema/type/paging.py +1 -1
  510. metadata/generated/schema/type/profile.py +1 -1
  511. metadata/generated/schema/type/queryParserData.py +1 -1
  512. metadata/generated/schema/type/reaction.py +1 -1
  513. metadata/generated/schema/type/schedule.py +1 -1
  514. metadata/generated/schema/type/schema.py +1 -1
  515. metadata/generated/schema/type/tableQuery.py +1 -1
  516. metadata/generated/schema/type/tableUsageCount.py +1 -1
  517. metadata/generated/schema/type/tagLabel.py +1 -1
  518. metadata/generated/schema/type/usageDetails.py +1 -1
  519. metadata/generated/schema/type/usageRequest.py +1 -1
  520. metadata/generated/schema/type/votes.py +1 -1
  521. metadata/great_expectations/action.py +4 -15
  522. metadata/ingestion/api/steps.py +14 -1
  523. metadata/ingestion/api/topology_runner.py +4 -1
  524. metadata/ingestion/models/custom_properties.py +0 -1
  525. metadata/ingestion/ometa/client.py +6 -0
  526. metadata/ingestion/ometa/mixins/custom_property_mixin.py +11 -11
  527. metadata/ingestion/ometa/ometa_api.py +1 -1
  528. metadata/ingestion/sink/metadata_rest.py +2 -2
  529. metadata/ingestion/source/dashboard/looker/metadata.py +3 -4
  530. metadata/ingestion/source/dashboard/metabase/client.py +4 -0
  531. metadata/ingestion/source/dashboard/metabase/metadata.py +5 -4
  532. metadata/ingestion/source/dashboard/metabase/models.py +2 -2
  533. metadata/ingestion/source/dashboard/tableau/metadata.py +18 -0
  534. metadata/ingestion/source/database/bigquery/helper.py +68 -1
  535. metadata/ingestion/source/database/bigquery/metadata.py +12 -3
  536. metadata/ingestion/source/database/bigquery/queries.py +22 -0
  537. metadata/ingestion/source/database/bigtable/client.py +62 -0
  538. metadata/ingestion/source/database/bigtable/connection.py +116 -0
  539. metadata/ingestion/source/database/bigtable/metadata.py +224 -0
  540. metadata/ingestion/source/database/bigtable/models.py +60 -0
  541. metadata/ingestion/source/database/common_db_source.py +2 -2
  542. metadata/ingestion/source/database/common_nosql_source.py +19 -2
  543. metadata/ingestion/source/database/databricks/metadata.py +132 -46
  544. metadata/ingestion/source/database/databricks/queries.py +3 -4
  545. metadata/ingestion/source/database/dbt/metadata.py +16 -28
  546. metadata/ingestion/source/database/oracle/queries.py +2 -2
  547. metadata/ingestion/source/messaging/common_broker_source.py +9 -7
  548. metadata/ingestion/source/messaging/kafka/connection.py +45 -4
  549. metadata/ingestion/source/mlmodel/sagemaker/metadata.py +20 -8
  550. metadata/profiler/orm/functions/conn_test.py +1 -0
  551. metadata/profiler/orm/functions/sum.py +1 -0
  552. metadata/profiler/orm/registry.py +1 -0
  553. metadata/profiler/processor/core.py +2 -2
  554. metadata/utils/datalake/datalake_utils.py +7 -1
  555. metadata/utils/execution_time_tracker.py +199 -0
  556. metadata/utils/filters.py +4 -0
  557. metadata/utils/helpers.py +0 -51
  558. metadata/utils/secrets/aws_based_secrets_manager.py +67 -4
  559. metadata/utils/secrets/aws_secrets_manager.py +7 -2
  560. metadata/utils/secrets/aws_ssm_secrets_manager.py +7 -2
  561. metadata/utils/secrets/azure_kv_secrets_manager.py +148 -0
  562. metadata/utils/secrets/external_secrets_manager.py +25 -3
  563. metadata/utils/secrets/secrets_manager_factory.py +13 -30
  564. metadata/workflow/base.py +4 -0
  565. metadata/workflow/output_handler.py +22 -0
  566. {openmetadata_ingestion-1.3.0.1.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/METADATA +297 -288
  567. {openmetadata_ingestion-1.3.0.1.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/RECORD +573 -562
  568. metadata/utils/secrets/client/loader.py +0 -77
  569. /metadata/{utils/secrets/client → ingestion/source/database/bigtable}/__init__.py +0 -0
  570. /metadata/utils/secrets/{noop_secrets_manager.py → db_secrets_manager.py} +0 -0
  571. {openmetadata_ingestion-1.3.0.1.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/LICENSE +0 -0
  572. {openmetadata_ingestion-1.3.0.1.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/WHEEL +0 -0
  573. {openmetadata_ingestion-1.3.0.1.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/entry_points.txt +0 -0
  574. {openmetadata_ingestion-1.3.0.1.dist-info → openmetadata_ingestion-1.3.1.0.dist-info}/top_level.txt +0 -0
metadata/cli/db_dump.py CHANGED
@@ -31,6 +31,7 @@ TABLES_DUMP_ALL = {
31
31
  "field_relationship",
32
32
  "tag_usage",
33
33
  "openmetadata_settings",
34
+ "profiler_data_time_series",
34
35
  }
35
36
 
36
37
  CUSTOM_TABLES = {"entity_extension_time_series": {"exclude_columns": ["timestamp"]}}
@@ -18,7 +18,7 @@ from __future__ import annotations
18
18
  import traceback
19
19
  from collections import defaultdict
20
20
  from copy import deepcopy
21
- from typing import Iterable, Optional
21
+ from typing import Dict, Iterable, Optional
22
22
 
23
23
  from metadata.data_insight.processor.reports.data_processor import DataProcessor
24
24
  from metadata.generated.schema.analytics.reportData import ReportData, ReportDataType
@@ -28,9 +28,11 @@ from metadata.generated.schema.analytics.reportDataType.aggregatedCostAnalysisRe
28
28
  from metadata.generated.schema.analytics.reportDataType.rawCostAnalysisReportData import (
29
29
  RawCostAnalysisReportData,
30
30
  )
31
- from metadata.generated.schema.entity.data.table import Table
31
+ from metadata.generated.schema.type.entityReference import EntityReference
32
32
  from metadata.generated.schema.type.lifeCycle import LifeCycle
33
33
  from metadata.ingestion.ometa.ometa_api import OpenMetadata
34
+ from metadata.ingestion.ometa.utils import model_str
35
+ from metadata.utils.constants import ENTITY_REFERENCE_TYPE_MAP
34
36
  from metadata.utils.logger import data_insight_logger
35
37
  from metadata.utils.time_utils import get_end_of_day_timestamp_mill
36
38
 
@@ -98,36 +100,32 @@ class RawCostAnalysisReportDataProcessor(DataProcessor):
98
100
  data=value,
99
101
  ) # type: ignore
100
102
 
101
- def refine(self, entity: Table) -> None:
103
+ def refine(self, entity: Dict) -> None:
102
104
  """Aggregate data
103
105
  Returns:
104
106
  list:
105
107
  """
106
108
 
107
- try:
108
- cost_analysis_data = RawCostAnalysisReportData(
109
- entity=self.metadata.get_entity_reference(
110
- entity=type(entity), fqn=entity.fullyQualifiedName
109
+ for entity_fqn, cost_analysis_report_data in entity.items():
110
+ try:
111
+ cost_analysis_data = RawCostAnalysisReportData(
112
+ entity=EntityReference(
113
+ id=cost_analysis_report_data.entity.id,
114
+ fullyQualifiedName=model_str(
115
+ cost_analysis_report_data.entity.fullyQualifiedName
116
+ ),
117
+ type=ENTITY_REFERENCE_TYPE_MAP[
118
+ type(cost_analysis_report_data.entity).__name__
119
+ ],
120
+ ),
121
+ lifeCycle=cost_analysis_report_data.life_cycle,
122
+ sizeInByte=cost_analysis_report_data.size,
111
123
  )
112
- )
113
- if entity.lifeCycle:
114
- cost_analysis_data.lifeCycle = entity.lifeCycle
115
-
116
- table_profile = self.metadata.get_latest_table_profile(
117
- fqn=entity.fullyQualifiedName
118
- )
119
- if table_profile.profile:
120
- cost_analysis_data.sizeInByte = table_profile.profile.sizeInByte
121
-
122
- if cost_analysis_data.lifeCycle or cost_analysis_data.sizeInByte:
123
- self._refined_data[
124
- entity.fullyQualifiedName.__root__
125
- ] = cost_analysis_data
126
-
127
- self.processor_status.scanned(entity.name.__root__)
128
- except Exception as err:
129
- logger.debug(traceback.format_exc())
130
- logger.error(f"Error trying fetch cost analysis data -- {err}")
124
+ self._refined_data[entity_fqn] = cost_analysis_data
125
+ self.processor_status.scanned(entity_fqn)
126
+ except Exception as err:
127
+ logger.debug(traceback.format_exc())
128
+ logger.error(f"Error trying fetch cost analysis data -- {err}")
131
129
 
132
130
  def get_status(self):
133
131
  return self.processor_status
@@ -142,6 +140,7 @@ class AggregatedCostAnalysisReportDataProcessor(DataProcessor):
142
140
  super().__init__(metadata)
143
141
  self._refined_data = defaultdict(lambda: defaultdict(dict))
144
142
  self.post_hook = self._post_hook_fn
143
+ self.clean_up_cache = True
145
144
 
146
145
  def yield_refined_data(self) -> Iterable[ReportData]:
147
146
  """Yield refined data"""
@@ -152,27 +151,17 @@ class AggregatedCostAnalysisReportDataProcessor(DataProcessor):
152
151
  data=data,
153
152
  ) # type: ignore
154
153
 
155
- def refine(self, entity: Table) -> None:
154
+ def refine(self, entity: Dict) -> None:
156
155
  """Aggregate data
157
156
  Returns:
158
157
  list:
159
158
  """
160
159
  try:
161
- life_cycle = None
162
- if entity.lifeCycle:
163
- life_cycle = entity.lifeCycle
164
-
165
- size = None
166
- table_profile = self.metadata.get_latest_table_profile(
167
- fqn=entity.fullyQualifiedName
168
- )
169
- if table_profile.profile:
170
- size = table_profile.profile.sizeInByte
171
-
172
- if life_cycle or size:
173
- entity_type = str(entity.__class__.__name__)
174
- service_type = str(entity.serviceType.name)
175
- service_name = str(entity.service.name)
160
+
161
+ for entity_fqn, cost_analysis_report_data in entity.items():
162
+ entity_type = str(cost_analysis_report_data.entity.__class__.__name__)
163
+ service_type = str(cost_analysis_report_data.entity.serviceType.name)
164
+ service_name = str(cost_analysis_report_data.entity.service.name)
176
165
  if not self._refined_data[str(entity_type)][service_type].get(
177
166
  service_name
178
167
  ):
@@ -185,18 +174,18 @@ class AggregatedCostAnalysisReportDataProcessor(DataProcessor):
185
174
  else:
186
175
  self._refined_data[entity_type][service_type][service_name][
187
176
  TOTAL_SIZE
188
- ] += (size or 0)
177
+ ] += (cost_analysis_report_data.size or 0)
189
178
  self._refined_data[entity_type][service_type][service_name][
190
179
  TOTAL_COUNT
191
180
  ] += 1
192
181
 
193
182
  self._get_data_assets_dict(
194
- life_cycle=life_cycle,
195
- size=size,
183
+ life_cycle=cost_analysis_report_data.life_cycle,
184
+ size=cost_analysis_report_data.size,
196
185
  data=self._refined_data[entity_type][service_type][service_name],
197
186
  )
198
187
 
199
- self.processor_status.scanned(entity.name.__root__)
188
+ self.processor_status.scanned(entity_fqn)
200
189
  except Exception as err:
201
190
  logger.debug(traceback.format_exc())
202
191
  logger.error(f"Error trying fetch cost analysis data -- {err}")
@@ -247,7 +236,10 @@ class AggregatedCostAnalysisReportDataProcessor(DataProcessor):
247
236
  # Iterate over the different time periods and update the data
248
237
  for days, key in DAYS:
249
238
  days_before_timestamp = get_end_of_day_timestamp_mill(days=days)
250
- if life_cycle.accessed.timestamp.__root__ <= days_before_timestamp:
239
+ if (
240
+ life_cycle.accessed
241
+ and life_cycle.accessed.timestamp.__root__ <= days_before_timestamp
242
+ ):
251
243
  data[UNUSED_DATA_ASSETS][COUNT][key] += 1
252
244
  data[UNUSED_DATA_ASSETS][SIZE][key] += size or 0
253
245
  else:
@@ -47,6 +47,7 @@ class DataProcessor(abc.ABC):
47
47
  self._refined_data = {}
48
48
  self.post_hook: Optional[Callable] = None
49
49
  self.pre_hook: Optional[Callable] = None
50
+ self.clean_up_cache: bool = False
50
51
 
51
52
  @classmethod
52
53
  def create(cls, _data_processor_type, metadata: OpenMetadata):
@@ -13,16 +13,31 @@ Producer class for data insight entity reports
13
13
  """
14
14
 
15
15
  import traceback
16
- from typing import Iterable
16
+ from typing import Dict, Iterable, Optional
17
+
18
+ from pydantic import BaseModel
17
19
 
18
20
  from metadata.data_insight.producer.producer_interface import ProducerInterface
19
21
  from metadata.generated.schema.entity.data.table import Table
20
22
  from metadata.generated.schema.entity.services.databaseService import DatabaseService
23
+ from metadata.generated.schema.type.lifeCycle import LifeCycle
24
+ from metadata.ingestion.api.models import Entity
25
+ from metadata.ingestion.ometa.utils import model_str
21
26
  from metadata.utils.logger import data_insight_logger
22
27
 
23
28
  logger = data_insight_logger()
24
29
 
25
30
 
31
+ class CostAnalysisReportData(BaseModel):
32
+ """
33
+ Query executed get life cycle
34
+ """
35
+
36
+ entity: Entity
37
+ life_cycle: Optional[LifeCycle]
38
+ size: Optional[float]
39
+
40
+
26
41
  class CostAnalysisProducer(ProducerInterface):
27
42
  """entity producer class"""
28
43
 
@@ -36,27 +51,76 @@ class CostAnalysisProducer(ProducerInterface):
36
51
  and database_service.connection.config.supportsProfiler.__root__
37
52
  )
38
53
 
54
+ def _check_life_cycle_and_size_data(
55
+ self, table: Table
56
+ ) -> Optional[CostAnalysisReportData]:
57
+ """
58
+ Method to check if the valid life cycle and table size data is present for the table
59
+ """
60
+ cost_analysis_report_data = CostAnalysisReportData(entity=table)
61
+ if table.lifeCycle and table.lifeCycle.accessed:
62
+ cost_analysis_report_data.life_cycle = table.lifeCycle
63
+
64
+ table_profile = self.metadata.get_latest_table_profile(
65
+ fqn=table.fullyQualifiedName
66
+ )
67
+ if table_profile.profile:
68
+ cost_analysis_report_data.size = table_profile.profile.sizeInByte
69
+
70
+ if cost_analysis_report_data.life_cycle or cost_analysis_report_data.size:
71
+ return cost_analysis_report_data
72
+ return None
73
+
74
+ def life_cycle_data_dict(
75
+ self, entities_cache: Optional[Dict], database_service_fqn: str
76
+ ) -> Iterable[Dict]:
77
+ """
78
+ Cache the required lifecycle data to be used by the processors and return the dict
79
+ """
80
+ if entities_cache.get(database_service_fqn):
81
+ yield entities_cache[database_service_fqn]
82
+ else:
83
+ tables = self.metadata.list_all_entities(
84
+ Table,
85
+ limit=100,
86
+ skip_on_failure=True,
87
+ params={"database": database_service_fqn},
88
+ )
89
+ entities_cache[database_service_fqn] = {}
90
+
91
+ for table in tables:
92
+ try:
93
+ cost_analysis_data = self._check_life_cycle_and_size_data(
94
+ table=table
95
+ )
96
+ if cost_analysis_data:
97
+ entities_cache[database_service_fqn][
98
+ model_str(table.fullyQualifiedName)
99
+ ] = cost_analysis_data
100
+ except Exception as err:
101
+ logger.error(
102
+ f"Error trying to fetch cost analysis data for [{model_str(table.fullyQualifiedName)}] -- {err}"
103
+ )
104
+ logger.debug(traceback.format_exc())
105
+
106
+ yield entities_cache[database_service_fqn]
107
+
39
108
  # pylint: disable=dangerous-default-value
40
- def fetch_data(self, limit=100, fields=["*"]) -> Iterable:
109
+ def fetch_data(
110
+ self, limit=100, fields=["*"], entities_cache=None
111
+ ) -> Optional[Iterable[Dict]]:
41
112
  database_services = self.metadata.list_all_entities(
42
113
  DatabaseService, limit=limit, fields=fields, skip_on_failure=True
43
114
  )
44
- entities_list = []
45
115
  for database_service in database_services or []:
46
116
  try:
47
117
  if self._check_profiler_and_usage_support(database_service):
48
- entities_list.extend(
49
- self.metadata.list_all_entities(
50
- Table,
51
- limit=limit,
52
- fields=fields,
53
- skip_on_failure=True,
54
- params={
55
- "database": database_service.fullyQualifiedName.__root__
56
- },
57
- )
118
+ yield from self.life_cycle_data_dict(
119
+ entities_cache=entities_cache,
120
+ database_service_fqn=model_str(
121
+ database_service.fullyQualifiedName
122
+ ),
58
123
  )
59
124
  except Exception as err:
60
125
  logger.error(f"Error trying to fetch entities -- {err}")
61
126
  logger.debug(traceback.format_exc())
62
- return entities_list
@@ -52,7 +52,7 @@ class EntityProducer(ProducerInterface):
52
52
  ]
53
53
 
54
54
  # pylint: disable=dangerous-default-value
55
- def fetch_data(self, limit=100, fields=["*"]) -> Iterable:
55
+ def fetch_data(self, limit=100, fields=["*"], entities_cache=None) -> Iterable:
56
56
  for entity in self.entities:
57
57
  try:
58
58
  yield from self.metadata.list_all_entities(
@@ -24,6 +24,6 @@ class ProducerInterface(ABC):
24
24
  self.metadata = metadata
25
25
 
26
26
  @abstractmethod
27
- def fetch_data(self, limit, fields):
27
+ def fetch_data(self, limit, fields, entities_cache=None):
28
28
  """fetch data from source"""
29
29
  raise NotImplementedError
@@ -75,7 +75,7 @@ class WebAnalyticsProducer(ProducerInterface):
75
75
  CACHED_EVENTS.clear()
76
76
 
77
77
  def fetch_data(
78
- self, limit=100, fields=["*"]
78
+ self, limit=100, fields=["*"], entities_cache=None
79
79
  ): # pylint: disable=dangerous-default-value
80
80
  """fetch data for web analytics event"""
81
81
  events = self._get_events(None, limit, fields)
@@ -74,6 +74,7 @@ class DataInsightSource(Source):
74
74
  super().__init__()
75
75
  self.metadata = metadata
76
76
  self.date = datetime.utcnow().strftime("%Y-%m-%d")
77
+ self.entities_cache = {}
77
78
 
78
79
  _processors = self._instantiate_processors()
79
80
  self._processors: Dict[
@@ -130,11 +131,19 @@ class DataInsightSource(Source):
130
131
  processor = cast(DataProcessor, processor)
131
132
  processor.pre_hook() if processor.pre_hook else None # pylint: disable=expression-not-assigned
132
133
 
133
- for data in producer.fetch_data(fields=["owner", "tags"]):
134
+ for data in (
135
+ producer.fetch_data(
136
+ fields=["owner", "tags"], entities_cache=self.entities_cache
137
+ )
138
+ or []
139
+ ):
134
140
  processor.refine(data)
135
141
 
136
142
  processor.post_hook() if processor.post_hook else None # pylint: disable=expression-not-assigned
137
143
 
144
+ if processor.clean_up_cache:
145
+ self.entities_cache.clear()
146
+
138
147
  for data in processor.yield_refined_data():
139
148
  yield Either(left=None, right=DataInsightRecord(data=data))
140
149
  except KeyError as key_error:
@@ -16,6 +16,7 @@ Validator for table column to match set test case
16
16
  import collections
17
17
  import traceback
18
18
  from abc import abstractmethod
19
+ from typing import List
19
20
 
20
21
  from metadata.data_quality.validations.base_test_handler import BaseTestValidator
21
22
  from metadata.generated.schema.tests.basic import (
@@ -93,5 +94,5 @@ class BaseTableColumnToMatchSetValidator(BaseTestValidator):
93
94
  )
94
95
 
95
96
  @abstractmethod
96
- def _run_results(self):
97
+ def _run_results(self) -> List[str]:
97
98
  raise NotImplementedError
@@ -13,6 +13,7 @@
13
13
  Validator for table column name to match set test case
14
14
  """
15
15
 
16
+ from typing import List
16
17
 
17
18
  from metadata.data_quality.validations.mixins.pandas_validator_mixin import (
18
19
  PandasValidatorMixin,
@@ -30,7 +31,7 @@ class TableColumnToMatchSetValidator(
30
31
  ):
31
32
  """Validator table column name to match set test case"""
32
33
 
33
- def _run_results(self):
34
+ def _run_results(self) -> List[str]:
34
35
  """compute result of the test case"""
35
36
  names = list(self.runner[0].columns)
36
37
  if not names:
@@ -14,9 +14,10 @@ Validator for table column name to match set test case
14
14
  """
15
15
 
16
16
 
17
- from typing import Optional
17
+ from typing import List, cast
18
18
 
19
19
  from sqlalchemy import inspect
20
+ from sqlalchemy.sql.base import ColumnCollection
20
21
 
21
22
  from metadata.data_quality.validations.mixins.sqa_validator_mixin import (
22
23
  SQAValidatorMixin,
@@ -34,11 +35,15 @@ class TableColumnToMatchSetValidator(
34
35
  ):
35
36
  """Validator for table column name to match set test case"""
36
37
 
37
- def _run_results(self) -> Optional[int]:
38
+ def _run_results(self) -> List[str]:
38
39
  """compute result of the test case"""
39
40
  names = inspect(self.runner.table).c
40
41
  if not names:
41
42
  raise ValueError(
42
43
  f"Column names for test case {self.test_case.name} returned None"
43
44
  )
45
+ names = cast(
46
+ ColumnCollection, names
47
+ ) # satisfy type checker for names.keys() access
48
+ names = list(names.keys())
44
49
  return names
@@ -0,0 +1,32 @@
1
+ source:
2
+ type: bigtable
3
+ serviceName: local_bigtable
4
+ serviceConnection:
5
+ config:
6
+ type: BigTable
7
+ credentials:
8
+ gcpConfig:
9
+ type: service_account
10
+ projectId: project_id
11
+ privateKeyId: private_key_id
12
+ privateKey: private_key
13
+ clientEmail: gcpuser@project_id.iam.gserviceaccount.com
14
+ clientId: client_id
15
+ authUri: https://accounts.google.com/o/oauth2/auth
16
+ tokenUri: https://oauth2.googleapis.com/token
17
+ authProviderX509CertUrl: https://www.googleapis.com/oauth2/v1/certs
18
+ clientX509CertUrl: https://www.googleapis.com/oauth2/v1/certs
19
+
20
+ sourceConfig:
21
+ config:
22
+ type: DatabaseMetadata
23
+ sink:
24
+ type: metadata-rest
25
+ config: {}
26
+ workflowConfig:
27
+ loggerLevel: DEBUG
28
+ openMetadataServerConfig:
29
+ hostPort: http://localhost:8585/api
30
+ authProvider: openmetadata
31
+ securityConfig:
32
+ jwtToken: "eyJraWQiOiJHYjM4OWEtOWY3Ni1nZGpzLWE5MmotMDI0MmJrOTQzNTYiLCJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImlzQm90IjpmYWxzZSwiaXNzIjoib3Blbi1tZXRhZGF0YS5vcmciLCJpYXQiOjE2NjM5Mzg0NjIsImVtYWlsIjoiYWRtaW5Ab3Blbm1ldGFkYXRhLm9yZyJ9.tS8um_5DKu7HgzGBzS1VTA5uUjKWOCU0B_j08WXBiEC0mr0zNREkqVfwFDD-d24HlNEbrqioLsBuFRiwIWKc1m_ZlVQbG7P36RUxhuv2vbSp80FKyNM-Tj93FDzq91jsyNmsQhyNv_fNr3TXfzzSPjHt8Go0FMMP66weoKMgW2PbXlhVKwEuXUHyakLLzewm9UMeQaEiRzhiTMU3UkLXcKbYEJJvfNFcLwSl9W8JCO_l0Yj3ud-qt_nQYEZwqW6u5nfdQllN133iikV4fM5QZsMCnm8Rq1mvLR0y9bmJiD7fwM1tmJ791TUWqmKaTnP49U493VanKpUAfzIiOiIbhg"