acryl-datahub 0.15.0rc15__py3-none-any.whl → 0.15.0rc17__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 (52) hide show
  1. {acryl_datahub-0.15.0rc15.dist-info → acryl_datahub-0.15.0rc17.dist-info}/METADATA +2485 -2501
  2. {acryl_datahub-0.15.0rc15.dist-info → acryl_datahub-0.15.0rc17.dist-info}/RECORD +49 -49
  3. datahub/__init__.py +1 -1
  4. datahub/api/entities/structuredproperties/structuredproperties.py +7 -5
  5. datahub/cli/cli_utils.py +2 -0
  6. datahub/cli/delete_cli.py +66 -20
  7. datahub/configuration/common.py +3 -3
  8. datahub/ingestion/api/incremental_properties_helper.py +69 -0
  9. datahub/ingestion/api/source.py +5 -1
  10. datahub/ingestion/api/source_helpers.py +3 -1
  11. datahub/ingestion/reporting/datahub_ingestion_run_summary_provider.py +2 -2
  12. datahub/ingestion/run/pipeline.py +1 -1
  13. datahub/ingestion/run/pipeline_config.py +6 -0
  14. datahub/ingestion/sink/datahub_rest.py +3 -3
  15. datahub/ingestion/source/abs/source.py +4 -0
  16. datahub/ingestion/source/gc/datahub_gc.py +5 -5
  17. datahub/ingestion/source/gc/soft_deleted_entity_cleanup.py +1 -1
  18. datahub/ingestion/source/kafka/kafka.py +18 -11
  19. datahub/ingestion/source/looker/lookml_concept_context.py +1 -2
  20. datahub/ingestion/source/looker/view_upstream.py +65 -30
  21. datahub/ingestion/source/mode.py +0 -23
  22. datahub/ingestion/source/redash.py +13 -63
  23. datahub/ingestion/source/redshift/config.py +1 -0
  24. datahub/ingestion/source/redshift/redshift.py +2 -0
  25. datahub/ingestion/source/snowflake/snowflake_config.py +4 -0
  26. datahub/ingestion/source/snowflake/snowflake_query.py +6 -2
  27. datahub/ingestion/source/snowflake/snowflake_report.py +1 -0
  28. datahub/ingestion/source/snowflake/snowflake_schema.py +12 -0
  29. datahub/ingestion/source/snowflake/snowflake_schema_gen.py +17 -2
  30. datahub/ingestion/source/snowflake/snowflake_utils.py +45 -5
  31. datahub/ingestion/source/snowflake/snowflake_v2.py +6 -0
  32. datahub/ingestion/source/state/redundant_run_skip_handler.py +1 -1
  33. datahub/ingestion/source/tableau/tableau.py +35 -16
  34. datahub/ingestion/source/tableau/tableau_common.py +0 -1
  35. datahub/ingestion/source/unity/source.py +2 -0
  36. datahub/ingestion/source/unity/usage.py +20 -11
  37. datahub/metadata/_schema_classes.py +122 -2
  38. datahub/metadata/com/linkedin/pegasus2avro/structured/__init__.py +2 -0
  39. datahub/metadata/schema.avsc +73 -1
  40. datahub/metadata/schemas/StructuredPropertyDefinition.avsc +1 -1
  41. datahub/metadata/schemas/StructuredPropertyKey.avsc +1 -0
  42. datahub/metadata/schemas/StructuredPropertySettings.avsc +114 -0
  43. datahub/sql_parsing/schema_resolver.py +23 -0
  44. datahub/sql_parsing/sqlglot_lineage.py +48 -13
  45. datahub/testing/doctest.py +12 -0
  46. datahub/utilities/partition_executor.py +1 -1
  47. datahub/utilities/sql_lineage_parser_impl.py +0 -160
  48. datahub/utilities/sql_parser.py +0 -94
  49. datahub/utilities/sql_parser_base.py +0 -21
  50. {acryl_datahub-0.15.0rc15.dist-info → acryl_datahub-0.15.0rc17.dist-info}/WHEEL +0 -0
  51. {acryl_datahub-0.15.0rc15.dist-info → acryl_datahub-0.15.0rc17.dist-info}/entry_points.txt +0 -0
  52. {acryl_datahub-0.15.0rc15.dist-info → acryl_datahub-0.15.0rc17.dist-info}/top_level.txt +0 -0
@@ -1,4 +1,4 @@
1
- datahub/__init__.py,sha256=buN0Z9LU7z07XbgkhbhlEfo3o-_kT-HZCi9rZTe1ovY,575
1
+ datahub/__init__.py,sha256=36zFdNjWt7jwEClr7v19ajrbbZWK2fom9sGt-Llby2I,575
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,16 +52,16 @@ 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=UeNPicCmrYJThv0msUlYUNArHGcjdc_0EX5yLijc_Ao,9267
55
+ datahub/api/entities/structuredproperties/structuredproperties.py,sha256=PcTX5gI7pg_Aq9JeIvUNZ5JYrQ2XS1uUEJZ73ORgYgA,9434
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
59
59
  datahub/api/graphql/operation.py,sha256=h7OXbVRrpJgoth1X4cgeIFhD5JY1MGKg2KjVlQK1gqE,5116
60
60
  datahub/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
61
61
  datahub/cli/check_cli.py,sha256=9dXNyzZayHeoFjwFjLkMVyx6DiCZfeESyI-sYtGA6bE,12850
62
- datahub/cli/cli_utils.py,sha256=xMEK4tmoX2f_5BihxWrApOkayVLwhpPvMUU842x6FsI,13111
62
+ datahub/cli/cli_utils.py,sha256=gFmcOGAT6IdrTwmpRFSwaqzGmoqS4dbWrxILB1uvlGk,13214
63
63
  datahub/cli/config_utils.py,sha256=yuXw7RzpRY5x_-MAoqWbv46qUkIeRNAJL4_OeJpYdBE,4879
64
- datahub/cli/delete_cli.py,sha256=Z7iXNr4ZMmghCnldU8laK4SwTNrhQEEnnUH_TeaBKog,21838
64
+ datahub/cli/delete_cli.py,sha256=VLeHi7MLFCtTk7MI4y8r_k_7aLcCUZIglU2MNLsXU6M,23051
65
65
  datahub/cli/docker_check.py,sha256=rED4wHXqxcQ_qNFyIgFEZ85BHT9ZTE5YC-oUKqbRqi0,9432
66
66
  datahub/cli/docker_cli.py,sha256=QGoWFp8ZZsXOSMbgu0Q4snMmMmtP3epWAN-fYglUNEc,36491
67
67
  datahub/cli/env_utils.py,sha256=RQzjg4JE29hjPt4v7p-RuqoOr99w8E3DBHWiN2Sm7T4,252
@@ -89,7 +89,7 @@ datahub/cli/specific/structuredproperties_cli.py,sha256=Q-ew8JBPmSbyj2IGFaaMHs1V
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
92
- datahub/configuration/common.py,sha256=ZEApfo1lyQ4zIwelBBPzAEsMSGt6BdqVK9n8MPE7pnQ,10511
92
+ datahub/configuration/common.py,sha256=Ngj2-HKPEhCMbcx3phUqyoOHayhqWNt1t0e2hO3GQNY,10508
93
93
  datahub/configuration/config_loader.py,sha256=4V8rrbKvCbfEys2Tlw2uZXb3yC9Hpoubn2O8GXhGe3A,5785
94
94
  datahub/configuration/connection_resolver.py,sha256=n4-6MwMiOEDgTouxO0SMjTILKVhJPo6-naE6FuR5qMs,1516
95
95
  datahub/configuration/datetimes.py,sha256=nayNc0mmlVKH6oVv9ud6C1dDUiZPGabW-YZxvrkosPg,2870
@@ -131,14 +131,15 @@ datahub/ingestion/api/common.py,sha256=nJVL8YdvokYFajOjmVpSNlLbZJ5iVOFS4KJDlGtJ_
131
131
  datahub/ingestion/api/decorators.py,sha256=KTNdf2B20L-wlEPF8UsL89a8zwvRSOfA7gOOZnnYalY,3933
132
132
  datahub/ingestion/api/global_context.py,sha256=OdSJg4a_RKE52nu8MSiEkK2UqRRDhDTyOleHEAzPKho,575
133
133
  datahub/ingestion/api/incremental_lineage_helper.py,sha256=Qke8T4Yba0c-ZzNfSzzXnFP0WjuqUQ1fuN4V3KK4gv4,5913
