acryl-datahub 1.0.0rc2__py3-none-any.whl → 1.0.0rc3__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 (41) hide show
  1. {acryl_datahub-1.0.0rc2.dist-info → acryl_datahub-1.0.0rc3.dist-info}/METADATA +2488 -2488
  2. {acryl_datahub-1.0.0rc2.dist-info → acryl_datahub-1.0.0rc3.dist-info}/RECORD +41 -41
  3. datahub/_version.py +1 -1
  4. datahub/cli/docker_cli.py +2 -2
  5. datahub/configuration/common.py +1 -1
  6. datahub/ingestion/api/decorators.py +1 -1
  7. datahub/ingestion/graph/client.py +1 -1
  8. datahub/ingestion/run/pipeline.py +1 -1
  9. datahub/ingestion/source/identity/okta.py +13 -2
  10. datahub/ingestion/source/looker/looker_common.py +3 -3
  11. datahub/ingestion/source/looker/looker_source.py +1 -1
  12. datahub/ingestion/source/mode.py +3 -3
  13. datahub/ingestion/source/nifi.py +2 -2
  14. datahub/ingestion/source/openapi.py +1 -1
  15. datahub/ingestion/source/openapi_parser.py +1 -1
  16. datahub/ingestion/source/powerbi_report_server/report_server_domain.py +1 -1
  17. datahub/ingestion/source/sql/athena.py +2 -2
  18. datahub/ingestion/source/sql/hive_metastore.py +1 -1
  19. datahub/ingestion/source/sql/mssql/source.py +1 -1
  20. datahub/ingestion/source/sql/sql_common.py +1 -1
  21. datahub/ingestion/source/sql/teradata.py +3 -3
  22. datahub/ingestion/source/tableau/tableau.py +19 -0
  23. datahub/metadata/schema.avsc +30 -3
  24. datahub/metadata/schemas/AssertionInfo.avsc +3 -1
  25. datahub/metadata/schemas/BusinessAttributeInfo.avsc +6 -2
  26. datahub/metadata/schemas/BusinessAttributes.avsc +6 -0
  27. datahub/metadata/schemas/ChartInfo.avsc +1 -0
  28. datahub/metadata/schemas/EditableSchemaMetadata.avsc +6 -2
  29. datahub/metadata/schemas/GlossaryTerms.avsc +3 -1
  30. datahub/metadata/schemas/InputFields.avsc +3 -1
  31. datahub/metadata/schemas/MetadataChangeEvent.avsc +7 -2
  32. datahub/metadata/schemas/SchemaMetadata.avsc +3 -1
  33. datahub/metadata/schemas/StructuredPropertyDefinition.avsc +14 -0
  34. datahub/sql_parsing/schema_resolver.py +1 -1
  35. datahub/sql_parsing/sqlglot_lineage.py +1 -1
  36. datahub/upgrade/upgrade.py +2 -2
  37. datahub/utilities/mapping.py +1 -1
  38. {acryl_datahub-1.0.0rc2.dist-info → acryl_datahub-1.0.0rc3.dist-info}/LICENSE +0 -0
  39. {acryl_datahub-1.0.0rc2.dist-info → acryl_datahub-1.0.0rc3.dist-info}/WHEEL +0 -0
  40. {acryl_datahub-1.0.0rc2.dist-info → acryl_datahub-1.0.0rc3.dist-info}/entry_points.txt +0 -0
  41. {acryl_datahub-1.0.0rc2.dist-info → acryl_datahub-1.0.0rc3.dist-info}/top_level.txt +0 -0
@@ -2190,6 +2190,10 @@ class TableauSiteSource:
2190
2190
  dataset_snapshot.aspects.append(browse_paths)
2191
2191
  else:
2192
2192
  logger.debug(f"Browse path not set for Custom SQL table {csql_id}")
2193
+ logger.warning(
2194
+ f"Skipping Custom SQL table {csql_id} due to filtered downstream"
2195
+ )
2196
+ continue
2193
2197
 
