teradataml 20.0.0.1__py3-none-any.whl → 20.0.0.3__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 teradataml might be problematic. Click here for more details.

Files changed (240) hide show
  1. teradataml/LICENSE-3RD-PARTY.pdf +0 -0
  2. teradataml/LICENSE.pdf +0 -0
  3. teradataml/README.md +306 -0
  4. teradataml/__init__.py +10 -3
  5. teradataml/_version.py +1 -1
  6. teradataml/analytics/__init__.py +3 -2
  7. teradataml/analytics/analytic_function_executor.py +299 -16
  8. teradataml/analytics/analytic_query_generator.py +92 -0
  9. teradataml/analytics/byom/__init__.py +3 -2
  10. teradataml/analytics/json_parser/metadata.py +13 -3
  11. teradataml/analytics/json_parser/utils.py +13 -6
  12. teradataml/analytics/meta_class.py +40 -1
  13. teradataml/analytics/sqle/DecisionTreePredict.py +1 -1
  14. teradataml/analytics/sqle/__init__.py +11 -2
  15. teradataml/analytics/table_operator/__init__.py +4 -3
  16. teradataml/analytics/uaf/__init__.py +21 -2
  17. teradataml/analytics/utils.py +66 -1
  18. teradataml/analytics/valib.py +1 -1
  19. teradataml/automl/__init__.py +1502 -323
  20. teradataml/automl/custom_json_utils.py +139 -61
  21. teradataml/automl/data_preparation.py +247 -307
  22. teradataml/automl/data_transformation.py +32 -12
  23. teradataml/automl/feature_engineering.py +325 -86
  24. teradataml/automl/model_evaluation.py +44 -35
  25. teradataml/automl/model_training.py +122 -153
  26. teradataml/catalog/byom.py +8 -8
  27. teradataml/clients/pkce_client.py +1 -1
  28. teradataml/common/__init__.py +2 -1
  29. teradataml/common/constants.py +72 -0
  30. teradataml/common/deprecations.py +13 -7
  31. teradataml/common/garbagecollector.py +152 -120
  32. teradataml/common/messagecodes.py +11 -2
  33. teradataml/common/messages.py +4 -1
  34. teradataml/common/sqlbundle.py +26 -4
  35. teradataml/common/utils.py +225 -14
  36. teradataml/common/wrapper_utils.py +1 -1
  37. teradataml/context/context.py +82 -2
  38. teradataml/data/SQL_Fundamentals.pdf +0 -0
  39. teradataml/data/complaints_test_tokenized.csv +353 -0
  40. teradataml/data/complaints_tokens_model.csv +348 -0
  41. teradataml/data/covid_confirm_sd.csv +83 -0
  42. teradataml/data/dataframe_example.json +27 -1
  43. teradataml/data/docs/sqle/docs_17_20/CFilter.py +132 -0
  44. teradataml/data/docs/sqle/docs_17_20/NaiveBayes.py +162 -0
  45. teradataml/data/docs/sqle/docs_17_20/OutlierFilterFit.py +2 -0
  46. teradataml/data/docs/sqle/docs_17_20/Pivoting.py +279 -0
  47. teradataml/data/docs/sqle/docs_17_20/Shap.py +203 -0
  48. teradataml/data/docs/sqle/docs_17_20/TDNaiveBayesPredict.py +189 -0
  49. teradataml/data/docs/sqle/docs_17_20/TFIDF.py +142 -0
  50. teradataml/data/docs/sqle/docs_17_20/TextParser.py +3 -3
  51. teradataml/data/docs/sqle/docs_17_20/Unpivoting.py +216 -0
  52. teradataml/data/docs/tableoperator/docs_17_20/Image2Matrix.py +118 -0
  53. teradataml/data/docs/uaf/docs_17_20/ACF.py +1 -10
  54. teradataml/data/docs/uaf/docs_17_20/ArimaEstimate.py +1 -1
  55. teradataml/data/docs/uaf/docs_17_20/ArimaForecast.py +35 -5
  56. teradataml/data/docs/uaf/docs_17_20/ArimaValidate.py +3 -1
  57. teradataml/data/docs/uaf/docs_17_20/ArimaXEstimate.py +293 -0
  58. teradataml/data/docs/uaf/docs_17_20/AutoArima.py +354 -0
  59. teradataml/data/docs/uaf/docs_17_20/BreuschGodfrey.py +3 -2
  60. teradataml/data/docs/uaf/docs_17_20/BreuschPaganGodfrey.py +1 -1
  61. teradataml/data/docs/uaf/docs_17_20/Convolve.py +13 -10
  62. teradataml/data/docs/uaf/docs_17_20/Convolve2.py +4 -1
  63. teradataml/data/docs/uaf/docs_17_20/CopyArt.py +145 -0
  64. teradataml/data/docs/uaf/docs_17_20/CumulPeriodogram.py +5 -4
  65. teradataml/data/docs/uaf/docs_17_20/DFFT2Conv.py +4 -4
  66. teradataml/data/docs/uaf/docs_17_20/DWT.py +235 -0
  67. teradataml/data/docs/uaf/docs_17_20/DWT2D.py +214 -0
  68. teradataml/data/docs/uaf/docs_17_20/DickeyFuller.py +18 -21
  69. teradataml/data/docs/uaf/docs_17_20/DurbinWatson.py +1 -1
  70. teradataml/data/docs/uaf/docs_17_20/ExtractResults.py +1 -1
  71. teradataml/data/docs/uaf/docs_17_20/FilterFactory1d.py +160 -0
  72. teradataml/data/docs/uaf/docs_17_20/GenseriesSinusoids.py +1 -1
  73. teradataml/data/docs/uaf/docs_17_20/GoldfeldQuandt.py +9 -31
  74. teradataml/data/docs/uaf/docs_17_20/HoltWintersForecaster.py +4 -2
  75. teradataml/data/docs/uaf/docs_17_20/IDFFT2.py +1 -8
  76. teradataml/data/docs/uaf/docs_17_20/IDWT.py +236 -0
  77. teradataml/data/docs/uaf/docs_17_20/IDWT2D.py +226 -0
  78. teradataml/data/docs/uaf/docs_17_20/IQR.py +134 -0
  79. teradataml/data/docs/uaf/docs_17_20/LineSpec.py +1 -1
  80. teradataml/data/docs/uaf/docs_17_20/LinearRegr.py +2 -2
  81. teradataml/data/docs/uaf/docs_17_20/MAMean.py +3 -3
  82. teradataml/data/docs/uaf/docs_17_20/Matrix2Image.py +297 -0
  83. teradataml/data/docs/uaf/docs_17_20/MatrixMultiply.py +15 -6
  84. teradataml/data/docs/uaf/docs_17_20/PACF.py +0 -1
  85. teradataml/data/docs/uaf/docs_17_20/Portman.py +2 -2
  86. teradataml/data/docs/uaf/docs_17_20/PowerSpec.py +2 -2
  87. teradataml/data/docs/uaf/docs_17_20/Resample.py +9 -1
  88. teradataml/data/docs/uaf/docs_17_20/SAX.py +246 -0
  89. teradataml/data/docs/uaf/docs_17_20/SeasonalNormalize.py +17 -10
  90. teradataml/data/docs/uaf/docs_17_20/SignifPeriodicities.py +1 -1
  91. teradataml/data/docs/uaf/docs_17_20/WhitesGeneral.py +3 -1
  92. teradataml/data/docs/uaf/docs_17_20/WindowDFFT.py +368 -0
  93. teradataml/data/dwt2d_dataTable.csv +65 -0
  94. teradataml/data/dwt_dataTable.csv +8 -0
  95. teradataml/data/dwt_filterTable.csv +3 -0
  96. teradataml/data/finance_data4.csv +13 -0
  97. teradataml/data/grocery_transaction.csv +19 -0
  98. teradataml/data/idwt2d_dataTable.csv +5 -0
  99. teradataml/data/idwt_dataTable.csv +8 -0
  100. teradataml/data/idwt_filterTable.csv +3 -0
  101. teradataml/data/interval_data.csv +5 -0
  102. teradataml/data/jsons/paired_functions.json +14 -0
  103. teradataml/data/jsons/sqle/17.20/TD_CFilter.json +118 -0
  104. teradataml/data/jsons/sqle/17.20/TD_NaiveBayes.json +193 -0
  105. teradataml/data/jsons/sqle/17.20/TD_NaiveBayesPredict.json +212 -0
  106. teradataml/data/jsons/sqle/17.20/TD_OneClassSVM.json +9 -9
  107. teradataml/data/jsons/sqle/17.20/TD_Pivoting.json +280 -0
  108. teradataml/data/jsons/sqle/17.20/TD_Shap.json +222 -0
  109. teradataml/data/jsons/sqle/17.20/TD_TFIDF.json +162 -0
  110. teradataml/data/jsons/sqle/17.20/TD_TextParser.json +1 -1
  111. teradataml/data/jsons/sqle/17.20/TD_Unpivoting.json +235 -0
  112. teradataml/data/jsons/sqle/20.00/TD_KMeans.json +250 -0
  113. teradataml/data/jsons/sqle/20.00/TD_SMOTE.json +266 -0
  114. teradataml/data/jsons/sqle/20.00/TD_VectorDistance.json +278 -0
  115. teradataml/data/jsons/storedprocedure/17.20/TD_COPYART.json +71 -0
  116. teradataml/data/jsons/storedprocedure/17.20/TD_FILTERFACTORY1D.json +150 -0
  117. teradataml/data/jsons/tableoperator/17.20/IMAGE2MATRIX.json +53 -0
  118. teradataml/data/jsons/uaf/17.20/TD_ACF.json +1 -18
  119. teradataml/data/jsons/uaf/17.20/TD_ARIMAESTIMATE.json +3 -16
  120. teradataml/data/jsons/uaf/17.20/TD_ARIMAFORECAST.json +0 -3
  121. teradataml/data/jsons/uaf/17.20/TD_ARIMAVALIDATE.json +5 -3
  122. teradataml/data/jsons/uaf/17.20/TD_ARIMAXESTIMATE.json +362 -0
  123. teradataml/data/jsons/uaf/17.20/TD_AUTOARIMA.json +469 -0
  124. teradataml/data/jsons/uaf/17.20/TD_BINARYMATRIXOP.json +0 -3
  125. teradataml/data/jsons/uaf/17.20/TD_BINARYSERIESOP.json +0 -2
  126. teradataml/data/jsons/uaf/17.20/TD_BREUSCH_GODFREY.json +2 -1
  127. teradataml/data/jsons/uaf/17.20/TD_BREUSCH_PAGAN_GODFREY.json +2 -5
  128. teradataml/data/jsons/uaf/17.20/TD_CONVOLVE.json +3 -6
  129. teradataml/data/jsons/uaf/17.20/TD_CONVOLVE2.json +1 -3
  130. teradataml/data/jsons/uaf/17.20/TD_CUMUL_PERIODOGRAM.json +0 -5
  131. teradataml/data/jsons/uaf/17.20/TD_DFFT.json +1 -4
  132. teradataml/data/jsons/uaf/17.20/TD_DFFT2.json +2 -7
  133. teradataml/data/jsons/uaf/17.20/TD_DFFT2CONV.json +1 -2
  134. teradataml/data/jsons/uaf/17.20/TD_DFFTCONV.json +0 -2
  135. teradataml/data/jsons/uaf/17.20/TD_DICKEY_FULLER.json +10 -19
  136. teradataml/data/jsons/uaf/17.20/TD_DTW.json +3 -6
  137. teradataml/data/jsons/uaf/17.20/TD_DWT.json +173 -0
  138. teradataml/data/jsons/uaf/17.20/TD_DWT2D.json +160 -0
  139. teradataml/data/jsons/uaf/17.20/TD_FITMETRICS.json +1 -1
  140. teradataml/data/jsons/uaf/17.20/TD_GOLDFELD_QUANDT.json +16 -30
  141. teradataml/data/jsons/uaf/17.20/{TD_HOLT_WINTERS_FORECAST.json → TD_HOLT_WINTERS_FORECASTER.json} +1 -2
  142. teradataml/data/jsons/uaf/17.20/TD_IDFFT2.json +1 -15
  143. teradataml/data/jsons/uaf/17.20/TD_IDWT.json +162 -0
  144. teradataml/data/jsons/uaf/17.20/TD_IDWT2D.json +149 -0
  145. teradataml/data/jsons/uaf/17.20/TD_IQR.json +117 -0
  146. teradataml/data/jsons/uaf/17.20/TD_LINEAR_REGR.json +1 -1
  147. teradataml/data/jsons/uaf/17.20/TD_LINESPEC.json +1 -1
  148. teradataml/data/jsons/uaf/17.20/TD_MAMEAN.json +1 -3
  149. teradataml/data/jsons/uaf/17.20/TD_MATRIX2IMAGE.json +209 -0
  150. teradataml/data/jsons/uaf/17.20/TD_PACF.json +2 -2
  151. teradataml/data/jsons/uaf/17.20/TD_POWERSPEC.json +5 -5
  152. teradataml/data/jsons/uaf/17.20/TD_RESAMPLE.json +48 -28
  153. teradataml/data/jsons/uaf/17.20/TD_SAX.json +210 -0
  154. teradataml/data/jsons/uaf/17.20/TD_SEASONALNORMALIZE.json +12 -6
  155. teradataml/data/jsons/uaf/17.20/TD_SIMPLEEXP.json +0 -1
  156. teradataml/data/jsons/uaf/17.20/TD_TRACKINGOP.json +8 -8
  157. teradataml/data/jsons/uaf/17.20/TD_UNDIFF.json +1 -1
  158. teradataml/data/jsons/uaf/17.20/TD_UNNORMALIZE.json +1 -1
  159. teradataml/data/jsons/uaf/17.20/TD_WINDOWDFFT.json +410 -0
  160. teradataml/data/load_example_data.py +8 -2
  161. teradataml/data/medical_readings.csv +101 -0
  162. teradataml/data/naivebayestextclassifier_example.json +1 -1
  163. teradataml/data/naivebayestextclassifierpredict_example.json +11 -0
  164. teradataml/data/patient_profile.csv +101 -0
  165. teradataml/data/peppers.png +0 -0
  166. teradataml/data/real_values.csv +14 -0
  167. teradataml/data/sax_example.json +8 -0
  168. teradataml/data/scripts/deploy_script.py +1 -1
  169. teradataml/data/scripts/lightgbm/dataset.template +157 -0
  170. teradataml/data/scripts/lightgbm/lightgbm_class_functions.template +247 -0
  171. teradataml/data/scripts/lightgbm/lightgbm_function.template +216 -0
  172. teradataml/data/scripts/lightgbm/lightgbm_sklearn.template +159 -0
  173. teradataml/data/scripts/sklearn/sklearn_fit.py +194 -160
  174. teradataml/data/scripts/sklearn/sklearn_fit_predict.py +136 -115
  175. teradataml/data/scripts/sklearn/sklearn_function.template +34 -16
  176. teradataml/data/scripts/sklearn/sklearn_model_selection_split.py +155 -137
  177. teradataml/data/scripts/sklearn/sklearn_neighbors.py +1 -1
  178. teradataml/data/scripts/sklearn/sklearn_score.py +12 -3
  179. teradataml/data/scripts/sklearn/sklearn_transform.py +162 -24
  180. teradataml/data/star_pivot.csv +8 -0
  181. teradataml/data/target_udt_data.csv +8 -0
  182. teradataml/data/templates/open_source_ml.json +3 -1
  183. teradataml/data/teradataml_example.json +20 -1
  184. teradataml/data/timestamp_data.csv +4 -0
  185. teradataml/data/titanic_dataset_unpivoted.csv +19 -0
  186. teradataml/data/uaf_example.json +55 -1
  187. teradataml/data/unpivot_example.json +15 -0
  188. teradataml/data/url_data.csv +9 -0
  189. teradataml/data/vectordistance_example.json +4 -0
  190. teradataml/data/windowdfft.csv +16 -0
  191. teradataml/dataframe/copy_to.py +1 -1
  192. teradataml/dataframe/data_transfer.py +5 -3
  193. teradataml/dataframe/dataframe.py +1002 -201
  194. teradataml/dataframe/fastload.py +3 -3
  195. teradataml/dataframe/functions.py +867 -0
  196. teradataml/dataframe/row.py +160 -0
  197. teradataml/dataframe/setop.py +2 -2
  198. teradataml/dataframe/sql.py +840 -33
  199. teradataml/dataframe/window.py +1 -1
  200. teradataml/dbutils/dbutils.py +878 -34
  201. teradataml/dbutils/filemgr.py +48 -1
  202. teradataml/geospatial/geodataframe.py +1 -1
  203. teradataml/geospatial/geodataframecolumn.py +1 -1
  204. teradataml/hyperparameter_tuner/optimizer.py +13 -13
  205. teradataml/lib/aed_0_1.dll +0 -0
  206. teradataml/opensource/__init__.py +1 -1
  207. teradataml/opensource/{sklearn/_class.py → _class.py} +102 -17
  208. teradataml/opensource/_lightgbm.py +950 -0
  209. teradataml/opensource/{sklearn/_wrapper_utils.py → _wrapper_utils.py} +1 -2
  210. teradataml/opensource/{sklearn/constants.py → constants.py} +13 -10
  211. teradataml/opensource/sklearn/__init__.py +0 -1
  212. teradataml/opensource/sklearn/_sklearn_wrapper.py +1019 -574
  213. teradataml/options/__init__.py +9 -23
  214. teradataml/options/configure.py +42 -4
  215. teradataml/options/display.py +2 -2
  216. teradataml/plot/axis.py +4 -4
  217. teradataml/scriptmgmt/UserEnv.py +13 -9
  218. teradataml/scriptmgmt/lls_utils.py +77 -23
  219. teradataml/store/__init__.py +13 -0
  220. teradataml/store/feature_store/__init__.py +0 -0
  221. teradataml/store/feature_store/constants.py +291 -0
  222. teradataml/store/feature_store/feature_store.py +2223 -0
  223. teradataml/store/feature_store/models.py +1505 -0
  224. teradataml/store/vector_store/__init__.py +1586 -0
  225. teradataml/table_operators/Script.py +2 -2
  226. teradataml/table_operators/TableOperator.py +106 -20
  227. teradataml/table_operators/query_generator.py +3 -0
  228. teradataml/table_operators/table_operator_query_generator.py +3 -1
  229. teradataml/table_operators/table_operator_util.py +102 -56
  230. teradataml/table_operators/templates/dataframe_register.template +69 -0
  231. teradataml/table_operators/templates/dataframe_udf.template +63 -0
  232. teradataml/telemetry_utils/__init__.py +0 -0
  233. teradataml/telemetry_utils/queryband.py +52 -0
  234. teradataml/utils/dtypes.py +4 -2
  235. teradataml/utils/validators.py +34 -2
  236. {teradataml-20.0.0.1.dist-info → teradataml-20.0.0.3.dist-info}/METADATA +311 -3
  237. {teradataml-20.0.0.1.dist-info → teradataml-20.0.0.3.dist-info}/RECORD +240 -157
  238. {teradataml-20.0.0.1.dist-info → teradataml-20.0.0.3.dist-info}/WHEEL +0 -0
  239. {teradataml-20.0.0.1.dist-info → teradataml-20.0.0.3.dist-info}/top_level.txt +0 -0
  240. {teradataml-20.0.0.1.dist-info → teradataml-20.0.0.3.dist-info}/zip-safe +0 -0