134
+ datahub/ingestion/api/incremental_properties_helper.py,sha256=KzdxdrQtaMV2XMHfPsCtRa7ffDGPA1w1hgPUjeenZBU,2514
134
135
  datahub/ingestion/api/ingestion_job_checkpointing_provider_base.py,sha256=g5jfu3rEdwFRdWx0K5VoqYhXu1cVtwADCZHP7SdBLf0,1839
135
136
  datahub/ingestion/api/pipeline_run_listener.py,sha256=5uBP__LbMQxJ2utlf07cIzQINqPbUOKiZyOJta6a0og,713
136
137
  datahub/ingestion/api/registry.py,sha256=LGElUdzhNQoEr-k2SN23mJaIYnA1PYfF97LQxBmWmD8,7262
137
138
  datahub/ingestion/api/report.py,sha256=CpQHqLAoYGV4bxNIpYQugLY0EUoxROlp2NUM9ONHj_I,4364
138
139
  datahub/ingestion/api/report_helpers.py,sha256=WbUC1kQeaKqIagGV3XzfPmPs7slAT1mfNY4og2BH2A8,994
139
140
  datahub/ingestion/api/sink.py,sha256=6g01wou8pv79s0leDWyK12cgl7eLtpiwSUHqOw08vx4,4503
140
- datahub/ingestion/api/source.py,sha256=LktIC5KuRr_5ncLtGnU2bBSqE7Vy0yp9kBF5n9lq-4Y,18627
141
- datahub/ingestion/api/source_helpers.py,sha256=_OPH6vp2Zk-BFc1Kuyud-R88qA67xY_g8c0EIoQRxFg,19607
141
+ datahub/ingestion/api/source.py,sha256=W_GkXkEXGdwwO0OEaR2BgxoBAATsvY9VIubCTXSHfB8,18774
142
+ datahub/ingestion/api/source_helpers.py,sha256=ninruzG4MwJuEmkOzpqLONzVi4OOi2x3RLWoogoELY4,19708
142
143
  datahub/ingestion/api/transform.py,sha256=X0GpjMJzYkLuZx8MTWxH50cWGm9rGsnn3k188mmC8J8,582
143
144
  datahub/ingestion/api/workunit.py,sha256=e8n8RfSjHZZm2R4ShNH0UuMtUkMjyqqM2j2t7oL74lo,6327
144
145
  datahub/ingestion/api/auto_work_units/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -167,19 +168,19 @@ datahub/ingestion/graph/config.py,sha256=3b_Gxa5wcBnphP63bBiAFdWS7PJhUHRE1WZL_q4
167
168
  datahub/ingestion/graph/connections.py,sha256=9462L0ZWGKURyypAln25eMPhK3pcufBar9tNDoqspXs,741
168
169
  datahub/ingestion/graph/filters.py,sha256=UeUZQHoimavIYx-jXLA0WGkOUe10TaO8uEZkfa-QgNE,6188
169
170
  datahub/ingestion/reporting/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
170
- datahub/ingestion/reporting/datahub_ingestion_run_summary_provider.py,sha256=ebQyfart6xL86SBujWS1M81zs9yrq8g5fgojER-l7Og,8363
171
+ datahub/ingestion/reporting/datahub_ingestion_run_summary_provider.py,sha256=rrnlgptYF3YkxWlLYpkLm3mgrmzHcy6AwTHUG18bKVA,8373
171
172
  datahub/ingestion/reporting/file_reporter.py,sha256=tiWukmMxHrTQI3rOAumsq6lRlw8T6spqpS6XBDYnrZU,1640
172
173
  datahub/ingestion/reporting/reporting_provider_registry.py,sha256=jTYSh3T4sensjnHQfPLiIcbA2dG8w0px9ghChAJjGdU,310
173
174
  datahub/ingestion/run/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
174
175
  datahub/ingestion/run/connection.py,sha256=dqS9Fp8byIJNydPmVgtjjjlPJguuUWuMuvGnpNbQdSs,1474
175
- datahub/ingestion/run/pipeline.py,sha256=8MNUC19h7AvxjlDJj3E_FZlY56SAUlYG0heIko2XK_g,30572
176
- datahub/ingestion/run/pipeline_config.py,sha256=91Uvs76EGbCzZZbm819TT0L6pixf2tfI2_nHpnCoyS4,3948
176
+ datahub/ingestion/run/pipeline.py,sha256=9yqpcU_-Lr224cFrxi9rLJHmG04cHGIORcbzQw0H1pI,30577
177
+ datahub/ingestion/run/pipeline_config.py,sha256=c8WeID2sa3OB3lNs_rBIf7jRSKaQ9ta38uvTxScq5Fo,4099
177
178
  datahub/ingestion/sink/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
178
179
  datahub/ingestion/sink/blackhole.py,sha256=-jYcWo4i8q7312bCIoHrGr7nT9JdPvA7c4jvSc7YOgY,557
179
180
  datahub/ingestion/sink/console.py,sha256=TZfhA0Ec2eNCrMH7RRy2JOdUE-U-hkoIQrPm1CmKLQs,591
180
181
  datahub/ingestion/sink/datahub_kafka.py,sha256=_cjuXu5I6G0zJ2UK7hMbaKjMPZXeIwRMgm7CVeTiNtc,2578
181
182
  datahub/ingestion/sink/datahub_lite.py,sha256=7u2aWm7ENLshKHl-PkjJg6Mrw4bWs8sTfKIBz4mm8Ak,1879
182
- datahub/ingestion/sink/datahub_rest.py,sha256=17MjPW4F6LwLjZyATIWdDdIYvC74VH6g1j1tirWMR8Q,12194
183
+ datahub/ingestion/sink/datahub_rest.py,sha256=pU9z-vR-R7kGogqxkC7-9AZNctR9oUfAmfhhoD0-hwQ,12245
183
184
  datahub/ingestion/sink/file.py,sha256=SxXJPJpkIGoaqRjCcSmj2ZE3xE4rLlBABBGwpTj5LWI,3271
184
185
  datahub/ingestion/sink/sink_registry.py,sha256=JRBWx8qEYg0ubSTyhqwgSWctgxwyp6fva9GoN2LwBao,490
185
186
  datahub/ingestion/source/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -195,14 +196,14 @@ datahub/ingestion/source/glue_profiling_config.py,sha256=vpMJH4Lf_qgR32BZy58suab
195
196
  datahub/ingestion/source/ldap.py,sha256=Vnzg8tpwBYeyM-KBVVsUJvGZGBMJiCJ_i_FhxaFRQ9A,18627
196
197
  datahub/ingestion/source/metabase.py,sha256=oemiMdzjfr82Hx6rdwTNBzFM8962LDkosYh7SD_I5cY,31717
197
198
  datahub/ingestion/source/mlflow.py,sha256=SxCt4jtxQcpPWEI2rRNagCiE_6TWr2RroqmxRd_td1Y,11565
198
- datahub/ingestion/source/mode.py,sha256=gkERVs6eCFzZjjFX5YIUFQtXqGtfuWo-11y5ynEECfQ,63974
199
+ datahub/ingestion/source/mode.py,sha256=n_5em3jADCr5gWTLDOP4O4bRS0Zt_TCZtW8uFPxn-DI,63043
199
200
  datahub/ingestion/source/mongodb.py,sha256=vZue4Nz0xaBoCUsQr3_0OIRkWRxeE_IH_Y_QKZ1s7S0,21077
200
201
  datahub/ingestion/source/nifi.py,sha256=ttsjZ9aRUvINmewvKFIQD8Rwa4jcl35WFG-F-jPGPWQ,56146
201
202
  datahub/ingestion/source/openapi.py,sha256=3ea2ORz1cuq4e7L2hSjxG9Cw3__pVoJ5UNYTJS3EnKU,17386
202
203
  datahub/ingestion/source/openapi_parser.py,sha256=1_68wHWe_SzWYEyC1YVDw9vxoadKjW1yv8DecvyIhwY,13606
203
204
  datahub/ingestion/source/preset.py,sha256=fByqamRLnXxsfCGdLPzWN_5LJR_s2_G2f_zwSKUc8EA,3981
204
205
  datahub/ingestion/source/pulsar.py,sha256=H8XJC7xIX8Kdkd7006PxllAGVO_Pjza8Xx9VUBOvpPc,19827
