acryl-datahub 0.15.0.2rc1__py3-none-any.whl → 0.15.0.2rc3__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 acryl-datahub might be problematic. Click here for more details.

Files changed (34) hide show
  1. {acryl_datahub-0.15.0.2rc1.dist-info → acryl_datahub-0.15.0.2rc3.dist-info}/METADATA +2469 -2459
  2. {acryl_datahub-0.15.0.2rc1.dist-info → acryl_datahub-0.15.0.2rc3.dist-info}/RECORD +34 -34
  3. {acryl_datahub-0.15.0.2rc1.dist-info → acryl_datahub-0.15.0.2rc3.dist-info}/WHEEL +1 -1
  4. datahub/__init__.py +1 -1
  5. datahub/api/entities/structuredproperties/structuredproperties.py +12 -1
  6. datahub/cli/specific/structuredproperties_cli.py +84 -0
  7. datahub/ingestion/api/source.py +2 -0
  8. datahub/ingestion/source/bigquery_v2/bigquery.py +31 -33
  9. datahub/ingestion/source/bigquery_v2/bigquery_report.py +0 -3
  10. datahub/ingestion/source/bigquery_v2/bigquery_schema_gen.py +11 -11
  11. datahub/ingestion/source/bigquery_v2/lineage.py +7 -7
  12. datahub/ingestion/source/bigquery_v2/usage.py +57 -57
  13. datahub/ingestion/source/cassandra/cassandra_profiling.py +24 -24
  14. datahub/ingestion/source/cassandra/cassandra_utils.py +0 -3
  15. datahub/ingestion/source/datahub/config.py +6 -0
  16. datahub/ingestion/source/datahub/datahub_source.py +12 -2
  17. datahub/ingestion/source/dremio/dremio_reporting.py +0 -3
  18. datahub/ingestion/source/dremio/dremio_source.py +2 -2
  19. datahub/ingestion/source/gc/datahub_gc.py +10 -14
  20. datahub/ingestion/source/looker/looker_config.py +8 -3
  21. datahub/ingestion/source/redshift/redshift.py +32 -34
  22. datahub/ingestion/source/redshift/usage.py +29 -29
  23. datahub/ingestion/source/snowflake/snowflake_report.py +0 -3
  24. datahub/ingestion/source/snowflake/snowflake_schema_gen.py +18 -16
  25. datahub/ingestion/source/snowflake/snowflake_usage_v2.py +46 -47
  26. datahub/ingestion/source/snowflake/snowflake_v2.py +38 -39
  27. datahub/ingestion/source/sql/teradata.py +2 -2
  28. datahub/ingestion/source/tableau/tableau.py +119 -31
  29. datahub/ingestion/source/unity/source.py +71 -71
  30. datahub/ingestion/source_report/ingestion_stage.py +24 -20
  31. datahub/utilities/file_backed_collections.py +1 -1
  32. datahub/utilities/perf_timer.py +11 -6
  33. {acryl_datahub-0.15.0.2rc1.dist-info → acryl_datahub-0.15.0.2rc3.dist-info}/entry_points.txt +0 -0
  34. {acryl_datahub-0.15.0.2rc1.dist-info → acryl_datahub-0.15.0.2rc3.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- datahub/__init__.py,sha256=ubEB5EHYmuiGuDtVdhhKbNxGtfw-kzV0eBW81uVifQU,576
1
+ datahub/__init__.py,sha256=qe2wpod5rnOz0vzxn9B60E8BhINzy_rYJpwuvpI0NW8,576
2
2
  datahub/__main__.py,sha256=pegIvQ9hzK7IhqVeUi1MeADSZ2QlP-D3K0OQdEg55RU,106
3
3
  datahub/entrypoints.py,sha256=3-qSfXAx3Z0FEkBV5tlO8fQr4xk4ySeDRMVTpS5Xd6A,7793
4
4
  datahub/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -52,7 +52,7 @@ datahub/api/entities/forms/forms_graphql_constants.py,sha256=DKpnKlMKTjmnyrCTvp6
52
52
  datahub/api/entities/platformresource/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
53
  datahub/api/entities/platformresource/platform_resource.py,sha256=pVAjv6NoH746Mfvdak7ji0eqlEcEeV-Ji7M5gyNXmds,10603
54
54
  datahub/api/entities/structuredproperties/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
55
- datahub/api/entities/structuredproperties/structuredproperties.py,sha256=wtIt-zqW8_PamvSPpRR28tKkiOAZ7ME3lufoaTeGnlU,8116
55
+ datahub/api/entities/structuredproperties/structuredproperties.py,sha256=S3rtXXluFrrkBFascWY6o7tJ4qlYTZuW4Fbj0idJ7uA,8514
56
56
  datahub/api/graphql/__init__.py,sha256=5yl0dJxO-2d_QuykdJrDIbWq4ja9bo0t2dAEh89JOog,142
57
57
  datahub/api/graphql/assertion.py,sha256=ponITypRQ8vE8kiqRNpvdoniNJzi4aeBK97UvkF0VhA,2818
58
58
  datahub/api/graphql/base.py,sha256=9q637r6v-RGOd8Mk8HW2g0vt9zpqFexsQ5R6TPEHVbs,1614
@@ -85,7 +85,7 @@ datahub/cli/specific/dataset_cli.py,sha256=AwSmIiuV3XbgprW4_1Wj-EJq1OPqFyolSNczQ
85
85
  datahub/cli/specific/file_loader.py,sha256=YMyv_evdKyHSft5Tm_kOcqJ4ALpRmMm54ZJAyl7Nxqs,773
86
86
  datahub/cli/specific/forms_cli.py,sha256=OLVeG8NtK1eDBuUKCT5Ald35np8__f8mLzbZM_zUfWU,1484
87
87
  datahub/cli/specific/group_cli.py,sha256=xPUYk48VbVXLMj-z9VNW0RZzXOe4rQsc2jLwSOGCoec,1967
88
- datahub/cli/specific/structuredproperties_cli.py,sha256=qP7kHpN7y3cOR0IGZkD4PGlRzFqLdXqZ6yrbCKVmG8M,1937
88
+ datahub/cli/specific/structuredproperties_cli.py,sha256=Rb06XJKxqda5RSUo188B90Wn5dvq8BeIL1mnw7x07zY,5583
89
89
  datahub/cli/specific/user_cli.py,sha256=jGAokb1NRu8obs6P2g4OL2NQdFgpUBa9De55TBBtun0,1897
90
90
  datahub/configuration/__init__.py,sha256=5TN3a7CWNsLRHpdj-sv2bxKWF2IslvJwE6EpNMFrIS4,123
91
91
  datahub/configuration/_config_enum.py,sha256=ul2hr5gMmdLvBINicFkMNMi1ApmnmZSwNdUYYted5nk,1447
@@ -138,7 +138,7 @@ datahub/ingestion/api/registry.py,sha256=LGElUdzhNQoEr-k2SN23mJaIYnA1PYfF97LQxBm
138
138
  datahub/ingestion/api/report.py,sha256=zb5Y_9ogmWm00KqX7_64sIMT24Wfpk7txRwEfKacw5I,4652
139
139
  datahub/ingestion/api/report_helpers.py,sha256=WbUC1kQeaKqIagGV3XzfPmPs7slAT1mfNY4og2BH2A8,994
140
140
  datahub/ingestion/api/sink.py,sha256=3jw7-x9gXGreOPwn49wG5fT3C8pYhaNMQITdMN6kbag,4478
141
- datahub/ingestion/api/source.py,sha256=kSQ6AKDvLdFOIxaz9nPCmCSUsIMDdXHiOxzFiMdYN14,19001
141
+ datahub/ingestion/api/source.py,sha256=BSG-xBmkl4xS6ttxnwFJs0vrpQq07Ts8ZcILGZwy-UQ,19034
142
142
  datahub/ingestion/api/source_helpers.py,sha256=AVO0ogiCKgYmX1ubJaSs6L30TCCgOIalp6awXPF5XM0,19643
143
143
  datahub/ingestion/api/transform.py,sha256=X0GpjMJzYkLuZx8MTWxH50cWGm9rGsnn3k188mmC8J8,582
144
144
  datahub/ingestion/api/workunit.py,sha256=e8n8RfSjHZZm2R4ShNH0UuMtUkMjyqqM2j2t7oL74lo,6327
@@ -233,7 +233,7 @@ datahub/ingestion/source/azure/abs_folder_utils.py,sha256=7skXus-4fSIoKpqCeU-GG0
233
233
  datahub/ingestion/source/azure/abs_utils.py,sha256=KdAlCK-PMrn35kFHxz5vrsjajyx2PD5GRgoBKdoRvcg,2075
234
234
  datahub/ingestion/source/azure/azure_common.py,sha256=Zl0pPuE6L3QcM5B1P0LsPthZmD0h7fUUS0kg2okl6IY,4053
235
235
  datahub/ingestion/source/bigquery_v2/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
236
- datahub/ingestion/source/bigquery_v2/bigquery.py,sha256=c7g8sWuDIMhCSAX0D76P2arxZgTmzd-e0qlO7yt_zJY,13841
236
+ datahub/ingestion/source/bigquery_v2/bigquery.py,sha256=x8iYLJQk11MylslhQIlg45s7IKqMhWn9fa0GxFHxDuY,13948
237
237
  datahub/ingestion/source/bigquery_v2/bigquery_audit.py,sha256=IlbHA8a-gNJvnubgBfxVHpUk8rFNIG80gk5HWXa2lyE,25108
238
238
  datahub/ingestion/source/bigquery_v2/bigquery_audit_log_api.py,sha256=LuGJ6LgPViLIfDQfylxlQ3CA7fZYM5MDt8M-7sfzm84,5096
239
239
  datahub/ingestion/source/bigquery_v2/bigquery_config.py,sha256=sjCW997-Su14cVgWd1ZVx1E67yqfTIV5Wjp9Me0hfOw,26289
@@ -241,22 +241,22 @@ datahub/ingestion/source/bigquery_v2/bigquery_data_reader.py,sha256=DeT3v_Z82__8
241
241
  datahub/ingestion/source/bigquery_v2/bigquery_helper.py,sha256=QER3gY8e_k1_eNVj7cBso7ZzrWl_vO5PYSa6CpvqNx8,1554
242
242
  datahub/ingestion/source/bigquery_v2/bigquery_platform_resource_helper.py,sha256=8nuQ8hMuJEswWDZtV2RjbK8RvDJUzT_S74dnyPpGFdQ,4857
243
243
  datahub/ingestion/source/bigquery_v2/bigquery_queries.py,sha256=EoHo9twb0_QdX7Nvd1HJC1Yn0rqtrfR52EVk7Hu3XOQ,3296
244
- datahub/ingestion/source/bigquery_v2/bigquery_report.py,sha256=WxiLPFc7LwZXNDYfV9oySUD43kc2GcOf_pUokp3vFNM,8098
244
+ datahub/ingestion/source/bigquery_v2/bigquery_report.py,sha256=qH8k8wyMlUVzUTVhSd3FgOMGCK1D5NYuC0KF8tez_Ys,7957
245
245
  datahub/ingestion/source/bigquery_v2/bigquery_schema.py,sha256=E5GOx4NWjyZM0xzdpBlNXbvDdKNfW9UtS64XtCYFpzI,31809
246
- datahub/ingestion/source/bigquery_v2/bigquery_schema_gen.py,sha256=o2My5Q7ab39qHP3jjVFCQSErogGYb14s6397xHIZSqc,50568
246
+ datahub/ingestion/source/bigquery_v2/bigquery_schema_gen.py,sha256=8YvF_Frn43WfTzVAa1iKUx3MwdtFGd9S0aBfxi24gsY,50596
247
247
  datahub/ingestion/source/bigquery_v2/bigquery_test_connection.py,sha256=cATxwi5IPzj3BldRRAVcLqzSFmmYEPvqa7U0RFJbaAc,7645
248
248
  datahub/ingestion/source/bigquery_v2/common.py,sha256=Cxjf1a8ibkL_YRQeS0BqsjlyMgFJpaZ3iq_d7e8T8MQ,4030
249
- datahub/ingestion/source/bigquery_v2/lineage.py,sha256=LJqdkCR8H55b3txCVBM-cs1T5QWxSTimJ3ebSgtXjgI,44874
249
+ datahub/ingestion/source/bigquery_v2/lineage.py,sha256=bLbNc1kbgYdB47KJ2464F0qAPpkMBtYQ-T0Jj-6njyc,44891
250
250
  datahub/ingestion/source/bigquery_v2/profiler.py,sha256=8-yAoq8sX0E6VIwr75YbM8wITRNhGfxgte9BCeGNkMM,10681
251
251
  datahub/ingestion/source/bigquery_v2/queries.py,sha256=B2vJLZYfwM1J5JAckijKJTxLhDYA0yw3kfzj5oRQB5c,20151
252
252
  datahub/ingestion/source/bigquery_v2/queries_extractor.py,sha256=xLf-vCUAnNuDdTHghxJvPOyGeA_XLCW3r-xj-8cfn3Q,19528
253
- datahub/ingestion/source/bigquery_v2/usage.py,sha256=xHb-gsugshoyzwScOQ5DHxZhoA-K0e4EbfSeVTLs428,40543
253
+ datahub/ingestion/source/bigquery_v2/usage.py,sha256=nR5sIbtk8dMW8M_7rEY1vuguNQremtgFrD-w-MRxjlg,40746
254
254
  datahub/ingestion/source/cassandra/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
255
255
  datahub/ingestion/source/cassandra/cassandra.py,sha256=B1C_lvX3AyvnWJeMIgA0lfPAK2hpjDs9vXmj7ISFWHY,18717
256
256
  datahub/ingestion/source/cassandra/cassandra_api.py,sha256=pqWi2VXfmoTb1bll6_LEWFu6wLnPX_l7pQ1vbNN09V8,12350
257
257
  datahub/ingestion/source/cassandra/cassandra_config.py,sha256=vIMUOzazWTGi03B51vI0-YMxaMJHUGmCxJJgd8pKhC8,3791
258
- datahub/ingestion/source/cassandra/cassandra_profiling.py,sha256=Y1Gtb8QcXtdQaq1KDb-2LTbsmzinYpQ7HMmJXTyeij4,10968
259
- datahub/ingestion/source/cassandra/cassandra_utils.py,sha256=alZp0Pn-03nWKlFC121FmDrXPJG6TyPM4xMJKlhRRco,5232
258
+ datahub/ingestion/source/cassandra/cassandra_profiling.py,sha256=DkSIryZNwLei5PaKuu9fNEKxEbhIrPI-T9gaVoM87NQ,11063
259
+ datahub/ingestion/source/cassandra/cassandra_utils.py,sha256=h-y6pJRST-D3l-AXCvISsiZS3MH5ceQLhOuV0jWBShI,5095
260
260
  datahub/ingestion/source/common/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
261
261
  datahub/ingestion/source/common/data_reader.py,sha256=XbSxiRTYrk6seOz0ZjVjzSpGvP8lEjmqXrNI4cdYYmQ,1819
262
262
  datahub/ingestion/source/common/subtypes.py,sha256=zxBQkRxsG_XMMz6Pmw_yMQiuFOhapOFVUOtXw8yHz7Q,2287
@@ -265,11 +265,11 @@ datahub/ingestion/source/data_lake_common/config.py,sha256=qUk83B01hjuBKHvVz8SmX
265
265
  datahub/ingestion/source/data_lake_common/data_lake_utils.py,sha256=nxu7osuzqxScPFc-1ODA2M1c_xPNPpRH_SMMU7zKOIE,6212
266
266
  datahub/ingestion/source/data_lake_common/path_spec.py,sha256=u3u2eMe70V5vur-j8mYtupZdoeA2hSeK262Whdsc2YU,23506
267
267
  datahub/ingestion/source/datahub/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
268
- datahub/ingestion/source/datahub/config.py,sha256=xBAZJpcw25aMI2zHi2wXi21sAfdy1rlmbBq9tY3adV0,4304
268
+ datahub/ingestion/source/datahub/config.py,sha256=2_FRYjGpFprYHI73D7QJBxa4pLJOdTZe7hybd9jJM68,4618
269
269
  datahub/ingestion/source/datahub/datahub_api_reader.py,sha256=hlKADVEPoTFiRGKqRsMF5mL4fSu_IrIW8Nx7LpEzvkM,2134
270
270
  datahub/ingestion/source/datahub/datahub_database_reader.py,sha256=Rd61iHFhvrNmgzIk0jDDYxjxQUnEckbn1SKedoR5qic,8972
271
271
  datahub/ingestion/source/datahub/datahub_kafka_reader.py,sha256=gnxhhlK-jrfnHqD_4eVmfcdtBNW6pi1N_qkDZ7uSb3o,4187
272
- datahub/ingestion/source/datahub/datahub_source.py,sha256=5qGg_T0KJaO5WcvrsM0KM8_eTOjy0NvlMI4DUdIAiDo,8482
272
+ datahub/ingestion/source/datahub/datahub_source.py,sha256=LHT6VyFP4gHlyOrZHhP72qxgZFeofFukKFbFRI8mOuk,8726
273
273
  datahub/ingestion/source/datahub/report.py,sha256=VHBfCbwFRzdLdB7hQG9ST4EiZxl_vBCU0XxGcZR6Xxs,940
274
274
  datahub/ingestion/source/datahub/state.py,sha256=PZoT7sSK1wadVf5vN6phrgr7I6LL7ePP-EJjP1OO0bQ,3507
275
275
  datahub/ingestion/source/dbt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -289,8 +289,8 @@ datahub/ingestion/source/dremio/dremio_config.py,sha256=5SP66ewGYN0OnyWgpU33EZOm
289
289
  datahub/ingestion/source/dremio/dremio_datahub_source_mapping.py,sha256=-Fefw59tXR6QA8ifOz_mieDccMMG_vyQgp7j-BaXFHQ,3070
290
290
  datahub/ingestion/source/dremio/dremio_entities.py,sha256=3H3vIvj5ab4d8gmB9-rbZfwRgW87gT1DdjWiMjNgqJ4,15069
291
291
  datahub/ingestion/source/dremio/dremio_profiling.py,sha256=TAcnpo8ZRKhLDHnQSJzJg3YdwTSyEa73LUAzENs7wG4,12287
292
- datahub/ingestion/source/dremio/dremio_reporting.py,sha256=pYyEOAxiotyVySumY85Ql8vtGsne7B9sDrdqeVFnWLQ,1742
293
- datahub/ingestion/source/dremio/dremio_source.py,sha256=NJxDXWd19A3MPplPiLPAjxTmjeJBA04PcPytRSslmYQ,26323
292
+ datahub/ingestion/source/dremio/dremio_reporting.py,sha256=BvdQA_T-VXl9EjOmj-D2NlM9pXZ4UdKXKGRpYsk1Eqw,1607
293
+ datahub/ingestion/source/dremio/dremio_source.py,sha256=XMx3EP0ciIaQjMffNljp8w-G4zmUyCDlQ-ga9H6Z-i4,26330
294
294
  datahub/ingestion/source/dremio/dremio_sql_queries.py,sha256=W0rcXawlwJOHNYr5o73rilMijtFOO3cVkn6pY-JLc6o,8186
295
295
  datahub/ingestion/source/dynamodb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
296
296
  datahub/ingestion/source/dynamodb/data_reader.py,sha256=vC77KpcP8LJN0g8wsPRDVw4sebv0ZWIP3tJkEIHaomA,3120
@@ -302,7 +302,7 @@ datahub/ingestion/source/fivetran/fivetran.py,sha256=uKbM5czPz-6LOseoh1FwavWDIuL
302
302
  datahub/ingestion/source/fivetran/fivetran_log_api.py,sha256=EAak3hJpe75WZSgz6wP_CyAT5Cian2N4a-lb8x1NKHk,12776
303
303
  datahub/ingestion/source/fivetran/fivetran_query.py,sha256=vLrTj7e-0NxZ2U4bWTB57pih42WirqPlUvwtIRfStlQ,5275
304
304
  datahub/ingestion/source/gc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
305
- datahub/ingestion/source/gc/datahub_gc.py,sha256=W6uoeV7B4WIXdxT4tOEdDksdJm656WwwvkH79L7f_8Q,12969
305
+ datahub/ingestion/source/gc/datahub_gc.py,sha256=6O-TxU2uCJ1Y8NNzJDufUd3ymapo--E3hTeIuy_QDtY,12763
306
306
  datahub/ingestion/source/gc/dataprocess_cleanup.py,sha256=86Tm3NNWMf0xM4TklNIEeNOjEingKpYy-XvCPeaAb4k,17125
307
307
  datahub/ingestion/source/gc/execution_request_cleanup.py,sha256=9jsyCIspWSSYSAVPHjKHr05885rXxM6FCH7KzTBceic,10139
308
308
  datahub/ingestion/source/gc/soft_deleted_entity_cleanup.py,sha256=zRtgC_AcZui4qGf9jBASI3R-CrYZxNe3Pm-gNSLT3rw,11420
@@ -331,7 +331,7 @@ datahub/ingestion/source/kafka_connect/source_connectors.py,sha256=_765fSMDAWAe0
331
331
  datahub/ingestion/source/looker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
332
332
  datahub/ingestion/source/looker/lkml_patched.py,sha256=XShEU7Wbz0DubDhYMjKf9wjKZrBJa2XPg9MIjp8rPhk,733
333
333
  datahub/ingestion/source/looker/looker_common.py,sha256=KObx5ZTfldN2EO11eb1LrHI-KjWHcFoe8n_XcvzuFFU,62047
334
- datahub/ingestion/source/looker/looker_config.py,sha256=87WAgdJ_QWdTq25RBwgIqfc2kq7dubSpzbEtXb2ihMw,13182
334
+ datahub/ingestion/source/looker/looker_config.py,sha256=MaBmz9ao0B_AN4SmvXuAAFMV6HgBuTtObkmdIYaaAQI,13584
335
335
  datahub/ingestion/source/looker/looker_connection.py,sha256=yDmC6lDsHmL2e_Pw8ULylwOIHPWPp_6gT1iyLvD0fTw,2075
336
336
  datahub/ingestion/source/looker/looker_constant.py,sha256=GMKYtNXlpojPxa9azridKfcGLSJwKdUCTesp7U8dIrQ,402
337
337
  datahub/ingestion/source/looker/looker_dataclasses.py,sha256=LjrP5m_A4HV-XeFlSNGVYNuyF0ulxp_qwB82Ss4Iycs,12200
@@ -393,11 +393,11 @@ datahub/ingestion/source/redshift/lineage.py,sha256=bUy0uJowrqSc33Z50fIxFlJkyhe-
393
393
  datahub/ingestion/source/redshift/lineage_v2.py,sha256=OcVW_27sSaZOYZPTd2j-LS9SzFQ1kXz6cMzM2ZDWhJQ,16751
394
394
  datahub/ingestion/source/redshift/profile.py,sha256=T4H79ycq2tPobLM1tTLRtu581Qa8LlKxEok49m0AirU,4294
395
395
  datahub/ingestion/source/redshift/query.py,sha256=bY1D9RoOHaw89LgcXal7GYlJN0RG7PxXRRC-YKIdC8E,43105
396
- datahub/ingestion/source/redshift/redshift.py,sha256=1SZmexnJIc7deGMsduZ0CB4N3Y59cHpxVY0ThHGLKcw,44428
396
+ datahub/ingestion/source/redshift/redshift.py,sha256=WR4IKGgcomSh8tYD0GigGyM6Z_Ar4bV3p5Ex74RnGkU,44409
397
397
  datahub/ingestion/source/redshift/redshift_data_reader.py,sha256=zc69jwXHdF-w8J4Hq-ZQ6BjHQ75Ij2iNDMpoRJlcmlU,1724
398
398
  datahub/ingestion/source/redshift/redshift_schema.py,sha256=9IYeUsnISenq3eVB3k-s7zK8nInWDAYViFnDrNjtkb0,19149
399
399
  datahub/ingestion/source/redshift/report.py,sha256=M19aUHBkd9n-BVBX4fRhyRNdVkN2b9Es6ZqInRx5ZGI,2958
400
- datahub/ingestion/source/redshift/usage.py,sha256=1Zqa_1OQYRI1l-5cHfk-VW2ik1A2AuL3_wjJDuFGBzs,17373
400
+ datahub/ingestion/source/redshift/usage.py,sha256=9ONBu8wpNuatqX8pWPCZDWH8mOK8MBYHFMECNs8Rk7g,17453
401
401
  datahub/ingestion/source/s3/__init__.py,sha256=HjqFPj11WtNFZM3kcVshlDb7kOsc19-l_3LM8PBjlJM,56
402
402
  datahub/ingestion/source/s3/config.py,sha256=Zs1nrBZKLImteZreIcSMMRLj8vBGgxakNDs96xf8g44,7847
403
403
  datahub/ingestion/source/s3/datalake_profiler_config.py,sha256=k7S9Xcmgr3-CvWrd5NEX-V8JSrcAwkm7vbHPTVZicow,3620
@@ -436,15 +436,15 @@ datahub/ingestion/source/snowflake/snowflake_lineage_v2.py,sha256=FBmiONx4EGHWV8
436
436
  datahub/ingestion/source/snowflake/snowflake_profiler.py,sha256=0DJiSwII6FY34urlBja2FW66NaVvhbBWmG0p7u8Xyrc,7548
437
437
  datahub/ingestion/source/snowflake/snowflake_queries.py,sha256=jTpnFWRqqFId6DKJvvAbNuFPxyNi1oQxxDUyMvh1iu4,26968
438
438
  datahub/ingestion/source/snowflake/snowflake_query.py,sha256=5po2FWz41UVowykJYbTFGxsltbmlHBCPcHG20VOhdOE,38469
439
- datahub/ingestion/source/snowflake/snowflake_report.py,sha256=_-rD7Q4MzKY8fYzJHSBnGX4gurwujL3UoRzcP_TZURs,6468
439
+ datahub/ingestion/source/snowflake/snowflake_report.py,sha256=9Jjrie9XhD1JsIL2Wgx6pVPCNi9HuuAg6nuS0OgbLoE,6331
440
440
  datahub/ingestion/source/snowflake/snowflake_schema.py,sha256=z5ZPgh-TILAz0DeIwDxRCsj980CM2BbftXiFpM1dV_Y,21674
441
- datahub/ingestion/source/snowflake/snowflake_schema_gen.py,sha256=3AxvKfK9WV9x2f2XNuJ-Cmy4szmXKm1Ky0haRVvyC6w,42340
441
+ datahub/ingestion/source/snowflake/snowflake_schema_gen.py,sha256=kWR_5WMUP24i79d-rvfED1S3ginBcd0T0VKjAVlm70c,42435
442
442
  datahub/ingestion/source/snowflake/snowflake_shares.py,sha256=maZyFkfrbVogEFM0tTKRiNp9c_1muv6YfleSd3q0umI,6341
443
443
  datahub/ingestion/source/snowflake/snowflake_summary.py,sha256=kTmuCtRnvHqM8WBYhWeK4XafJq3ssFL9kcS03jEeWT4,5506
444
444
  datahub/ingestion/source/snowflake/snowflake_tag.py,sha256=fyfWmFVz2WZrpTJWNIe9m0WpDHgeFrGPf8diORJZUwo,6212
445
- datahub/ingestion/source/snowflake/snowflake_usage_v2.py,sha256=0rXgz8bvRiI9SYVMa0UGLeg_DcjqBy6kQsdq0Uq0HVk,24685
445
+ datahub/ingestion/source/snowflake/snowflake_usage_v2.py,sha256=OI7MdARZcN1WjzRMF-hNIRSZyeVshlDVMD9Ga13W-SE,24846
446
446
  datahub/ingestion/source/snowflake/snowflake_utils.py,sha256=MoI8-DR9tuMuHMBQcpDo4GFjvcoQZWLNkdFZsTkgK-M,12786
447
- datahub/ingestion/source/snowflake/snowflake_v2.py,sha256=0doZaPPMO64Qi9uN4w8ZYe3gKkkieGJKI5xntF7vS6w,32020
447
+ datahub/ingestion/source/snowflake/snowflake_v2.py,sha256=kqhd2Pcn14KupIqmEEl4-HIzHHJyrWNB0Fv2T6e8XC8,32143
448
448
  datahub/ingestion/source/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
449
449
  datahub/ingestion/source/sql/athena.py,sha256=G3cIY8H_76lIUAzQWW2kLnZOEsfbakmojxbiHb3dYZ8,24059
450
450
  datahub/ingestion/source/sql/clickhouse.py,sha256=jzvaXP5Wr0SMhj2rtuvVE821xnfpKiXhO3cm0xblgHs,27299
@@ -467,7 +467,7 @@ datahub/ingestion/source/sql/sql_types.py,sha256=lrJpavRTE7aDVAKOrKZcrp4CsKydiia
467
467
  datahub/ingestion/source/sql/sql_utils.py,sha256=w9YFNm_qJNjOcWAWBI_lUoFMbd0wT8q0LoT7Ia71tIE,8100
468
468
  datahub/ingestion/source/sql/sqlalchemy_data_reader.py,sha256=FvHZ4JEK3aR2DYOBZiT_ZsAy12RjTu4t_KIR_92B11k,2644
469
469
  datahub/ingestion/source/sql/sqlalchemy_uri_mapper.py,sha256=KOpbmDIE2h1hyYEsbVHJi2B7FlsyUMTXZx4diyzltQg,1826
470
- datahub/ingestion/source/sql/teradata.py,sha256=_MXXFgaVJWKR9dgGNka-CpzKYy919yDdex2qSrqeVdE,32508
470
+ datahub/ingestion/source/sql/teradata.py,sha256=M2txTIttQPXDrQfBwFfhPGqwWCZb2ei2yjxxtSodP1w,32499
471
471
  datahub/ingestion/source/sql/trino.py,sha256=FEn_BQ3pm23hKx94ek5kk5IXGNYcBqZEhllRJFUzfU8,17895
472
472
  datahub/ingestion/source/sql/two_tier_sql_source.py,sha256=YDrGBb5WKVls6qv17QU5foKrf71SydzEltc3WsVAhQc,5732
473
473
  datahub/ingestion/source/sql/vertica.py,sha256=_9OgSgIgqBml0av063rb8nACiT3SAmzpw0ouyF91wv8,33382
@@ -491,7 +491,7 @@ datahub/ingestion/source/state_provider/datahub_ingestion_checkpointing_provider
491
491
  datahub/ingestion/source/state_provider/file_ingestion_checkpointing_provider.py,sha256=xsH7Ao_05VTjqpkzLkhdf5B1ULMzFoD8vkJJIJU9w-U,4077
492
492
  datahub/ingestion/source/state_provider/state_provider_registry.py,sha256=SVq4mIyGNmLXE9OZx1taOiNPqDoQp03-Ot9rYnB5F3k,401
493
493
  datahub/ingestion/source/tableau/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
494
- datahub/ingestion/source/tableau/tableau.py,sha256=KAwyM9XiJUXFPwuVQM7GcHntcTFxMFAN4j3xSIOMbgg,142010
494
+ datahub/ingestion/source/tableau/tableau.py,sha256=4j951dqCO68ywujGXc3yY5va08eCVfgIqJQiZFQ7I6Q,145895
495
495
  datahub/ingestion/source/tableau/tableau_common.py,sha256=a3Nu0Upy6_pnrd7XpSMcYHdnYca1JBW7H0jMqkYr0ME,26871
496
496
  datahub/ingestion/source/tableau/tableau_constant.py,sha256=ZcAeHsQUXVVL26ORly0ByZk_GJAFbxaKuJAlX_sYMac,2686
497
497
  datahub/ingestion/source/tableau/tableau_server_wrapper.py,sha256=nSyx9RzC6TCQDm-cTVJ657qT8iDwzk_8JMKpohhmOc4,1046
@@ -506,7 +506,7 @@ datahub/ingestion/source/unity/proxy.py,sha256=_6kCI7M4-26pZ9ZMGJUh6LwYmbGAZlnvc
506
506
  datahub/ingestion/source/unity/proxy_profiling.py,sha256=WLqvYP6MziaisA4LYL4T_GA-kPt6Xdde7bfaYsjYw40,9663
507
507
  datahub/ingestion/source/unity/proxy_types.py,sha256=qrvHiwPzl5cPX-KRvcIGGeJVdr0I8XUQmoAI6ErZ-v8,9371
508
508
  datahub/ingestion/source/unity/report.py,sha256=0Y-ciHVTI6ZKNCJ5zWoQh3Ze1c_GMqmTMKFwzXDuuOg,2788
509
- datahub/ingestion/source/unity/source.py,sha256=YdUPCMJtpmvYVnRNnpqb4BVowFobkLvSJ_K2gHwrvCI,41752
509
+ datahub/ingestion/source/unity/source.py,sha256=9Pgc2L3Uf_H0NETs7LbgijtjWDnnynGpZnm-0p7FXZI,41927
510
510
  datahub/ingestion/source/unity/usage.py,sha256=igRxYg8usukTAA229uJWi-0y-Zd0yOq9dEBi2k9f15o,11436
511
511
  datahub/ingestion/source/usage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
512
512
  datahub/ingestion/source/usage/clickhouse_usage.py,sha256=8nQqNAPKqivywjzsvqH0-HWFwjd4gECpw_xahLXk5ek,9970
@@ -517,7 +517,7 @@ datahub/ingestion/source_config/csv_enricher.py,sha256=IROxxfFJA56dHkmmbjjhb7h1p
517
517
  datahub/ingestion/source_config/operation_config.py,sha256=Q0NlqiEh4s4DFIII5NsAp5hxWTVyyJz-ldcQmH-B47s,3504
518
518
  datahub/ingestion/source_config/pulsar.py,sha256=sklDkh62CrWV-i7Ifh6R3T3smYVso6gyRJG8HVc6RdA,5533
519
519
  datahub/ingestion/source_report/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
520
- datahub/ingestion/source_report/ingestion_stage.py,sha256=gbYmnio3fAOsjh_RzU3j_5UGu7bYBwUM4bm7S8ID_IU,1649
520
+ datahub/ingestion/source_report/ingestion_stage.py,sha256=SU_FKFZhShZATLcFr735i_hWpdqNGdAWoZxh22p3P1k,1787
521
521
  datahub/ingestion/source_report/pulsar.py,sha256=iKhzy644AjoFTV-gxyqBoXKMLwSMPxJFxU-3WDQRww0,1037
522
522
  datahub/ingestion/source_report/time_window.py,sha256=9yI5l2S1DcF7ClvUHLeN8m62I5vlhV9k-aQqSZh2l7w,229
523
523
  datahub/ingestion/transformer/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -912,7 +912,7 @@ datahub/utilities/dedup_list.py,sha256=dUSpe1AajfuwlHVJKNv-CzDXSCkaw0HgSMOsxqUkQ
912
912
  datahub/utilities/delayed_iter.py,sha256=XlsI0DCXkVVejFKOW_uMT0E8DTqqOHQN3Ooak4EcULE,645
913
913
  datahub/utilities/delta.py,sha256=hkpF8W7Lvg2gUJBQR3mmIzOxsRQ6i5cchRPFlAVoV10,1128
914
914
  datahub/utilities/docs_build.py,sha256=uFMK3z1d4BExpsrvguHunidbEDAzQ8hoOP7iQ0A_IVw,211
915
- datahub/utilities/file_backed_collections.py,sha256=I2GxSYtVzfo38pQpv2FyoBeWISiKD4zUi0t34jPCNrU,21957
915
+ datahub/utilities/file_backed_collections.py,sha256=T0Ck2QQFmws9XhPXA36UBT5d0Qw7INOBph-cqUDd9A0,21958
916
916
  datahub/utilities/global_warning_util.py,sha256=adrEl3WhetQ-bymrPINjd976ZFndhbvk3QosUYGsos8,261
917
917
  datahub/utilities/hive_schema_to_avro.py,sha256=2-7NI9haCAYbyUmHTb-QPxjn4WbmnDDKAIGmHJ11-1E,11622
918
918
  datahub/utilities/is_pytest.py,sha256=2m9T4S9IIKhI5RfTqrB2ZmumzHocdxBHpM1HroWj2XQ,138
@@ -924,7 +924,7 @@ datahub/utilities/openapi_utils.py,sha256=VNiNo1Pjvtn2MLShQ1vCjc27id7LmI-pnLdjlU
924
924
  datahub/utilities/ordered_set.py,sha256=p2DdvbD98ELTLCxgdZdOKQ50VnnMDKr3l9fmqCzu5g4,1135
925
925
  datahub/utilities/parsing_util.py,sha256=FrMJRgkJWoyPXmjtIfPT3fc886uA2i5_PqhplRDN3NI,598
926
926
  datahub/utilities/partition_executor.py,sha256=Fz2lH3vrUagLE63ZZSiQ4-WzO1bm_2SUPlS0cA0nkTc,20988
927
- datahub/utilities/perf_timer.py,sha256=HUGdu4JuI4mmRo5IlKiksvNHbEXri03TW7uGlWDBTSE,2896
927
+ datahub/utilities/perf_timer.py,sha256=qj68nBcZzjgxHONaAZRhQdDKqaVJFxeQRMnX6LbwHI8,3048
928
928
  datahub/utilities/prefix_batch_builder.py,sha256=ZAxXNh1QcrvdPUgRnjFRMFPJLznfJqsydXG7xueCS_c,2847
929
929
  datahub/utilities/progress_timer.py,sha256=w0b3wIEGL8fQy2BKYVPiKDcO5ATUlt1kQr74aG1TlxI,1152
930
930
  datahub/utilities/ratelimiter.py,sha256=6a058tTzydqK9gf0C2RR2iZZmh-mm4o3W0MMlDNfIoo,2201
@@ -986,8 +986,8 @@ datahub_provider/operators/datahub_assertion_operator.py,sha256=uvTQ-jk2F0sbqqxp
986
986
  datahub_provider/operators/datahub_assertion_sensor.py,sha256=lCBj_3x1cf5GMNpHdfkpHuyHfVxsm6ff5x2Z5iizcAo,140
987
987
  datahub_provider/operators/datahub_operation_operator.py,sha256=aevDp2FzX7FxGlXrR0khoHNbxbhKR2qPEX5e8O2Jyzw,174
988
988
  datahub_provider/operators/datahub_operation_sensor.py,sha256=8fcdVBCEPgqy1etTXgLoiHoJrRt_nzFZQMdSzHqSG7M,168
989
- acryl_datahub-0.15.0.2rc1.dist-info/METADATA,sha256=cLoMIIavfob5z2bJbsj69AoG_J7tp489qvVvBf3W_Yo,173441
990
- acryl_datahub-0.15.0.2rc1.dist-info/WHEEL,sha256=A3WOREP4zgxI0fKrHUG8DC8013e3dK3n7a6HDbcEIwE,91
991
- acryl_datahub-0.15.0.2rc1.dist-info/entry_points.txt,sha256=xnPSPLK3bJGADxe4TDS4wL4u0FT_PGlahDa-ENYdYCQ,9512
992
- acryl_datahub-0.15.0.2rc1.dist-info/top_level.txt,sha256=iLjSrLK5ox1YVYcglRUkcvfZPvKlobBWx7CTUXx8_GI,25
993
- acryl_datahub-0.15.0.2rc1.dist-info/RECORD,,
989
+ acryl_datahub-0.15.0.2rc3.dist-info/METADATA,sha256=OWdxPqF4pJ1N91lZlAy8xWSInWXiBRWM_T8YmesJsyo,173662
990
+ acryl_datahub-0.15.0.2rc3.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
991
+ acryl_datahub-0.15.0.2rc3.dist-info/entry_points.txt,sha256=xnPSPLK3bJGADxe4TDS4wL4u0FT_PGlahDa-ENYdYCQ,9512
992
+ acryl_datahub-0.15.0.2rc3.dist-info/top_level.txt,sha256=iLjSrLK5ox1YVYcglRUkcvfZPvKlobBWx7CTUXx8_GI,25
993
+ acryl_datahub-0.15.0.2rc3.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (75.7.0)
2
+ Generator: setuptools (75.8.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
datahub/__init__.py CHANGED
@@ -3,7 +3,7 @@ import warnings
3
3
 
4
4
  # Published at https://pypi.org/project/acryl-datahub/.
5
5
  __package_name__ = "acryl-datahub"
6
- __version__ = "0.15.0.2rc1"
6
+ __version__ = "0.15.0.2rc3"
7
7
 
8
8
 
9
9
  def is_dev_mode() -> bool:
@@ -1,7 +1,7 @@
1
1
  import logging
2
2
  from enum import Enum
3
3
  from pathlib import Path
4
- from typing import List, Optional
4
+ from typing import Iterable, List, Optional
5
5
 
6
6
  import yaml
7
7
  from pydantic import validator
@@ -226,3 +226,14 @@ class StructuredProperties(ConfigModel):
226
226
  yaml.indent(mapping=2, sequence=4, offset=2)
227
227
  yaml.default_flow_style = False
228
228
  yaml.dump(self.dict(), fp)
229
+
230
+ @staticmethod
231
+ def list_urns(graph: DataHubGraph) -> Iterable[str]:
232
+ return graph.get_urns_by_filter(
233
+ entity_types=["structuredProperty"],
234
+ )
235
+
236
+ @staticmethod
237
+ def list(graph: DataHubGraph) -> Iterable["StructuredProperties"]:
238
+ for urn in StructuredProperties.list_urns(graph):
239
+ yield StructuredProperties.from_datahub(graph, urn)
@@ -1,9 +1,11 @@
1
1
  import json
2
2
  import logging
3
3
  from pathlib import Path
4
+ from typing import Iterable
4
5
 
5
6
  import click
6
7
  from click_default_group import DefaultGroup
8
+ from ruamel.yaml import YAML
7
9
 
8
10
  from datahub.api.entities.structuredproperties.structuredproperties import (
9
11
  StructuredProperties,
@@ -61,3 +63,85 @@ def get(urn: str, to_file: str) -> None:
61
63
  )
62
64
  else:
63
65
  click.secho(f"Structured property {urn} does not exist")
66
+
67
+
68
+ @properties.command(
69
+ name="list",
70
+ )
71
+ @click.option("--details/--no-details", is_flag=True, default=True)
72
+ @click.option("--to-file", required=False, type=str)
73
+ @telemetry.with_telemetry()
74
+ def list(details: bool, to_file: str) -> None:
75
+ """List structured properties in DataHub"""
76
+
77
+ def to_yaml_list(
78
+ objects: Iterable[StructuredProperties], # iterable of objects to dump
79
+ file: Path,
80
+ ) -> None:
81
+ # if file exists, first we read it
82
+ yaml = YAML(typ="rt") # default, if not specfied, is 'rt' (round-trip)
83
+ yaml.indent(mapping=2, sequence=4, offset=2)
84
+ yaml.default_flow_style = False
85
+ serialized_objects = []
86
+ if file.exists():
87
+ with open(file, "r") as fp:
88
+ existing_objects = yaml.load(fp) # this is a list of dicts
89
+ existing_objects = [
90
+ StructuredProperties.parse_obj(obj) for obj in existing_objects
91
+ ]
92
+ objects = [obj for obj in objects]
93
+ # do a positional update of the existing objects
94
+ existing_urns = {obj.urn for obj in existing_objects}
95
+ # existing_urns = {obj["urn"] if "urn" in obj else f"urn:li:structuredProperty:{obj['id']}" for obj in existing_objects}
96
+ for i, obj in enumerate(existing_objects):
97
+ # existing_urn = obj["urn"] if "urn" in obj else f"urn:li:structuredProperty:{obj['id']}"
98
+ existing_urn = obj.urn
99
+ # breakpoint()
100
+ if existing_urn in {obj.urn for obj in objects}:
101
+ existing_objects[i] = next(
102
+ obj.dict(exclude_unset=True, exclude_none=True)
103
+ for obj in objects
104
+ if obj.urn == existing_urn
105
+ )
106
+ new_objects = [
107
+ obj.dict(exclude_unset=True, exclude_none=True)
108
+ for obj in objects
109
+ if obj.urn not in existing_urns
110
+ ]
111
+ serialized_objects = existing_objects + new_objects
112
+ else:
113
+ serialized_objects = [
114
+ obj.dict(exclude_unset=True, exclude_none=True) for obj in objects
115
+ ]
116
+
117
+ with open(file, "w") as fp:
118
+ yaml.dump(serialized_objects, fp)
119
+
120
+ with get_default_graph() as graph:
121
+ if details:
122
+ logger.info(
123
+ "Listing structured properties with details. Use --no-details for urns only"
124
+ )
125
+ structuredproperties = StructuredProperties.list(graph)
126
+ if to_file:
127
+ to_yaml_list(structuredproperties, Path(to_file))
128
+ else:
129
+ for structuredproperty in structuredproperties:
130
+ click.secho(
131
+ f"{json.dumps(structuredproperty.dict(exclude_unset=True, exclude_none=True), indent=2)}"
132
+ )
133
+ else:
134
+ logger.info(
135
+ "Listing structured property urns only, use --details for more information"
136
+ )
137
+ structured_property_urns = StructuredProperties.list_urns(graph)
138
+ if to_file:
139
+ with open(to_file, "w") as f:
140
+ for urn in structured_property_urns:
141
+ f.write(f"{urn}\n")
142
+ click.secho(
143
+ f"Structured property urns written to {to_file}", fg="green"
144
+ )
145
+ else:
146
+ for urn in structured_property_urns:
147
+ click.secho(f"{urn}")
@@ -334,6 +334,8 @@ class SourceReport(Report):
334
334
  }
335
335
 
336
336
  def compute_stats(self) -> None:
337
+ super().compute_stats()
338
+
337
339
  duration = datetime.datetime.now() - self.start_time
338
340
  workunits_produced = self.events_produced
339
341
  if duration.total_seconds() > 0:
@@ -253,14 +253,14 @@ class BigqueryV2Source(StatefulIngestionSourceBase, TestableSource):
253
253
  for project in projects:
254
254
  yield from self.bq_schema_extractor.get_project_workunits(project)
255
255
 
256
- self.report.set_ingestion_stage("*", "View and Snapshot Lineage")
257
- yield from self.lineage_extractor.get_lineage_workunits_for_views_and_snapshots(
258
- [p.id for p in projects],
259
- self.bq_schema_extractor.view_refs_by_project,
260
- self.bq_schema_extractor.view_definitions,
261
- self.bq_schema_extractor.snapshot_refs_by_project,
262
- self.bq_schema_extractor.snapshots_by_ref,
263
- )
256
+ with self.report.new_stage("*: View and Snapshot Lineage"):
257
+ yield from self.lineage_extractor.get_lineage_workunits_for_views_and_snapshots(
258
+ [p.id for p in projects],
259
+ self.bq_schema_extractor.view_refs_by_project,
260
+ self.bq_schema_extractor.view_definitions,
261
+ self.bq_schema_extractor.snapshot_refs_by_project,
262
+ self.bq_schema_extractor.snapshots_by_ref,
263
+ )
264
264
 
265
265
  if self.config.use_queries_v2:
266
266
  # if both usage and lineage are disabled then skip queries extractor piece
@@ -270,31 +270,29 @@ class BigqueryV2Source(StatefulIngestionSourceBase, TestableSource):
270
270
  ):