@@ -0,0 +1,291 @@
1
+ """
2
+ Copyright (c) 2024 by Teradata Corporation. All rights reserved.
3
+ TERADATA CORPORATION CONFIDENTIAL AND TRADE SECRET
4
+
5
+ Primary Owner: pradeep.garre@teradata.com
6
+ Secondary Owner: adithya.avvaru@teradata.com
7
+
8
+ This file implements constants required for Teradata Enterprise Feature Store.
9
+ """
10
+
11
+ from teradatasqlalchemy.types import *
12
+ from enum import Enum
13
+
14
+ # Template for creating the triggers on
15
+ # corresponding tables.
16
+ _EFS_TRIGGER_TEMPLATE = """
17
+ CREATE TRIGGER {{schema_name}}.{table}_trg
18
+ AFTER DELETE ON {{schema_name}}.{table}
19
+ REFERENCING OLD AS DeletedRow
20
+ FOR EACH ROW
21
+ INSERT INTO {{schema_name}}.{table}_staging
22
+ VALUES ({columns},
23
+ current_timestamp(6)
24
+ )
25
+ """
26
+
27
+ # Table for storing the features.
28
+ EFS_FEATURES_SPEC = {
29
+ "table_name": "_efs_features",
30
+ "columns": {
31
+ "name": VARCHAR(200),
32
+ "column_name": VARCHAR(200),
33
+ "description": VARCHAR(1024),
34
+ "tags": VARCHAR(2000),
35
+ "data_type": VARCHAR(1024),
36
+ "feature_type": VARCHAR(100),
37
+ "status": VARCHAR(100),
38
+ "creation_time": TIMESTAMP,
39
+ "modified_time": TIMESTAMP
40
+ },
41
+ "primary_index": "name"
42
+ }
43
+
44
+ # Table for storing the features.
45
+ EFS_FEATURES_STAGING_SPEC = {
46
+ "table_name": "{}_staging".format(EFS_FEATURES_SPEC["table_name"]),
47
+ "columns": {
48
+ "name": VARCHAR(200),
49
+ "column_name": VARCHAR(200),
50
+ "description": VARCHAR(1024),
51
+ "tags": VARCHAR(2000),
52
+ "data_type": VARCHAR(1024),
53
+ "feature_type": VARCHAR(100),
54
+ "status": VARCHAR(100),
55
+ "creation_time": TIMESTAMP,
56
+ "modified_time": TIMESTAMP,
57
+ "archived_time": TIMESTAMP
58
+ },
59
+ "primary_index": None
60
+ }
61
+
62
+ EFS_FEATURES_TRG = _EFS_TRIGGER_TEMPLATE.format(
63
+ table=EFS_FEATURES_SPEC["table_name"],
64
+ columns=", ".join(("DeletedRow.{}".format(col) for col in EFS_FEATURES_SPEC["columns"]))
65
+ )
66
+
67
+ # Table for storing the entities. Every Dataset has column(s) that are unique.
68
+ # This table holds all such columns.
69
+ EFS_ENTITY_SPEC = {
70
+ "table_name": "_efs_entity",
71
+ "columns": {
72
+ "name": VARCHAR(200),
73
+ "description": VARCHAR(200),
74
+ "creation_time": TIMESTAMP,
75
+ "modified_time": TIMESTAMP
76
+ },
77
+ "primary_index": ["name"]
78
+ }
79
+
80
+ EFS_ENTITY_STAGING_SPEC = {
81
+ "table_name": "{}_staging".format(EFS_ENTITY_SPEC["table_name"]),
82
+ "columns": {
83
+ "name": VARCHAR(200),
84
+ "description": VARCHAR(200),
85
+ "creation_time": TIMESTAMP,
86
+ "modified_time": TIMESTAMP,
87
+ "archived_time": TIMESTAMP
88
+ },
89
+ "primary_index": None
90
+ }
91
+
92
+ EFS_ENTITY_TRG = _EFS_TRIGGER_TEMPLATE.format(
93
+ table=EFS_ENTITY_SPEC["table_name"],
94
+ columns=", ".join(("DeletedRow.{}".format(col) for col in EFS_ENTITY_SPEC["columns"]))
95
+ )
96
+
97
+ EFS_ENTITY_XREF_SPEC = {
98
+ "table_name": "_efs_entity_xref",
99
+ "columns": {
100
+ "entity_name": VARCHAR(200),
101
+ "entity_column": VARCHAR(200)
102
+ },
103
+ "primary_index": ["entity_name", "entity_column"],
104
+ "foreign_keys": [
105
+ (
106
+ ["entity_name"],
107
+ ["{}.name".format(EFS_ENTITY_SPEC["table_name"])],
108
+ "entity_xref_fk"
109
+ )
110
+ ]
111
+ }
112
+
113
+ EFS_ENTITY_XREF_STAGING_SPEC = {
114
+ "table_name": "{}_staging".format(EFS_ENTITY_XREF_SPEC["table_name"]),
115
+ "columns": {
116
+ "entity_name": VARCHAR(200),
117
+ "entity_column": VARCHAR(200),
118
+ "archived_time": TIMESTAMP
119
+ },
120
+ "primary_index": None
121
+ }
122
+
123
+ EFS_ENTITY_XREF_TRG = _EFS_TRIGGER_TEMPLATE.format(
124
+ table=EFS_ENTITY_XREF_SPEC["table_name"],
125
+ columns=", ".join(("DeletedRow.{}".format(col) for col in EFS_ENTITY_XREF_SPEC["columns"]))
126
+ )
127
+
128
+ # Table for storing the Data sources. Column source stores
129
+ # the corresponding Query.
130
+ EFS_DATA_SOURCE_SPEC = {
131
+ "table_name": "_efs_data_source",
132
+ "columns": {
133
+ "name": VARCHAR(200),
134
+ "description": VARCHAR(1024),
135
+ "timestamp_col_name": VARCHAR(50),
136
+ "source": VARCHAR(5000),
137
+ "creation_time": TIMESTAMP,
138
+ "modified_time": TIMESTAMP
139
+ },
140
+ "primary_index": "name"
141
+ }
142
+
143
+ EFS_DATA_SOURCE_STAGING_SPEC = {
144
+ "table_name": "{}_staging".format(EFS_DATA_SOURCE_SPEC["table_name"]),
145
+ "columns": {
146
+ "name": VARCHAR(200),
147
+ "description": VARCHAR(1024),
148
+ "timestamp_col_name": VARCHAR(50),
149
+ "source": VARCHAR(5000),
150
+ "creation_time": TIMESTAMP,
151
+ "modified_time": TIMESTAMP,
152
+ "archived_time": TIMESTAMP
153
+ },
154
+ "primary_index": None
155
+ }
156
+
157
+ EFS_DATA_SOURCE_TRG = _EFS_TRIGGER_TEMPLATE.format(
158
+ table=EFS_DATA_SOURCE_SPEC["table_name"],
159
+ columns=", ".join(("DeletedRow.{}".format(col) for col in EFS_DATA_SOURCE_SPEC["columns"]))
160
+ )
161
+
162
+ # Table for storing the feature groups. This table holds all the required
163
+ # parameters for creating DataFrame.
164
+ EFS_FEATURE_GROUP_SPEC = {
165
+ "table_name": "_efs_feature_group",
166
+ "columns": {
167
+ "name": VARCHAR(200),
168
+ "description": VARCHAR(200),
169
+ "data_source_name": VARCHAR(200),
170
+ "entity_name": VARCHAR(200),
171
+ "creation_time": TIMESTAMP,
172
+ "modified_time": TIMESTAMP
173
+ },
174
+ "primary_index": "name",
175
+ "foreign_keys": [
176
+ (
177
+ ["data_source_name"],
178
+ ["{}.name".format(EFS_DATA_SOURCE_SPEC["table_name"])],
179
+ "data_source_name_fk"
180
+ ),
181
+ (
182
+ ["entity_name"],
183
+ ["{}.name".format(EFS_ENTITY_SPEC["table_name"])],
184
+ "entity_fk"
185
+ )
186
+
187
+ ]
188
+ }
189
+
190
+ EFS_FEATURE_GROUP_STAGING_SPEC = {
191
+ "table_name": "{}_staging".format(EFS_FEATURE_GROUP_SPEC["table_name"]),
192
+ "columns": {
193
+ "name": VARCHAR(200),
194
+ "description": VARCHAR(200),
195
+ "data_source_name": VARCHAR(200),
196
+ "entity_name": VARCHAR(200),
197
+ "creation_time": TIMESTAMP,
198
+ "modified_time": TIMESTAMP,
199
+ "archived_time": TIMESTAMP
200
+ },
201
+ "primary_index": None
202
+ }
203
+
204
+ EFS_FEATURE_GROUP_TRG = _EFS_TRIGGER_TEMPLATE.format(
205
+ table=EFS_FEATURE_GROUP_SPEC["table_name"],
206
+ columns=", ".join(("DeletedRow.{}".format(col) for col in EFS_FEATURE_GROUP_SPEC["columns"]))
207
+ )
208
+
209
+
210
+ # Table for storing the feature names and associated group names.
211
+ EFS_GROUP_FEATURES_SPEC = {
212
+ "table_name": "_efs_group_features",
213
+ "columns": {
214
+ "feature_name": VARCHAR(200),
215
+ "group_name": VARCHAR(200),
216
+ "creation_time": TIMESTAMP,
217
+ "modified_time": TIMESTAMP
218
+ },
219
+ "primary_index": ["feature_name", "group_name"],
220
+ "foreign_keys": [
221
+ (
222
+ ["feature_name"],
223
+ ["{}.name".format(EFS_FEATURES_SPEC["table_name"])],
224
+ "feature_name_fk"
225
+ ),
226
+ (
227
+ ["group_name"],
228
+ ["{}.name".format(EFS_FEATURE_GROUP_SPEC["table_name"])],
229
+ "group_name_fk"
230
+ )
231
+
232
+ ]
233
+ }
234
+
235
+ EFS_GROUP_FEATURES_STAGING_SPEC = {
236
+ "table_name": "{}_staging".format(EFS_GROUP_FEATURES_SPEC["table_name"]),
237
+ "columns": {
238
+ "feature_name": VARCHAR(200),
239
+ "group_name": VARCHAR(200),
240
+ "creation_time": TIMESTAMP,
241
+ "modified_time": TIMESTAMP,
242
+ "archived_time": TIMESTAMP
243
+ },
244
+ "primary_index": None
245
+ }
246
+
247
+ EFS_GROUP_FEATURES_TRG = _EFS_TRIGGER_TEMPLATE.format(
248
+ table=EFS_GROUP_FEATURES_SPEC["table_name"],
249
+ columns=", ".join(("DeletedRow.{}".format(col) for col in EFS_GROUP_FEATURES_SPEC["columns"]))
250
+ )
251
+
252
+ # Table to store the version of feature store. This is very important.
253
+ # When teradataml incrementally adds functionality for feature store, this
254
+ # version will be deciding factor whether teradataml should automatically
255
+ # update metadata or not.
256
+ EFS_VERSION_SPEC = {
257
+ "table_name": "_efs_version",
258
+ "columns": {
259
+ "version": VARCHAR(20),
260
+ "creation_time": TIMESTAMP
261
+ }
262
+ }
263
+
264
+ EFS_VERSION = "1.0.0"
265
+
266
+
267
+ EFS_TABLES = {
268
+ "feature": EFS_FEATURES_SPEC["table_name"],
269
+ "feature_staging": EFS_FEATURES_STAGING_SPEC["table_name"],
270
+ "feature_group": EFS_FEATURE_GROUP_SPEC["table_name"],
271
+ "feature_group_staging": EFS_FEATURE_GROUP_STAGING_SPEC["table_name"],
272
+ "entity": EFS_ENTITY_SPEC["table_name"],
273
+ "entity_staging": EFS_ENTITY_STAGING_SPEC["table_name"],
274
+ "entity_xref": EFS_ENTITY_XREF_SPEC["table_name"],
275
+ "entity_staging_xref": EFS_ENTITY_XREF_STAGING_SPEC["table_name"],
276
+ "data_source": EFS_DATA_SOURCE_SPEC["table_name"],
277
+ "data_source_staging": EFS_DATA_SOURCE_STAGING_SPEC["table_name"],
278
+ "group_features": EFS_GROUP_FEATURES_SPEC["table_name"],
279
+ "group_features_staging": EFS_GROUP_FEATURES_STAGING_SPEC["table_name"],
280
+ "version": EFS_VERSION_SPEC["table_name"]
281
+ }
282
+
283
+
284
+ class FeatureStatus(Enum):
285
+ ACTIVE = 1
286
+ INACTIVE = 2
287
+
288
+
289
+ class FeatureType(Enum):
290
+ CONTINUOUS = 1
291
+ CATEGORICAL = 2