205
- datahub/ingestion/source/redash.py,sha256=E-a14X19zppPun7_-S-pZ2lRiw1-68QiT-jL7bDzG10,32057
206
+ datahub/ingestion/source/redash.py,sha256=g-wBJ4e54EdA2A2D5XmoNBilCDyh5b32M_C_fY1bhmA,30055
206
207
  datahub/ingestion/source/salesforce.py,sha256=S6LSM6mzl8-zKbrJPoINhM1SCpYfM244Xb74pbEI-J0,31792
207
208
  datahub/ingestion/source/source_registry.py,sha256=a2mLjJPLkSI-gYCTb_7U7Jo4D8jGknNQ_yScPIihXFk,1208
208
209
  datahub/ingestion/source/sql_queries.py,sha256=Ip7UZub7fgMh7P5jL_zJPY7lSkc9GGTy8GJ8lqZrcsE,9502
@@ -212,7 +213,7 @@ datahub/ingestion/source/abs/config.py,sha256=Doecl1mA6JshJTNar7oTVR7wnWl4gMu64M
212
213
  datahub/ingestion/source/abs/datalake_profiler_config.py,sha256=qh38q-Zw8TUTZD5RF0_hSoEfR6BilNGXyKPRsq1KQKE,3600
213
214
  datahub/ingestion/source/abs/profiling.py,sha256=yKNCKpr6w7qpCH-baeSkNE9VjkN6eBot_weD-2_Jxzk,17579
214
215
  datahub/ingestion/source/abs/report.py,sha256=fzkTdTewYlWrTk4f2Cyl-e8RV4qw9wEVtm0cdKD-Xgw,542
215
- datahub/ingestion/source/abs/source.py,sha256=eH3SIWnbJH30VGNsdNOExFfjfyR9bLuS6KKzMsi6vz4,24339
216
+ datahub/ingestion/source/abs/source.py,sha256=pzxW-R_cWGKPneEhX8JWdTZiX2k1kAZOPKgMxp9mAEI,24533
216
217
  datahub/ingestion/source/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
217
218
  datahub/ingestion/source/aws/aws_common.py,sha256=BqDe19yqHdwj6_sjIryGZ9_5lsAJ0PZhfPfGqLZrCcE,10649
218
219
  datahub/ingestion/source/aws/glue.py,sha256=fX0dtaVVq174ZS0aBJvZFYK8ligfZX5EU3pdS3j1KQs,56215
@@ -300,10 +301,10 @@ datahub/ingestion/source/fivetran/fivetran.py,sha256=uKbM5czPz-6LOseoh1FwavWDIuL
300
301
  datahub/ingestion/source/fivetran/fivetran_log_api.py,sha256=EAak3hJpe75WZSgz6wP_CyAT5Cian2N4a-lb8x1NKHk,12776
301
302
  datahub/ingestion/source/fivetran/fivetran_query.py,sha256=vLrTj7e-0NxZ2U4bWTB57pih42WirqPlUvwtIRfStlQ,5275
302
303
  datahub/ingestion/source/gc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
303
- datahub/ingestion/source/gc/datahub_gc.py,sha256=f6Erj3KfD0Hx3ydwL5MUVCZgFzS9c6U2Pkr54JLIUOA,12394
304
+ datahub/ingestion/source/gc/datahub_gc.py,sha256=oWeaIGBDolz-Rf6qgGJ5VlQ9H1IY4hJFPAetoUWFyL4,12394
304
305
  datahub/ingestion/source/gc/dataprocess_cleanup.py,sha256=ficLiRb9DEx4YFXZqWO8o-6ndVIrNW_yR-Yn2SXfDxc,15836
305
306
  datahub/ingestion/source/gc/execution_request_cleanup.py,sha256=cHJmxz4NmA7VjTX2iGEo3wZ_SDrjC_rCQcnRxKgfUVI,8713
306
- datahub/ingestion/source/gc/soft_deleted_entity_cleanup.py,sha256=_tms5AqNAJRDRzQmyN_VydzXbdME2lkvTwa5u1La5z8,7353
307
+ datahub/ingestion/source/gc/soft_deleted_entity_cleanup.py,sha256=lEqZEfNMoC7FoUKsZJ91x3WHo14cH8sCaG7PZRuYCQU,7353
307
308
  datahub/ingestion/source/gcs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
308
309
  datahub/ingestion/source/gcs/gcs_source.py,sha256=iwvj4JwjyVWRP1Vq106sUtQhh0GuOYVSu9zCa1wCZN0,6189
309
310
  datahub/ingestion/source/gcs/gcs_utils.py,sha256=_78KM863XXgkVLmZLtYGF5PJNnZas1go-XRtOq-79lo,1047
@@ -319,7 +320,7 @@ datahub/ingestion/source/identity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
319
320
  datahub/ingestion/source/identity/azure_ad.py,sha256=GdmJFD4UMsb5353Z7phXRf-YsXR2woGLRJwBXUkgXq0,28809
320
321
  datahub/ingestion/source/identity/okta.py,sha256=PnRokWLG8wSoNZlXJiRZiW6APTEHO09q4n2j_l6m3V0,30756
321
322
  datahub/ingestion/source/kafka/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
322
- datahub/ingestion/source/kafka/kafka.py,sha256=QUw8VCmqIhZJvUiFJmFmekFmy4nXCLD4EKJNC6jk6Y4,26092
323
+ datahub/ingestion/source/kafka/kafka.py,sha256=9SR7bqp9J0rPYde5IClhnAuVNy9ItsB8-ZeXtTc_mEY,26442
323
324
  datahub/ingestion/source/kafka/kafka_connect.py,sha256=5KUlhn3876c41Z3kx5l4oJhbu0ekXZQRdxmu52vb_v8,55167
324
325
  datahub/ingestion/source/kafka/kafka_schema_registry_base.py,sha256=13XjSwqyVhH1CJUFHAbWdmmv_Rw0Ju_9HQdBmIzPNNA,566
325
326
  datahub/ingestion/source/looker/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -337,13 +338,13 @@ datahub/ingestion/source/looker/looker_source.py,sha256=AByQxWVfOBqOtZPaR_cw9SB-
337
338
  datahub/ingestion/source/looker/looker_template_language.py,sha256=EG4ZfVZ0x53lgaYh2ohzL4ZCy9KsX0TA51XqCmsCd2Q,14328
338
339
  datahub/ingestion/source/looker/looker_usage.py,sha256=qegMr-Rnqz3xNGSBfsuD3S_BPXf7UEMhwFN7DPQeLNo,22914
339
340
  datahub/ingestion/source/looker/looker_view_id_cache.py,sha256=92gDy6NONhJYBp92z_IBzDVZvezmUIkaBCZY1bdk6mE,4392
340
- datahub/ingestion/source/looker/lookml_concept_context.py,sha256=f-mkjozmjzwxXGjaxPMYwkie137VwD8t0seVPiQmlFw,18108
341
+ datahub/ingestion/source/looker/lookml_concept_context.py,sha256=guaIfY_cP8UOboJhsf9a1b9r6xjLh8k5C9uMb4p5Neg,18066
341
342
  datahub/ingestion/source/looker/lookml_config.py,sha256=Q0fMsu_Cvm8807R6VB14VJDLqjoLTyGF-WsiUD6xEk8,10519
342
343
  datahub/ingestion/source/looker/lookml_refinement.py,sha256=MkVreI0BylaCFyDHihDHaCcXyDSP84eF9p1h5d-ZHnM,9504
343
344
  datahub/ingestion/source/looker/lookml_source.py,sha256=ifuneqLsVK_TfYrMkCZ1uB4yeZ1QbRkcGhTOnyc9DT8,40520
344
345
  datahub/ingestion/source/looker/str_functions.py,sha256=zceEX2ka_4WaWwWgEdyknUSz7X3GrO951BkwSbF2afo,766
345
346
  datahub/ingestion/source/looker/urn_functions.py,sha256=4VvqEfGvIMq3rNHHps0-HlPurMPnpqdxNtDAOOHIZww,528
346
- datahub/ingestion/source/looker/view_upstream.py,sha256=k278-uwh8uspdREpjE_uqks4wB1t1tu7-O2hbYdwqa0,24288
347
+ datahub/ingestion/source/looker/view_upstream.py,sha256=rAWKif3UngeRGS_CMQqjihKs3Lxiu6DecLAdtdxvqOw,26096
347
348
  datahub/ingestion/source/metadata/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
348
349
  datahub/ingestion/source/metadata/business_glossary.py,sha256=eRVRpQI0ZX5OofS1BUhNihFOfWih70TIAkJM7zaMH80,17577
349
350
  datahub/ingestion/source/metadata/lineage.py,sha256=XiZGuY6k3O9qBmgo7AzosIndJHwrvEhapVLdRlDxCuc,9507
