watchmen-collector-kernel 16.5.15__tar.gz → 16.5.17__tar.gz
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.
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/PKG-INFO +9 -9
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/pyproject.toml +9 -9
- watchmen_collector_kernel-16.5.17/src/watchmen_collector_kernel/cache/__init__.py +1 -0
- watchmen_collector_kernel-16.5.17/src/watchmen_collector_kernel/cache/collector_cache_manger.py +55 -0
- watchmen_collector_kernel-16.5.17/src/watchmen_collector_kernel/cache/collector_cache_service.py +18 -0
- watchmen_collector_kernel-16.5.17/src/watchmen_collector_kernel/cache/model_config_cache.py +45 -0
- watchmen_collector_kernel-16.5.17/src/watchmen_collector_kernel/cache/table_config_cache.py +89 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/common/__init__.py +3 -1
- watchmen_collector_kernel-16.5.17/src/watchmen_collector_kernel/common/exception.py +2 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/common/settings.py +6 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/service/__init__.py +1 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/service/data_capture.py +4 -2
- watchmen_collector_kernel-16.5.17/src/watchmen_collector_kernel/service/model_config_service.py +35 -0
- watchmen_collector_kernel-16.5.17/src/watchmen_collector_kernel/service/table_config_service.py +70 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/LICENSE +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/__init__.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/common/constants.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/model/__init__.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/model/change_data_json.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/model/change_data_json_history.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/model/change_data_record.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/model/change_data_record_history.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/model/collector_model_config.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/model/collector_module_config.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/model/collector_table_config.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/model/competitive_lock.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/model/condition.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/model/scheduled_task.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/model/scheduled_task_history.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/model/trigger_event.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/model/trigger_model.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/model/trigger_module.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/model/trigger_table.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/service/criteria_builder.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/service/extract_source.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/service/extract_utils.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/service/lock_clean.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/service/lock_helper.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/service/task_housekeeping.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/service/task_service.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/service/trigger_collector.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/storage/__init__.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/storage/change_data_json_history_service.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/storage/change_data_json_service.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/storage/change_data_record_history_service.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/storage/change_data_record_service.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/storage/collector_model_config_service.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/storage/collector_module_config_service.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/storage/collector_table_config_service.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/storage/competitive_lock_service.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/storage/scheduled_task_history_service.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/storage/scheduled_task_service.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/storage/trigger_event_service.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/storage/trigger_model_service.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/storage/trigger_module_service.py +0 -0
- {watchmen_collector_kernel-16.5.15 → watchmen_collector_kernel-16.5.17}/src/watchmen_collector_kernel/storage/trigger_table_service.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: watchmen-collector-kernel
|
3
|
-
Version: 16.5.
|
3
|
+
Version: 16.5.17
|
4
4
|
Summary:
|
5
5
|
License: MIT
|
6
6
|
Author: botlikes
|
@@ -19,11 +19,11 @@ Provides-Extra: oss
|
|
19
19
|
Provides-Extra: postgresql
|
20
20
|
Provides-Extra: s3
|
21
21
|
Requires-Dist: numpy (>=1.23.3,<2.0.0)
|
22
|
-
Requires-Dist: watchmen-data-kernel (==16.5.
|
23
|
-
Requires-Dist: watchmen-storage-mongodb (==16.5.
|
24
|
-
Requires-Dist: watchmen-storage-mssql (==16.5.
|
25
|
-
Requires-Dist: watchmen-storage-mysql (==16.5.
|
26
|
-
Requires-Dist: watchmen-storage-oracle (==16.5.
|
27
|
-
Requires-Dist: watchmen-storage-oss (==16.5.
|
28
|
-
Requires-Dist: watchmen-storage-postgresql (==16.5.
|
29
|
-
Requires-Dist: watchmen-storage-s3 (==16.5.
|
22
|
+
Requires-Dist: watchmen-data-kernel (==16.5.17)
|
23
|
+
Requires-Dist: watchmen-storage-mongodb (==16.5.17) ; extra == "mongodb"
|
24
|
+
Requires-Dist: watchmen-storage-mssql (==16.5.17) ; extra == "mssql"
|
25
|
+
Requires-Dist: watchmen-storage-mysql (==16.5.17) ; extra == "mysql"
|
26
|
+
Requires-Dist: watchmen-storage-oracle (==16.5.17) ; extra == "oracle"
|
27
|
+
Requires-Dist: watchmen-storage-oss (==16.5.17) ; extra == "oss"
|
28
|
+
Requires-Dist: watchmen-storage-postgresql (==16.5.17) ; extra == "postgresql"
|
29
|
+
Requires-Dist: watchmen-storage-s3 (==16.5.17) ; extra == "s3"
|
@@ -1,6 +1,6 @@
|
|
1
1
|
[tool.poetry]
|
2
2
|
name = "watchmen-collector-kernel"
|
3
|
-
version = "16.5.
|
3
|
+
version = "16.5.17"
|
4
4
|
description = ""
|
5
5
|
authors = ["botlikes <75356972+botlikes456@users.noreply.github.com>"]
|
6
6
|
license = "MIT"
|
@@ -11,14 +11,14 @@ packages = [
|
|
11
11
|
[tool.poetry.dependencies]
|
12
12
|
python = "^3.9"
|
13
13
|
numpy = "^1.23.3"
|
14
|
-
watchmen-data-kernel = "16.5.
|
15
|
-
watchmen-storage-mysql = { version = "16.5.
|
16
|
-
watchmen-storage-oracle = { version = "16.5.
|
17
|
-
watchmen-storage-mongodb = { version = "16.5.
|
18
|
-
watchmen-storage-mssql = { version = "16.5.
|
19
|
-
watchmen-storage-postgresql = { version = "16.5.
|
20
|
-
watchmen-storage-oss = { version = "16.5.
|
21
|
-
watchmen-storage-s3 = { version = "16.5.
|
14
|
+
watchmen-data-kernel = "16.5.17"
|
15
|
+
watchmen-storage-mysql = { version = "16.5.17", optional = true }
|
16
|
+
watchmen-storage-oracle = { version = "16.5.17", optional = true }
|
17
|
+
watchmen-storage-mongodb = { version = "16.5.17", optional = true }
|
18
|
+
watchmen-storage-mssql = { version = "16.5.17", optional = true }
|
19
|
+
watchmen-storage-postgresql = { version = "16.5.17", optional = true }
|
20
|
+
watchmen-storage-oss = { version = "16.5.17", optional = true }
|
21
|
+
watchmen-storage-s3 = { version = "16.5.17", optional = true }
|
22
22
|
|
23
23
|
[tool.poetry.dev-dependencies]
|
24
24
|
|
@@ -0,0 +1 @@
|
|
1
|
+
from .collector_cache_service import CollectorCacheService
|
watchmen_collector_kernel-16.5.17/src/watchmen_collector_kernel/cache/collector_cache_manger.py
ADDED
@@ -0,0 +1,55 @@
|
|
1
|
+
from cacheout import Cache
|
2
|
+
from watchmen_data_kernel.cache.cache_manager import cache_set
|
3
|
+
|
4
|
+
from watchmen_data_kernel.cache import configure_cache
|
5
|
+
|
6
|
+
|
7
|
+
class ModelConfigByNameCache(Cache):
|
8
|
+
pass
|
9
|
+
|
10
|
+
|
11
|
+
class TableConfigByNameCache(Cache):
|
12
|
+
pass
|
13
|
+
|
14
|
+
|
15
|
+
class TableConfigByTableNameCache(Cache):
|
16
|
+
pass
|
17
|
+
|
18
|
+
|
19
|
+
class TableConfigsByParentNameCache(Cache):
|
20
|
+
pass
|
21
|
+
|
22
|
+
|
23
|
+
configure_cache('MODEL_CONFIG_BY_NAME',
|
24
|
+
{'cache_class': ModelConfigByNameCache, 'maxsize': 512})
|
25
|
+
|
26
|
+
|
27
|
+
configure_cache('TABLE_CONFIG_BY_NAME',
|
28
|
+
{'cache_class': TableConfigByNameCache, 'maxsize': 512})
|
29
|
+
|
30
|
+
|
31
|
+
configure_cache('TABLE_CONFIG_BY_TABLE_NAME',
|
32
|
+
{'cache_class': TableConfigByTableNameCache, 'maxsize': 512})
|
33
|
+
|
34
|
+
|
35
|
+
configure_cache('TABLE_CONFIGS_BY_PARENT_NAME',
|
36
|
+
{'cache_class': TableConfigsByParentNameCache, 'maxsize': 512})
|
37
|
+
|
38
|
+
|
39
|
+
def get_model_config_by_name_cache() -> ModelConfigByNameCache:
|
40
|
+
return cache_set['MODEL_CONFIG_BY_NAME']
|
41
|
+
|
42
|
+
|
43
|
+
def get_table_config_by_name_cache() -> TableConfigByNameCache:
|
44
|
+
return cache_set['TABLE_CONFIG_BY_NAME']
|
45
|
+
|
46
|
+
|
47
|
+
def get_table_config_by_table_name_cache() -> TableConfigByTableNameCache:
|
48
|
+
return cache_set['TABLE_CONFIG_BY_TABLE_NAME']
|
49
|
+
|
50
|
+
|
51
|
+
def get_table_configs_by_parent_name_cache() -> TableConfigsByParentNameCache:
|
52
|
+
return cache_set['TABLE_CONFIGS_BY_PARENT_NAME']
|
53
|
+
|
54
|
+
|
55
|
+
|
watchmen_collector_kernel-16.5.17/src/watchmen_collector_kernel/cache/collector_cache_service.py
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
from .model_config_cache import ModelConfigCache, model_config_cache
|
2
|
+
from .table_config_cache import TableConfigCache, table_config_cache
|
3
|
+
|
4
|
+
|
5
|
+
class CollectorCacheService:
|
6
|
+
|
7
|
+
@staticmethod
|
8
|
+
def model_config() -> ModelConfigCache:
|
9
|
+
return model_config_cache
|
10
|
+
|
11
|
+
@staticmethod
|
12
|
+
def table_config() -> TableConfigCache:
|
13
|
+
return table_config_cache
|
14
|
+
|
15
|
+
@staticmethod
|
16
|
+
def clear_all() -> None:
|
17
|
+
CollectorCacheService.model_config().clear()
|
18
|
+
CollectorCacheService.table_config().clear()
|
@@ -0,0 +1,45 @@
|
|
1
|
+
from typing import List, Optional
|
2
|
+
|
3
|
+
from watchmen_collector_kernel.model import CollectorModelConfig
|
4
|
+
|
5
|
+
from watchmen_data_kernel.cache import InternalCache
|
6
|
+
|
7
|
+
from .collector_cache_manger import get_model_config_by_name_cache
|
8
|
+
from watchmen_collector_kernel.common import ask_collector_config_cache_enabled
|
9
|
+
|
10
|
+
|
11
|
+
class ModelConfigCache:
|
12
|
+
|
13
|
+
def __init__(self):
|
14
|
+
self.ByNameCache = InternalCache(cache=get_model_config_by_name_cache)
|
15
|
+
|
16
|
+
def put(self, model_config: CollectorModelConfig) -> Optional[CollectorModelConfig]:
|
17
|
+
if ask_collector_config_cache_enabled():
|
18
|
+
self.ByNameCache.remove(model_config.modelName)
|
19
|
+
# refresh other caches
|
20
|
+
existing_config = self.ByNameCache.put(model_config.modelName, model_config)
|
21
|
+
return existing_config
|
22
|
+
else:
|
23
|
+
return None
|
24
|
+
|
25
|
+
def get(self, model_name: str) -> Optional[CollectorModelConfig]:
|
26
|
+
if ask_collector_config_cache_enabled():
|
27
|
+
return self.ByNameCache.get(model_name)
|
28
|
+
else:
|
29
|
+
return None
|
30
|
+
|
31
|
+
def remove(self, model_name: str) -> Optional[CollectorModelConfig]:
|
32
|
+
if ask_collector_config_cache_enabled():
|
33
|
+
existing: Optional[CollectorModelConfig] = self.ByNameCache.remove(model_name)
|
34
|
+
return existing
|
35
|
+
else:
|
36
|
+
return None
|
37
|
+
|
38
|
+
def all(self) -> List[CollectorModelConfig]:
|
39
|
+
return list(self.ByNameCache.values())
|
40
|
+
|
41
|
+
def clear(self) -> None:
|
42
|
+
self.ByNameCache.clear()
|
43
|
+
|
44
|
+
|
45
|
+
model_config_cache = ModelConfigCache()
|
@@ -0,0 +1,89 @@
|
|
1
|
+
from typing import List, Optional, Dict
|
2
|
+
|
3
|
+
from watchmen_collector_kernel.model import CollectorTableConfig
|
4
|
+
|
5
|
+
from watchmen_data_kernel.cache import InternalCache
|
6
|
+
|
7
|
+
from .collector_cache_manger import get_table_config_by_name_cache, \
|
8
|
+
get_table_config_by_table_name_cache, get_table_configs_by_parent_name_cache
|
9
|
+
from watchmen_collector_kernel.common import ask_collector_config_cache_enabled
|
10
|
+
|
11
|
+
|
12
|
+
class TableConfigCache:
|
13
|
+
|
14
|
+
def __init__(self):
|
15
|
+
self.ByNameCache = InternalCache(cache=get_table_config_by_name_cache)
|
16
|
+
self.ByTableNameCache = InternalCache(cache=get_table_config_by_table_name_cache)
|
17
|
+
self.ByParentNameCache = InternalCache(cache=get_table_configs_by_parent_name_cache)
|
18
|
+
|
19
|
+
def put_config_by_name(self, table_config: CollectorTableConfig) -> Optional[CollectorTableConfig]:
|
20
|
+
if ask_collector_config_cache_enabled():
|
21
|
+
self.ByNameCache.remove(table_config.name)
|
22
|
+
existing_config = self.ByTableNameCache.put(table_config.name, table_config)
|
23
|
+
return existing_config
|
24
|
+
else:
|
25
|
+
return None
|
26
|
+
|
27
|
+
def get_config_by_name(self, name: str) -> Optional[CollectorTableConfig]:
|
28
|
+
if ask_collector_config_cache_enabled():
|
29
|
+
return self.ByNameCache.get(name)
|
30
|
+
else:
|
31
|
+
return None
|
32
|
+
|
33
|
+
def remove_config_by_name(self, name: str) -> Optional[CollectorTableConfig]:
|
34
|
+
if ask_collector_config_cache_enabled():
|
35
|
+
existing: Optional[CollectorTableConfig] = self.ByNameCache.remove(name)
|
36
|
+
return existing
|
37
|
+
else:
|
38
|
+
return None
|
39
|
+
|
40
|
+
def put_config_by_table_name(self, table_config: CollectorTableConfig) -> Optional[CollectorTableConfig]:
|
41
|
+
if ask_collector_config_cache_enabled():
|
42
|
+
self.ByTableNameCache.remove(table_config.tableName)
|
43
|
+
existing_config = self.ByTableNameCache.put(table_config.tableName, table_config)
|
44
|
+
return existing_config
|
45
|
+
else:
|
46
|
+
return None
|
47
|
+
|
48
|
+
def get_config_by_table_name(self, table_name: str) -> Optional[CollectorTableConfig]:
|
49
|
+
if ask_collector_config_cache_enabled():
|
50
|
+
return self.ByTableNameCache.get(table_name)
|
51
|
+
else:
|
52
|
+
return None
|
53
|
+
|
54
|
+
def remove_config_by_table_name(self, table_name: str) -> Optional[CollectorTableConfig]:
|
55
|
+
if ask_collector_config_cache_enabled():
|
56
|
+
existing: Optional[CollectorTableConfig] = self.ByTableNameCache.remove(table_name)
|
57
|
+
return existing
|
58
|
+
else:
|
59
|
+
return None
|
60
|
+
|
61
|
+
def put_configs_by_parent_name(self, parent_name: str,
|
62
|
+
configs: List[CollectorTableConfig]) -> Optional[List[CollectorTableConfig]]:
|
63
|
+
if ask_collector_config_cache_enabled():
|
64
|
+
self.ByParentNameCache.remove(parent_name)
|
65
|
+
existing_configs = self.ByParentNameCache.put(parent_name, configs)
|
66
|
+
return existing_configs
|
67
|
+
else:
|
68
|
+
return None
|
69
|
+
|
70
|
+
def get_configs_by_parent_name(self, parent_name: str) -> Optional[List[CollectorTableConfig]]:
|
71
|
+
if ask_collector_config_cache_enabled():
|
72
|
+
return self.ByParentNameCache.get(parent_name)
|
73
|
+
else:
|
74
|
+
return None
|
75
|
+
|
76
|
+
def remove_configs_by_parent_name(self, parent_name: str) -> Optional[List[CollectorTableConfig]]:
|
77
|
+
if ask_collector_config_cache_enabled():
|
78
|
+
existing_configs: Optional[List[CollectorTableConfig]] = self.ByParentNameCache.remove(parent_name)
|
79
|
+
return existing_configs
|
80
|
+
else:
|
81
|
+
return None
|
82
|
+
|
83
|
+
def clear(self) -> None:
|
84
|
+
self.ByNameCache.clear()
|
85
|
+
self.ByTableNameCache.clear()
|
86
|
+
self.ByParentNameCache.clear()
|
87
|
+
|
88
|
+
|
89
|
+
table_config_cache = TableConfigCache()
|
@@ -1,3 +1,5 @@
|
|
1
1
|
from .constants import CHANGE_RECORD_ID, TENANT_ID, IS_MERGED, LEFT_BRACE, RIGHT_BRACE, COMMA, \
|
2
2
|
IS_POSTED, CHANGE_JSON_ID, WAVE, IS_FINISHED, IS_EXTRACTED, MODEL_TRIGGER_ID
|
3
|
-
from .settings import ask_lock_clean_interval, ask_lock_clean_timeout, ask_partial_size
|
3
|
+
from .settings import ask_lock_clean_interval, ask_lock_clean_timeout, ask_partial_size, \
|
4
|
+
ask_collector_config_cache_enabled
|
5
|
+
from .exception import CollectorKernelException
|
@@ -9,6 +9,8 @@ class CollectorSettings(BaseSettings):
|
|
9
9
|
LOCK_CLEAN_TIMEOUT: int = 3600
|
10
10
|
PARTIAL_SIZE: int = 100
|
11
11
|
|
12
|
+
COLLECTOR_CONFIG_CACHE_ENABLED: bool = True # enable collector config cache heart beat
|
13
|
+
|
12
14
|
class Config:
|
13
15
|
# secrets_dir = '/var/run'
|
14
16
|
env_file = '.env'
|
@@ -30,3 +32,7 @@ def ask_lock_clean_timeout() -> int:
|
|
30
32
|
|
31
33
|
def ask_partial_size() -> int:
|
32
34
|
return collector_settings.PARTIAL_SIZE
|
35
|
+
|
36
|
+
|
37
|
+
def ask_collector_config_cache_enabled() -> bool:
|
38
|
+
return collector_settings.COLLECTOR_CONFIG_CACHE_ENABLED
|
@@ -6,3 +6,4 @@ from .extract_source import SourceTableExtractor
|
|
6
6
|
from .task_service import get_task_service
|
7
7
|
from .criteria_builder import CriteriaBuilder
|
8
8
|
from .extract_utils import build_audit_column_criteria, cal_array2d_diff, build_data_id, get_data_id
|
9
|
+
from .table_config_service import get_table_config_service
|
@@ -3,6 +3,7 @@ from typing import Optional, Dict, Any, Tuple
|
|
3
3
|
|
4
4
|
from watchmen_auth import PrincipalService
|
5
5
|
from watchmen_collector_kernel.model import CollectorTableConfig
|
6
|
+
from .table_config_service import get_table_config_service
|
6
7
|
from .extract_source import SourceTableExtractor
|
7
8
|
from watchmen_collector_kernel.storage import get_collector_table_config_service
|
8
9
|
from watchmen_storage import TransactionalStorageSPI, SnowflakeGenerator
|
@@ -23,6 +24,7 @@ class DataCaptureService:
|
|
23
24
|
self.collector_table_config_service = get_collector_table_config_service(self.meta_storage,
|
24
25
|
self.snowflake_generator,
|
25
26
|
self.principal_service)
|
27
|
+
self.table_config_service = get_table_config_service(self.principal_service)
|
26
28
|
|
27
29
|
def find_data_by_data_id(self, config: CollectorTableConfig, data_id: Dict) -> Optional[Dict[str, Any]]:
|
28
30
|
return SourceTableExtractor(config, self.principal_service).find_by_id(data_id)
|
@@ -30,7 +32,7 @@ class DataCaptureService:
|
|
30
32
|
def find_parent_node(self, config: CollectorTableConfig,
|
31
33
|
data_: Dict) -> Tuple[CollectorTableConfig, Optional[Dict[str, Any]]]:
|
32
34
|
if config.parentName:
|
33
|
-
parent_config = self.
|
35
|
+
parent_config = self.table_config_service.find_by_name(config.parentName)
|
34
36
|
parent_data = SourceTableExtractor(parent_config, self.principal_service).find(
|
35
37
|
ArrayHelper(config.joinKeys).map(lambda join_key: build_criteria_by_join_key(join_key, data_)).to_list()
|
36
38
|
)
|
@@ -44,7 +46,7 @@ class DataCaptureService:
|
|
44
46
|
def build_json(self,
|
45
47
|
config: CollectorTableConfig,
|
46
48
|
data: Dict):
|
47
|
-
child_configs = self.
|
49
|
+
child_configs = self.table_config_service.find_by_parent_name(config.name)
|
48
50
|
if child_configs:
|
49
51
|
ArrayHelper(child_configs).map(lambda child_config: self.get_child_data(child_config, data))
|
50
52
|
|
watchmen_collector_kernel-16.5.17/src/watchmen_collector_kernel/service/model_config_service.py
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
from typing import Optional
|
2
|
+
|
3
|
+
from watchmen_meta.common import ask_meta_storage, ask_snowflake_generator
|
4
|
+
|
5
|
+
from watchmen_collector_kernel.storage import get_collector_model_config_service
|
6
|
+
from watchmen_collector_kernel.cache import CollectorCacheService
|
7
|
+
from watchmen_collector_kernel.common import CollectorKernelException
|
8
|
+
from watchmen_collector_kernel.model import CollectorModelConfig
|
9
|
+
|
10
|
+
from watchmen_auth import PrincipalService
|
11
|
+
|
12
|
+
|
13
|
+
class ModelConfigService:
|
14
|
+
|
15
|
+
def __init__(self, principal_service: PrincipalService):
|
16
|
+
self.principalService = principal_service
|
17
|
+
|
18
|
+
def find_by_name(self, model_name: str) -> Optional[CollectorModelConfig]:
|
19
|
+
config = CollectorCacheService.model_config().get(model_name)
|
20
|
+
if config is not None:
|
21
|
+
return config
|
22
|
+
|
23
|
+
storage_service = get_collector_model_config_service(
|
24
|
+
ask_meta_storage(), ask_snowflake_generator(), self.principalService
|
25
|
+
)
|
26
|
+
model_config: CollectorModelConfig = storage_service.find_by_name(model_name)
|
27
|
+
if model_config is None:
|
28
|
+
return None
|
29
|
+
|
30
|
+
CollectorCacheService.model_config().put(model_config)
|
31
|
+
return model_config
|
32
|
+
|
33
|
+
|
34
|
+
def get_model_config_service(principal_service: PrincipalService) -> ModelConfigService:
|
35
|
+
return ModelConfigService(principal_service)
|
watchmen_collector_kernel-16.5.17/src/watchmen_collector_kernel/service/table_config_service.py
ADDED
@@ -0,0 +1,70 @@
|
|
1
|
+
from typing import Optional, List
|
2
|
+
|
3
|
+
from watchmen_utilities import is_blank
|
4
|
+
|
5
|
+
from watchmen_meta.common import ask_meta_storage, ask_snowflake_generator
|
6
|
+
|
7
|
+
from watchmen_collector_kernel.storage import get_collector_table_config_service
|
8
|
+
from watchmen_collector_kernel.cache import CollectorCacheService
|
9
|
+
from watchmen_collector_kernel.common import CollectorKernelException
|
10
|
+
from watchmen_collector_kernel.model import CollectorTableConfig
|
11
|
+
|
12
|
+
from watchmen_auth import PrincipalService
|
13
|
+
|
14
|
+
|
15
|
+
class TableConfigService:
|
16
|
+
|
17
|
+
def __init__(self, principal_service: PrincipalService):
|
18
|
+
self.principalService = principal_service
|
19
|
+
|
20
|
+
def find_by_table_name(self, table_name: str) -> Optional[CollectorTableConfig]:
|
21
|
+
config = CollectorCacheService.table_config().get_config_by_table_name(table_name)
|
22
|
+
if config is not None:
|
23
|
+
return config
|
24
|
+
|
25
|
+
storage_service = get_collector_table_config_service(
|
26
|
+
ask_meta_storage(), ask_snowflake_generator(), self.principalService
|
27
|
+
)
|
28
|
+
table_config: CollectorTableConfig = storage_service.find_by_table_name(table_name)
|
29
|
+
if table_config is None:
|
30
|
+
return None
|
31
|
+
|
32
|
+
CollectorCacheService.table_config().put_config_by_table_name(table_config)
|
33
|
+
return table_config
|
34
|
+
|
35
|
+
def find_by_name(self, name: str) -> Optional[CollectorTableConfig]:
|
36
|
+
config = CollectorCacheService.table_config().get_config_by_name(name)
|
37
|
+
if config is not None:
|
38
|
+
return config
|
39
|
+
|
40
|
+
storage_service = get_collector_table_config_service(
|
41
|
+
ask_meta_storage(), ask_snowflake_generator(), self.principalService
|
42
|
+
)
|
43
|
+
table_config: CollectorTableConfig = storage_service.find_by_name(name)
|
44
|
+
if table_config is None:
|
45
|
+
return None
|
46
|
+
|
47
|
+
CollectorCacheService.table_config().put_config_by_name(table_config)
|
48
|
+
return table_config
|
49
|
+
|
50
|
+
def find_by_parent_name(self, parent_name: Optional[str]) -> Optional[List[CollectorTableConfig]]:
|
51
|
+
if is_blank(parent_name):
|
52
|
+
return None
|
53
|
+
|
54
|
+
configs = CollectorCacheService.table_config().get_configs_by_parent_name(parent_name)
|
55
|
+
if configs is not None:
|
56
|
+
return configs
|
57
|
+
|
58
|
+
storage_service = get_collector_table_config_service(
|
59
|
+
ask_meta_storage(), ask_snowflake_generator(), self.principalService
|
60
|
+
)
|
61
|
+
table_configs: List[CollectorTableConfig] = storage_service.find_by_parent_name(parent_name)
|
62
|
+
if table_configs is None:
|
63
|
+
return None
|
64
|
+
|
65
|
+
CollectorCacheService.table_config().put_configs_by_parent_name(parent_name, table_configs)
|
66
|
+
return table_configs
|
67
|
+
|
68
|
+
|
69
|
+
def get_table_config_service(principal_service: PrincipalService) -> TableConfigService:
|
70
|
+
return TableConfigService(principal_service)
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|