acryl-datahub 1.3.1.1__py3-none-any.whl → 1.3.1.1rc1__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.3.1.1.dist-info → acryl_datahub-1.3.1.1rc1.dist-info}/METADATA +2640 -2640
- {acryl_datahub-1.3.1.1.dist-info → acryl_datahub-1.3.1.1rc1.dist-info}/RECORD +18 -20
- datahub/_version.py +1 -1
- datahub/ingestion/source/dremio/dremio_source.py +15 -15
- datahub/ingestion/source/unity/config.py +0 -18
- datahub/ingestion/source/unity/connection.py +1 -7
- datahub/ingestion/source/unity/connection_test.py +1 -1
- datahub/ingestion/source/unity/proxy.py +20 -26
- datahub/ingestion/source/unity/source.py +1 -2
- datahub/metadata/schema.avsc +2 -7
- datahub/metadata/schemas/QuerySubjects.avsc +1 -1
- datahub/metadata/schemas/StructuredPropertyDefinition.avsc +1 -6
- datahub/sdk/__init__.py +0 -1
- datahub/sdk/_all_entities.py +0 -2
- datahub/ingestion/source/unity/azure_auth_config.py +0 -15
- datahub/sdk/tag.py +0 -112
- {acryl_datahub-1.3.1.1.dist-info → acryl_datahub-1.3.1.1rc1.dist-info}/WHEEL +0 -0
- {acryl_datahub-1.3.1.1.dist-info → acryl_datahub-1.3.1.1rc1.dist-info}/entry_points.txt +0 -0
- {acryl_datahub-1.3.1.1.dist-info → acryl_datahub-1.3.1.1rc1.dist-info}/licenses/LICENSE +0 -0
- {acryl_datahub-1.3.1.1.dist-info → acryl_datahub-1.3.1.1rc1.dist-info}/top_level.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
acryl_datahub-1.3.1.
|
|
1
|
+
acryl_datahub-1.3.1.1rc1.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=EeAHlBCqg0RG-oXfYfDsP4a2hg6rh7Jnhdkg-lWY3Es,323
|
|
5
5
|
datahub/entrypoints.py,sha256=VcbU6Z47b_JKW1zI-WJMYIngm05FSogKLiuvFNtyNcI,9088
|
|
6
6
|
datahub/errors.py,sha256=p5rFAdAGVCk4Lqolol1YvthceadUSwpaCxLXRcyCCFQ,676
|
|
7
7
|
datahub/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -323,7 +323,7 @@ datahub/ingestion/source/dremio/dremio_datahub_source_mapping.py,sha256=MQk8BAHL
|
|
|
323
323
|
datahub/ingestion/source/dremio/dremio_entities.py,sha256=e5NgsMMMiyNAEWeJX3iIasY-i8FL9bTozLyWCIFjrUU,16339
|
|
324
324
|
datahub/ingestion/source/dremio/dremio_profiling.py,sha256=fxNlIHjZx2wrpU_zoGa89yvckgC99hj5Ki_Cnh3KRIw,12742
|
|
325
325
|
datahub/ingestion/source/dremio/dremio_reporting.py,sha256=UEj-6FMdIWsry5535_kM2hLze5aPRMatTwvI0Bd2BSo,2140
|
|
326
|
-
datahub/ingestion/source/dremio/dremio_source.py,sha256=
|
|
326
|
+
datahub/ingestion/source/dremio/dremio_source.py,sha256=iESzBbPLzSNBjNhkoeY0nlchgF13W8UthFc-3oCjAd8,25478
|
|
327
327
|
datahub/ingestion/source/dremio/dremio_sql_queries.py,sha256=wA1hqKk9cKMJDyEdZRQcDDLZPGYwuNqrvleUHTkWgrQ,10508
|
|
328
328
|
datahub/ingestion/source/dynamodb/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
329
329
|
datahub/ingestion/source/dynamodb/data_reader.py,sha256=vC77KpcP8LJN0g8wsPRDVw4sebv0ZWIP3tJkEIHaomA,3120
|
|
@@ -572,19 +572,18 @@ datahub/ingestion/source/tableau/tableau_server_wrapper.py,sha256=wsVD0SkGUwb-H9
|
|
|
572
572
|
datahub/ingestion/source/tableau/tableau_validation.py,sha256=Hjbfc1AMIkGgzo5ffWXtNRjrxSxzHvw7-dYZDt4d3WE,1819
|
|
573
573
|
datahub/ingestion/source/unity/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
574
574
|
datahub/ingestion/source/unity/analyze_profiler.py,sha256=2pqkFY30CfN4aHgFZZntjeG0hNhBytZJvXC13VfTc1I,4689
|
|
575
|
-
datahub/ingestion/source/unity/
|
|
576
|
-
datahub/ingestion/source/unity/
|
|
577
|
-
datahub/ingestion/source/unity/
|
|
578
|
-
datahub/ingestion/source/unity/connection_test.py,sha256=uAoDUOBPTFQ-1m0lQW3AZ2pXMVaIGkook3oR3BIQyn8,2683
|
|
575
|
+
datahub/ingestion/source/unity/config.py,sha256=9vUpkuGOzUaatY3pf2U3Bl-GHkeBhbciUA2k3VYv50I,19912
|
|
576
|
+
datahub/ingestion/source/unity/connection.py,sha256=iCsQhZ1vxzv1qQKTl_sFUZdmBLLIrNdu2X2V8hT7IGI,2441
|
|
577
|
+
datahub/ingestion/source/unity/connection_test.py,sha256=Dwpz4AIc6ZDwq6pWmRCSCuDUgNjPP_bVAVJumgAAS4w,2661
|
|
579
578
|
datahub/ingestion/source/unity/ge_profiler.py,sha256=NBRHZceq-f95iUn7u0h7cgcd9nAc48Aa-lmp_BqE0As,8409
|
|
580
579
|
datahub/ingestion/source/unity/hive_metastore_proxy.py,sha256=IAWWJjaW0si_UF52Se2D7wmdYRY_afUG4QlVmQu6xaw,15351
|
|
581
580
|
datahub/ingestion/source/unity/platform_resource_repository.py,sha256=znDmtddQB6B0owcWgOf5DACV2hbe7lseO7hwGszYTYs,541
|
|
582
|
-
datahub/ingestion/source/unity/proxy.py,sha256=
|
|
581
|
+
datahub/ingestion/source/unity/proxy.py,sha256=LclyOQ0rxlCuSaSIo5x8jW4PqMT19Jdg_fde1WbS1Gs,56606
|
|
583
582
|
datahub/ingestion/source/unity/proxy_patch.py,sha256=gVYl5Fm_ase0iwBf3yDg7PE3bbTOl92RR-JgofHNkus,12374
|
|
584
583
|
datahub/ingestion/source/unity/proxy_profiling.py,sha256=WLqvYP6MziaisA4LYL4T_GA-kPt6Xdde7bfaYsjYw40,9663
|
|
585
584
|
datahub/ingestion/source/unity/proxy_types.py,sha256=3ChQa8tjrXd89o1twB988e_uiJSz0UWne_G1jcBUpJo,13702
|
|
586
585
|
datahub/ingestion/source/unity/report.py,sha256=wa5ER1hLc-362iWS9MNwDJf_adfAb3tfge_O3wSAaTc,3291
|
|
587
|
-
datahub/ingestion/source/unity/source.py,sha256=
|
|
586
|
+
datahub/ingestion/source/unity/source.py,sha256=w3ub6ChKjaeKpRkvnBFRKQ5msm0WXjdJzM7387Nzjak,57405
|
|
588
587
|
datahub/ingestion/source/unity/tag_entities.py,sha256=-Z-XYc1XhquE-Eoksn9v0o11ZjV9CWz8n6zeXLbzluQ,7275
|
|
589
588
|
datahub/ingestion/source/unity/usage.py,sha256=5CMQ0uOwuXfRq0rdxQbiHwrfSkvmQ5R2GNLqqZ2dOJw,13351
|
|
590
589
|
datahub/ingestion/source/usage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -650,7 +649,7 @@ datahub/lite/lite_server.py,sha256=p9Oa2nNs65mqcssSIVOr7VOzWqfVstz6ZQEdT4f82S0,1
|
|
|
650
649
|
datahub/lite/lite_util.py,sha256=DOIzuU78oxdyHGV-MjpS_iUzO_zF0oa9KJemFhfBp8U,4555
|
|
651
650
|
datahub/metadata/__init__.py,sha256=AjhXPjI6cnpdcrBRrE5gOWo15vv2TTl2ctU4UAnUN7A,238
|
|
652
651
|
datahub/metadata/_internal_schema_classes.py,sha256=PBMgJ92rA0JQlEKPcjcn_eFdjEVPZnapmi8gmHYgheQ,1086866
|
|
653
|
-
datahub/metadata/schema.avsc,sha256
|
|
652
|
+
datahub/metadata/schema.avsc,sha256=-P9qY8bKEj2ilPHKlYErL0eAxnkBALTIs7Rr0hzFRyg,787557
|
|
654
653
|
datahub/metadata/schema_classes.py,sha256=tPT8iHCak4IsZi_oL0nirbPpI8ETTPTZzapqLRpeKU4,1326
|
|
655
654
|
datahub/metadata/urns.py,sha256=nfrCTExR-k2P9w272WVtWSN3xW1VUJngPwP3xnvULjU,1217
|
|
656
655
|
datahub/metadata/_urns/__init__.py,sha256=cOF3GHMDgPhmbLKbN02NPpuLGHSu0qNgQyBRv08eqF0,243
|
|
@@ -934,7 +933,7 @@ datahub/metadata/schemas/PostKey.avsc,sha256=MEA-S-RonGrsrpwYEejR6CXRka2DcqP7S7q
|
|
|
934
933
|
datahub/metadata/schemas/QuantitativeAnalyses.avsc,sha256=XrGYVoGUh7ZRjAbMORSiqF5Zl4a0IbYDPiQuSJhABZM,960
|
|
935
934
|
datahub/metadata/schemas/QueryKey.avsc,sha256=VI4oIHvAO7f0lN_7V3QVuBfHcPz31c57XtW6IrlDfxc,518
|
|
936
935
|
datahub/metadata/schemas/QueryProperties.avsc,sha256=26Q3zzuzJbUCUG7IJ3q_OEdcNbyzloZzDJWPbv3GQAk,5589
|
|
937
|
-
datahub/metadata/schemas/QuerySubjects.avsc,sha256=
|
|
936
|
+
datahub/metadata/schemas/QuerySubjects.avsc,sha256=PDM6Ek1AkjwLGDk17Rjg7KVtE2tbgFpc1XTGkhoG4MA,1437
|
|
938
937
|
datahub/metadata/schemas/QueryUsageStatistics.avsc,sha256=z1gfAnXdBoPEeERi5RESjrdBuS6AcIdqdN5JqWOSuNo,6192
|
|
939
938
|
datahub/metadata/schemas/RelationshipChangeEvent.avsc,sha256=il7yiTXf9nkZvSyqH8GUu0j2jws_n-QlABXThLJ871c,8288
|
|
940
939
|
datahub/metadata/schemas/RoleKey.avsc,sha256=Uas5jFViSHXhFqq8D4P6-UXqywOth3coztjQ5wA7wL0,449
|
|
@@ -949,7 +948,7 @@ datahub/metadata/schemas/SlackUserInfo.avsc,sha256=IY7InWaiDzJa3hJ9J4W3Eg8EUKuh0
|
|
|
949
948
|
datahub/metadata/schemas/SourceCode.avsc,sha256=tUgo2rczO5x1fxw3fYNWQj-51vRNmNIj38b1wayA0aQ,1370
|
|
950
949
|
datahub/metadata/schemas/Status.avsc,sha256=rPZSXSJdwnNywqNx2qll8cdt54aYgI-YUbRr3GK7h78,522
|
|
951
950
|
datahub/metadata/schemas/StructuredProperties.avsc,sha256=qe45sKZ9XrLcf15Gt03Ttzt2J_kJYHvN-DAOSErSYuY,7028
|
|
952
|
-
datahub/metadata/schemas/StructuredPropertyDefinition.avsc,sha256=
|
|
951
|
+
datahub/metadata/schemas/StructuredPropertyDefinition.avsc,sha256=TCvF80cW_2uEV2yJZOjAdxVV-Wr-4OsasSAM-5QDoAo,11921
|
|
953
952
|
datahub/metadata/schemas/StructuredPropertyKey.avsc,sha256=lp7tQBgeriEU1YMQ6a4-6aUGSWDqNl00lLDym97j1yI,618
|
|
954
953
|
datahub/metadata/schemas/StructuredPropertySettings.avsc,sha256=oHPbDuV_Wr_zR9vmTwZZKRzeaBx5nyqN1zn0cfIRhuQ,4044
|
|
955
954
|
datahub/metadata/schemas/SubTypes.avsc,sha256=bhXbzK020zDyQno97Xp05vmoMeZ82IGu2jz7pWDo3RQ,655
|
|
@@ -972,8 +971,8 @@ datahub/metadata/schemas/ViewProperties.avsc,sha256=3HhcbH5493dJUnEUtFMYMVfbYQ52
|
|
|
972
971
|
datahub/metadata/schemas/__init__.py,sha256=kCcak_fBn_KyuysZTJIoipAzZ8EO44Amk4DWSEvplEY,581
|
|
973
972
|
datahub/pydantic/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
974
973
|
datahub/pydantic/compat.py,sha256=TUEo4kSEeOWVAhV6LQtst1phrpVgGtK4uif4OI5vQ2M,1937
|
|
975
|
-
datahub/sdk/__init__.py,sha256=
|
|
976
|
-
datahub/sdk/_all_entities.py,sha256=
|
|
974
|
+
datahub/sdk/__init__.py,sha256=66OOcFi7qlnL6q72c_yUX2mWU2HudbOdRsC5CIoDxow,1922
|
|
975
|
+
datahub/sdk/_all_entities.py,sha256=eQAmD_fcEHlTShe1_nHpdvHxLDN9njk9bdLnuTrYg8M,905
|
|
977
976
|
datahub/sdk/_attribution.py,sha256=0Trh8steVd27GOr9MKCZeawbuDD2_q3GIsZlCtHqEUg,1321
|
|
978
977
|
datahub/sdk/_shared.py,sha256=tlyxyxgo7x-8sJhUG9VvUiLpxcOP-GIg4ToqPixagbw,34221
|
|
979
978
|
datahub/sdk/_utils.py,sha256=oXE2BzsXE5zmSkCP3R1tObD4RHnPeH_ps83D_Dw9JaQ,1169
|
|
@@ -992,7 +991,6 @@ datahub/sdk/mlmodelgroup.py,sha256=wlZZHny0UORpF0fRYuVkWLSQwIHX_fWl5lPb1NKR6dM,8
|
|
|
992
991
|
datahub/sdk/resolver_client.py,sha256=nKMAZJt2tRSGfKSzoREIh43PXqjM3umLiYkYHJjo1io,3243
|
|
993
992
|
datahub/sdk/search_client.py,sha256=f2L_aOy-pPB9Mk7WdLSJ6Htp3OT4cEgDIrqnCweNtM8,3592
|
|
994
993
|
datahub/sdk/search_filters.py,sha256=XG-V4V21DWwFDdBFowC0PsZ5I8H2snEfX_-0jFn5zYY,22929
|
|
995
|
-
datahub/sdk/tag.py,sha256=jZHtL3hyiibrCXb0i_q8QsL8eT6dCT4egpqBWrTVe04,3123
|
|
996
994
|
datahub/secret/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
997
995
|
datahub/secret/datahub_secret_store.py,sha256=XjmDElUUEzozw589-NN63LcTArquJhiEzxOKKTP-NcA,2665
|
|
998
996
|
datahub/secret/datahub_secrets_client.py,sha256=nDmhziKdvseJHlaDVUcAwK8Fv8maeAaG-ktZtWG2b70,1316
|
|
@@ -1135,8 +1133,8 @@ datahub_provider/operators/datahub_assertion_operator.py,sha256=uvTQ-jk2F0sbqqxp
|
|
|
1135
1133
|
datahub_provider/operators/datahub_assertion_sensor.py,sha256=lCBj_3x1cf5GMNpHdfkpHuyHfVxsm6ff5x2Z5iizcAo,140
|
|
1136
1134
|
datahub_provider/operators/datahub_operation_operator.py,sha256=aevDp2FzX7FxGlXrR0khoHNbxbhKR2qPEX5e8O2Jyzw,174
|
|
1137
1135
|
datahub_provider/operators/datahub_operation_sensor.py,sha256=8fcdVBCEPgqy1etTXgLoiHoJrRt_nzFZQMdSzHqSG7M,168
|
|
1138
|
-
acryl_datahub-1.3.1.
|
|
1139
|
-
acryl_datahub-1.3.1.
|
|
1140
|
-
acryl_datahub-1.3.1.
|
|
1141
|
-
acryl_datahub-1.3.1.
|
|
1142
|
-
acryl_datahub-1.3.1.
|
|
1136
|
+
acryl_datahub-1.3.1.1rc1.dist-info/METADATA,sha256=rFziskaXXNthb4jDqBkMBVYPZXxgRIpVioW85ZFjUzE,184975
|
|
1137
|
+
acryl_datahub-1.3.1.1rc1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
1138
|
+
acryl_datahub-1.3.1.1rc1.dist-info/entry_points.txt,sha256=pzsBoTx-D-iTcmpX8oCGCyzlHP2112EygUMzZWz56M8,10105
|
|
1139
|
+
acryl_datahub-1.3.1.1rc1.dist-info/top_level.txt,sha256=iLjSrLK5ox1YVYcglRUkcvfZPvKlobBWx7CTUXx8_GI,25
|
|
1140
|
+
acryl_datahub-1.3.1.1rc1.dist-info/RECORD,,
|
datahub/_version.py
CHANGED
|
@@ -336,10 +336,10 @@ class DremioSource(StatefulIngestionSourceBase):
|
|
|
336
336
|
return
|
|
337
337
|
|
|
338
338
|
dataset_urn = make_dataset_urn_with_platform_instance(
|
|
339
|
-
platform=
|
|
340
|
-
name=
|
|
341
|
-
env=self.config.env,
|
|
339
|
+
platform=self.get_platform(),
|
|
340
|
+
name=dataset_name,
|
|
342
341
|
platform_instance=self.config.platform_instance,
|
|
342
|
+
env=self.config.env,
|
|
343
343
|
)
|
|
344
344
|
|
|
345
345
|
for dremio_mcp in self.dremio_aspects.populate_dataset_mcp(
|
|
@@ -419,10 +419,10 @@ class DremioSource(StatefulIngestionSourceBase):
|
|
|
419
419
|
schema_str = ".".join(dataset_info.path)
|
|
420
420
|
dataset_name = f"{schema_str}.{dataset_info.resource_name}".lower()
|
|
421
421
|
dataset_urn = make_dataset_urn_with_platform_instance(
|
|
422
|
-
platform=
|
|
423
|
-
name=
|
|
424
|
-
env=self.config.env,
|
|
422
|
+
platform=self.get_platform(),
|
|
423
|
+
name=dataset_name,
|
|
425
424
|
platform_instance=self.config.platform_instance,
|
|
425
|
+
env=self.config.env,
|
|
426
426
|
)
|
|
427
427
|
yield from self.profiler.get_workunits(dataset_info, dataset_urn)
|
|
428
428
|
|
|
@@ -434,10 +434,10 @@ class DremioSource(StatefulIngestionSourceBase):
|
|
|
434
434
|
"""
|
|
435
435
|
upstream_urns = [
|
|
436
436
|
make_dataset_urn_with_platform_instance(
|
|
437
|
-
platform=
|
|
438
|
-
name=
|
|
439
|
-
env=self.config.env,
|
|
437
|
+
platform=self.get_platform(),
|
|
438
|
+
name=upstream_table.lower(),
|
|
440
439
|
platform_instance=self.config.platform_instance,
|
|
440
|
+
env=self.config.env,
|
|
441
441
|
)
|
|
442
442
|
for upstream_table in parents
|
|
443
443
|
]
|
|
@@ -496,19 +496,19 @@ class DremioSource(StatefulIngestionSourceBase):
|
|
|
496
496
|
if query.query and query.affected_dataset:
|
|
497
497
|
upstream_urns = [
|
|
498
498
|
make_dataset_urn_with_platform_instance(
|
|
499
|
-
platform=
|
|
500
|
-
name=
|
|
501
|
-
env=self.config.env,
|
|
499
|
+
platform=self.get_platform(),
|
|
500
|
+
name=ds.lower(),
|
|
502
501
|
platform_instance=self.config.platform_instance,
|
|
502
|
+
env=self.config.env,
|
|
503
503
|
)
|
|
504
504
|
for ds in query.queried_datasets
|
|
505
505
|
]
|
|
506
506
|
|
|
507
507
|
downstream_urn = make_dataset_urn_with_platform_instance(
|
|
508
|
-
platform=
|
|
509
|
-
name=
|
|
510
|
-
env=self.config.env,
|
|
508
|
+
platform=self.get_platform(),
|
|
509
|
+
name=query.affected_dataset.lower(),
|
|
511
510
|
platform_instance=self.config.platform_instance,
|
|
511
|
+
env=self.config.env,
|
|
512
512
|
)
|
|
513
513
|
|
|
514
514
|
# Add query to SqlParsingAggregator
|
|
@@ -413,24 +413,6 @@ class UnityCatalogSourceConfig(
|
|
|
413
413
|
)
|
|
414
414
|
return workspace_url
|
|
415
415
|
|
|
416
|
-
@model_validator(mode="before")
|
|
417
|
-
def either_token_or_azure_auth_provided(cls, values: dict) -> dict:
|
|
418
|
-
token = values.get("token")
|
|
419
|
-
azure_auth = values.get("azure_auth")
|
|
420
|
-
|
|
421
|
-
# Check if exactly one of the authentication methods is provided
|
|
422
|
-
if not token and not azure_auth:
|
|
423
|
-
raise ValueError(
|
|
424
|
-
"Either 'azure_auth' or 'token' (personal access token) must be provided in the configuration."
|
|
425
|
-
)
|
|
426
|
-
|
|
427
|
-
if token and azure_auth:
|
|
428
|
-
raise ValueError(
|
|
429
|
-
"Cannot specify both 'token' and 'azure_auth'. Please provide only one authentication method."
|
|
430
|
-
)
|
|
431
|
-
|
|
432
|
-
return values
|
|
433
|
-
|
|
434
416
|
@field_validator("include_metastore", mode="after")
|
|
435
417
|
@classmethod
|
|
436
418
|
def include_metastore_warning(cls, v: bool) -> bool:
|
|
@@ -8,7 +8,6 @@ from pydantic import Field
|
|
|
8
8
|
|
|
9
9
|
from datahub.configuration.common import ConfigModel
|
|
10
10
|
from datahub.ingestion.source.sql.sqlalchemy_uri import make_sqlalchemy_uri
|
|
11
|
-
from datahub.ingestion.source.unity.azure_auth_config import AzureAuthConfig
|
|
12
11
|
|
|
13
12
|
DATABRICKS = "databricks"
|
|
14
13
|
|
|
@@ -20,12 +19,7 @@ class UnityCatalogConnectionConfig(ConfigModel):
|
|
|
20
19
|
"""
|
|
21
20
|
|
|
22
21
|
scheme: str = DATABRICKS
|
|
23
|
-
token:
|
|
24
|
-
default=None, description="Databricks personal access token"
|
|
25
|
-
)
|
|
26
|
-
azure_auth: Optional[AzureAuthConfig] = Field(
|
|
27
|
-
default=None, description="Azure configuration"
|
|
28
|
-
)
|
|
22
|
+
token: str = pydantic.Field(description="Databricks personal access token")
|
|
29
23
|
workspace_url: str = pydantic.Field(
|
|
30
24
|
description="Databricks workspace url. e.g. https://my-workspace.cloud.databricks.com"
|
|
31
25
|
)
|
|
@@ -16,10 +16,10 @@ class UnityCatalogConnectionTest:
|
|
|
16
16
|
self.report = UnityCatalogReport()
|
|
17
17
|
self.proxy = UnityCatalogApiProxy(
|
|
18
18
|
self.config.workspace_url,
|
|
19
|
+
self.config.token,
|
|
19
20
|
self.config.profiling.warehouse_id,
|
|
20
21
|
report=self.report,
|
|
21
22
|
databricks_api_page_size=self.config.databricks_api_page_size,
|
|
22
|
-
personal_access_token=self.config.token,
|
|
23
23
|
)
|
|
24
24
|
|
|
25
25
|
def get_connection_test(self) -> TestConnectionReport:
|
|
@@ -44,7 +44,6 @@ from typing_extensions import assert_never
|
|
|
44
44
|
from datahub._version import nice_version_name
|
|
45
45
|
from datahub.api.entities.external.unity_catalog_external_entites import UnityCatalogTag
|
|
46
46
|
from datahub.emitter.mce_builder import parse_ts_millis
|
|
47
|
-
from datahub.ingestion.source.unity.azure_auth_config import AzureAuthConfig
|
|
48
47
|
from datahub.ingestion.source.unity.config import (
|
|
49
48
|
LineageDataSource,
|
|
50
49
|
UsageDataSource,
|
|
@@ -170,31 +169,20 @@ class UnityCatalogApiProxy(UnityCatalogProxyProfilingMixin):
|
|
|
170
169
|
def __init__(
|
|
171
170
|
self,
|
|
172
171
|
workspace_url: str,
|
|
172
|
+
personal_access_token: str,
|
|
173
173
|
warehouse_id: Optional[str],
|
|
174
174
|
report: UnityCatalogReport,
|
|
175
175
|
hive_metastore_proxy: Optional[HiveMetastoreProxy] = None,
|
|
176
176
|
lineage_data_source: LineageDataSource = LineageDataSource.AUTO,
|
|
177
177
|
usage_data_source: UsageDataSource = UsageDataSource.AUTO,
|
|
178
178
|
databricks_api_page_size: int = 0,
|
|
179
|
-
personal_access_token: Optional[str] = None,
|
|
180
|
-
azure_auth: Optional[AzureAuthConfig] = None,
|
|
181
179
|
):
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
product="datahub",
|
|
189
|
-
product_version=nice_version_name(),
|
|
190
|
-
)
|
|
191
|
-
else:
|
|
192
|
-
self._workspace_client = WorkspaceClient(
|
|
193
|
-
host=workspace_url,
|
|
194
|
-
token=personal_access_token,
|
|
195
|
-
product="datahub",
|
|
196
|
-
product_version=nice_version_name(),
|
|
197
|
-
)
|
|
180
|
+
self._workspace_client = WorkspaceClient(
|
|
181
|
+
host=workspace_url,
|
|
182
|
+
token=personal_access_token,
|
|
183
|
+
product="datahub",
|
|
184
|
+
product_version=nice_version_name(),
|
|
185
|
+
)
|
|
198
186
|
self.warehouse_id = warehouse_id or ""
|
|
199
187
|
self.report = report
|
|
200
188
|
self.hive_metastore_proxy = hive_metastore_proxy
|
|
@@ -348,18 +336,24 @@ class UnityCatalogApiProxy(UnityCatalogProxyProfilingMixin):
|
|
|
348
336
|
except (json.JSONDecodeError, TypeError) as e:
|
|
349
337
|
logger.debug(f"Failed to parse outputs JSON: {e}")
|
|
350
338
|
|
|
351
|
-
if "
|
|
339
|
+
if "parameters" in signature_raw:
|
|
352
340
|
try:
|
|
353
|
-
signature_data["
|
|
354
|
-
signature_raw["
|
|
341
|
+
signature_data["parameters"] = json.loads(
|
|
342
|
+
signature_raw["parameters"]
|
|
355
343
|
)
|
|
356
344
|
except (json.JSONDecodeError, TypeError) as e:
|
|
357
|
-
logger.debug(f"Failed to parse
|
|
345
|
+
logger.debug(f"Failed to parse parameters JSON: {e}")
|
|
358
346
|
|
|
359
347
|
return ModelSignature(
|
|
360
|
-
inputs=signature_data
|
|
361
|
-
|
|
362
|
-
|
|
348
|
+
inputs=signature_data["inputs"]
|
|
349
|
+
if "inputs" in signature_raw
|
|
350
|
+
else None,
|
|
351
|
+
outputs=signature_data["outputs"]
|
|
352
|
+
if "outputs" in signature_raw
|
|
353
|
+
else None,
|
|
354
|
+
parameters=signature_data["parameters"]
|
|
355
|
+
if "parameters" in signature_raw
|
|
356
|
+
else None,
|
|
363
357
|
)
|
|
364
358
|
else:
|
|
365
359
|
logger.debug(
|
|
@@ -211,14 +211,13 @@ class UnityCatalogSource(StatefulIngestionSourceBase, TestableSource):
|
|
|
211
211
|
|
|
212
212
|
self.unity_catalog_api_proxy = UnityCatalogApiProxy(
|
|
213
213
|
config.workspace_url,
|
|
214
|
+
config.token,
|
|
214
215
|
config.warehouse_id,
|
|
215
216
|
report=self.report,
|
|
216
217
|
hive_metastore_proxy=self.hive_metastore_proxy,
|
|
217
218
|
lineage_data_source=config.lineage_data_source,
|
|
218
219
|
usage_data_source=config.usage_data_source,
|
|
219
220
|
databricks_api_page_size=config.databricks_api_page_size,
|
|
220
|
-
personal_access_token=config.token if config.token else None,
|
|
221
|
-
azure_auth=config.azure_auth if config.azure_auth else None,
|
|
222
221
|
)
|
|
223
222
|
|
|
224
223
|
self.external_url_base = urljoin(self.config.workspace_url, "/explore/data")
|
datahub/metadata/schema.avsc
CHANGED
|
@@ -4824,7 +4824,7 @@
|
|
|
4824
4824
|
{
|
|
4825
4825
|
"Searchable": {
|
|
4826
4826
|
"fieldName": "entities",
|
|
4827
|
-
"fieldType": "
|
|
4827
|
+
"fieldType": "URN"
|
|
4828
4828
|
},
|
|
4829
4829
|
"java": {
|
|
4830
4830
|
"class": "com.linkedin.pegasus2avro.common.urn.Urn"
|
|
@@ -20303,12 +20303,7 @@
|
|
|
20303
20303
|
"doc": "The fully qualified name of the property. e.g. io.acryl.datahub.myProperty"
|
|
20304
20304
|
},
|
|
20305
20305
|
{
|
|
20306
|
-
"Searchable": {
|
|
20307
|
-
"enableAutocomplete": true,
|
|
20308
|
-
"fieldType": "WORD_GRAM",
|
|
20309
|
-
"searchLabel": "entityName",
|
|
20310
|
-
"searchTier": 1
|
|
20311
|
-
},
|
|
20306
|
+
"Searchable": {},
|
|
20312
20307
|
"type": [
|
|
20313
20308
|
"null",
|
|
20314
20309
|
"string"
|
|
@@ -17,12 +17,7 @@
|
|
|
17
17
|
"doc": "The fully qualified name of the property. e.g. io.acryl.datahub.myProperty"
|
|
18
18
|
},
|
|
19
19
|
{
|
|
20
|
-
"Searchable": {
|
|
21
|
-
"enableAutocomplete": true,
|
|
22
|
-
"fieldType": "WORD_GRAM",
|
|
23
|
-
"searchLabel": "entityName",
|
|
24
|
-
"searchTier": 1
|
|
25
|
-
},
|
|
20
|
+
"Searchable": {},
|
|
26
21
|
"type": [
|
|
27
22
|
"null",
|
|
28
23
|
"string"
|
datahub/sdk/__init__.py
CHANGED
|
@@ -28,7 +28,6 @@ from datahub.sdk.main_client import DataHubClient
|
|
|
28
28
|
from datahub.sdk.mlmodel import MLModel
|
|
29
29
|
from datahub.sdk.mlmodelgroup import MLModelGroup
|
|
30
30
|
from datahub.sdk.search_filters import Filter, FilterDsl
|
|
31
|
-
from datahub.sdk.tag import Tag
|
|
32
31
|
|
|
33
32
|
# We want to print out the warning if people do `from datahub.sdk import X`.
|
|
34
33
|
# But we don't want to print out warnings if they're doing a more direct
|
datahub/sdk/_all_entities.py
CHANGED
|
@@ -9,7 +9,6 @@ from datahub.sdk.dataset import Dataset
|
|
|
9
9
|
from datahub.sdk.entity import Entity
|
|
10
10
|
from datahub.sdk.mlmodel import MLModel
|
|
11
11
|
from datahub.sdk.mlmodelgroup import MLModelGroup
|
|
12
|
-
from datahub.sdk.tag import Tag
|
|
13
12
|
|
|
14
13
|
# Base entity classes that don't have circular dependencies
|
|
15
14
|
# Those that do are imported in the EntityClient where needed
|
|
@@ -23,7 +22,6 @@ ENTITY_CLASSES_LIST: List[Type[Entity]] = [
|
|
|
23
22
|
DataJob,
|
|
24
23
|
Dashboard,
|
|
25
24
|
Chart,
|
|
26
|
-
Tag,
|
|
27
25
|
]
|
|
28
26
|
|
|
29
27
|
# Create the mapping of entity types to classes
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
from pydantic import Field, SecretStr
|
|
2
|
-
|
|
3
|
-
from datahub.configuration import ConfigModel
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class AzureAuthConfig(ConfigModel):
|
|
7
|
-
client_secret: SecretStr = Field(
|
|
8
|
-
description="Azure application client secret used for authentication. This is a confidential credential that should be kept secure."
|
|
9
|
-
)
|
|
10
|
-
client_id: str = Field(
|
|
11
|
-
description="Azure application (client) ID. This is the unique identifier for the registered Azure AD application.",
|
|
12
|
-
)
|
|
13
|
-
tenant_id: str = Field(
|
|
14
|
-
description="Azure tenant (directory) ID. This identifies the Azure AD tenant where the application is registered.",
|
|
15
|
-
)
|
datahub/sdk/tag.py
DELETED
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
from __future__ import annotations
|
|
2
|
-
|
|
3
|
-
from typing import Optional, Type
|
|
4
|
-
|
|
5
|
-
from typing_extensions import Self
|
|
6
|
-
|
|
7
|
-
import datahub.metadata.schema_classes as models
|
|
8
|
-
from datahub.metadata.urns import TagUrn, Urn
|
|
9
|
-
from datahub.sdk._shared import (
|
|
10
|
-
HasOwnership,
|
|
11
|
-
OwnersInputType,
|
|
12
|
-
)
|
|
13
|
-
from datahub.sdk.entity import Entity, ExtraAspectsType
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
class Tag(
|
|
17
|
-
HasOwnership,
|
|
18
|
-
Entity,
|
|
19
|
-
):
|
|
20
|
-
__slots__ = ()
|
|
21
|
-
|
|
22
|
-
@classmethod
|
|
23
|
-
def get_urn_type(cls) -> Type[TagUrn]:
|
|
24
|
-
return TagUrn
|
|
25
|
-
|
|
26
|
-
def __init__(
|
|
27
|
-
self,
|
|
28
|
-
*,
|
|
29
|
-
# Identity.
|
|
30
|
-
name: str,
|
|
31
|
-
# Tag properties.
|
|
32
|
-
display_name: Optional[str] = None,
|
|
33
|
-
description: Optional[str] = None,
|
|
34
|
-
color: Optional[str] = None,
|
|
35
|
-
# Standard aspects.
|
|
36
|
-
owners: Optional[OwnersInputType] = None,
|
|
37
|
-
extra_aspects: ExtraAspectsType = None,
|
|
38
|
-
):
|
|
39
|
-
"""Initialize a new Tag instance."""
|
|
40
|
-
urn = TagUrn(name=name)
|
|
41
|
-
super().__init__(urn)
|
|
42
|
-
self._set_extra_aspects(extra_aspects)
|
|
43
|
-
|
|
44
|
-
self._ensure_tag_props(
|
|
45
|
-
display_name=display_name or name,
|
|
46
|
-
description=description,
|
|
47
|
-
color=color,
|
|
48
|
-
)
|
|
49
|
-
|
|
50
|
-
if owners is not None:
|
|
51
|
-
self.set_owners(owners)
|
|
52
|
-
|
|
53
|
-
@classmethod
|
|
54
|
-
def _new_from_graph(cls, urn: Urn, current_aspects: models.AspectBag) -> Self:
|
|
55
|
-
assert isinstance(urn, TagUrn)
|
|
56
|
-
entity = cls(name=urn.name)
|
|
57
|
-
return entity._init_from_graph(current_aspects)
|
|
58
|
-
|
|
59
|
-
@property
|
|
60
|
-
def urn(self) -> TagUrn:
|
|
61
|
-
assert isinstance(self._urn, TagUrn)
|
|
62
|
-
return self._urn
|
|
63
|
-
|
|
64
|
-
def _ensure_tag_props(
|
|
65
|
-
self,
|
|
66
|
-
*,
|
|
67
|
-
display_name: Optional[str] = None,
|
|
68
|
-
description: Optional[str] = None,
|
|
69
|
-
color: Optional[str] = None,
|
|
70
|
-
) -> models.TagPropertiesClass:
|
|
71
|
-
existing_props = self._get_aspect(models.TagPropertiesClass)
|
|
72
|
-
if existing_props is not None:
|
|
73
|
-
if display_name is not None:
|
|
74
|
-
existing_props.name = display_name
|
|
75
|
-
if description is not None:
|
|
76
|
-
existing_props.description = description
|
|
77
|
-
if color is not None:
|
|
78
|
-
existing_props.colorHex = color
|
|
79
|
-
return existing_props
|
|
80
|
-
|
|
81
|
-
return self._setdefault_aspect(
|
|
82
|
-
models.TagPropertiesClass(
|
|
83
|
-
name=display_name or self.urn.name,
|
|
84
|
-
description=description,
|
|
85
|
-
colorHex=color,
|
|
86
|
-
)
|
|
87
|
-
)
|
|
88
|
-
|
|
89
|
-
@property
|
|
90
|
-
def name(self) -> str:
|
|
91
|
-
return self.urn.name
|
|
92
|
-
|
|
93
|
-
@property
|
|
94
|
-
def display_name(self) -> str:
|
|
95
|
-
return self._ensure_tag_props().name
|
|
96
|
-
|
|
97
|
-
def set_display_name(self, display_name: str) -> None:
|
|
98
|
-
self._ensure_tag_props(display_name=display_name)
|
|
99
|
-
|
|
100
|
-
@property
|
|
101
|
-
def description(self) -> Optional[str]:
|
|
102
|
-
return self._ensure_tag_props().description
|
|
103
|
-
|
|
104
|
-
def set_description(self, description: str) -> None:
|
|
105
|
-
self._ensure_tag_props(description=description)
|
|
106
|
-
|
|
107
|
-
@property
|
|
108
|
-
def color(self) -> Optional[str]:
|
|
109
|
-
return self._ensure_tag_props().colorHex
|
|
110
|
-
|
|
111
|
-
def set_color(self, color: str) -> None:
|
|
112
|
-
self._ensure_tag_props(color=color)
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|