@@ -381,13 +382,13 @@ datahub/ingestion/source/qlik_sense/qlik_api.py,sha256=fXJAo4ctDIx08ZRK1uEwFJta6
381
382
  datahub/ingestion/source/qlik_sense/qlik_sense.py,sha256=bmhmOgSXzC6g-uqO1ljFLRNz2oo6Xjn400UQnWdMA1Y,22530
382
383
  datahub/ingestion/source/qlik_sense/websocket_connection.py,sha256=CsWRFAOaRKJ7SDJKh6qT3sd5EaIFA_4JsEWSGG-6tHc,1856
383
384
  datahub/ingestion/source/redshift/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
384
- datahub/ingestion/source/redshift/config.py,sha256=tijzmKgwI-4Zt6XCB-pZGT9JGTt_2jnHcRzsYSBclXk,8799
385
+ datahub/ingestion/source/redshift/config.py,sha256=nfyArJGBVIK_u4Q4ui8MYCQeMIgVlmi01VGmLN5HNn8,8853
385
386
  datahub/ingestion/source/redshift/exception.py,sha256=dxzYUIv5B_FAWhOuzG2u5We7FX-ar4jhOXPXAlEIvgM,2055
386
387
  datahub/ingestion/source/redshift/lineage.py,sha256=bUy0uJowrqSc33Z50fIxFlJkyhe-OPM_qgPh-smSTgM,43983
387
388
  datahub/ingestion/source/redshift/lineage_v2.py,sha256=OcVW_27sSaZOYZPTd2j-LS9SzFQ1kXz6cMzM2ZDWhJQ,16751
388
389
  datahub/ingestion/source/redshift/profile.py,sha256=T4H79ycq2tPobLM1tTLRtu581Qa8LlKxEok49m0AirU,4294
389
390
  datahub/ingestion/source/redshift/query.py,sha256=bY1D9RoOHaw89LgcXal7GYlJN0RG7PxXRRC-YKIdC8E,43105
390
- datahub/ingestion/source/redshift/redshift.py,sha256=doGZowVJBThrEoyt25NdowfgytYuNlN4Ca1776onSPQ,44294
391
+ datahub/ingestion/source/redshift/redshift.py,sha256=1SZmexnJIc7deGMsduZ0CB4N3Y59cHpxVY0ThHGLKcw,44428
391
392
  datahub/ingestion/source/redshift/redshift_data_reader.py,sha256=zc69jwXHdF-w8J4Hq-ZQ6BjHQ75Ij2iNDMpoRJlcmlU,1724
392
393
  datahub/ingestion/source/redshift/redshift_schema.py,sha256=9IYeUsnISenq3eVB3k-s7zK8nInWDAYViFnDrNjtkb0,19149
393
394
  datahub/ingestion/source/redshift/report.py,sha256=M19aUHBkd9n-BVBX4fRhyRNdVkN2b9Es6ZqInRx5ZGI,2958
@@ -423,22 +424,22 @@ datahub/ingestion/source/snowflake/constants.py,sha256=22n-0r04nuy-ImxWFFpmbrt_G
423
424
  datahub/ingestion/source/snowflake/oauth_config.py,sha256=ol9D3RmruGStJAeL8PYSQguSqcD2HfkjPkMF2AB_eZs,1277
424
425
  datahub/ingestion/source/snowflake/oauth_generator.py,sha256=fu2VnREGuJXeTqIV2jx4TwieVnznf83HQkrE0h2DGGM,3423
425
426
  datahub/ingestion/source/snowflake/snowflake_assertion.py,sha256=_l3k4aI9wvioE81xxdeizJn9nJCZ_nMIXgk9N6pEk5o,4803
426
- datahub/ingestion/source/snowflake/snowflake_config.py,sha256=BzxM1EYIV2-KdZz3jphCAhitjpMUadiLLEbL6s-Z2J4,18707
427
+ datahub/ingestion/source/snowflake/snowflake_config.py,sha256=LZqnTELtzRNf0vsKG-xXggXyt13S9RYvHOZEZHRjgNk,18851
427
428
  datahub/ingestion/source/snowflake/snowflake_connection.py,sha256=yzv-01FdmfDSCJY5rqKNNodXxzg3SS5DF7oA4WXArOA,17793
428
429
  datahub/ingestion/source/snowflake/snowflake_data_reader.py,sha256=ffR5E2uhD71FUMXd3XOg2rHwrp1rbbGEFTAbqKcmI2s,2195
429
430
  datahub/ingestion/source/snowflake/snowflake_lineage_v2.py,sha256=w2CPm5XEU-KMUSIpb58aKOaxTDHfM5NvghutCVRicy4,23247
430
431
  datahub/ingestion/source/snowflake/snowflake_profiler.py,sha256=0DJiSwII6FY34urlBja2FW66NaVvhbBWmG0p7u8Xyrc,7548
431
432
  datahub/ingestion/source/snowflake/snowflake_queries.py,sha256=fu-8S9eADIXZcd_kHc6cBeMa-on9RF9qG3yqjJnS3DE,26085
432
- datahub/ingestion/source/snowflake/snowflake_query.py,sha256=e6WodpmNto-I8lmexRd7VO0lxJDxM66MCGnG5dzr1Dk,38067
433
- datahub/ingestion/source/snowflake/snowflake_report.py,sha256=KjNvYufQMVkFP7F5sEFumKorkiFAmFVCQ1jYqXr0ev0,6419
434
- datahub/ingestion/source/snowflake/snowflake_schema.py,sha256=fatrKpBUY9CnzXhLJcFlHkHGt0QWFhkYH9ZXwWoQCLA,20392
435
- datahub/ingestion/source/snowflake/snowflake_schema_gen.py,sha256=JjzhhyEN9QBUv-64sHhkq-4Vq1XhDtz9npLMiqlSICo,38893
433
+ datahub/ingestion/source/snowflake/snowflake_query.py,sha256=PuqoseJbqkQEIYkmlLvPJxcVOGG7HVs4U-WWFQgQEWs,38211
434
+ datahub/ingestion/source/snowflake/snowflake_report.py,sha256=_-rD7Q4MzKY8fYzJHSBnGX4gurwujL3UoRzcP_TZURs,6468
435
+ datahub/ingestion/source/snowflake/snowflake_schema.py,sha256=K31vJ19ZCIqtJkszsJWF1eppu8U23gkZYfb5jw231dc,20997
436
+ datahub/ingestion/source/snowflake/snowflake_schema_gen.py,sha256=st4qoOdMGuo6fJQh-cJf_2hnczIuv6VRXGO4x3p1MgQ,39416
436
437
  datahub/ingestion/source/snowflake/snowflake_shares.py,sha256=ud3Ah4qHrmSfpD8Od-gPdzwtON9dJa0eqHt-8Yr5h2Q,6366
437
438
  datahub/ingestion/source/snowflake/snowflake_summary.py,sha256=kTmuCtRnvHqM8WBYhWeK4XafJq3ssFL9kcS03jEeWT4,5506
438
439
  datahub/ingestion/source/snowflake/snowflake_tag.py,sha256=fyfWmFVz2WZrpTJWNIe9m0WpDHgeFrGPf8diORJZUwo,6212
439
440
  datahub/ingestion/source/snowflake/snowflake_usage_v2.py,sha256=PEmYNMXJRUvLQmVd8juVqjokfuSPuH9ppcM0ruXamxA,24807
440
- datahub/ingestion/source/snowflake/snowflake_utils.py,sha256=Ux4sieWe79KZztquvrPkpJoOegLfTAWVv1A73UUlbGs,11365
441
- datahub/ingestion/source/snowflake/snowflake_v2.py,sha256=gO7egHNYnbpQ-xQb1SWgr4K0GQSL2VTVSTMdfwfgl-A,31733
441
+ datahub/ingestion/source/snowflake/snowflake_utils.py,sha256=443P7t839_iRymWMIg-dd7to21smsazS110UKEYbpEU,12588
442
+ datahub/ingestion/source/snowflake/snowflake_v2.py,sha256=lo_3asTuIZbF-LuEUcYL-9NIZ720n7oB9mYA6WVTWA4,31960
442
443
  datahub/ingestion/source/sql/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
443
444
  datahub/ingestion/source/sql/athena.py,sha256=G3cIY8H_76lIUAzQWW2kLnZOEsfbakmojxbiHb3dYZ8,24059
444
445
  datahub/ingestion/source/sql/clickhouse.py,sha256=jzvaXP5Wr0SMhj2rtuvVE821xnfpKiXhO3cm0xblgHs,27299