2194
2198
  dataset_properties = DatasetPropertiesClass(
2195
2199
  name=csql.get(c.NAME),
@@ -2628,6 +2632,15 @@ class TableauSiteSource:
2628
2632
  datasource_info = datasource
2629
2633
 
2630
2634
  browse_path = self._get_project_browse_path_name(datasource)
2635
+ if (
2636
+ not is_embedded_ds
2637
+ and self._get_published_datasource_project_luid(datasource) is None
2638
+ ):
2639
+ logger.warning(
2640
+ f"Skip ingesting published datasource {datasource.get(c.NAME)} because of filtered project"
2641
+ )
2642
+ return
2643
+
2631
2644
  logger.debug(f"datasource {datasource.get(c.NAME)} browse-path {browse_path}")
2632
2645
  datasource_id = datasource[c.ID]
2633
2646
  datasource_urn = builder.make_dataset_urn_with_platform_instance(
@@ -2851,6 +2864,11 @@ class TableauSiteSource:
2851
2864
  query_filter=tables_filter,
2852
2865
  page_size=self.config.effective_database_table_page_size,
2853
2866
  ):
2867
+ if tableau_database_table_id_to_urn_map.get(tableau_table[c.ID]) is None:
2868
+ logger.warning(
2869
+ f"Skipping table {tableau_table[c.ID]} due to filtered out published datasource"
2870
+ )
2871
+ continue
2854
2872
  database_table = self.database_tables[
2855
2873
  tableau_database_table_id_to_urn_map[tableau_table[c.ID]]
2856
2874
  ]
@@ -2905,6 +2923,7 @@ class TableauSiteSource:
2905
2923
  dataset_snapshot.aspects.append(browse_paths)
2906
2924
  else:
2907
2925
  logger.debug(f"Browse path not set for table {database_table.urn}")
2926
+ return
2908
2927
 
2909
2928
  schema_metadata = self.get_schema_metadata_for_table(
2910
2929
  tableau_columns, database_table.parsed_columns
@@ -3504,7 +3504,9 @@
3504
3504
  "fieldName": "glossaryTerms",
3505
3505
  "fieldType": "URN",
3506
3506
  "filterNameOverride": "Glossary Term",
3507
- "hasValuesFieldName": "hasGlossaryTerms"
3507
+ "hasValuesFieldName": "hasGlossaryTerms",
3508
+ "includeSystemModifiedAt": true,
3509
+ "systemModifiedAtFieldName": "termsModifiedAt"
3508
3510
  },
3509
3511
  "java": {
3510
3512
  "class": "com.linkedin.pegasus2avro.common.urn.GlossaryTermUrn"
@@ -10339,7 +10341,9 @@
10339
10341
  "/terms/*/urn": {
10340
10342
  "boostScore": 0.5,
10341
10343
  "fieldName": "editedFieldGlossaryTerms",
10342
- "fieldType": "URN"
10344
+ "fieldType": "URN",
10345
+ "includeSystemModifiedAt": true,
10346
+ "systemModifiedAtFieldName": "schemaFieldTermsModifiedAt"
10343
10347
  }
10344
10348
  },
10345
10349
  "type": [
@@ -10477,6 +10481,12 @@
10477
10481
  "namespace": "com.linkedin.pegasus2avro.businessattribute",
10478
10482
  "fields": [
10479
10483
  {
10484
+ "Searchable": {
10485
+ "fieldName": "schemaFieldBusinessAttribute",
10486
+ "includeSystemModifiedAt": true,
10487
+ "queryByDefault": false,
10488
+ "systemModifiedAtFieldName": "schemaFieldBusinessAttributeModifiedAt"
10489
+ },
10480
10490
  "java": {
10481
10491
  "class": "com.linkedin.pegasus2avro.common.urn.BusinessAttributeUrn"
10482
10492
  },
@@ -15077,6 +15087,7 @@
15077
15087
  },
15078
15088
  {
15079
15089
  "Searchable": {
15090
+ "boostScore": 10.0,
15080
15091
  "enableAutocomplete": true,
15081
15092
  "fieldNameAliases": [
15082
15093
  "_entityName"
@@ -16546,7 +16557,9 @@
16546
16557
  "/terms/*/urn": {
16547
16558
  "boostScore": 0.5,
16548
16559
  "fieldName": "editedFieldGlossaryTerms",
16549
- "fieldType": "URN"
16560
+ "fieldType": "URN",
16561
+ "includeSystemModifiedAt": true,
16562
+ "systemModifiedAtFieldName": "schemaFieldTermsModifiedAt"
16550
16563
  }
16551
16564
  },
16552
16565
  "type": [
@@ -19423,6 +19436,13 @@
19423
19436
  "doc": "The display name of the property. This is the name that will be shown in the UI and can be used to look up the property id."
19424
19437
  },
19425
19438
  {
19439
+ "UrnValidation": {
19440
+ "entityTypes": [
19441
+ "dataType"
19442
+ ],
19443
+ "exist": true,
19444
+ "strict": true
19445
+ },
19426
19446
  "java": {
19427
19447
  "class": "com.linkedin.pegasus2avro.common.urn.Urn"
19428
19448
  },
@@ -19511,6 +19531,13 @@
19511
19531
  "fieldName": "entityTypes"
19512
19532
  }
19513
19533
  },
19534
+ "UrnValidation": {
19535
+ "entityTypes": [
19536
+ "entityType"
19537
+ ],
19538
+ "exist": true,
19539
+ "strict": true
19540
+ },
19514
19541
  "Urn": "Urn",
19515
19542
  "urn_is_array": true,
19516
19543
  "type": {
@@ -2010,7 +2010,9 @@
2010
2010
  "fieldName": "glossaryTerms",
2011
2011
  "fieldType": "URN",
2012
2012
  "filterNameOverride": "Glossary Term",
2013
- "hasValuesFieldName": "hasGlossaryTerms"
2013
+ "hasValuesFieldName": "hasGlossaryTerms",
2014
+ "includeSystemModifiedAt": true,
2015
+ "systemModifiedAtFieldName": "termsModifiedAt"
2014
2016
  },
2015
2017
  "java": {
2016
2018
  "class": "com.linkedin.pegasus2avro.common.urn.GlossaryTermUrn"
@@ -221,7 +221,9 @@
221
221
  "/terms/*/urn": {
222
222
  "boostScore": 0.5,
223
223
  "fieldName": "editedFieldGlossaryTerms",
224
- "fieldType": "URN"
224
+ "fieldType": "URN",
225
+ "includeSystemModifiedAt": true,
226
+ "systemModifiedAtFieldName": "schemaFieldTermsModifiedAt"
225
227
  }
226
228
  },
227
229
  "type": [
@@ -254,7 +256,9 @@
254
256
  "fieldName": "glossaryTerms",
255
257
  "fieldType": "URN",
256
258
  "filterNameOverride": "Glossary Term",
257
- "hasValuesFieldName": "hasGlossaryTerms"
259
+ "hasValuesFieldName": "hasGlossaryTerms",
260
+ "includeSystemModifiedAt": true,
261
+ "systemModifiedAtFieldName": "termsModifiedAt"
258
262
  },
259
263
  "java": {
260
264
  "class": "com.linkedin.pegasus2avro.common.urn.GlossaryTermUrn"
@@ -31,6 +31,12 @@
31
31
  "namespace": "com.linkedin.pegasus2avro.businessattribute",
32
32
  "fields": [
33
33
  {
34
+ "Searchable": {
35
+ "fieldName": "schemaFieldBusinessAttribute",
36
+ "includeSystemModifiedAt": true,
37
+ "queryByDefault": false,
38
+ "systemModifiedAtFieldName": "schemaFieldBusinessAttributeModifiedAt"
39
+ },
34
40
  "java": {
35
41
  "class": "com.linkedin.pegasus2avro.common.urn.BusinessAttributeUrn"
36
42
  },
@@ -39,6 +39,7 @@
39
39
  },
40
40
  {
41
41
  "Searchable": {
42
+ "boostScore": 10.0,
42
43
  "enableAutocomplete": true,
43
44
  "fieldNameAliases": [
44
45
  "_entityName"
@@ -303,7 +303,9 @@
303
303
  "/terms/*/urn": {
304
304
  "boostScore": 0.5,
305
305
  "fieldName": "editedFieldGlossaryTerms",
306
- "fieldType": "URN"
306
+ "fieldType": "URN",
307
+ "includeSystemModifiedAt": true,
308
+ "systemModifiedAtFieldName": "schemaFieldTermsModifiedAt"
307
309
  }
308
310
  },
309
311
  "type": [
@@ -336,7 +338,9 @@
336
338
  "fieldName": "glossaryTerms",
337
339
  "fieldType": "URN",
338
340
  "filterNameOverride": "Glossary Term",
339
- "hasValuesFieldName": "hasGlossaryTerms"
341
+ "hasValuesFieldName": "hasGlossaryTerms",
342
+ "includeSystemModifiedAt": true,
343
+ "systemModifiedAtFieldName": "termsModifiedAt"
340
344
  },
341
345
  "java": {
342
346
  "class": "com.linkedin.pegasus2avro.common.urn.GlossaryTermUrn"
@@ -26,7 +26,9 @@
26
26
  "fieldName": "glossaryTerms",
27
27
  "fieldType": "URN",
28
28
  "filterNameOverride": "Glossary Term",
29
- "hasValuesFieldName": "hasGlossaryTerms"
29
+ "hasValuesFieldName": "hasGlossaryTerms",
30
+ "includeSystemModifiedAt": true,
31
+ "systemModifiedAtFieldName": "termsModifiedAt"
30
32
  },
31
33
  "java": {
32
34
  "class": "com.linkedin.pegasus2avro.common.urn.GlossaryTermUrn"
@@ -553,7 +553,9 @@
553
553
  "fieldName": "glossaryTerms",
554
554
  "fieldType": "URN",
555
555
  "filterNameOverride": "Glossary Term",
556
- "hasValuesFieldName": "hasGlossaryTerms"
556
+ "hasValuesFieldName": "hasGlossaryTerms",
557
+ "includeSystemModifiedAt": true,
558
+ "systemModifiedAtFieldName": "termsModifiedAt"
557
559
  },
558
560
  "java": {
559
561
  "class": "com.linkedin.pegasus2avro.common.urn.GlossaryTermUrn"
@@ -183,6 +183,7 @@
183
183
  },
184
184
  {
185
185
  "Searchable": {
186
+ "boostScore": 10.0,
186
187
  "enableAutocomplete": true,
187
188
  "fieldNameAliases": [
188
189
  "_entityName"
@@ -994,7 +995,9 @@
994
995
  "fieldName": "glossaryTerms",
995
996
  "fieldType": "URN",
996
997
  "filterNameOverride": "Glossary Term",
997
- "hasValuesFieldName": "hasGlossaryTerms"
998
+ "hasValuesFieldName": "hasGlossaryTerms",
999
+ "includeSystemModifiedAt": true,
1000
+ "systemModifiedAtFieldName": "termsModifiedAt"
998
1001
  },
999
1002
  "java": {
1000
1003
  "class": "com.linkedin.pegasus2avro.common.urn.GlossaryTermUrn"
@@ -4644,7 +4647,9 @@
4644
4647
  "/terms/*/urn": {
4645
4648
  "boostScore": 0.5,
4646
4649
  "fieldName": "editedFieldGlossaryTerms",
4647
- "fieldType": "URN"
4650
+ "fieldType": "URN",
4651
+ "includeSystemModifiedAt": true,
4652
+ "systemModifiedAtFieldName": "schemaFieldTermsModifiedAt"
4648
4653
  }
4649
4654
  },
4650
4655
  "type": [
@@ -777,7 +777,9 @@
777
777
  "fieldName": "glossaryTerms",
778
778
  "fieldType": "URN",
779
779
  "filterNameOverride": "Glossary Term",
780
- "hasValuesFieldName": "hasGlossaryTerms"
780
+ "hasValuesFieldName": "hasGlossaryTerms",
781
+ "includeSystemModifiedAt": true,
782
+ "systemModifiedAtFieldName": "termsModifiedAt"
781
783
  },
782
784
  "java": {
783
785
  "class": "com.linkedin.pegasus2avro.common.urn.GlossaryTermUrn"
@@ -23,6 +23,13 @@
23
23
  "doc": "The display name of the property. This is the name that will be shown in the UI and can be used to look up the property id."
24
24
  },
25
25
  {
26
+ "UrnValidation": {
27
+ "entityTypes": [
28
+ "dataType"
29
+ ],
30
+ "exist": true,
31
+ "strict": true
32
+ },
26
33
  "java": {
27
34
  "class": "com.linkedin.pegasus2avro.common.urn.Urn"
28
35
  },
@@ -111,6 +118,13 @@
111
118
  "fieldName": "entityTypes"
112
119
  }
113
120
  },
121
+ "UrnValidation": {
122
+ "entityTypes": [
123
+ "entityType"
124
+ ],
125
+ "exist": true,
126
+ "strict": true
127
+ },
114
128
  "type": {
115
129
  "type": "array",
116
130
  "items": "string"
@@ -13,7 +13,7 @@ from datahub.ingestion.graph.client import DataHubGraph
13
13
  from datahub.ingestion.source.bigquery_v2.bigquery_audit import BigqueryTableIdentifier
14
14
  from datahub.metadata.schema_classes import SchemaFieldClass, SchemaMetadataClass
15
15
  from datahub.metadata.urns import DataPlatformUrn
16
- from datahub.sql_parsing._models import _TableName as _TableName # noqa: I250
16
+ from datahub.sql_parsing._models import _TableName as _TableName
17
17
  from datahub.sql_parsing.sql_parsing_common import PLATFORMS_WITH_CASE_SENSITIVE_TABLES
18
18
  from datahub.utilities.file_backed_collections import ConnectionWrapper, FileBackedDict
19
19
  from datahub.utilities.urns.field_paths import get_simple_field_path_from_v2_field_path
@@ -473,7 +473,7 @@ def _create_table_ddl_cll(
473
473
  return column_lineage
474
474
 
475
475
 
476
- def _select_statement_cll( # noqa: C901
476
+ def _select_statement_cll(
477
477
  statement: _SupportedColumnLineageTypes,
478
478
  dialect: sqlglot.Dialect,
479
479
  root_scope: sqlglot.optimizer.Scope,
@@ -293,9 +293,9 @@ def is_client_server_compatible(client: VersionStats, server: VersionStats) -> i
293
293
  return server.version.micro - client.version.micro
294
294
 
295
295
 
296
- def _maybe_print_upgrade_message( # noqa: C901
296
+ def _maybe_print_upgrade_message(
297
297
  version_stats: Optional[DataHubVersionStats],
298
- ) -> None: # noqa: C901
298
+ ) -> None:
299
299
  days_before_cli_stale = 7
300
300
  days_before_quickstart_stale = 7
301
301
 
@@ -171,7 +171,7 @@ class OperationProcessor:
171
171
  self.owner_source_type = owner_source_type
172
172
  self.match_nested_props = match_nested_props
173
173
 
174
- def process(self, raw_props: Mapping[str, Any]) -> Dict[str, Any]: # noqa: C901
174
+ def process(self, raw_props: Mapping[str, Any]) -> Dict[str, Any]:
175
175
  # Defining the following local variables -
176
176
  # operations_map - the final resulting map when operations are processed.
177
177
  # Against each operation the values to be applied are stored.