acryl-datahub 1.0.0.2rc4__py3-none-any.whl → 1.0.0.3rc1__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 (30) hide show
  1. {acryl_datahub-1.0.0.2rc4.dist-info → acryl_datahub-1.0.0.3rc1.dist-info}/METADATA +2433 -2433
  2. {acryl_datahub-1.0.0.2rc4.dist-info → acryl_datahub-1.0.0.3rc1.dist-info}/RECORD +30 -28
  3. datahub/_version.py +1 -1
  4. datahub/ingestion/api/auto_work_units/auto_ensure_aspect_size.py +2 -1
  5. datahub/ingestion/source/hex/api.py +1 -20
  6. datahub/ingestion/source/hex/query_fetcher.py +4 -1
  7. datahub/ingestion/source/sigma/config.py +75 -6
  8. datahub/ingestion/source/sigma/sigma.py +16 -1
  9. datahub/ingestion/source/sigma/sigma_api.py +99 -58
  10. datahub/ingestion/source/snowflake/snowflake_queries.py +18 -4
  11. datahub/ingestion/source/snowflake/snowflake_query.py +1 -1
  12. datahub/ingestion/source/sql/stored_procedures/base.py +12 -1
  13. datahub/metadata/_schema_classes.py +47 -2
  14. datahub/metadata/_urns/urn_defs.py +56 -0
  15. datahub/metadata/com/linkedin/pegasus2avro/metadata/key/__init__.py +2 -0
  16. datahub/metadata/schema.avsc +121 -85
  17. datahub/metadata/schemas/DataHubOpenAPISchemaKey.avsc +22 -0
  18. datahub/metadata/schemas/DataTransformLogic.avsc +4 -2
  19. datahub/metadata/schemas/FormInfo.avsc +5 -0
  20. datahub/metadata/schemas/MLModelDeploymentProperties.avsc +3 -0
  21. datahub/metadata/schemas/MetadataChangeEvent.avsc +6 -0
  22. datahub/metadata/schemas/MetadataChangeLog.avsc +3 -0
  23. datahub/metadata/schemas/MetadataChangeProposal.avsc +3 -0
  24. datahub/metadata/schemas/QueryProperties.avsc +4 -2
  25. datahub/metadata/schemas/SystemMetadata.avsc +86 -0
  26. datahub/sql_parsing/sqlglot_utils.py +16 -8
  27. {acryl_datahub-1.0.0.2rc4.dist-info → acryl_datahub-1.0.0.3rc1.dist-info}/WHEEL +0 -0
  28. {acryl_datahub-1.0.0.2rc4.dist-info → acryl_datahub-1.0.0.3rc1.dist-info}/entry_points.txt +0 -0
  29. {acryl_datahub-1.0.0.2rc4.dist-info → acryl_datahub-1.0.0.3rc1.dist-info}/licenses/LICENSE +0 -0
  30. {acryl_datahub-1.0.0.2rc4.dist-info → acryl_datahub-1.0.0.3rc1.dist-info}/top_level.txt +0 -0
@@ -2343,12 +2343,14 @@
2343
2343
  "type": {
2344
2344
  "type": "enum",
2345
2345
  "symbolDocs": {
2346
- "SQL": "A SQL Query"
2346
+ "SQL": "A SQL Query",
2347
+ "UNKNOWN": "Unknown query language"
2347
2348
  },
2348
2349
  "name": "QueryLanguage",
2349
2350
  "namespace": "com.linkedin.pegasus2avro.query",
2350
2351
  "symbols": [
2351
- "SQL"
2352
+ "SQL",
2353
+ "UNKNOWN"
2352
2354
  ]
2353
2355
  },
2354
2356
  "name": "language",
@@ -2887,6 +2889,11 @@
2887
2889
  "namespace": "com.linkedin.pegasus2avro.form",
2888
2890
  "fields": [
2889
2891
  {
2892
+ "Searchable": {
2893
+ "fieldName": "promptId",
2894
+ "fieldType": "KEYWORD",
2895
+ "queryByDefault": false
2896
+ },
2890
2897
  "type": "string",
2891
2898
  "name": "id",
2892
2899
  "doc": "The unique id for this prompt. This must be GLOBALLY unique."
@@ -4130,6 +4137,92 @@
4130
4137
  ],
4131
4138
  "doc": "Editable information about an Asset Container as defined on the DataHub Platform"
4132
4139
  },