@@ -474,7 +475,7 @@ datahub/ingestion/source/state/checkpoint.py,sha256=x9Xww-MIFXSKjeg1tOZXE72LehCm
474
475
  datahub/ingestion/source/state/entity_removal_state.py,sha256=zvIsmYg7oiIu2FhecU0VfLBNToUqvKoKyDeiFfkOcyc,6611
475
476
  datahub/ingestion/source/state/profiling_state.py,sha256=lsWu7oZhB9nSlqoklvjs-LjS4XF0p6BxSAcLY-xKRzM,512
476
477
  datahub/ingestion/source/state/profiling_state_handler.py,sha256=IgvmTszxjR53JX-uTNjFx7ZMWK34DlAWjA3QKSLa644,4293
477
- datahub/ingestion/source/state/redundant_run_skip_handler.py,sha256=ktPwtN1DcpwAPQ4zu6DQV-o8tjj-5RcftJibnU3upZU,9484
478
+ datahub/ingestion/source/state/redundant_run_skip_handler.py,sha256=WGf9KMRxxtw_4J6lQcH2nHezKmdaWatf5ulFNG9qaFc,9468
478
479
  datahub/ingestion/source/state/sql_common_state.py,sha256=OtJpJfMTBSgyR37dn3w-nnZwlc0nFNb2GoUzIWhnyAc,143
479
480
  datahub/ingestion/source/state/stale_entity_removal_handler.py,sha256=E9d47MEKjeIGVD4PAcyU6fWBa72gOH0HFc3ljNx2eYA,14998
480
481
  datahub/ingestion/source/state/stateful_ingestion_base.py,sha256=N0Qzp2t2qAf27WndhsvGbCYCd29dSrLY3TSfbO0hoKA,17369
@@ -485,8 +486,8 @@ datahub/ingestion/source/state_provider/datahub_ingestion_checkpointing_provider
485
486
  datahub/ingestion/source/state_provider/file_ingestion_checkpointing_provider.py,sha256=xsH7Ao_05VTjqpkzLkhdf5B1ULMzFoD8vkJJIJU9w-U,4077
486
487
  datahub/ingestion/source/state_provider/state_provider_registry.py,sha256=SVq4mIyGNmLXE9OZx1taOiNPqDoQp03-Ot9rYnB5F3k,401
487
488
  datahub/ingestion/source/tableau/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
488
- datahub/ingestion/source/tableau/tableau.py,sha256=khC6lPXMz-t7Oqbxw0GH-O47NTthJe38clIP1XXLzsg,135453
489
- datahub/ingestion/source/tableau/tableau_common.py,sha256=Dy_2pvkPucZJsG_LvQZLlxNEkjh-yOXHlZ4jurq9opM,26069
489
+ datahub/ingestion/source/tableau/tableau.py,sha256=2M0d4IYn0kcMFlQ2yAvPRnXKZcj_xcqvEJik7QDnebI,136605
490
+ datahub/ingestion/source/tableau/tableau_common.py,sha256=WugmFZvLgrHjvhUVBBZGRXiBJcsh2qcZK2TnWo5UQEA,26007
490
491
  datahub/ingestion/source/tableau/tableau_constant.py,sha256=nWElhtDo5kj5mWivZFmtVF_4Ugw0-EatBYWyDVzu5hE,2501
491
492
  datahub/ingestion/source/unity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
492
493
  datahub/ingestion/source/unity/analyze_profiler.py,sha256=2pqkFY30CfN4aHgFZZntjeG0hNhBytZJvXC13VfTc1I,4689
@@ -498,8 +499,8 @@ datahub/ingestion/source/unity/proxy.py,sha256=2-pYQ-3B9UVUwO1yB9iTdi3DqgqZ2JrpQ
498
499
  datahub/ingestion/source/unity/proxy_profiling.py,sha256=WLqvYP6MziaisA4LYL4T_GA-kPt6Xdde7bfaYsjYw40,9663
499
500
  datahub/ingestion/source/unity/proxy_types.py,sha256=qrvHiwPzl5cPX-KRvcIGGeJVdr0I8XUQmoAI6ErZ-v8,9371
500
501
  datahub/ingestion/source/unity/report.py,sha256=0Y-ciHVTI6ZKNCJ5zWoQh3Ze1c_GMqmTMKFwzXDuuOg,2788
501
- datahub/ingestion/source/unity/source.py,sha256=h3oT68-PH3Ne3v44uw5s20JbmrV7nChcNcf1CUmJYVc,41607
502
- datahub/ingestion/source/unity/usage.py,sha256=r91-ishhv9QTNLevVhQ9HPZ47CRvVeeAMBtWuRsONxk,11089
502
+ datahub/ingestion/source/unity/source.py,sha256=YdUPCMJtpmvYVnRNnpqb4BVowFobkLvSJ_K2gHwrvCI,41752
503
+ datahub/ingestion/source/unity/usage.py,sha256=igRxYg8usukTAA229uJWi-0y-Zd0yOq9dEBi2k9f15o,11436
503
504
  datahub/ingestion/source/usage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
504
505
  datahub/ingestion/source/usage/clickhouse_usage.py,sha256=8nQqNAPKqivywjzsvqH0-HWFwjd4gECpw_xahLXk5ek,9970
505
506
  datahub/ingestion/source/usage/starburst_trino_usage.py,sha256=R1DDs98tYn2WW0_tGXQhk7lqEU0ru2SgrvMBtV305ps,10542
@@ -558,8 +559,8 @@ datahub/lite/lite_registry.py,sha256=bpH0kasP-LtwwUFNA2QsOIehfekAYfJtN-AkQLmSWnw
558
559
  datahub/lite/lite_server.py,sha256=p9Oa2nNs65mqcssSIVOr7VOzWqfVstz6ZQEdT4f82S0,1949
559
560
  datahub/lite/lite_util.py,sha256=pgBpT3vTO1YCQ2njZRNyicSkHYeEmQCt41BaXU8WvMo,4503
560
561
  datahub/metadata/__init__.py,sha256=AjhXPjI6cnpdcrBRrE5gOWo15vv2TTl2ctU4UAnUN7A,238
561
- datahub/metadata/_schema_classes.py,sha256=g7jG02LNEUUFRP76CCJhdi9JIsvbanWivbeWjb9B0p8,950122
562
- datahub/metadata/schema.avsc,sha256=YttbenOzBUCzHHXR3HztORZ746UckyicBk7IyXvG-yU,675487
562
+ datahub/metadata/_schema_classes.py,sha256=iPeBXGvbNEm0vw5pYwunnvx7bTtBdmIQVtzMOlS6bSI,955042
563
+ datahub/metadata/schema.avsc,sha256=wMMSgx3OtzD1tNTC4dh_PFBZrnco21i2jO5J7oy2PgE,677545
563
564
  datahub/metadata/schema_classes.py,sha256=X5Jl5EaSxyHdXOQv14pJ5WkQALun4MRpJ4q12wVFE18,1299
564
565
  datahub/metadata/urns.py,sha256=nfrCTExR-k2P9w272WVtWSN3xW1VUJngPwP3xnvULjU,1217
565
566
  datahub/metadata/_urns/__init__.py,sha256=cOF3GHMDgPhmbLKbN02NPpuLGHSu0qNgQyBRv08eqF0,243
@@ -626,7 +627,7 @@ datahub/metadata/com/linkedin/pegasus2avro/secret/__init__.py,sha256=qk61EqqVZF6
626
627
  datahub/metadata/com/linkedin/pegasus2avro/settings/__init__.py,sha256=gsAIuTxzfJdI7a9ybZlgMIHMAYksM1SxGxXjtySgKSc,202
627
628
  datahub/metadata/com/linkedin/pegasus2avro/settings/global/__init__.py,sha256=1AcLBo5isT59x-EWYjOv_70Y5YJpowAjTSH4ZkZQVJ0,711
628
629
  datahub/metadata/com/linkedin/pegasus2avro/step/__init__.py,sha256=HLNNbqBlyhcg09eXWx_AMD_JoOtBPYEi2kv12PE0R9E,329
629
- datahub/metadata/com/linkedin/pegasus2avro/structured/__init__.py,sha256=RPFvtZT2yxPmcXNMFKZDunKRpfNXe35CHImlqgwWgiA,888
630
+ datahub/metadata/com/linkedin/pegasus2avro/structured/__init__.py,sha256=Cry61gPw6m5MQuJpPxADRm3jhI0XVqzznyD3fVKMkvc,1013
630
631
  datahub/metadata/com/linkedin/pegasus2avro/tag/__init__.py,sha256=Odb4mzloKJIlpoFHODEIxt_OIgFNrZExcyQtvXxjOFQ,290