271
271
  return
272
272
 
273
- self.report.set_ingestion_stage("*", QUERIES_EXTRACTION)
274
-
275
- with BigQueryQueriesExtractor(
276
- connection=self.config.get_bigquery_client(),
277
- schema_api=self.bq_schema_extractor.schema_api,
278
- config=BigQueryQueriesExtractorConfig(
279
- window=self.config,
280
- user_email_pattern=self.config.usage.user_email_pattern,
281
- include_lineage=self.config.include_table_lineage,
282
- include_usage_statistics=self.config.include_usage_statistics,
283
- include_operations=self.config.usage.include_operational_stats,
284
- include_queries=self.config.include_queries,
285
- include_query_usage_statistics=self.config.include_query_usage_statistics,
286
- top_n_queries=self.config.usage.top_n_queries,
287
- region_qualifiers=self.config.region_qualifiers,
288
- ),
289
- structured_report=self.report,
290
- filters=self.filters,
291
- identifiers=self.identifiers,
292
- schema_resolver=self.sql_parser_schema_resolver,
293
- discovered_tables=self.bq_schema_extractor.table_refs,
294
- ) as queries_extractor:
295
- self.report.queries_extractor = queries_extractor.report
296
- yield from queries_extractor.get_workunits_internal()
297
-
273
+ with self.report.new_stage(f"*: {QUERIES_EXTRACTION}"):
274
+ with BigQueryQueriesExtractor(
275
+ connection=self.config.get_bigquery_client(),
276
+ schema_api=self.bq_schema_extractor.schema_api,
277
+ config=BigQueryQueriesExtractorConfig(
278
+ window=self.config,
279
+ user_email_pattern=self.config.usage.user_email_pattern,
280
+ include_lineage=self.config.include_table_lineage,
281
+ include_usage_statistics=self.config.include_usage_statistics,
282
+ include_operations=self.config.usage.include_operational_stats,
283
+ include_queries=self.config.include_queries,
284
+ include_query_usage_statistics=self.config.include_query_usage_statistics,
285
+ top_n_queries=self.config.usage.top_n_queries,
286
+ region_qualifiers=self.config.region_qualifiers,
287
+ ),
288
+ structured_report=self.report,
289
+ filters=self.filters,
290
+ identifiers=self.identifiers,
291
+ schema_resolver=self.sql_parser_schema_resolver,
292
+ discovered_tables=self.bq_schema_extractor.table_refs,
293
+ ) as queries_extractor:
294
+ self.report.queries_extractor = queries_extractor.report
295
+ yield from queries_extractor.get_workunits_internal()
298
296
  else:
299
297
  if self.config.include_usage_statistics:
300
298
  yield from self.usage_extractor.get_usage_workunits(
@@ -190,6 +190,3 @@ class BigQueryV2Report(
190
190
  num_skipped_external_table_lineage: int = 0
191
191
 
192
192
  queries_extractor: Optional[BigQueryQueriesExtractorReport] = None
193
-
194
- def set_ingestion_stage(self, project_id: str, stage: str) -> None:
195
- self.report_ingestion_stage_start(f"{project_id}: {stage}")
@@ -248,9 +248,9 @@ class BigQuerySchemaGenerator:
248
248
  def get_project_workunits(
249
249
  self, project: BigqueryProject
250
250
  ) -> Iterable[MetadataWorkUnit]:
251
- self.report.set_ingestion_stage(project.id, METADATA_EXTRACTION)
252
- logger.info(f"Processing project: {project.id}")
253
- yield from self._process_project(project)
251
+ with self.report.new_stage(f"{project.id}: {METADATA_EXTRACTION}"):
252
+ logger.info(f"Processing project: {project.id}")
253
+ yield from self._process_project(project)
254
254
 
255
255
  def get_dataplatform_instance_aspect(
256
256
  self, dataset_urn: str, project_id: str
@@ -405,11 +405,11 @@ class BigQuerySchemaGenerator:
405
405
 
406
406
  if self.config.is_profiling_enabled():
407
407
  logger.info(f"Starting profiling project {project_id}")
408
- self.report.set_ingestion_stage(project_id, PROFILING)
409
- yield from self.profiler.get_workunits(
410
- project_id=project_id,
411
- tables=db_tables,
412
- )
408
+ with self.report.new_stage(f"{project_id}: {PROFILING}"):
409
+ yield from self.profiler.get_workunits(
410
+ project_id=project_id,
411
+ tables=db_tables,
412
+ )
413
413
 
414
414
  def _process_project_datasets(
415
415
  self,
@@ -1203,9 +1203,9 @@ class BigQuerySchemaGenerator:
1203
1203
  report=self.report,
1204
1204
  )
1205
1205
 
1206
- self.report.metadata_extraction_sec[f"{project_id}.{dataset.name}"] = round(
1207
- timer.elapsed_seconds(), 2
1208
- )
1206
+ self.report.metadata_extraction_sec[
1207
+ f"{project_id}.{dataset.name}"
1208
+ ] = timer.elapsed_seconds(digits=2)
1209
1209
 
1210
1210
  def get_core_table_details(
1211
1211
  self, dataset_name: str, project_id: str, temp_table_dataset_prefix: str
@@ -330,11 +330,11 @@ class BigqueryLineageExtractor:
330
330
  projects = ["*"] # project_id not used when using exported metadata
331
331
 
332
332
  for project in projects:
333
- self.report.set_ingestion_stage(project, LINEAGE_EXTRACTION)
334
- yield from self.generate_lineage(
335
- project,
336
- table_refs,
337
- )
333
+ with self.report.new_stage(f"{project}: {LINEAGE_EXTRACTION}"):
334
+ yield from self.generate_lineage(
335
+ project,
336
+ table_refs,
337
+ )
338
338
 
339
339
  if self.redundant_run_skip_handler:
340
340
  # Update the checkpoint state for this run.
@@ -368,8 +368,8 @@ class BigqueryLineageExtractor:
368
368
  self.report.lineage_metadata_entries[project_id] = len(lineage)
369
369
  logger.info(f"Built lineage map containing {len(lineage)} entries.")
370
370
  logger.debug(f"lineage metadata is {lineage}")
371
- self.report.lineage_extraction_sec[project_id] = round(
372
- timer.elapsed_seconds(), 2
371
+ self.report.lineage_extraction_sec[project_id] = timer.elapsed_seconds(
372
+ digits=2
373
373
  )
374
374
  self.report.lineage_mem_size[project_id] = humanfriendly.format_size(
375
375
  memory_footprint.total_size(lineage)