acryl-datahub 1.2.0.4rc1__py3-none-any.whl → 1.2.0.4rc2__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.
- {acryl_datahub-1.2.0.4rc1.dist-info → acryl_datahub-1.2.0.4rc2.dist-info}/METADATA +2520 -2520
- {acryl_datahub-1.2.0.4rc1.dist-info → acryl_datahub-1.2.0.4rc2.dist-info}/RECORD +29 -29
- datahub/_version.py +1 -1
- datahub/api/entities/dataset/dataset.py +3 -3
- datahub/api/entities/external/restricted_text.py +3 -3
- datahub/api/entities/forms/forms.py +3 -3
- datahub/api/entities/structuredproperties/structuredproperties.py +2 -2
- datahub/cli/quickstart_versioning.py +1 -1
- datahub/ingestion/api/auto_work_units/auto_ensure_aspect_size.py +1 -1
- datahub/ingestion/source/abs/config.py +1 -1
- datahub/ingestion/source/abs/datalake_profiler_config.py +1 -1
- datahub/ingestion/source/aws/tag_entities.py +2 -2
- datahub/ingestion/source/data_lake_common/path_spec.py +1 -2
- datahub/ingestion/source/hex/hex.py +1 -1
- datahub/ingestion/source/iceberg/iceberg.py +4 -4
- datahub/ingestion/source/powerbi_report_server/report_server_domain.py +2 -4
- datahub/ingestion/source/redshift/datashares.py +1 -1
- datahub/ingestion/source/slack/slack.py +7 -14
- datahub/ingestion/source/snowflake/snowflake_lineage_v2.py +4 -4
- datahub/ingestion/source/unity/config.py +36 -1
- datahub/ingestion/source/unity/proxy.py +332 -46
- datahub/ingestion/source/unity/proxy_types.py +12 -2
- datahub/ingestion/source/unity/source.py +91 -34
- datahub/ingestion/source/unity/tag_entities.py +2 -2
- datahub/ingestion/source/usage/starburst_trino_usage.py +2 -2
- {acryl_datahub-1.2.0.4rc1.dist-info → acryl_datahub-1.2.0.4rc2.dist-info}/WHEEL +0 -0
- {acryl_datahub-1.2.0.4rc1.dist-info → acryl_datahub-1.2.0.4rc2.dist-info}/entry_points.txt +0 -0
- {acryl_datahub-1.2.0.4rc1.dist-info → acryl_datahub-1.2.0.4rc2.dist-info}/licenses/LICENSE +0 -0
- {acryl_datahub-1.2.0.4rc1.dist-info → acryl_datahub-1.2.0.4rc2.dist-info}/top_level.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
acryl_datahub-1.2.0.
|
|
1
|
+
acryl_datahub-1.2.0.4rc2.dist-info/licenses/LICENSE,sha256=9xNHpsD0uYF5ONzXsKDCuHHB-xbiCrSbueWXqrTNsxk,11365
|
|
2
2
|
datahub/__init__.py,sha256=aq_i5lVREmoLfYIqcx_pEQicO855YlhD19tWc1eZZNI,59
|
|
3
3
|
datahub/__main__.py,sha256=pegIvQ9hzK7IhqVeUi1MeADSZ2QlP-D3K0OQdEg55RU,106
|
|
4
|
-
datahub/_version.py,sha256=
|
|
4
|
+
datahub/_version.py,sha256=hBgZ5qlWoxGdFQeLGI6ZSnFwJzARQwa8qVjpF9mLPmw,323
|
|
5
5
|
datahub/entrypoints.py,sha256=9Qf-37rNnTzbGlx8S75OCDazIclFp6zWNcCEL1zCZto,9015
|
|
6
6
|
datahub/errors.py,sha256=p5rFAdAGVCk4Lqolol1YvthceadUSwpaCxLXRcyCCFQ,676
|
|
7
7
|
datahub/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -48,20 +48,20 @@ datahub/api/entities/dataprocess/dataprocess_instance.py,sha256=IhY-rcXs-r8EatwW
|
|
|
48
48
|
datahub/api/entities/dataproduct/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
49
|
datahub/api/entities/dataproduct/dataproduct.py,sha256=148TmItxDDyGNzfZdL8aDreSEtyAw79IN8N8oSmNOPE,21461
|
|
50
50
|
datahub/api/entities/dataset/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
|
-
datahub/api/entities/dataset/dataset.py,sha256=
|
|
51
|
+
datahub/api/entities/dataset/dataset.py,sha256=j4nQ-1DCMhm5c8Ugf6m-IP-YWkpvaQXnZGfqBA_RQ0I,50128
|
|
52
52
|
datahub/api/entities/external/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
53
53
|
datahub/api/entities/external/external_entities.py,sha256=7HRt3Oz2sw_7BDxEVc6W7jK4UqHXLZuo_rGPJ5NdAoE,7727
|
|
54
54
|
datahub/api/entities/external/external_tag.py,sha256=Z-wSfu64GMBzDF0AGrkUvabDxU7Xf0NLOsGtAGorvUM,4540
|
|
55
55
|
datahub/api/entities/external/lake_formation_external_entites.py,sha256=QdB7IUQdHqKo9Bnvvobfl8OlXwp1qpWuT1AVJ-ydSWM,5808
|
|
56
|
-
datahub/api/entities/external/restricted_text.py,sha256=
|
|
56
|
+
datahub/api/entities/external/restricted_text.py,sha256=HLCc9n4u0G1WJcD8XslzNf15OMvl3YF_UUUho4gYccQ,5532
|
|
57
57
|
datahub/api/entities/external/unity_catalog_external_entites.py,sha256=XiiI_D589OATxyn93ve2BtdFpEq83jMaCBTP3cLtMZI,6090
|
|
58
58
|
datahub/api/entities/forms/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
59
|
-
datahub/api/entities/forms/forms.py,sha256=
|
|
59
|
+
datahub/api/entities/forms/forms.py,sha256=Df7C4S7nGPpZU7arB0xBy7-9wvL9FQ0a5apzfWfQVZU,15895
|
|
60
60
|
datahub/api/entities/forms/forms_graphql_constants.py,sha256=DKpnKlMKTjmnyrCTvp63V4LX4THGTAMq3ep8THrSGP4,537
|
|
61
61
|
datahub/api/entities/platformresource/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
62
62
|
datahub/api/entities/platformresource/platform_resource.py,sha256=pVAjv6NoH746Mfvdak7ji0eqlEcEeV-Ji7M5gyNXmds,10603
|
|
63
63
|
datahub/api/entities/structuredproperties/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
64
|
-
datahub/api/entities/structuredproperties/structuredproperties.py,sha256=
|
|
64
|
+
datahub/api/entities/structuredproperties/structuredproperties.py,sha256=o9HghVb3QVDx9ygwSVXOxECnZa2Z5ql2cVMq1G2wI9g,8584
|
|
65
65
|
datahub/api/graphql/__init__.py,sha256=5yl0dJxO-2d_QuykdJrDIbWq4ja9bo0t2dAEh89JOog,142
|
|
66
66
|
datahub/api/graphql/assertion.py,sha256=o_q6SV7N1rJTVMNKSUBGJnZPk6TcVYoVShgDmPw65dE,2817
|
|
67
67
|
datahub/api/graphql/base.py,sha256=zk724_oYSJ0nK7X7Z80MijnA6ry9JqpxnBsJeYuONKA,1737
|
|
@@ -84,7 +84,7 @@ datahub/cli/lite_cli.py,sha256=XKMejSuYUToKBvgN3YmmnxjRcaG5WPw23gJuQK8pgRc,13099
|
|
|
84
84
|
datahub/cli/migrate.py,sha256=XWW_fd4EUQGAUrKh9oKmtNYmfhcvbqWZJj3TQNgD8Dk,18012
|
|
85
85
|
datahub/cli/migration_utils.py,sha256=snkkT8ixo3Il4bvc7qN_QBOP1fz5UsO0usrUl2zJ68w,9478
|
|
86
86
|
datahub/cli/put_cli.py,sha256=ehqsxEPVVK-0xu7nVfBl_GxfsDbkgjIjkF8mfGfcIpc,3827
|
|
87
|
-
datahub/cli/quickstart_versioning.py,sha256=
|
|
87
|
+
datahub/cli/quickstart_versioning.py,sha256=9tSIwDSHBX2xCOlzFisgmZ1QIN_Bu6EVVOMInMb6SQw,7309
|
|
88
88
|
datahub/cli/state_cli.py,sha256=RDXYCb17sqjW49nNdkoGAqNPRRHOKw5lcgcs5QvHeOM,1142
|
|
89
89
|
datahub/cli/telemetry.py,sha256=xw3SiAn2je48Qv4kXPYN5EPVKHWEWZc2LGoF7UzGs8U,489
|
|
90
90
|
datahub/cli/timeline_cli.py,sha256=Wc_Mo7khFFHXgRSl2FgtvB8m0QhuCEhkpaFCIOPpHJE,7584
|
|
@@ -157,7 +157,7 @@ datahub/ingestion/api/transform.py,sha256=X0GpjMJzYkLuZx8MTWxH50cWGm9rGsnn3k188m
|
|
|
157
157
|
datahub/ingestion/api/workunit.py,sha256=e8n8RfSjHZZm2R4ShNH0UuMtUkMjyqqM2j2t7oL74lo,6327
|
|
158
158
|
datahub/ingestion/api/auto_work_units/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
159
159
|
datahub/ingestion/api/auto_work_units/auto_dataset_properties_aspect.py,sha256=ID_6N3nWl2qohsSGizUCqo3d2MNyDeVbyWroQpSOSsc,5059
|
|
160
|
-
datahub/ingestion/api/auto_work_units/auto_ensure_aspect_size.py,sha256=
|
|
160
|
+
datahub/ingestion/api/auto_work_units/auto_ensure_aspect_size.py,sha256=0BwkpLhORbsiTHq0g_N_1cVVoZYdLR3qz02mNmsV9-M,4444
|
|
161
161
|
datahub/ingestion/autogenerated/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
162
162
|
datahub/ingestion/autogenerated/capability_summary.json,sha256=CfD0RKd0bOMmNiv8bIF0x78FXaSMVFIIit62T8TR4og,109072
|
|
163
163
|
datahub/ingestion/autogenerated/lineage.json,sha256=wjaXxrzpo3M9ppc80TKIgCTuCg0jpb-D9MhBsHXaMOY,10004
|
|
@@ -230,8 +230,8 @@ datahub/ingestion/source/source_registry.py,sha256=a2mLjJPLkSI-gYCTb_7U7Jo4D8jGk
|
|
|
230
230
|
datahub/ingestion/source/sql_queries.py,sha256=9ICUC6tpXpxvtwfK-9lytJzFcLe8MrNlciwy9DIFM-4,13764
|
|
231
231
|
datahub/ingestion/source/superset.py,sha256=oi7F2jlvkVr9ItJ_r1Jm4bYfXHYu4vPAFPMPaGJKB84,50608
|
|
232
232
|
datahub/ingestion/source/abs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
233
|
-
datahub/ingestion/source/abs/config.py,sha256=
|
|
234
|
-
datahub/ingestion/source/abs/datalake_profiler_config.py,sha256=
|
|
233
|
+
datahub/ingestion/source/abs/config.py,sha256=WW9JWbzqAJDblAcJKtNeuBHqOeJsB57lW2PqSD65-BU,6729
|
|
234
|
+
datahub/ingestion/source/abs/datalake_profiler_config.py,sha256=FfrcgK-JEF94vw-l3q6pN6FENXb-wZzW2w1VUZVkwW8,3620
|
|
235
235
|
datahub/ingestion/source/abs/profiling.py,sha256=yKNCKpr6w7qpCH-baeSkNE9VjkN6eBot_weD-2_Jxzk,17579
|
|
236
236
|
datahub/ingestion/source/abs/report.py,sha256=CkRjsNn0Pab-ZPllxz3IUJI_r3x0T6urJePa_hJKi5U,586
|
|
237
237
|
datahub/ingestion/source/abs/source.py,sha256=z86K5_P_gu8kTytLOAYyQqqD2g14JGSrv1B3g0dUDFs,24070
|
|
@@ -243,7 +243,7 @@ datahub/ingestion/source/aws/glue.py,sha256=p5jRzGjzG5BgiZA1b6ayPxn7slpDbHG5iKiB
|
|
|
243
243
|
datahub/ingestion/source/aws/s3_boto_utils.py,sha256=Y54jlLV5gLcuZ4Zs57kIW5dYHD89RSFfsVNlFbRnSkQ,3901
|
|
244
244
|
datahub/ingestion/source/aws/s3_util.py,sha256=OFypcgmVC6jnZM90-gjcPpAMtTV1lbnreCaMhCzNlzs,2149
|
|
245
245
|
datahub/ingestion/source/aws/sagemaker.py,sha256=Bl2tkBYnrindgx61VHYgNovUF_Kp_fXNcivQn28vC2w,5254
|
|
246
|
-
datahub/ingestion/source/aws/tag_entities.py,sha256=
|
|
246
|
+
datahub/ingestion/source/aws/tag_entities.py,sha256=q7DFxSFZ0IZWZrA8iKbgIHtB4OHNa5oQvm0HughU28A,11297
|
|
247
247
|
datahub/ingestion/source/aws/sagemaker_processors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
248
248
|
datahub/ingestion/source/aws/sagemaker_processors/common.py,sha256=x4ijMxKjZ-oJdqGyTwBp2J50uxYT1ejlVlGs8-vDXMU,2234
|
|
249
249
|
datahub/ingestion/source/aws/sagemaker_processors/feature_groups.py,sha256=IUwPTSITL-RaO3i3lX_KaDwOGPNMXHf66PPWAcMglWI,10383
|
|
@@ -290,7 +290,7 @@ datahub/ingestion/source/data_lake_common/__init__.py,sha256=47DEQpj8HBSa-_TImW-
|
|
|
290
290
|
datahub/ingestion/source/data_lake_common/config.py,sha256=qUk83B01hjuBKHvVz8SmXnVCy5eFj-2-2QLEOrAdbgk,359
|
|
291
291
|
datahub/ingestion/source/data_lake_common/data_lake_utils.py,sha256=IYr5y8vy_6CtMtITqzn6OqovzH1cpe1i30M-75PouXo,7768
|
|
292
292
|
datahub/ingestion/source/data_lake_common/object_store.py,sha256=i9Hgb8Ww23QD_jEjzj_2qxA8Nr56krnZfo1qyOWmH9M,23608
|
|
293
|
-
datahub/ingestion/source/data_lake_common/path_spec.py,sha256=
|
|
293
|
+
datahub/ingestion/source/data_lake_common/path_spec.py,sha256=kSmefMWKO2ObTS7OJKR81synnjaEJjV5L85Y1jf-f3A,23586
|
|
294
294
|
datahub/ingestion/source/datahub/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
295
295
|
datahub/ingestion/source/datahub/config.py,sha256=bjR1U3F85FbtgqmLDW-f_4dQvuw5AsJQxdQlOUeHDUk,5126
|
|
296
296
|
datahub/ingestion/source/datahub/datahub_api_reader.py,sha256=hlKADVEPoTFiRGKqRsMF5mL4fSu_IrIW8Nx7LpEzvkM,2134
|
|
@@ -353,12 +353,12 @@ datahub/ingestion/source/grafana/types.py,sha256=Bz0-FIPBXHaBjfFHYGJhE20c2vYZwAs
|
|
|
353
353
|
datahub/ingestion/source/hex/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
354
354
|
datahub/ingestion/source/hex/api.py,sha256=1cjLuR6dAJor0C281VMzG8hc_noo0MsPu4FgBVvU1vI,12816
|
|
355
355
|
datahub/ingestion/source/hex/constants.py,sha256=8hUTMWyG5keTNfXoLu_Dh413Hw_mGGJX1atiiDZyKtg,271
|
|
356
|
-
datahub/ingestion/source/hex/hex.py,sha256=
|
|
356
|
+
datahub/ingestion/source/hex/hex.py,sha256=GHSz3uZsAZ3XgqmTAwzwzMiHcpDcOZmvNb4F3eerGV8,13200
|
|
357
357
|
datahub/ingestion/source/hex/mapper.py,sha256=N3mTlEcrOmhv9ia1dnHGFgFJD2ddyTtU3H5IUbb-UxU,13344
|
|
358
358
|
datahub/ingestion/source/hex/model.py,sha256=S9bUhfFcjzuio2dBS6HzSyRVPiSJvRvMQ0qyVrjV5-E,1766
|
|
359
359
|
datahub/ingestion/source/hex/query_fetcher.py,sha256=r9UvF_qwswkRlNY7AI8p46eqAYSxVtjVE2e7eO4XagA,13384
|
|
360
360
|
datahub/ingestion/source/iceberg/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
361
|
-
datahub/ingestion/source/iceberg/iceberg.py,sha256=
|
|
361
|
+
datahub/ingestion/source/iceberg/iceberg.py,sha256=UWfI4sN5uO6f9KzxjY939a_BIkAnPf0ELCmFvf9KuYg,35427
|
|
362
362
|
datahub/ingestion/source/iceberg/iceberg_common.py,sha256=CD_yHQ_wEgivyLQUTRO9BZJB29S7j5fUVllki-BPwUU,12292
|
|
363
363
|
datahub/ingestion/source/iceberg/iceberg_profiler.py,sha256=9iwp2vpQTi4OMbIKoDZV5lAdvjMR0ls6Llpck9grJIE,9875
|
|
364
364
|
datahub/ingestion/source/identity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -427,7 +427,7 @@ datahub/ingestion/source/powerbi/rest_api_wrapper/query.py,sha256=VNw1Uvli6g0pnu
|
|
|
427
427
|
datahub/ingestion/source/powerbi_report_server/__init__.py,sha256=N9fGcrHXBbuPmx9rpGjd_jkMC3smXmfiwISDP1QZapk,324
|
|
428
428
|
datahub/ingestion/source/powerbi_report_server/constants.py,sha256=i_hXcvPHjwk3VpTT5ef7s8dN9F6pJzPyRUiG5UzCCYI,3544
|
|
429
429
|
datahub/ingestion/source/powerbi_report_server/report_server.py,sha256=4WYIJj7CHjPO68118KldscoqvuhI7YuFMXyqica93xw,19978
|
|
430
|
-
datahub/ingestion/source/powerbi_report_server/report_server_domain.py,sha256=
|
|
430
|
+
datahub/ingestion/source/powerbi_report_server/report_server_domain.py,sha256=qhmwk4Bw2xORIFSwBlH7KUkNerkgPyihgEjtLWb3iBw,11731
|
|
431
431
|
datahub/ingestion/source/profiling/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
432
432
|
datahub/ingestion/source/profiling/common.py,sha256=4sZ58AeBV64KRfKAgjkg-UyNjAc3YERahQMmW4algAw,1426
|
|
433
433
|
datahub/ingestion/source/qlik_sense/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -438,7 +438,7 @@ datahub/ingestion/source/qlik_sense/qlik_sense.py,sha256=xehXgOnG9ah0GE5b8wm9OJY
|
|
|
438
438
|
datahub/ingestion/source/qlik_sense/websocket_connection.py,sha256=jp39OInvjCN9BtnKsHU_aa1B3X9hVHqSmD25stXuqHk,1940
|
|
439
439
|
datahub/ingestion/source/redshift/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
440
440
|
datahub/ingestion/source/redshift/config.py,sha256=l_hlgsCjvlcgcFQpd5WMKlW8nqQUhaMGec8FnUbSl6Y,8997
|
|
441
|
-
datahub/ingestion/source/redshift/datashares.py,sha256=
|
|
441
|
+
datahub/ingestion/source/redshift/datashares.py,sha256=7G4YoEigZTl-K1aWDw3Jl8s3-3EnX4L46mCKu1LqxYI,9234
|
|
442
442
|
datahub/ingestion/source/redshift/exception.py,sha256=dxzYUIv5B_FAWhOuzG2u5We7FX-ar4jhOXPXAlEIvgM,2055
|
|
443
443
|
datahub/ingestion/source/redshift/lineage.py,sha256=IPF8vHy2MFyhK-hu2-lxV2-kcnNAEzltPLnnIvwIBMY,44100
|
|
444
444
|
datahub/ingestion/source/redshift/lineage_v2.py,sha256=dbTvuaJBV5yvCWM_oEAqZIA1JOlGxLJOexbEB47A_xE,17962
|
|
@@ -474,7 +474,7 @@ datahub/ingestion/source/sigma/data_classes.py,sha256=YZkkzwftV34mq5c_4jlC2PCSiR
|
|
|
474
474
|
datahub/ingestion/source/sigma/sigma.py,sha256=7dbkwk8_wp94XH9mhmtI_8ihR35cqYywtU-dc_oK4Cc,25386
|
|
475
475
|
datahub/ingestion/source/sigma/sigma_api.py,sha256=7PK5AQa838hYeaQ5L0dioi4n4bLrpN-r7COKTTNUYw8,19837
|
|
476
476
|
datahub/ingestion/source/slack/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
477
|
-
datahub/ingestion/source/slack/slack.py,sha256=
|
|
477
|
+
datahub/ingestion/source/slack/slack.py,sha256=JWanUfzFGynV_PWcH0YzJIbRcmL880DA6dEI9QW-QiQ,25800
|
|
478
478
|
datahub/ingestion/source/snowflake/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
479
479
|
datahub/ingestion/source/snowflake/constants.py,sha256=XCW3vw4JfLn_s8-oXBX6WFNMPOkX5qAQLFX2KqagojQ,2678
|
|
480
480
|
datahub/ingestion/source/snowflake/oauth_config.py,sha256=ol9D3RmruGStJAeL8PYSQguSqcD2HfkjPkMF2AB_eZs,1277
|
|
@@ -483,7 +483,7 @@ datahub/ingestion/source/snowflake/snowflake_assertion.py,sha256=_l3k4aI9wvioE81
|
|
|
483
483
|
datahub/ingestion/source/snowflake/snowflake_config.py,sha256=6uR7eZDmEfLpfs_QYNJGTTZI6N2VOvjqXKmG_7c6-9Q,22291
|
|
484
484
|
datahub/ingestion/source/snowflake/snowflake_connection.py,sha256=3-nP3HHCblUnUHYo_fvFp5VOAteCtR4GNjaUEvyNTNQ,18175
|
|
485
485
|
datahub/ingestion/source/snowflake/snowflake_data_reader.py,sha256=ffR5E2uhD71FUMXd3XOg2rHwrp1rbbGEFTAbqKcmI2s,2195
|
|
486
|
-
datahub/ingestion/source/snowflake/snowflake_lineage_v2.py,sha256=
|
|
486
|
+
datahub/ingestion/source/snowflake/snowflake_lineage_v2.py,sha256=a2vDWZNthV3AqD3Y_Rd4lHSZbaiyuEc--WXWcJqcV0k,21711
|
|
487
487
|
datahub/ingestion/source/snowflake/snowflake_profiler.py,sha256=PmQi-qDlRhdJ-PsJ7x-EScIiswWRAxDDOKHydvN3mTY,7404
|
|
488
488
|
datahub/ingestion/source/snowflake/snowflake_queries.py,sha256=deJwFf9Bg3bphMi6WNfPon59hFSLYJZ4ByQA4pUkTkU,42926
|
|
489
489
|
datahub/ingestion/source/snowflake/snowflake_query.py,sha256=kqOxibplHyDhdioue8MeXBzeDS9d274-dspb-wyWMMI,38165
|
|
@@ -554,20 +554,20 @@ datahub/ingestion/source/tableau/tableau_server_wrapper.py,sha256=nSyx9RzC6TCQDm
|
|
|
554
554
|
datahub/ingestion/source/tableau/tableau_validation.py,sha256=Hjbfc1AMIkGgzo5ffWXtNRjrxSxzHvw7-dYZDt4d3WE,1819
|
|
555
555
|
datahub/ingestion/source/unity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
556
556
|
datahub/ingestion/source/unity/analyze_profiler.py,sha256=2pqkFY30CfN4aHgFZZntjeG0hNhBytZJvXC13VfTc1I,4689
|
|
557
|
-
datahub/ingestion/source/unity/config.py,sha256=
|
|
557
|
+
datahub/ingestion/source/unity/config.py,sha256=qOhM0ZggovgrQpm4umthx6Gf4t0uqyr_VUyafqL4Rww,16554
|
|
558
558
|
datahub/ingestion/source/unity/connection_test.py,sha256=B143Wb28fS0V4GhygU9hzKqiArWBjsQO54IUCPf23dc,2586
|
|
559
559
|
datahub/ingestion/source/unity/ge_profiler.py,sha256=NBRHZceq-f95iUn7u0h7cgcd9nAc48Aa-lmp_BqE0As,8409
|
|
560
560
|
datahub/ingestion/source/unity/hive_metastore_proxy.py,sha256=IAWWJjaW0si_UF52Se2D7wmdYRY_afUG4QlVmQu6xaw,15351
|
|
561
|
-
datahub/ingestion/source/unity/proxy.py,sha256=
|
|
561
|
+
datahub/ingestion/source/unity/proxy.py,sha256=A2ysUIFv7kvo9ddzdPW1cAFmWfJr2UpGiwCufDNvrzw,38677
|
|
562
562
|
datahub/ingestion/source/unity/proxy_profiling.py,sha256=WLqvYP6MziaisA4LYL4T_GA-kPt6Xdde7bfaYsjYw40,9663
|
|
563
|
-
datahub/ingestion/source/unity/proxy_types.py,sha256=
|
|
563
|
+
datahub/ingestion/source/unity/proxy_types.py,sha256=7VDGpkI1a9zlx-pb0SvvKCAKD-PBhyBJMeyHKfwLHOg,9710
|
|
564
564
|
datahub/ingestion/source/unity/report.py,sha256=XFT9oQfvEB4RkTvWGgFOoQuLPUN_AIoPXZ79xeDhGHQ,2831
|
|
565
|
-
datahub/ingestion/source/unity/source.py,sha256=
|
|
566
|
-
datahub/ingestion/source/unity/tag_entities.py,sha256=
|
|
565
|
+
datahub/ingestion/source/unity/source.py,sha256=R8YpkoHcEwoS5XW-hkasmLydFtAOQ5GCnt2RIXjl-h4,51829
|
|
566
|
+
datahub/ingestion/source/unity/tag_entities.py,sha256=6dhbB33o0RcWa7WHm1h4QB5Hc7kXFauvs4tnADv2P_M,11582
|
|
567
567
|
datahub/ingestion/source/unity/usage.py,sha256=0wETBAaZvHI_EGgBlxX3bKsVHEAdnUV8_bKI_lbyWjY,11500
|
|
568
568
|
datahub/ingestion/source/usage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
569
569
|
datahub/ingestion/source/usage/clickhouse_usage.py,sha256=M6YVQqwJoFqJPxlTr62lFwxfDeX2-_9Diw6qtcq2XWM,10244
|
|
570
|
-
datahub/ingestion/source/usage/starburst_trino_usage.py,sha256=
|
|
570
|
+
datahub/ingestion/source/usage/starburst_trino_usage.py,sha256=E5wlRQ-jkwSqFaHWgwnWRPu5IiWwxOnPXX1bCv_v__E,10815
|
|
571
571
|
datahub/ingestion/source/usage/usage_common.py,sha256=uuCgIduhlRL2zIAN8rymZ5cZn1WF6akZ-ZbbaVYo9_w,9813
|
|
572
572
|
datahub/ingestion/source/vertexai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
573
573
|
datahub/ingestion/source/vertexai/vertexai.py,sha256=RuHda0mbc1DElYZIZ_W_hvkN7Eg4LIvI1fRFMvpHPB0,56012
|
|
@@ -1101,8 +1101,8 @@ datahub_provider/operators/datahub_assertion_operator.py,sha256=uvTQ-jk2F0sbqqxp
|
|
|
1101
1101
|
datahub_provider/operators/datahub_assertion_sensor.py,sha256=lCBj_3x1cf5GMNpHdfkpHuyHfVxsm6ff5x2Z5iizcAo,140
|
|
1102
1102
|
datahub_provider/operators/datahub_operation_operator.py,sha256=aevDp2FzX7FxGlXrR0khoHNbxbhKR2qPEX5e8O2Jyzw,174
|
|
1103
1103
|
datahub_provider/operators/datahub_operation_sensor.py,sha256=8fcdVBCEPgqy1etTXgLoiHoJrRt_nzFZQMdSzHqSG7M,168
|
|
1104
|
-
acryl_datahub-1.2.0.
|
|
1105
|
-
acryl_datahub-1.2.0.
|
|
1106
|
-
acryl_datahub-1.2.0.
|
|
1107
|
-
acryl_datahub-1.2.0.
|
|
1108
|
-
acryl_datahub-1.2.0.
|
|
1104
|
+
acryl_datahub-1.2.0.4rc2.dist-info/METADATA,sha256=af37eraOzMb0VmpftIUv0IYDhDY2rfmlTOXq15ovp84,182014
|
|
1105
|
+
acryl_datahub-1.2.0.4rc2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
1106
|
+
acryl_datahub-1.2.0.4rc2.dist-info/entry_points.txt,sha256=bnGf6eX9UhiW8yVHtt6MJCVcmLErvrVQxTJAayA-PKc,9885
|
|
1107
|
+
acryl_datahub-1.2.0.4rc2.dist-info/top_level.txt,sha256=iLjSrLK5ox1YVYcglRUkcvfZPvKlobBWx7CTUXx8_GI,25
|
|
1108
|
+
acryl_datahub-1.2.0.4rc2.dist-info/RECORD,,
|
datahub/_version.py
CHANGED
|
@@ -136,7 +136,7 @@ class StructuredPropertiesHelper:
|
|
|
136
136
|
|
|
137
137
|
class SchemaFieldSpecification(StrictModel):
|
|
138
138
|
id: Optional[str] = None
|
|
139
|
-
urn: Optional[str] = None
|
|
139
|
+
urn: Optional[str] = Field(None, validate_default=True)
|
|
140
140
|
structured_properties: Optional[StructuredProperties] = None
|
|
141
141
|
type: Optional[str] = None
|
|
142
142
|
nativeDataType: Optional[str] = None
|
|
@@ -382,9 +382,9 @@ class Dataset(StrictModel):
|
|
|
382
382
|
id: Optional[str] = None
|
|
383
383
|
platform: Optional[str] = None
|
|
384
384
|
env: str = "PROD"
|
|
385
|
-
urn: Optional[str] = None
|
|
385
|
+
urn: Optional[str] = Field(None, validate_default=True)
|
|
386
386
|
description: Optional[str] = None
|
|
387
|
-
name: Optional[str] = None
|
|
387
|
+
name: Optional[str] = Field(None, validate_default=True)
|
|
388
388
|
schema_metadata: Optional[SchemaSpecification] = Field(default=None, alias="schema")
|
|
389
389
|
downstreams: Optional[List[str]] = None
|
|
390
390
|
properties: Optional[Dict[str, str]] = None
|
|
@@ -45,9 +45,9 @@ class RestrictedText(ConfigModel):
|
|
|
45
45
|
custom_field="hello-world.test"
|
|
46
46
|
)
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
print(model.name) # Truncated and sanitized version
|
|
49
|
+
print(model.name.text) # Original value
|
|
50
|
+
print(model.custom_field) # "hello_worl..."
|
|
51
51
|
```
|
|
52
52
|
"""
|
|
53
53
|
|
|
@@ -5,7 +5,7 @@ from pathlib import Path
|
|
|
5
5
|
from typing import List, Optional, Union
|
|
6
6
|
|
|
7
7
|
import yaml
|
|
8
|
-
from pydantic import validator
|
|
8
|
+
from pydantic import Field, validator
|
|
9
9
|
from ruamel.yaml import YAML
|
|
10
10
|
from typing_extensions import Literal
|
|
11
11
|
|
|
@@ -67,7 +67,7 @@ class Prompt(ConfigModel):
|
|
|
67
67
|
description: Optional[str] = None
|
|
68
68
|
type: str
|
|
69
69
|
structured_property_id: Optional[str] = None
|
|
70
|
-
structured_property_urn: Optional[str] = None
|
|
70
|
+
structured_property_urn: Optional[str] = Field(default=None, validate_default=True)
|
|
71
71
|
required: Optional[bool] = None
|
|
72
72
|
|
|
73
73
|
@validator("structured_property_urn", pre=True, always=True)
|
|
@@ -111,7 +111,7 @@ class Actors(ConfigModel):
|
|
|
111
111
|
|
|
112
112
|
class Forms(ConfigModel):
|
|
113
113
|
id: Optional[str] = None
|
|
114
|
-
urn: Optional[str] = None
|
|
114
|
+
urn: Optional[str] = Field(default=None, validate_default=True)
|
|
115
115
|
name: str
|
|
116
116
|
description: Optional[str] = None
|
|
117
117
|
prompts: List[Prompt] = []
|
|
@@ -4,7 +4,7 @@ from pathlib import Path
|
|
|
4
4
|
from typing import Iterable, List, Optional, Union
|
|
5
5
|
|
|
6
6
|
import yaml
|
|
7
|
-
from pydantic import StrictStr, validator
|
|
7
|
+
from pydantic import Field, StrictStr, validator
|
|
8
8
|
from ruamel.yaml import YAML
|
|
9
9
|
|
|
10
10
|
from datahub.configuration.common import ConfigModel
|
|
@@ -68,7 +68,7 @@ class TypeQualifierAllowedTypes(ConfigModel):
|
|
|
68
68
|
|
|
69
69
|
class StructuredProperties(ConfigModel):
|
|
70
70
|
id: Optional[str] = None
|
|
71
|
-
urn: Optional[str] = None
|
|
71
|
+
urn: Optional[str] = Field(None, validate_default=True)
|
|
72
72
|
qualified_name: Optional[str] = None
|
|
73
73
|
type: str
|
|
74
74
|
value_entity_types: Optional[List[str]] = None
|
|
@@ -44,7 +44,7 @@ def get_minimum_supported_version_message(version: str) -> str:
|
|
|
44
44
|
class QuickstartExecutionPlan(BaseModel):
|
|
45
45
|
composefile_git_ref: str
|
|
46
46
|
docker_tag: str
|
|
47
|
-
mysql_tag: Optional[str]
|
|
47
|
+
mysql_tag: Optional[str] = None
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
def _is_it_a_version(version: str) -> bool:
|
|
@@ -90,7 +90,7 @@ class EnsureAspectSizeProcessor:
|
|
|
90
90
|
on GMS side and failure of the entire ingestion. This processor will attempt to trim suspected aspects.
|
|
91
91
|
"""
|
|
92
92
|
for wu in stream:
|
|
93
|
-
logger.debug(f"Ensuring size of workunit: {wu.id}")
|
|
93
|
+
# logger.debug(f"Ensuring size of workunit: {wu.id}")
|
|
94
94
|
|
|
95
95
|
if schema := wu.get_aspect_of_type(SchemaMetadataClass):
|
|
96
96
|
self.ensure_schema_metadata_size(wu.get_urn(), schema)
|
|
@@ -151,7 +151,7 @@ class DataLakeSourceConfig(
|
|
|
151
151
|
raise ValueError("platform must not be empty")
|
|
152
152
|
return platform
|
|
153
153
|
|
|
154
|
-
@pydantic.root_validator()
|
|
154
|
+
@pydantic.root_validator(skip_on_failure=True)
|
|
155
155
|
def ensure_profiling_pattern_is_passed_to_profiling(
|
|
156
156
|
cls, values: Dict[str, Any]
|
|
157
157
|
) -> Dict[str, Any]:
|
|
@@ -72,7 +72,7 @@ class DataLakeProfilerConfig(ConfigModel):
|
|
|
72
72
|
description="Whether to profile for the sample values for all columns.",
|
|
73
73
|
)
|
|
74
74
|
|
|
75
|
-
@pydantic.root_validator()
|
|
75
|
+
@pydantic.root_validator(skip_on_failure=True)
|
|
76
76
|
def ensure_field_level_settings_are_normalized(
|
|
77
77
|
cls: "DataLakeProfilerConfig", values: Dict[str, Any]
|
|
78
78
|
) -> Dict[str, Any]:
|
|
@@ -37,7 +37,7 @@ class LakeFormationTagPlatformResourceId(BaseModel, ExternalEntityId):
|
|
|
37
37
|
|
|
38
38
|
tag_key: str
|
|
39
39
|
tag_value: Optional[str] = None
|
|
40
|
-
platform_instance: Optional[str]
|
|
40
|
+
platform_instance: Optional[str] = None
|
|
41
41
|
catalog: Optional[str] = None
|
|
42
42
|
exists_in_lake_formation: bool = False
|
|
43
43
|
persisted: bool = False
|
|
@@ -227,7 +227,7 @@ class LakeFormationTagPlatformResource(BaseModel, ExternalEntity):
|
|
|
227
227
|
datahub_urns: LinkedResourceSet
|
|
228
228
|
managed_by_datahub: bool
|
|
229
229
|
id: LakeFormationTagPlatformResourceId
|
|
230
|
-
allowed_values: Optional[List[str]]
|
|
230
|
+
allowed_values: Optional[List[str]] = None
|
|
231
231
|
|
|
232
232
|
def get_id(self) -> ExternalEntityId:
|
|
233
233
|
return self.id
|
|
@@ -62,7 +62,6 @@ class SortKey(ConfigModel):
|
|
|
62
62
|
|
|
63
63
|
date_format: Optional[str] = Field(
|
|
64
64
|
default=None,
|
|
65
|
-
type=str,
|
|
66
65
|
description="The date format to use when sorting. This is used to parse the date from the key. The format should follow the java [SimpleDateFormat](https://docs.oracle.com/javase/8/docs/api/java/text/SimpleDateFormat.html) format.",
|
|
67
66
|
)
|
|
68
67
|
|
|
@@ -260,7 +259,7 @@ class PathSpec(ConfigModel):
|
|
|
260
259
|
) -> Union[None, parse.Result, parse.Match]:
|
|
261
260
|
return self.compiled_folder_include.parse(path)
|
|
262
261
|
|
|
263
|
-
@pydantic.root_validator()
|
|
262
|
+
@pydantic.root_validator(skip_on_failure=True)
|
|
264
263
|
def validate_no_double_stars(cls, values: Dict) -> Dict:
|
|
265
264
|
if "include" not in values:
|
|
266
265
|
return values
|
|
@@ -69,7 +69,7 @@ class HexSourceConfig(
|
|
|
69
69
|
)
|
|
70
70
|
include_components: bool = Field(
|
|
71
71
|
default=True,
|
|
72
|
-
|
|
72
|
+
description="Include Hex Components in the ingestion",
|
|
73
73
|
)
|
|
74
74
|
page_size: int = Field(
|
|
75
75
|
default=HEX_API_PAGE_SIZE_DEFAULT,
|
|
@@ -524,11 +524,11 @@ class IcebergSource(StatefulIngestionSourceBase):
|
|
|
524
524
|
custom_properties["format-version"] = str(table.metadata.format_version)
|
|
525
525
|
custom_properties["partition-spec"] = str(self._get_partition_aspect(table))
|
|
526
526
|
last_modified: Optional[int] = table.metadata.last_updated_ms
|
|
527
|
-
if table.current_snapshot():
|
|
528
|
-
custom_properties["snapshot-id"] = str(
|
|
529
|
-
custom_properties["manifest-list"] =
|
|
527
|
+
if current_snapshot := table.current_snapshot():
|
|
528
|
+
custom_properties["snapshot-id"] = str(current_snapshot.snapshot_id)
|
|
529
|
+
custom_properties["manifest-list"] = current_snapshot.manifest_list
|
|
530
530
|
if not last_modified:
|
|
531
|
-
last_modified = int(
|
|
531
|
+
last_modified = int(current_snapshot.timestamp_ms)
|
|
532
532
|
if "created-at" in custom_properties:
|
|
533
533
|
try:
|
|
534
534
|
dt = dateutil_parser.isoparse(custom_properties["created-at"])
|
|
@@ -27,10 +27,8 @@ class CatalogItem(BaseModel):
|
|
|
27
27
|
is_favorite: bool = Field(alias="IsFavorite")
|
|
28
28
|
user_info: Any = Field(None, alias="UserInfo")
|
|
29
29
|
display_name: Optional[str] = Field(None, alias="DisplayName")
|
|
30
|
-
has_data_sources: bool = Field(
|
|
31
|
-
data_sources: Optional[List["DataSource"]] = Field(
|
|
32
|
-
default_factory=list, alias="DataSources"
|
|
33
|
-
)
|
|
30
|
+
has_data_sources: bool = Field(False, alias="HasDataSources")
|
|
31
|
+
data_sources: Optional[List["DataSource"]] = Field(None, alias="DataSources")
|
|
34
32
|
|
|
35
33
|
@validator("display_name", always=True)
|
|
36
34
|
def validate_diplay_name(cls, value, values):
|
|
@@ -26,7 +26,7 @@ from datahub.utilities.search_utils import LogicalOperator
|
|
|
26
26
|
|
|
27
27
|
class OutboundSharePlatformResource(BaseModel):
|
|
28
28
|
namespace: str
|
|
29
|
-
platform_instance: Optional[str]
|
|
29
|
+
platform_instance: Optional[str] = None
|
|
30
30
|
env: str
|
|
31
31
|
source_database: str
|
|
32
32
|
share_name: str
|
|
@@ -203,38 +203,31 @@ class SlackSourceConfig(
|
|
|
203
203
|
description="Bot token for the Slack workspace. Needs `users:read`, `users:read.email`, `users.profile:read`, and `team:read` scopes.",
|
|
204
204
|
)
|
|
205
205
|
enrich_user_metadata: bool = Field(
|
|
206
|
-
|
|
207
|
-
default=True,
|
|
206
|
+
True,
|
|
208
207
|
description="When enabled, will enrich provisioned DataHub users' metadata with information from Slack.",
|
|
209
208
|
)
|
|
210
209
|
ingest_users: bool = Field(
|
|
211
|
-
|
|
212
|
-
default=True,
|
|
210
|
+
True,
|
|
213
211
|
description="Whether to ingest users. When set to true, will ingest all users in the Slack workspace (as platform resources) to simplify user enrichment after they are provisioned on DataHub.",
|
|
214
212
|
)
|
|
215
213
|
api_requests_per_min: int = Field(
|
|
216
|
-
|
|
217
|
-
default=10,
|
|
214
|
+
10,
|
|
218
215
|
description="Number of API requests per minute. Low-level config. Do not tweak unless you are facing any issues.",
|
|
219
216
|
)
|
|
220
217
|
ingest_public_channels: bool = Field(
|
|
221
|
-
|
|
222
|
-
default=False,
|
|
218
|
+
False,
|
|
223
219
|
description="Whether to ingest public channels. If set to true needs `channels:read` scope.",
|
|
224
220
|
)
|
|
225
221
|
channels_iteration_limit: int = Field(
|
|
226
|
-
|
|
227
|
-
default=200,
|
|
222
|
+
200,
|
|
228
223
|
description="Limit the number of channels to be ingested in a iteration. Low-level config. Do not tweak unless you are facing any issues.",
|
|
229
224
|
)
|
|
230
225
|
channel_min_members: int = Field(
|
|
231
|
-
|
|
232
|
-
default=2,
|
|
226
|
+
2,
|
|
233
227
|
description="Ingest channels with at least this many members.",
|
|
234
228
|
)
|
|
235
229
|
should_ingest_archived_channels: bool = Field(
|
|
236
|
-
|
|
237
|
-
default=False,
|
|
230
|
+
False,
|
|
238
231
|
description="Whether to ingest archived channels.",
|
|
239
232
|
)
|
|
240
233
|
|
|
@@ -72,7 +72,7 @@ class ColumnUpstreamJob(BaseModel):
|
|
|
72
72
|
|
|
73
73
|
|
|
74
74
|
class ColumnUpstreamLineage(BaseModel):
|
|
75
|
-
column_name: Optional[str]
|
|
75
|
+
column_name: Optional[str] = None
|
|
76
76
|
upstreams: List[ColumnUpstreamJob] = Field(default_factory=list)
|
|
77
77
|
|
|
78
78
|
|
|
@@ -91,9 +91,9 @@ class Query(BaseModel):
|
|
|
91
91
|
class UpstreamLineageEdge(BaseModel):
|
|
92
92
|
DOWNSTREAM_TABLE_NAME: str
|
|
93
93
|
DOWNSTREAM_TABLE_DOMAIN: str
|
|
94
|
-
UPSTREAM_TABLES: Optional[List[UpstreamTableNode]]
|
|
95
|
-
UPSTREAM_COLUMNS: Optional[List[ColumnUpstreamLineage]]
|
|
96
|
-
QUERIES: Optional[List[Query]]
|
|
94
|
+
UPSTREAM_TABLES: Optional[List[UpstreamTableNode]] = None
|
|
95
|
+
UPSTREAM_COLUMNS: Optional[List[ColumnUpstreamLineage]] = None
|
|
96
|
+
QUERIES: Optional[List[Query]] = None
|
|
97
97
|
|
|
98
98
|
_json_upstream_tables = pydantic_parse_json("UPSTREAM_TABLES")
|
|
99
99
|
_json_upstream_columns = pydantic_parse_json("UPSTREAM_COLUMNS")
|
|
@@ -8,7 +8,7 @@ import pydantic
|
|
|
8
8
|
from pydantic import Field
|
|
9
9
|
from typing_extensions import Literal
|
|
10
10
|
|
|
11
|
-
from datahub.configuration.common import AllowDenyPattern, ConfigModel
|
|
11
|
+
from datahub.configuration.common import AllowDenyPattern, ConfigEnum, ConfigModel
|
|
12
12
|
from datahub.configuration.source_common import (
|
|
13
13
|
DatasetSourceConfigMixin,
|
|
14
14
|
LowerCaseDatasetUrnConfigMixin,
|
|
@@ -36,6 +36,12 @@ from datahub.utilities.global_warning_util import add_global_warning
|
|
|
36
36
|
logger = logging.getLogger(__name__)
|
|
37
37
|
|
|
38
38
|
|
|
39
|
+
class LineageDataSource(ConfigEnum):
|
|
40
|
+
AUTO = "AUTO"
|
|
41
|
+
SYSTEM_TABLES = "SYSTEM_TABLES"
|
|
42
|
+
API = "API"
|
|
43
|
+
|
|
44
|
+
|
|
39
45
|
class UnityCatalogProfilerConfig(ConfigModel):
|
|
40
46
|
method: str = Field(
|
|
41
47
|
description=(
|
|
@@ -243,6 +249,21 @@ class UnityCatalogSourceConfig(
|
|
|
243
249
|
description="Option to enable/disable lineage generation. Currently we have to call a rest call per column to get column level lineage due to the Databrick api which can slow down ingestion. ",
|
|
244
250
|
)
|
|
245
251
|
|
|
252
|
+
lineage_data_source: LineageDataSource = pydantic.Field(
|
|
253
|
+
default=LineageDataSource.AUTO,
|
|
254
|
+
description=(
|
|
255
|
+
"Source for lineage data extraction. Options: "
|
|
256
|
+
f"'{LineageDataSource.AUTO.value}' - Use system tables when SQL warehouse is available, fallback to API; "
|
|
257
|
+
f"'{LineageDataSource.SYSTEM_TABLES.value}' - Force use of system.access.table_lineage and system.access.column_lineage tables (requires SQL warehouse); "
|
|
258
|
+
f"'{LineageDataSource.API.value}' - Force use of REST API endpoints for lineage data"
|
|
259
|
+
),
|
|
260
|
+
)
|
|
261
|
+
|
|
262
|
+
ignore_start_time_lineage: bool = pydantic.Field(
|
|
263
|
+
default=False,
|
|
264
|
+
description="Option to ignore the start_time and retrieve all available lineage. When enabled, the start_time filter will be set to zero to extract all lineage events regardless of the configured time window.",
|
|
265
|
+
)
|
|
266
|
+
|
|
246
267
|
column_lineage_column_limit: int = pydantic.Field(
|
|
247
268
|
default=300,
|
|
248
269
|
description="Limit the number of columns to get column level lineage. ",
|
|
@@ -362,6 +383,20 @@ class UnityCatalogSourceConfig(
|
|
|
362
383
|
|
|
363
384
|
return values
|
|
364
385
|
|
|
386
|
+
@pydantic.root_validator(skip_on_failure=True)
|
|
387
|
+
def validate_lineage_data_source_with_warehouse(
|
|
388
|
+
cls, values: Dict[str, Any]
|
|
389
|
+
) -> Dict[str, Any]:
|
|
390
|
+
lineage_data_source = values.get("lineage_data_source", LineageDataSource.AUTO)
|
|
391
|
+
warehouse_id = values.get("warehouse_id")
|
|
392
|
+
|
|
393
|
+
if lineage_data_source == LineageDataSource.SYSTEM_TABLES and not warehouse_id:
|
|
394
|
+
raise ValueError(
|
|
395
|
+
f"lineage_data_source='{LineageDataSource.SYSTEM_TABLES.value}' requires warehouse_id to be set"
|
|
396
|
+
)
|
|
397
|
+
|
|
398
|
+
return values
|
|
399
|
+
|
|
365
400
|
@pydantic.validator("schema_pattern", always=True)
|
|
366
401
|
def schema_pattern_should__always_deny_information_schema(
|
|
367
402
|
cls, v: AllowDenyPattern
|