631
632
  datahub/metadata/com/linkedin/pegasus2avro/telemetry/__init__.py,sha256=N4CJwzAqTrRoCQ2Aoa_e8cUZI_fzn9Zdo2okvO-_nWE,302
632
633
  datahub/metadata/com/linkedin/pegasus2avro/test/__init__.py,sha256=Z4DlDtf-NELFpx44Pk4RL1JlGuxtgEAMa6Sko8QBsGw,711
@@ -828,8 +829,9 @@ datahub/metadata/schemas/Siblings.avsc,sha256=NTktntlHuA1InH3TgrspWlFBntYlqmp3er
828
829
  datahub/metadata/schemas/SourceCode.avsc,sha256=tUgo2rczO5x1fxw3fYNWQj-51vRNmNIj38b1wayA0aQ,1370
829
830
  datahub/metadata/schemas/Status.avsc,sha256=rPZSXSJdwnNywqNx2qll8cdt54aYgI-YUbRr3GK7h78,522
830
831
  datahub/metadata/schemas/StructuredProperties.avsc,sha256=N0NNDrkqbIgEHrb5uz1ynwZh3mb_ICVK7tDcnBLMfjI,4032
831
- datahub/metadata/schemas/StructuredPropertyDefinition.avsc,sha256=peoH0PU-niLwr7upPn0Vxn_9erK3NfsWrd66EvzajjY,11455
832
- datahub/metadata/schemas/StructuredPropertyKey.avsc,sha256=dW7cVCGkEKNnD5DwUXf72rfCffamsMGDnURu7qNK1rs,582
832
+ datahub/metadata/schemas/StructuredPropertyDefinition.avsc,sha256=IsyjxjqDaBYo-q-Fl0pQL0kIvWNdDFNQMAlGGQXFMNc,11461
833
+ datahub/metadata/schemas/StructuredPropertyKey.avsc,sha256=lp7tQBgeriEU1YMQ6a4-6aUGSWDqNl00lLDym97j1yI,618
834
+ datahub/metadata/schemas/StructuredPropertySettings.avsc,sha256=EDNlXfT1TqogfulCanIc-nuYO9ZxRFOGzD9tl3ZJdB8,3732
833
835
  datahub/metadata/schemas/SubTypes.avsc,sha256=bhXbzK020zDyQno97Xp05vmoMeZ82IGu2jz7pWDo3RQ,655
834
836
  datahub/metadata/schemas/TagKey.avsc,sha256=BfckMlx-wg_LV1_PFVgItfNBPtCQ8_erGeQM4LzOXmY,640
835
837
  datahub/metadata/schemas/TagProperties.avsc,sha256=Qzttxd7BB38JUwwl7tZzIV1Warnh-uQO-Ahw9Sd-vH4,883
@@ -865,12 +867,12 @@ datahub/sql_parsing/_models.py,sha256=il-xm1RcLdi1phJUV3xrTecdOGH31akqheuSC2N4Yh
865
867
  datahub/sql_parsing/_sqlglot_patch.py,sha256=iYJ8zOThHqqbamD5jdNr9iHTWD7ewNeHzPiTb6-rO3Y,7043
866
868
  datahub/sql_parsing/datajob.py,sha256=1X8KpEk-y3_8xJuA_Po27EHZgOcxK9QADI6Om9gSGn0,1751
867
869
  datahub/sql_parsing/query_types.py,sha256=FKjDzszZzsrCfYfm7dgD6T_8865qxWl767fdGyHWBh4,2720
868
- datahub/sql_parsing/schema_resolver.py,sha256=9wbJT80K4nsIHHOuQLso9QoFQAYwfSJZnqHwsaU3UTY,10197
870
+ datahub/sql_parsing/schema_resolver.py,sha256=9INZWdxA2dMSLK6RXaVqjbjyLY_VKMhCkQv_Xd6Ln3I,10848
869
871
  datahub/sql_parsing/split_statements.py,sha256=uZhAXLaRxDfmK0lPBW2oM_YVdJfSMhdgndnfd9iIXuA,5001
870
872
  datahub/sql_parsing/sql_parsing_aggregator.py,sha256=gLelf5l73EufB8qijb9ZDLANkt4o05schGg4DY-bOJs,69937
871
873
  datahub/sql_parsing/sql_parsing_common.py,sha256=h_V_m54hJ9EUh5kczq7cYOIeNeo4bgf0Px0H-Nq-UIg,2602
872
874
  datahub/sql_parsing/sql_parsing_result_utils.py,sha256=prwWTj1EB2fRPv1eMB4EkpFNafIYAt-X8TIK0NWqank,796
873
- datahub/sql_parsing/sqlglot_lineage.py,sha256=zvIkfBIT5LmdwT0KxSqpbPjJtiSoOpkZAT3mPaFZ2ko,46208
875
+ datahub/sql_parsing/sqlglot_lineage.py,sha256=CLDOc0HNqL_539eahOP3QOoldIYC6CF29id4Xe3TlEM,47018
874
876
  datahub/sql_parsing/sqlglot_utils.py,sha256=8MYzkyekhup3ihVStRPuwneWPNu17xhBg5SG8iVfFRY,14431
875
877
  datahub/sql_parsing/tool_meta_extractor.py,sha256=pE-pkRKBfNTXEJkaQM9NlG807mc-X6OtetgskJySCs8,2908
876
878
  datahub/telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -882,6 +884,7 @@ datahub/testing/check_sql_parser_result.py,sha256=f7U7IUSbfV4VACdNI857wPZ9tAZ9j6
882
884
  datahub/testing/check_str_enum.py,sha256=yqk0XXHOGteN-IGqCp5JHy0Kca13BnI09ZqKc4Nwl3E,1187
883
885
  datahub/testing/compare_metadata_json.py,sha256=EzIPHtRL00a1PSdaA82LU0oRo85GqjF7_jjWG_NwfW8,5274
884
886
  datahub/testing/docker_utils.py,sha256=g169iy_jNR_mg0p8X31cChZqjOryutAIHUYLq3xqueY,2415
887
+ datahub/testing/doctest.py,sha256=1_8WEhHZ2eRQtw8vsXKzr9L5zzvs0Tcr6q4mnkyyvtw,295
885
888
  datahub/testing/mcp_diff.py,sha256=_sBFhmclYXJGQ_JYDrvKWXNGXt9ACvqeQvFaZrRHa8Q,10729
886
889
  datahub/upgrade/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
887
890
  datahub/upgrade/upgrade.py,sha256=Hp9KzUdmRlNw1oZaiex8a68YmeyxDsl4VZjogyfLONY,16328
@@ -908,7 +911,7 @@ datahub/utilities/memory_footprint.py,sha256=6tHu0Tvm0axMXKqSsx0FneXJlXwhZdnK969
908
911
  datahub/utilities/openapi_utils.py,sha256=VNiNo1Pjvtn2MLShQ1vCjc27id7LmI-pnLdjlUatNk4,2233
909
912
  datahub/utilities/ordered_set.py,sha256=p2DdvbD98ELTLCxgdZdOKQ50VnnMDKr3l9fmqCzu5g4,1135
910
913
  datahub/utilities/parsing_util.py,sha256=FrMJRgkJWoyPXmjtIfPT3fc886uA2i5_PqhplRDN3NI,598
911
- datahub/utilities/partition_executor.py,sha256=HlGYhFhaJsLJXE_IFWyqCXT5hlieff3dtlUporO-qL8,20987
914
+ datahub/utilities/partition_executor.py,sha256=Fz2lH3vrUagLE63ZZSiQ4-WzO1bm_2SUPlS0cA0nkTc,20988
912
915
  datahub/utilities/perf_timer.py,sha256=HUGdu4JuI4mmRo5IlKiksvNHbEXri03TW7uGlWDBTSE,2896
913
916
  datahub/utilities/prefix_batch_builder.py,sha256=ZAxXNh1QcrvdPUgRnjFRMFPJLznfJqsydXG7xueCS_c,2847
914
917
  datahub/utilities/progress_timer.py,sha256=w0b3wIEGL8fQy2BKYVPiKDcO5ATUlt1kQr74aG1TlxI,1152