4140
+ {
4141
+ "type": "record",
4142
+ "Aspect": {
4143
+ "name": "systemMetadata"
4144
+ },
4145
+ "name": "SystemMetadata",
4146
+ "namespace": "com.linkedin.pegasus2avro.mxe",
4147
+ "fields": [
4148
+ {
4149
+ "type": [
4150
+ "long",
4151
+ "null"
4152
+ ],
4153
+ "name": "lastObserved",
4154
+ "default": 0,
4155
+ "doc": "The timestamp the metadata was observed at"
4156
+ },
4157
+ {
4158
+ "type": [
4159
+ "string",
4160
+ "null"
4161
+ ],
4162
+ "name": "runId",
4163
+ "default": "no-run-id-provided",
4164
+ "doc": "The original run id that produced the metadata. Populated in case of batch-ingestion."
4165
+ },
4166
+ {
4167
+ "type": [
4168
+ "string",
4169
+ "null"
4170
+ ],
4171
+ "name": "lastRunId",
4172
+ "default": "no-run-id-provided",
4173
+ "doc": "The last run id that produced the metadata. Populated in case of batch-ingestion."
4174
+ },
4175
+ {
4176
+ "type": [
4177
+ "null",
4178
+ "string"
4179
+ ],
4180
+ "name": "pipelineName",
4181
+ "default": null,
4182
+ "doc": "The ingestion pipeline id that produced the metadata. Populated in case of batch ingestion."
4183
+ },
4184
+ {
4185
+ "type": [
4186
+ "null",
4187
+ "string"
4188
+ ],
4189
+ "name": "registryName",
4190
+ "default": null,
4191
+ "doc": "The model registry name that was used to process this event"
4192
+ },
4193
+ {
4194
+ "type": [
4195
+ "null",
4196
+ "string"
4197
+ ],
4198
+ "name": "registryVersion",
4199
+ "default": null,
4200
+ "doc": "The model registry version that was used to process this event"
4201
+ },
4202
+ {
4203
+ "type": [
4204
+ "null",
4205
+ {
4206
+ "type": "map",
4207
+ "values": "string"
4208
+ }
4209
+ ],
4210
+ "name": "properties",
4211
+ "default": null,
4212
+ "doc": "Additional properties"
4213
+ },
4214
+ {
4215
+ "type": [
4216
+ "null",
4217
+ "string"
4218
+ ],
4219
+ "name": "version",
4220
+ "default": null,
4221
+ "doc": "Aspect version\n Initial implementation will use the aspect version's number, however stored as\n a string in the case where a different aspect versioning scheme is later adopted."
4222
+ }
4223
+ ],
4224
+ "doc": "Metadata associated with each metadata change that is processed by the system"
4225
+ },
4133
4226
  {
4134
4227
  "type": "record",
4135
4228
  "name": "PlatformEvent",
@@ -4369,89 +4462,7 @@
4369
4462
  {
4370
4463
  "type": [
4371
4464
  "null",
4372
- {
4373
- "type": "record",
4374
- "name": "SystemMetadata",
4375
- "namespace": "com.linkedin.pegasus2avro.mxe",
4376
- "fields": [
4377
- {
4378
- "type": [
4379
- "long",
4380
- "null"
4381
- ],
4382
- "name": "lastObserved",
4383
- "default": 0,
4384
- "doc": "The timestamp the metadata was observed at"
4385
- },
4386
- {
4387
- "type": [
4388
- "string",
4389
- "null"
4390
- ],
4391
- "name": "runId",
4392
- "default": "no-run-id-provided",
4393
- "doc": "The original run id that produced the metadata. Populated in case of batch-ingestion."
4394
- },
4395
- {
4396
- "type": [
4397
- "string",
4398
- "null"
4399
- ],
4400
- "name": "lastRunId",
4401
- "default": "no-run-id-provided",
4402
- "doc": "The last run id that produced the metadata. Populated in case of batch-ingestion."
4403
- },
4404
- {
4405
- "type": [
4406
- "null",
4407
- "string"
4408
- ],
4409
- "name": "pipelineName",
4410
- "default": null,
4411
- "doc": "The ingestion pipeline id that produced the metadata. Populated in case of batch ingestion."
4412
- },
4413
- {
4414
- "type": [
4415
- "null",
4416
- "string"
4417
- ],
4418
- "name": "registryName",
4419
- "default": null,
4420
- "doc": "The model registry name that was used to process this event"
4421
- },
4422
- {
4423
- "type": [
4424
- "null",
4425
- "string"
4426
- ],
4427
- "name": "registryVersion",
4428
- "default": null,
4429
- "doc": "The model registry version that was used to process this event"
4430
- },
4431
- {
4432
- "type": [
4433
- "null",
4434
- {
4435
- "type": "map",
4436
- "values": "string"
4437
- }
4438
- ],
4439
- "name": "properties",
4440
- "default": null,
4441
- "doc": "Additional properties"
4442
- },
4443
- {
4444
- "type": [
4445
- "null",
4446
- "string"
4447
- ],
4448
- "name": "version",
4449
- "default": null,
4450
- "doc": "Aspect version\n Initial implementation will use the aspect version's number, however stored as\n a string in the case where a different aspect versioning scheme is later adopted."
4451
- }
4452
- ],
4453
- "doc": "Metadata associated with each metadata change that is processed by the system"
4454
- }
4465
+ "com.linkedin.pegasus2avro.mxe.SystemMetadata"
4455
4466
  ],
4456
4467
  "name": "systemMetadata",
4457
4468
  "default": null,
@@ -10156,6 +10167,9 @@
10156
10167
  "doc": "Version of the MLModelDeployment"
10157
10168
  },
10158
10169
  {
10170
+ "Searchable": {
10171
+ "fieldName": "deploymentStatus"
10172
+ },
10159
10173
  "type": [
10160
10174
  "null",
10161
10175
  {
@@ -15705,6 +15719,28 @@
15705
15719
  ],
15706
15720
  "doc": "Key for a External AccessManagement"
15707
15721
  },
15722
+ {
15723
+ "type": "record",
15724
+ "Aspect": {
15725
+ "name": "dataHubOpenAPISchemaKey",
15726
+ "keyForEntity": "dataHubOpenAPISchema",
15727
+ "entityCategory": "internal",
15728
+ "entityAspects": [
15729
+ "systemMetadata"
15730
+ ],
15731
+ "entityDoc": "Contains aspects which are used in OpenAPI requests/responses which are not otherwise present in the data model."
15732
+ },
15733
+ "name": "DataHubOpenAPISchemaKey",
15734
+ "namespace": "com.linkedin.pegasus2avro.metadata.key",
15735
+ "fields": [
15736
+ {
15737
+ "type": "string",
15738
+ "name": "id",
15739
+ "doc": "A unique id for the DataHub OpenAPI schema."
15740
+ }
15741
+ ],
15742
+ "doc": "Key for a Query"
15743
+ },
15708
15744
  {
15709
15745
  "type": "record",
15710
15746
  "Aspect": {
@@ -0,0 +1,22 @@
1
+ {
2
+ "type": "record",
3
+ "Aspect": {
4
+ "name": "dataHubOpenAPISchemaKey",
5
+ "keyForEntity": "dataHubOpenAPISchema",
6
+ "entityCategory": "internal",
7
+ "entityAspects": [
8
+ "systemMetadata"
9
+ ],
10
+ "entityDoc": "Contains aspects which are used in OpenAPI requests/responses which are not otherwise present in the data model."
11
+ },
12
+ "name": "DataHubOpenAPISchemaKey",
13
+ "namespace": "com.linkedin.pegasus2avro.metadata.key",
14
+ "fields": [
15
+ {
16
+ "type": "string",
17
+ "name": "id",
18
+ "doc": "A unique id for the DataHub OpenAPI schema."
19
+ }
20
+ ],
21
+ "doc": "Key for a Query"
22
+ }
@@ -31,12 +31,14 @@
31
31
  "type": {
32
32
  "type": "enum",
33
33
  "symbolDocs": {
34
- "SQL": "A SQL Query"
34
+ "SQL": "A SQL Query",
35
+ "UNKNOWN": "Unknown query language"
35
36
  },
36
37
  "name": "QueryLanguage",
37
38
  "namespace": "com.linkedin.pegasus2avro.query",
38
39
  "symbols": [
39
- "SQL"
40
+ "SQL",
41
+ "UNKNOWN"
40
42
  ]
41
43
  },
42
44
  "name": "language",
@@ -53,6 +53,11 @@
53
53
  "namespace": "com.linkedin.pegasus2avro.form",
54
54
  "fields": [
55
55
  {
56
+ "Searchable": {
57
+ "fieldName": "promptId",
58
+ "fieldType": "KEYWORD",
59
+ "queryByDefault": false
60
+ },
56
61
  "type": "string",
57
62
  "name": "id",
58
63
  "doc": "The unique id for this prompt. This must be GLOBALLY unique."
@@ -135,6 +135,9 @@
135
135
  "doc": "Version of the MLModelDeployment"
136
136
  },
137
137
  {
138
+ "Searchable": {
139
+ "fieldName": "deploymentStatus"
140
+ },
138
141
  "type": [
139
142
  "null",
140
143
  {
@@ -6755,6 +6755,9 @@
6755
6755
  "doc": "Version of the MLModelDeployment"
6756
6756
  },
6757
6757
  {
6758
+ "Searchable": {
6759
+ "fieldName": "deploymentStatus"
6760
+ },
6758
6761
  "type": [
6759
6762
  "null",
6760
6763
  {
@@ -8116,6 +8119,9 @@
8116
8119
  "null",
8117
8120
  {
8118
8121
  "type": "record",
8122
+ "Aspect": {
8123
+ "name": "systemMetadata"
8124
+ },
8119
8125
  "name": "SystemMetadata",
8120
8126
  "namespace": "com.linkedin.pegasus2avro.mxe",
8121
8127
  "fields": [
@@ -187,6 +187,9 @@
187
187
  "null",
188
188
  {
189
189
  "type": "record",
190
+ "Aspect": {
191
+ "name": "systemMetadata"
192
+ },
190
193
  "name": "SystemMetadata",
191
194
  "namespace": "com.linkedin.pegasus2avro.mxe",
192
195
  "fields": [
@@ -187,6 +187,9 @@
187
187
  "null",
188
188
  {
189
189
  "type": "record",
190
+ "Aspect": {
191
+ "name": "systemMetadata"
192
+ },
190
193
  "name": "SystemMetadata",
191
194
  "namespace": "com.linkedin.pegasus2avro.mxe",
192
195
  "fields": [
@@ -36,12 +36,14 @@
36
36
  "type": {
37
37
  "type": "enum",
38
38
  "symbolDocs": {
39
- "SQL": "A SQL Query"
39
+ "SQL": "A SQL Query",
40
+ "UNKNOWN": "Unknown query language"
40
41
  },
41
42
  "name": "QueryLanguage",
42
43
  "namespace": "com.linkedin.pegasus2avro.query",
43
44
  "symbols": [
44
- "SQL"
45
+ "SQL",
46
+ "UNKNOWN"
45
47
  ]
46
48
  },
47
49
  "name": "language",
@@ -0,0 +1,86 @@
1
+ {
2
+ "type": "record",
3
+ "Aspect": {
4
+ "name": "systemMetadata"
5
+ },
6
+ "name": "SystemMetadata",
7
+ "namespace": "com.linkedin.pegasus2avro.mxe",
8
+ "fields": [
9
+ {
10
+ "type": [
11
+ "long",
12
+ "null"
13
+ ],
14
+ "name": "lastObserved",
15
+ "default": 0,
16
+ "doc": "The timestamp the metadata was observed at"
17
+ },
18
+ {
19
+ "type": [
20
+ "string",
21
+ "null"
22
+ ],
23
+ "name": "runId",
24
+ "default": "no-run-id-provided",
25
+ "doc": "The original run id that produced the metadata. Populated in case of batch-ingestion."
26
+ },
27
+ {
28
+ "type": [
29
+ "string",
30
+ "null"
31
+ ],
32
+ "name": "lastRunId",
33
+ "default": "no-run-id-provided",
34
+ "doc": "The last run id that produced the metadata. Populated in case of batch-ingestion."
35
+ },
36
+ {
37
+ "type": [
38
+ "null",
39
+ "string"
40
+ ],
41
+ "name": "pipelineName",
42
+ "default": null,
43
+ "doc": "The ingestion pipeline id that produced the metadata. Populated in case of batch ingestion."
44
+ },
45
+ {
46
+ "type": [
47
+ "null",
48
+ "string"
49
+ ],
50
+ "name": "registryName",
51
+ "default": null,
52
+ "doc": "The model registry name that was used to process this event"
53
+ },
54
+ {
55
+ "type": [
56
+ "null",
57
+ "string"
58
+ ],
59
+ "name": "registryVersion",
60
+ "default": null,
61
+ "doc": "The model registry version that was used to process this event"
62
+ },
63
+ {
64
+ "type": [
65
+ "null",
66
+ {
67
+ "type": "map",
68
+ "values": "string"
69
+ }
70
+ ],
71
+ "name": "properties",
72
+ "default": null,
73
+ "doc": "Additional properties"
74
+ },
75
+ {
76
+ "type": [
77
+ "null",
78
+ "string"
79
+ ],
80
+ "name": "version",
81
+ "default": null,
82
+ "doc": "Aspect version\n Initial implementation will use the aspect version's number, however stored as\n a string in the case where a different aspect versioning scheme is later adopted."
83
+ }
84
+ ],
85
+ "doc": "Metadata associated with each metadata change that is processed by the system"
86
+ }
@@ -257,7 +257,10 @@ def generate_hash(text: str) -> str:
257
257
 
258
258
 
259
259
  def get_query_fingerprint_debug(
260
- expression: sqlglot.exp.ExpOrStr, platform: DialectOrStr, fast: bool = False
260
+ expression: sqlglot.exp.ExpOrStr,
261
+ platform: DialectOrStr,
262
+ fast: bool = False,
263
+ secondary_id: Optional[str] = None,
261
264
  ) -> Tuple[str, Optional[str]]:
262
265
  try:
263
266
  if not fast:
@@ -272,16 +275,18 @@ def get_query_fingerprint_debug(
272
275
  logger.debug("Failed to generalize query for fingerprinting: %s", e)
273
276
  expression_sql = None
274
277
 
275
- fingerprint = generate_hash(
276
- expression_sql
277
- if expression_sql is not None
278
- else _expression_to_string(expression, platform=platform)
279
- )
278
+ text = expression_sql or _expression_to_string(expression, platform=platform)
279
+ if secondary_id:
280
+ text = text + " -- " + secondary_id
281
+ fingerprint = generate_hash(text=text)
280
282
  return fingerprint, expression_sql
281
283
 
282
284
 
283
285
  def get_query_fingerprint(
284
- expression: sqlglot.exp.ExpOrStr, platform: DialectOrStr, fast: bool = False
286
+ expression: sqlglot.exp.ExpOrStr,
287
+ platform: DialectOrStr,
288
+ fast: bool = False,
289
+ secondary_id: Optional[str] = None,
285
290
  ) -> str:
286
291
  """Get a fingerprint for a SQL query.
287
292
 
@@ -298,12 +303,15 @@ def get_query_fingerprint(
298
303
  Args:
299
304
  expression: The SQL query to fingerprint.
300
305
  platform: The SQL dialect to use.
306
+ secondary_id: An optional additional id string to included in the final fingerprint.
301
307
 
302
308
  Returns:
303
309
  The fingerprint for the SQL query.
304
310
  """
305
311
 
306
- return get_query_fingerprint_debug(expression, platform, fast=fast)[0]
312
+ return get_query_fingerprint_debug(
313
+ expression=expression, platform=platform, fast=fast, secondary_id=secondary_id
314
+ )[0]
307
315
 
308
316
 
309
317
  @functools.lru_cache(maxsize=FORMAT_QUERY_CACHE_SIZE)