@@ -918,9 +921,6 @@ datahub/utilities/search_utils.py,sha256=BdZfixXrB6lcD_ec6pCotGtVKQ4ekTtmaZDFGye
918
921
  datahub/utilities/serialized_lru_cache.py,sha256=EgjDXvtpCe9Hjzb4neOEuIZZVhX4NDsekoc3-vn_JGw,3217
919
922
  datahub/utilities/server_config_util.py,sha256=ibCl4FedJWa9oc7_ZWS3vrHRNlsmKLB-eCDVCbUs25A,698
920
923
  datahub/utilities/sql_formatter.py,sha256=tYXIsKjKmpKh0JXGxeAPrHkUWYd1SwJNLjUZsfQP2h0,1016
921
- datahub/utilities/sql_lineage_parser_impl.py,sha256=jNNz-UaSbMV1nzZIoBZoJl0zoPDOWcOjbQ7UJppnPvI,6570
922
- datahub/utilities/sql_parser.py,sha256=n8JD1sBH4tRrRe9jUlfi4WEvLPhD4t-09VjvkCYXDkM,3599
923
- datahub/utilities/sql_parser_base.py,sha256=IqLpOcB4FGucshx4v8uTpdS29SnsTPBtMlSJdwmeY88,456
924
924
  datahub/utilities/sqlalchemy_query_combiner.py,sha256=cPD8OUxsoplOqxI6OxfYbjDuG2i6BZLt6qwRiOs9lwI,15007
925
925
  datahub/utilities/sqlalchemy_type_converter.py,sha256=H4S4xnnyPozDBHFhBh4rjjoXa5novFzYIUBJy2KSrVc,9805
926
926
  datahub/utilities/sqllineage_patch.py,sha256=lxlOV8b8UblBc0F8ZMHU3dfSO_nUJv2k94CQLWlW8aA,1990
@@ -974,8 +974,8 @@ datahub_provider/operators/datahub_assertion_operator.py,sha256=uvTQ-jk2F0sbqqxp
974
974
  datahub_provider/operators/datahub_assertion_sensor.py,sha256=lCBj_3x1cf5GMNpHdfkpHuyHfVxsm6ff5x2Z5iizcAo,140
975
975
  datahub_provider/operators/datahub_operation_operator.py,sha256=aevDp2FzX7FxGlXrR0khoHNbxbhKR2qPEX5e8O2Jyzw,174
976
976
  datahub_provider/operators/datahub_operation_sensor.py,sha256=8fcdVBCEPgqy1etTXgLoiHoJrRt_nzFZQMdSzHqSG7M,168
977
- acryl_datahub-0.15.0rc15.dist-info/METADATA,sha256=nwGDKdrHWd11W8TVe55NQ8bCWex4qALoCTIRsKal1T4,174408
978
- acryl_datahub-0.15.0rc15.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
979
- acryl_datahub-0.15.0rc15.dist-info/entry_points.txt,sha256=Yj0PWB0LQOq4Rj2fyR6ETx4BUGw4TOcNL0ZNoAZ9kQg,9504
980
- acryl_datahub-0.15.0rc15.dist-info/top_level.txt,sha256=iLjSrLK5ox1YVYcglRUkcvfZPvKlobBWx7CTUXx8_GI,25
981
- acryl_datahub-0.15.0rc15.dist-info/RECORD,,
977
+ acryl_datahub-0.15.0rc17.dist-info/METADATA,sha256=5ZB602QpwWUttdsXUipTSML9XJPatWCW7XIkyHdVQWA,173559
978
+ acryl_datahub-0.15.0rc17.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
979
+ acryl_datahub-0.15.0rc17.dist-info/entry_points.txt,sha256=Yj0PWB0LQOq4Rj2fyR6ETx4BUGw4TOcNL0ZNoAZ9kQg,9504
980
+ acryl_datahub-0.15.0rc17.dist-info/top_level.txt,sha256=iLjSrLK5ox1YVYcglRUkcvfZPvKlobBWx7CTUXx8_GI,25
981
+ acryl_datahub-0.15.0rc17.dist-info/RECORD,,
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.0rc15"
6
+ __version__ = "0.15.0rc17"
7
7
 
8
8
 
9
9
  def is_dev_mode() -> bool:
@@ -118,11 +118,13 @@ class StructuredProperties(ConfigModel):
118
118
  @property
119
119
  def fqn(self) -> str:
120
120
  assert self.urn is not None
121
- return (
122
- self.qualified_name
123
- or self.id
124
- or Urn.from_string(self.urn).get_entity_id()[0]
125
- )
121
+ id = Urn.create_from_string(self.urn).get_entity_id()[0]
122
+ if self.qualified_name is not None:
123
+ # ensure that qualified name and ID match
124
+ assert (
125
+ self.qualified_name == id
126
+ ), "ID in the urn and the qualified_name must match"
127
+ return id
126
128
 
127
129
  @validator("urn", pre=True, always=True)
128
130
  def urn_must_be_present(cls, v, values):
datahub/cli/cli_utils.py CHANGED
@@ -327,6 +327,8 @@ def _ensure_valid_gms_url_acryl_cloud(url: str) -> str:
327
327
  url = f"{url}/gms"
328
328
  elif url.endswith("acryl.io/"):
329
329
  url = f"{url}gms"
330
+ if url.endswith("acryl.io/api/gms"):
331
+ url = url.replace("acryl.io/api/gms", "acryl.io/gms")
330
332
 
331
333
  return url
332
334
 
datahub/cli/delete_cli.py CHANGED
@@ -1,4 +1,5 @@
1
1
  import logging
2
+ from concurrent.futures import ThreadPoolExecutor, as_completed
2
3
  from dataclasses import dataclass
3
4
  from datetime import datetime
4
5
  from random import choices
@@ -345,6 +346,9 @@ def undo_by_filter(
345
346
  default=False,
346
347
  help="Only delete soft-deleted entities, for hard deletion",
347
348
  )
349
+ @click.option(
350
+ "--workers", type=int, default=1, help="Num of workers to use for deletion."
351
+ )
348
352
  @upgrade.check_upgrade
349
353
  @telemetry.with_telemetry()
350
354
  def by_filter(
@@ -362,6 +366,7 @@ def by_filter(
362
366
  batch_size: int,
363
367
  dry_run: bool,
364
368
  only_soft_deleted: bool,
369
+ workers: int = 1,
365
370
  ) -> None:
366
371
  """Delete metadata from datahub using a single urn or a combination of filters."""
367
372
 
@@ -382,16 +387,19 @@ def by_filter(
382
387
  # TODO: add some validation on entity_type
383
388
 
384
389
  if not force and not soft and not dry_run:
390
+ message = (
391
+ "Hard deletion will permanently delete data from DataHub and can be slow. "
392
+ "We generally recommend using soft deletes instead. "
393
+ "Do you want to continue?"
394
+ )
385
395
  if only_soft_deleted:
386
396
  click.confirm(
387
- "This will permanently delete data from DataHub. Do you want to continue?",
397
+ message,
388
398
  abort=True,
389
399
  )
390
400
  else:
391
401
  click.confirm(
392
- "Hard deletion will permanently delete data from DataHub and can be slow. "
393
- "We generally recommend using soft deletes instead. "
394
- "Do you want to continue?",
402
+ message,
395
403
  abort=True,
396
404
  )
397
405
 
@@ -462,26 +470,64 @@ def by_filter(
462
470
  abort=True,
463
471
  )
464
472
 
465
- urns_iter = urns
466
- if not delete_by_urn and not dry_run:
467
- urns_iter = progressbar.progressbar(urns, redirect_stdout=True)
473
+ _delete_urns_parallel(
474
+ graph=graph,
475
+ urns=urns,
476
+ aspect_name=aspect,
477
+ soft=soft,
478
+ dry_run=dry_run,
479
+ delete_by_urn=delete_by_urn,
480
+ start_time=start_time,
481
+ end_time=end_time,
482
+ workers=workers,
483
+ )
484
+
468
485
 
469
- # Run the deletion.
486
+ def _delete_urns_parallel(
487
+ graph: DataHubGraph,
488
+ urns: List[str],
489
+ delete_by_urn: bool,
490
+ start_time: Optional[datetime],
491
+ end_time: Optional[datetime],
492
+ aspect_name: Optional[str] = None,
493
+ soft: bool = True,
494
+ dry_run: bool = False,
495
+ workers: int = 1,
496
+ ) -> None:
470
497
  deletion_result = DeletionResult()
471
- with PerfTimer() as timer:
472
- for urn in urns_iter:
473
- one_result = _delete_one_urn(
474
- graph=graph,
475
- urn=urn,
476
- aspect_name=aspect,
477
- soft=soft,
478
- dry_run=dry_run,
479
- start_time=start_time,
480
- end_time=end_time,
498
+
499
+ def process_urn(urn):
500
+ return _delete_one_urn(
501
+ graph=graph,
502
+ urn=urn,
503
+ aspect_name=aspect_name,
504
+ soft=soft,
505
+ dry_run=dry_run,
506
+ start_time=start_time,
507
+ end_time=end_time,
508
+ )
509
+
510
+ with PerfTimer() as timer, ThreadPoolExecutor(max_workers=workers) as executor:
511
+ future_to_urn = {executor.submit(process_urn, urn): urn for urn in urns}
512
+
513
+ completed_futures = as_completed(future_to_urn)
514
+ if not delete_by_urn and not dry_run:
515
+ futures_iter = progressbar.progressbar(
516
+ as_completed(future_to_urn),
517
+ max_value=len(future_to_urn),
518
+ redirect_stdout=True,
481
519
  )
482
- deletion_result.merge(one_result)
520
+ else:
521
+ futures_iter = completed_futures
522
+
523
+ for future in futures_iter:
524
+ try:
525
+ one_result = future.result()
526
+ deletion_result.merge(one_result)
527
+ except Exception as e:
528
+ urn = future_to_urn[future]
529
+ click.secho(f"Error processing URN {urn}: {e}", fg="red")
483
530
 
484
- # Report out a summary of the deletion result.
485
531
  click.echo(
486
532
  deletion_result.format_message(
487
533
  dry_run=dry_run, soft=soft, time_sec=timer.elapsed_seconds()
@@ -258,7 +258,7 @@ class AllowDenyPattern(ConfigModel):
258
258
  return AllowDenyPattern()
259
259
 
260
260
  def allowed(self, string: str) -> bool:
261
- if self._denied(string):
261
+ if self.denied(string):
262
262
  return False
263
263
 
264
264
  return any(
@@ -266,7 +266,7 @@ class AllowDenyPattern(ConfigModel):
266
266
  for allow_pattern in self.allow
267
267
  )
268
268
 
269
- def _denied(self, string: str) -> bool:
269
+ def denied(self, string: str) -> bool:
270
270
  for deny_pattern in self.deny:
271
271
  if re.match(deny_pattern, string, self.regex_flags):
272
272
  return True
@@ -290,7 +290,7 @@ class AllowDenyPattern(ConfigModel):
290
290
  raise ValueError(
291
291
  "allow list must be fully specified to get list of allowed strings"
292
292
  )
293
- return [a for a in self.allow if not self._denied(a)]
293
+ return [a for a in self.allow if not self.denied(a)]
294
294
 
295
295
  def __eq__(self, other): # type: ignore
296
296
  return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
@@ -0,0 +1,69 @@
1
+ import logging
2
+ from typing import Iterable, Optional
3
+
4
+ from pydantic.fields import Field
5
+
6
+ from datahub.configuration.common import ConfigModel
7
+ from datahub.emitter.mce_builder import set_aspect
8
+ from datahub.emitter.mcp import MetadataChangeProposalWrapper
9
+ from datahub.ingestion.api.source_helpers import create_dataset_props_patch_builder
10
+ from datahub.ingestion.api.workunit import MetadataWorkUnit
11
+ from datahub.metadata.schema_classes import (
12
+ DatasetPropertiesClass,
13
+ MetadataChangeEventClass,
14
+ SystemMetadataClass,
15
+ )
16
+
17
+ logger = logging.getLogger(__name__)
18
+
19
+
20
+ def convert_dataset_properties_to_patch(
21
+ urn: str,
22
+ aspect: DatasetPropertiesClass,
23
+ system_metadata: Optional[SystemMetadataClass],
24
+ ) -> MetadataWorkUnit:
25
+ patch_builder = create_dataset_props_patch_builder(urn, aspect, system_metadata)
26
+ mcp = next(iter(patch_builder.build()))
27
+ return MetadataWorkUnit(id=MetadataWorkUnit.generate_workunit_id(mcp), mcp_raw=mcp)
28
+
29
+
30
+ def auto_incremental_properties(
31
+ incremental_properties: bool,
32
+ stream: Iterable[MetadataWorkUnit],
33
+ ) -> Iterable[MetadataWorkUnit]:
34
+ if not incremental_properties:
35
+ yield from stream
36
+ return # early exit
37
+
38
+ for wu in stream:
39
+ urn = wu.get_urn()
40
+
41
+ if isinstance(wu.metadata, MetadataChangeEventClass):
42
+ properties_aspect = wu.get_aspect_of_type(DatasetPropertiesClass)
43
+ set_aspect(wu.metadata, None, DatasetPropertiesClass)
44
+ if len(wu.metadata.proposedSnapshot.aspects) > 0:
45
+ yield wu
46
+
47
+ if properties_aspect:
48
+ yield convert_dataset_properties_to_patch(
49
+ urn, properties_aspect, wu.metadata.systemMetadata
50
+ )
51
+ elif isinstance(wu.metadata, MetadataChangeProposalWrapper) and isinstance(
52
+ wu.metadata.aspect, DatasetPropertiesClass
53
+ ):
54
+ properties_aspect = wu.metadata.aspect
55
+ if properties_aspect:
56
+ yield convert_dataset_properties_to_patch(
57
+ urn, properties_aspect, wu.metadata.systemMetadata
58
+ )
59
+ else:
60
+ yield wu
61
+
62
+
63
+ # TODO: Use this in SQLCommonConfig. Currently only used in snowflake
64
+ class IncrementalPropertiesConfigMixin(ConfigModel):
65
+ incremental_properties: bool = Field(
66
+ default=False,
67
+ description="When enabled, emits dataset properties as incremental to existing dataset properties "
68
+ "in DataHub. When disabled, re-states dataset properties on each run.",
69
+ )
@@ -492,11 +492,15 @@ class Source(Closeable, metaclass=ABCMeta):
492
492
 
493
493
  def _infer_platform(self) -> Optional[str]:
494
494
  config = self.get_config()
495
- return (
495
+ platform = (
496
496
  getattr(config, "platform_name", None)
497
497
  or getattr(self, "platform", None)
498
498
  or getattr(config, "platform", None)
499
499
  )
500
+ if platform is None and hasattr(self, "get_platform_id"):
501
+ platform = type(self).get_platform_id()
502
+
503
+ return platform
500
504
 
501
505
  def _get_browse_path_processor(self, dry_run: bool) -> MetadataWorkUnitProcessor:
502
506
  config = self.get_config()
@@ -32,6 +32,7 @@ from datahub.metadata.schema_classes import (
32
32
  SchemaFieldClass,
33
33
  SchemaMetadataClass,
34
34
  StatusClass,
35
+ SystemMetadataClass,
35
36
  TimeWindowSizeClass,
36
37
  )
37
38
  from datahub.metadata.urns import DatasetUrn, GlossaryTermUrn, TagUrn, Urn
@@ -65,9 +66,10 @@ def auto_workunit(
65
66
  def create_dataset_props_patch_builder(
66
67
  dataset_urn: str,
67
68
  dataset_properties: DatasetPropertiesClass,
69
+ system_metadata: Optional[SystemMetadataClass] = None,
68
70
  ) -> DatasetPatchBuilder:
69
71
  """Creates a patch builder with a table's or view's attributes and dataset properties"""
70
- patch_builder = DatasetPatchBuilder(dataset_urn)
72
+ patch_builder = DatasetPatchBuilder(dataset_urn, system_metadata)
71
73
  patch_builder.set_display_name(dataset_properties.name)
72
74
  patch_builder.set_description(dataset_properties.description)
73
75
  patch_builder.set_created(dataset_properties.created)
@@ -148,10 +148,10 @@ class DatahubIngestionRunSummaryProvider(PipelineRunListener):
148
148
 
149
149
  def _get_recipe_to_report(self, ctx: PipelineContext) -> str:
150
150
  assert ctx.pipeline_config
151
- if not self.report_recipe or not ctx.pipeline_config._raw_dict:
151
+ if not self.report_recipe or not ctx.pipeline_config.get_raw_dict():
152
152
  return ""
153
153
  else:
154
- return json.dumps(redact_raw_config(ctx.pipeline_config._raw_dict))
154
+ return json.dumps(redact_raw_config(ctx.pipeline_config.get_raw_dict()))
155
155
 
156
156
  def _emit_aspect(self, entity_urn: Urn, aspect_value: _Aspect) -> None:
157
157
  self.sink.write_record_async(