cratedb-toolkit 0.0.0__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.
Files changed (208) hide show
  1. cratedb_toolkit-0.0.0/CHANGES.md +259 -0
  2. cratedb_toolkit-0.0.0/LICENSE +619 -0
  3. cratedb_toolkit-0.0.0/MANIFEST.in +5 -0
  4. cratedb_toolkit-0.0.0/PKG-INFO +275 -0
  5. cratedb_toolkit-0.0.0/README.md +85 -0
  6. cratedb_toolkit-0.0.0/cratedb_toolkit/__init__.py +11 -0
  7. cratedb_toolkit-0.0.0/cratedb_toolkit/adapter/__init__.py +0 -0
  8. cratedb_toolkit-0.0.0/cratedb_toolkit/adapter/pymongo/__init__.py +1 -0
  9. cratedb_toolkit-0.0.0/cratedb_toolkit/adapter/pymongo/api.py +77 -0
  10. cratedb_toolkit-0.0.0/cratedb_toolkit/adapter/pymongo/collection.py +156 -0
  11. cratedb_toolkit-0.0.0/cratedb_toolkit/adapter/pymongo/cursor.py +390 -0
  12. cratedb_toolkit-0.0.0/cratedb_toolkit/adapter/pymongo/reactor.py +74 -0
  13. cratedb_toolkit-0.0.0/cratedb_toolkit/adapter/pymongo/util.py +51 -0
  14. cratedb_toolkit-0.0.0/cratedb_toolkit/adapter/rockset/__init__.py +0 -0
  15. cratedb_toolkit-0.0.0/cratedb_toolkit/adapter/rockset/cli.py +55 -0
  16. cratedb_toolkit-0.0.0/cratedb_toolkit/adapter/rockset/server/__init__.py +0 -0
  17. cratedb_toolkit-0.0.0/cratedb_toolkit/adapter/rockset/server/api/__init__.py +0 -0
  18. cratedb_toolkit-0.0.0/cratedb_toolkit/adapter/rockset/server/api/collection.py +8 -0
  19. cratedb_toolkit-0.0.0/cratedb_toolkit/adapter/rockset/server/api/document.py +91 -0
  20. cratedb_toolkit-0.0.0/cratedb_toolkit/adapter/rockset/server/api/query.py +68 -0
  21. cratedb_toolkit-0.0.0/cratedb_toolkit/adapter/rockset/server/dependencies.py +13 -0
  22. cratedb_toolkit-0.0.0/cratedb_toolkit/adapter/rockset/server/main.py +28 -0
  23. cratedb_toolkit-0.0.0/cratedb_toolkit/api/__init__.py +0 -0
  24. cratedb_toolkit-0.0.0/cratedb_toolkit/api/cli.py +31 -0
  25. cratedb_toolkit-0.0.0/cratedb_toolkit/api/guide.py +38 -0
  26. cratedb_toolkit-0.0.0/cratedb_toolkit/api/main.py +183 -0
  27. cratedb_toolkit-0.0.0/cratedb_toolkit/cfr/__init__.py +0 -0
  28. cratedb_toolkit-0.0.0/cratedb_toolkit/cfr/cli.py +195 -0
  29. cratedb_toolkit-0.0.0/cratedb_toolkit/cfr/info.py +59 -0
  30. cratedb_toolkit-0.0.0/cratedb_toolkit/cfr/jobstats.py +272 -0
  31. cratedb_toolkit-0.0.0/cratedb_toolkit/cfr/marimo.py +308 -0
  32. cratedb_toolkit-0.0.0/cratedb_toolkit/cfr/systable.py +257 -0
  33. cratedb_toolkit-0.0.0/cratedb_toolkit/cli.py +36 -0
  34. cratedb_toolkit-0.0.0/cratedb_toolkit/cluster/__init__.py +0 -0
  35. cratedb_toolkit-0.0.0/cratedb_toolkit/cluster/cli.py +43 -0
  36. cratedb_toolkit-0.0.0/cratedb_toolkit/cluster/croud.py +37 -0
  37. cratedb_toolkit-0.0.0/cratedb_toolkit/cluster/util.py +13 -0
  38. cratedb_toolkit-0.0.0/cratedb_toolkit/cmd/__init__.py +0 -0
  39. cratedb_toolkit-0.0.0/cratedb_toolkit/cmd/tail/__init__.py +0 -0
  40. cratedb_toolkit-0.0.0/cratedb_toolkit/cmd/tail/cli.py +56 -0
  41. cratedb_toolkit-0.0.0/cratedb_toolkit/cmd/tail/main.py +136 -0
  42. cratedb_toolkit-0.0.0/cratedb_toolkit/datasets/__init__.py +1 -0
  43. cratedb_toolkit-0.0.0/cratedb_toolkit/datasets/core.py +9 -0
  44. cratedb_toolkit-0.0.0/cratedb_toolkit/datasets/kaggle.py +49 -0
  45. cratedb_toolkit-0.0.0/cratedb_toolkit/datasets/model.py +138 -0
  46. cratedb_toolkit-0.0.0/cratedb_toolkit/datasets/store.py +3 -0
  47. cratedb_toolkit-0.0.0/cratedb_toolkit/datasets/tutorial.py +117 -0
  48. cratedb_toolkit-0.0.0/cratedb_toolkit/datasets/util.py +27 -0
  49. cratedb_toolkit-0.0.0/cratedb_toolkit/docs/__init__.py +0 -0
  50. cratedb_toolkit-0.0.0/cratedb_toolkit/docs/cli.py +112 -0
  51. cratedb_toolkit-0.0.0/cratedb_toolkit/docs/functions.py +133 -0
  52. cratedb_toolkit-0.0.0/cratedb_toolkit/docs/model.py +26 -0
  53. cratedb_toolkit-0.0.0/cratedb_toolkit/docs/settings.py +728 -0
  54. cratedb_toolkit-0.0.0/cratedb_toolkit/docs/util.py +61 -0
  55. cratedb_toolkit-0.0.0/cratedb_toolkit/exception.py +10 -0
  56. cratedb_toolkit-0.0.0/cratedb_toolkit/iac/__init__.py +0 -0
  57. cratedb_toolkit-0.0.0/cratedb_toolkit/iac/aws.py +10 -0
  58. cratedb_toolkit-0.0.0/cratedb_toolkit/info/__init__.py +0 -0
  59. cratedb_toolkit-0.0.0/cratedb_toolkit/info/cli.py +98 -0
  60. cratedb_toolkit-0.0.0/cratedb_toolkit/info/core.py +93 -0
  61. cratedb_toolkit-0.0.0/cratedb_toolkit/info/http.py +41 -0
  62. cratedb_toolkit-0.0.0/cratedb_toolkit/info/library.py +596 -0
  63. cratedb_toolkit-0.0.0/cratedb_toolkit/info/model.py +86 -0
  64. cratedb_toolkit-0.0.0/cratedb_toolkit/info/util.py +21 -0
  65. cratedb_toolkit-0.0.0/cratedb_toolkit/io/__init__.py +0 -0
  66. cratedb_toolkit-0.0.0/cratedb_toolkit/io/cli.py +92 -0
  67. cratedb_toolkit-0.0.0/cratedb_toolkit/io/core.py +189 -0
  68. cratedb_toolkit-0.0.0/cratedb_toolkit/io/croud.py +196 -0
  69. cratedb_toolkit-0.0.0/cratedb_toolkit/io/dynamodb/__init__.py +0 -0
  70. cratedb_toolkit-0.0.0/cratedb_toolkit/io/dynamodb/adapter.py +73 -0
  71. cratedb_toolkit-0.0.0/cratedb_toolkit/io/dynamodb/api.py +40 -0
  72. cratedb_toolkit-0.0.0/cratedb_toolkit/io/dynamodb/copy.py +96 -0
  73. cratedb_toolkit-0.0.0/cratedb_toolkit/io/influxdb.py +27 -0
  74. cratedb_toolkit-0.0.0/cratedb_toolkit/io/kinesis/__init__.py +0 -0
  75. cratedb_toolkit-0.0.0/cratedb_toolkit/io/kinesis/adapter.py +129 -0
  76. cratedb_toolkit-0.0.0/cratedb_toolkit/io/kinesis/api.py +6 -0
  77. cratedb_toolkit-0.0.0/cratedb_toolkit/io/kinesis/relay.py +91 -0
  78. cratedb_toolkit-0.0.0/cratedb_toolkit/io/mongodb/__init__.py +0 -0
  79. cratedb_toolkit-0.0.0/cratedb_toolkit/io/mongodb/adapter.py +246 -0
  80. cratedb_toolkit-0.0.0/cratedb_toolkit/io/mongodb/api.py +209 -0
  81. cratedb_toolkit-0.0.0/cratedb_toolkit/io/mongodb/cdc.py +130 -0
  82. cratedb_toolkit-0.0.0/cratedb_toolkit/io/mongodb/cli.py +112 -0
  83. cratedb_toolkit-0.0.0/cratedb_toolkit/io/mongodb/copy.py +107 -0
  84. cratedb_toolkit-0.0.0/cratedb_toolkit/io/mongodb/core.py +129 -0
  85. cratedb_toolkit-0.0.0/cratedb_toolkit/io/mongodb/export.py +72 -0
  86. cratedb_toolkit-0.0.0/cratedb_toolkit/io/mongodb/extract.py +208 -0
  87. cratedb_toolkit-0.0.0/cratedb_toolkit/io/mongodb/model.py +4 -0
  88. cratedb_toolkit-0.0.0/cratedb_toolkit/io/mongodb/transform.py +67 -0
  89. cratedb_toolkit-0.0.0/cratedb_toolkit/io/mongodb/translate.py +191 -0
  90. cratedb_toolkit-0.0.0/cratedb_toolkit/io/mongodb/util.py +64 -0
  91. cratedb_toolkit-0.0.0/cratedb_toolkit/io/processor/__init__.py +0 -0
  92. cratedb_toolkit-0.0.0/cratedb_toolkit/io/processor/kinesis_lambda.py +159 -0
  93. cratedb_toolkit-0.0.0/cratedb_toolkit/io/sql.py +1 -0
  94. cratedb_toolkit-0.0.0/cratedb_toolkit/job/__init__.py +0 -0
  95. cratedb_toolkit-0.0.0/cratedb_toolkit/job/cli.py +30 -0
  96. cratedb_toolkit-0.0.0/cratedb_toolkit/job/croud.py +17 -0
  97. cratedb_toolkit-0.0.0/cratedb_toolkit/model.py +197 -0
  98. cratedb_toolkit-0.0.0/cratedb_toolkit/options.py +11 -0
  99. cratedb_toolkit-0.0.0/cratedb_toolkit/query/__init__.py +0 -0
  100. cratedb_toolkit-0.0.0/cratedb_toolkit/query/cli.py +26 -0
  101. cratedb_toolkit-0.0.0/cratedb_toolkit/query/convert/__init__.py +0 -0
  102. cratedb_toolkit-0.0.0/cratedb_toolkit/query/convert/basic.py +24 -0
  103. cratedb_toolkit-0.0.0/cratedb_toolkit/query/convert/cli.py +43 -0
  104. cratedb_toolkit-0.0.0/cratedb_toolkit/query/mcp/__init__.py +0 -0
  105. cratedb_toolkit-0.0.0/cratedb_toolkit/query/mcp/cli.py +92 -0
  106. cratedb_toolkit-0.0.0/cratedb_toolkit/query/mcp/inquiry.py +133 -0
  107. cratedb_toolkit-0.0.0/cratedb_toolkit/query/mcp/model.py +144 -0
  108. cratedb_toolkit-0.0.0/cratedb_toolkit/query/mcp/pg_mcp.py +8 -0
  109. cratedb_toolkit-0.0.0/cratedb_toolkit/query/mcp/registry.py +213 -0
  110. cratedb_toolkit-0.0.0/cratedb_toolkit/query/mcp/util.py +97 -0
  111. cratedb_toolkit-0.0.0/cratedb_toolkit/retention/__init__.py +0 -0
  112. cratedb_toolkit-0.0.0/cratedb_toolkit/retention/cli.py +320 -0
  113. cratedb_toolkit-0.0.0/cratedb_toolkit/retention/core.py +209 -0
  114. cratedb_toolkit-0.0.0/cratedb_toolkit/retention/model.py +192 -0
  115. cratedb_toolkit-0.0.0/cratedb_toolkit/retention/setup/__init__.py +0 -0
  116. cratedb_toolkit-0.0.0/cratedb_toolkit/retention/setup/schema.py +35 -0
  117. cratedb_toolkit-0.0.0/cratedb_toolkit/retention/setup/schema.sql +34 -0
  118. cratedb_toolkit-0.0.0/cratedb_toolkit/retention/store.py +252 -0
  119. cratedb_toolkit-0.0.0/cratedb_toolkit/retention/strategy/__init__.py +0 -0
  120. cratedb_toolkit-0.0.0/cratedb_toolkit/retention/strategy/delete.py +37 -0
  121. cratedb_toolkit-0.0.0/cratedb_toolkit/retention/strategy/reallocate.py +65 -0
  122. cratedb_toolkit-0.0.0/cratedb_toolkit/retention/strategy/snapshot.py +41 -0
  123. cratedb_toolkit-0.0.0/cratedb_toolkit/shell/__init__.py +0 -0
  124. cratedb_toolkit-0.0.0/cratedb_toolkit/shell/cli.py +78 -0
  125. cratedb_toolkit-0.0.0/cratedb_toolkit/testing/__init__.py +0 -0
  126. cratedb_toolkit-0.0.0/cratedb_toolkit/testing/pytest.py +27 -0
  127. cratedb_toolkit-0.0.0/cratedb_toolkit/testing/testcontainers/__init__.py +0 -0
  128. cratedb_toolkit-0.0.0/cratedb_toolkit/testing/testcontainers/azurite.py +74 -0
  129. cratedb_toolkit-0.0.0/cratedb_toolkit/testing/testcontainers/cratedb.py +216 -0
  130. cratedb_toolkit-0.0.0/cratedb_toolkit/testing/testcontainers/influxdb2.py +83 -0
  131. cratedb_toolkit-0.0.0/cratedb_toolkit/testing/testcontainers/localstack.py +41 -0
  132. cratedb_toolkit-0.0.0/cratedb_toolkit/testing/testcontainers/minio.py +46 -0
  133. cratedb_toolkit-0.0.0/cratedb_toolkit/testing/testcontainers/mongodb.py +141 -0
  134. cratedb_toolkit-0.0.0/cratedb_toolkit/testing/testcontainers/util.py +126 -0
  135. cratedb_toolkit-0.0.0/cratedb_toolkit/util/__init__.py +0 -0
  136. cratedb_toolkit-0.0.0/cratedb_toolkit/util/cli.py +133 -0
  137. cratedb_toolkit-0.0.0/cratedb_toolkit/util/common.py +44 -0
  138. cratedb_toolkit-0.0.0/cratedb_toolkit/util/config.py +55 -0
  139. cratedb_toolkit-0.0.0/cratedb_toolkit/util/cr8.py +8 -0
  140. cratedb_toolkit-0.0.0/cratedb_toolkit/util/crash.py +37 -0
  141. cratedb_toolkit-0.0.0/cratedb_toolkit/util/croud.py +170 -0
  142. cratedb_toolkit-0.0.0/cratedb_toolkit/util/data.py +54 -0
  143. cratedb_toolkit-0.0.0/cratedb_toolkit/util/data_dict.py +165 -0
  144. cratedb_toolkit-0.0.0/cratedb_toolkit/util/database.py +438 -0
  145. cratedb_toolkit-0.0.0/cratedb_toolkit/util/date.py +13 -0
  146. cratedb_toolkit-0.0.0/cratedb_toolkit/util/format.py +88 -0
  147. cratedb_toolkit-0.0.0/cratedb_toolkit/util/io.py +15 -0
  148. cratedb_toolkit-0.0.0/cratedb_toolkit/util/pandas.py +83 -0
  149. cratedb_toolkit-0.0.0/cratedb_toolkit/util/platform.py +56 -0
  150. cratedb_toolkit-0.0.0/cratedb_toolkit/util/process.py +23 -0
  151. cratedb_toolkit-0.0.0/cratedb_toolkit/util/service.py +24 -0
  152. cratedb_toolkit-0.0.0/cratedb_toolkit/util/sqlalchemy.py +16 -0
  153. cratedb_toolkit-0.0.0/cratedb_toolkit.egg-info/PKG-INFO +275 -0
  154. cratedb_toolkit-0.0.0/cratedb_toolkit.egg-info/SOURCES.txt +206 -0
  155. cratedb_toolkit-0.0.0/cratedb_toolkit.egg-info/dependency_links.txt +1 -0
  156. cratedb_toolkit-0.0.0/cratedb_toolkit.egg-info/entry_points.txt +9 -0
  157. cratedb_toolkit-0.0.0/cratedb_toolkit.egg-info/requires.txt +150 -0
  158. cratedb_toolkit-0.0.0/cratedb_toolkit.egg-info/top_level.txt +2 -0
  159. cratedb_toolkit-0.0.0/doc/adapter/index.md +11 -0
  160. cratedb_toolkit-0.0.0/doc/adapter/pymongo.md +93 -0
  161. cratedb_toolkit-0.0.0/doc/adapter/rockset.md +125 -0
  162. cratedb_toolkit-0.0.0/doc/backlog/cfr.md +23 -0
  163. cratedb_toolkit-0.0.0/doc/backlog/index.md +9 -0
  164. cratedb_toolkit-0.0.0/doc/backlog/info.md +46 -0
  165. cratedb_toolkit-0.0.0/doc/backlog/main.md +243 -0
  166. cratedb_toolkit-0.0.0/doc/bugs.md +79 -0
  167. cratedb_toolkit-0.0.0/doc/cfr/index.md +13 -0
  168. cratedb_toolkit-0.0.0/doc/cfr/info.md +10 -0
  169. cratedb_toolkit-0.0.0/doc/cfr/jobstats.md +13 -0
  170. cratedb_toolkit-0.0.0/doc/cfr/systable.md +96 -0
  171. cratedb_toolkit-0.0.0/doc/changes.md +259 -0
  172. cratedb_toolkit-0.0.0/doc/cmd/index.md +9 -0
  173. cratedb_toolkit-0.0.0/doc/cmd/tail.md +44 -0
  174. cratedb_toolkit-0.0.0/doc/datasets.md +77 -0
  175. cratedb_toolkit-0.0.0/doc/docs-api.md +109 -0
  176. cratedb_toolkit-0.0.0/doc/index.md +78 -0
  177. cratedb_toolkit-0.0.0/doc/info/index.md +87 -0
  178. cratedb_toolkit-0.0.0/doc/install.md +67 -0
  179. cratedb_toolkit-0.0.0/doc/io/dms/index.md +53 -0
  180. cratedb_toolkit-0.0.0/doc/io/dms/managed.md +21 -0
  181. cratedb_toolkit-0.0.0/doc/io/dms/standalone.md +26 -0
  182. cratedb_toolkit-0.0.0/doc/io/dynamodb/cdc-lambda.md +250 -0
  183. cratedb_toolkit-0.0.0/doc/io/dynamodb/cdc.md +160 -0
  184. cratedb_toolkit-0.0.0/doc/io/dynamodb/index.md +14 -0
  185. cratedb_toolkit-0.0.0/doc/io/dynamodb/loader.md +97 -0
  186. cratedb_toolkit-0.0.0/doc/io/index.md +99 -0
  187. cratedb_toolkit-0.0.0/doc/io/influxdb/index.md +12 -0
  188. cratedb_toolkit-0.0.0/doc/io/influxdb/loader.md +110 -0
  189. cratedb_toolkit-0.0.0/doc/io/mongodb/cdc.md +163 -0
  190. cratedb_toolkit-0.0.0/doc/io/mongodb/index.md +22 -0
  191. cratedb_toolkit-0.0.0/doc/io/mongodb/loader.md +248 -0
  192. cratedb_toolkit-0.0.0/doc/io/mongodb/migr8.md +234 -0
  193. cratedb_toolkit-0.0.0/doc/io/mongodb/services.md +140 -0
  194. cratedb_toolkit-0.0.0/doc/query/convert.md +47 -0
  195. cratedb_toolkit-0.0.0/doc/query/index.md +11 -0
  196. cratedb_toolkit-0.0.0/doc/query/mcp/backlog.md +23 -0
  197. cratedb_toolkit-0.0.0/doc/query/mcp/index.md +108 -0
  198. cratedb_toolkit-0.0.0/doc/query/mcp/landscape.md +913 -0
  199. cratedb_toolkit-0.0.0/doc/query/mcp/research.md +103 -0
  200. cratedb_toolkit-0.0.0/doc/query/mcp/sandbox.md +126 -0
  201. cratedb_toolkit-0.0.0/doc/query/mcp/server.md +78 -0
  202. cratedb_toolkit-0.0.0/doc/readme.md +85 -0
  203. cratedb_toolkit-0.0.0/doc/release.md +40 -0
  204. cratedb_toolkit-0.0.0/doc/retention.md +488 -0
  205. cratedb_toolkit-0.0.0/doc/sandbox.md +54 -0
  206. cratedb_toolkit-0.0.0/pyproject.toml +405 -0
  207. cratedb_toolkit-0.0.0/setup.cfg +4 -0
  208. cratedb_toolkit-0.0.0/setup.py +6 -0
@@ -0,0 +1,259 @@
1
+ # Changelog
2
+
3
+ ## Unreleased
4
+
5
+ ## 2025/04/23 v0.0.32
6
+ - MCP: Add subsystem providing a few server and client utilities through
7
+ the `ctk query mcp {list,inquire,launch}` subcommands.
8
+ - Docs API: Added extractors for CrateDB functions and settings
9
+ - Connect: Respect `sslmode` URI parameter when converting SQLAlchemy
10
+ connection URLs to `http(s)://`
11
+
12
+ ## 2025/01/31 v0.0.31
13
+ - Fixed connectivity for `jobstats collect`
14
+ - Refactored code and improved CLI interface of `ctk info` vs. `ctk cfr`
15
+ - Dependencies: Updated to `crate-2.0.0`, which uses `orjson` for JSON marshalling
16
+ - CFR: Job statistics and slow-query exploration per Marimo notebook. Thanks, @WalBeh.
17
+
18
+ ## 2025/01/13 v0.0.30
19
+ - Dependencies: Minimize dependencies of core installation,
20
+ defer `polars` to `cratedb-toolkit[io]`.
21
+ - Fixed `ctk cfr info record` about too large values of `ulimit_hard`
22
+ - Improved `ctk shell` to also talk to CrateDB standalone databases
23
+ - Added basic utility command `ctk tail`, for tailing a database
24
+ table, and optionally following the tail
25
+ - Table Loader: Added capability to load InfluxDB Line Protocol (ILP) files
26
+ - Query Collector: Now respects `CRATEDB_SQLALCHEMY_URL` environment variable
27
+
28
+ ## 2024/10/13 v0.0.29
29
+ - MongoDB: Added Zyp transformations to the CDC subsystem,
30
+ making it more symmetric to the full-load procedure.
31
+ - Query Converter: Added very basic expression converter utility with
32
+ CLI interface
33
+ - DynamoDB: Added query expression converter for relocating object
34
+ references, to support query migrations after the breaking change
35
+ with the SQL DDL schema, by v0.0.27.
36
+
37
+ ## 2024/10/09 v0.0.28
38
+ - IO: Improved `BulkProcessor` when running per-record operations by
39
+ also checking `rowcount` for handling `INSERT OK, 0 rows` responses
40
+ - MongoDB: Fixed BSON decoding of `{"$date": 1180690093000}` timestamps
41
+ by updating to commons-codec 0.0.21.
42
+ - Testcontainers: Don't always pull the OCI image before starting.
43
+ It is unfortunate in disconnected situations.
44
+
45
+ ## 2024/10/01 v0.0.27
46
+ - MongoDB: Updated to pymongo 4.9
47
+ - DynamoDB: Change CrateDB data model to use (`pk`, `data`, `aux`) columns
48
+ Attention: This is a breaking change.
49
+
50
+ ## 2024/09/26 v0.0.26
51
+ - MongoDB: Configure `MongoDBCrateDBConverter` after updating to commons-codec 0.0.18
52
+ - DynamoDB CDC: Fix `MODIFY` operation to also propagate deleted attributes
53
+
54
+ ## 2024/09/22 v0.0.25
55
+ - Table Loader: Improved conditional handling of "transformation" parameter
56
+ - Table Loader: Improved status reporting and error logging in `BulkProcessor`
57
+ - MongoDB: Improve error reporting
58
+ - MongoDB Full: Polars' `read_ndjson` doesn't load MongoDB JSON data well,
59
+ use `fsspec` and `orjson` instead
60
+ - MongoDB Full: Improved initialization of transformation subsystem
61
+ - MongoDB Adapter: Improved performance of when computing collection cardinality
62
+ by using `collection.estimated_document_count()`
63
+ - MongoDB Full: Optionally use `limit` parameter as number of total records
64
+ - MongoDB Adapter: Evaluate `_id` filter field by upcasting to `bson.ObjectId`,
65
+ to convey a filter that makes `ctk load table` process a single document,
66
+ identified by its OID
67
+ - MongoDB Dependencies: Update to commons-codec 0.0.17
68
+
69
+ ## 2024/09/19 v0.0.24
70
+ - MongoDB Full: Refactor transformation subsystem to `commons-codec`
71
+ - MongoDB: Update to commons-codec v0.0.16
72
+
73
+ ## 2024/09/16 v0.0.23
74
+ - MongoDB: Unlock processing multiple collections, either from server database,
75
+ or from filesystem directory
76
+ - MongoDB: Unlock processing JSON files from HTTP resource, using `https+bson://`
77
+ - MongoDB: Optionally filter server collection using MongoDB query expression
78
+ - MongoDB: Improve error handling wrt. bulk operations vs. usability
79
+ - DynamoDB CDC: Add `ctk load table` interface for processing CDC events
80
+ - DynamoDB CDC: Accept a few more options for the Kinesis Stream:
81
+ batch-size, create, create-shards, start, seqno, idle-sleep, buffer-time
82
+ - DynamoDB Full: Improve error handling wrt. bulk operations vs. usability
83
+
84
+ ## 2024/09/10 v0.0.22
85
+ - MongoDB: Rename columns with leading underscores to use double leading underscores
86
+ - MongoDB: Add support for UUID types
87
+ - MongoDB: Improve reading timestamps in previous BSON formats
88
+ - MongoDB: Fix processing empty arrays/lists. By default, assume `TEXT` as inner type.
89
+ - MongoDB: For `ctk load table`, use "partial" scan for inferring the collection schema,
90
+ based on the first 10,000 documents.
91
+ - MongoDB: Skip leaking `UNKNOWN` fields into SQL DDL.
92
+ This means relevant column definitions will not be included into the SQL DDL.
93
+ - MongoDB: Make `ctk load table` use the `data OBJECT(DYNAMIC)` mapping strategy.
94
+ - MongoDB: Sanitize lists of varying objects
95
+ - MongoDB: Add treatment option for applying special treatments to certain items
96
+ on real-world data
97
+ - MongoDB: Use pagination on source collection, for creating batches towards CrateDB
98
+ - MongoDB: Unlock importing MongoDB Extended JSON files using `file+bson://...`
99
+
100
+ ## 2024/09/02 v0.0.21
101
+ - DynamoDB: Add special decoding for varied lists.
102
+ Store them into a separate `OBJECT(IGNORED)` column in CrateDB.
103
+ - DynamoDB: Add pagination support for `full-load` table loader
104
+
105
+ ## 2024/08/27 v0.0.20
106
+ - DMS/DynamoDB: Fix table name quoting within CDC processor handler
107
+
108
+ ## 2024/08/26 v0.0.19
109
+ - MongoDB: Fix and verify Zyp transformations
110
+ - DMS/DynamoDB/MongoDB I/O: Use SQL with parameters instead of inlining values
111
+
112
+ ## 2024/08/21 v0.0.18
113
+ - Dependencies: Unpin commons-codec, to always use the latest version
114
+ - Dependencies: Unpin lorrystream, to always use the latest version
115
+ - MongoDB: Improve type mapper by discriminating between
116
+ `INTEGER` and `BIGINT`
117
+ - MongoDB: Improve type mapper by supporting BSON `DatetimeMS`,
118
+ `Decimal128`, and `Int64` types
119
+
120
+ ## 2024/08/19 v0.0.17
121
+ - Processor: Updated Kinesis Lambda processor to understand AWS DMS
122
+ - MongoDB: Fix missing output on STDOUT for `migr8 export`
123
+ - MongoDB: Improve timestamp parsing by using `python-dateutil`
124
+ - MongoDB: Converge `_id` input field to `id` column instead of dropping it
125
+ - MongoDB: Make user interface use stderr, so stdout is for data only
126
+ - MongoDB: Make `migr8 extract` write to stdout by default
127
+ - MongoDB: Make `migr8 translate` read from stdin by default
128
+ - MongoDB: Improve user interface messages
129
+ - MongoDB: Strip single leading underscore character from all top-level fields
130
+ - MongoDB: Map OID types to CrateDB TEXT columns
131
+ - MongoDB: Make `migr8 extract` and `migr8 export` accept the `--limit` option
132
+ - MongoDB: Fix indentation in prettified SQL output of `migr8 translate`
133
+ - MongoDB: Add capability to give type hints and add transformations
134
+ - Dependencies: Adjust code for lorrystream version 0.0.3
135
+ - Dependencies: Update to lorrystream 0.0.4 and commons-codec 0.0.7
136
+ - DynamoDB: Add table loader for full-load operations
137
+
138
+ ## 2024/07/25 v0.0.16
139
+ - `ctk load table`: Added support for MongoDB Change Streams
140
+ - Fix dependency with the `kaggle` package, downgrade to `kaggle==1.6.14`
141
+ - DynamoDB CDC: Add demo to support reading DynamoDB change data capture
142
+
143
+ ## 2024/07/08 v0.0.15
144
+ - IO: Added the `if-exists` query parameter by updating to influxio 0.4.0.
145
+ - Rockset: Added CrateDB Rockset Adapter, a HTTP API emulation layer
146
+ - MongoDB: Added adapter amalgamating PyMongo to use CrateDB as backend
147
+ - SQLAlchemy: Clean up and refactor SQLAlchemy polyfills
148
+ to `cratedb_toolkit.util.sqlalchemy`
149
+ - CFR: Build as a self-contained program using PyInstaller
150
+ - CFR: Publish self-contained application bundle to GitHub Workflow Artifacts
151
+
152
+ ## 2024/06/18 v0.0.14
153
+ - Add `ctk info` and `ctk cfr` diagnostics programs
154
+ - Remove support for Python 3.7
155
+ - SQLAlchemy dialect: Use `sqlalchemy-cratedb>=0.37.0`
156
+ This includes the fix to the `get_table_names()` reflection method.
157
+
158
+ ## 2024/06/11 v0.0.13
159
+ - Dependencies: Migrate from `crate[sqlalchemy]` to `sqlalchemy-cratedb`
160
+
161
+ ## 2024/05/30 v0.0.12
162
+ - Fix InfluxDB Cloud <-> CrateDB Cloud connectivity by using
163
+ `ssl=true` query argument also for `influxdb2://` source URLs.
164
+
165
+ ## 2024/05/30 v0.0.11
166
+ - Fix InfluxDB Cloud <-> CrateDB Cloud connectivity by propagating
167
+ `ssl=true` query argument. Update dependencies to `influxio>=0.2.1,<1`.
168
+
169
+ ## 2024/04/10 v0.0.10
170
+ - Dependencies: Unpin upper version bound of `dask`. Otherwise, compatibility
171
+ issues can not be resolved quickly, like with Python 3.11.9.
172
+ https://github.com/dask/dask/issues/11038
173
+
174
+ ## 2024/03/22 v0.0.9
175
+ - Dependencies: Use `dask[dataframe]`
176
+
177
+ ## 2024/03/11 v0.0.8
178
+ - datasets: Fix compatibility with Python 3.7
179
+
180
+ ## 2024/03/07 v0.0.7
181
+ - datasets: Fix dataset loader
182
+
183
+ ## 2024/03/07 v0.0.6
184
+
185
+ - Added `cratedb_toolkit.datasets` subsystem, for acquiring datasets
186
+ from cratedb-datasets and Kaggle.
187
+
188
+
189
+ ## 2024/02/12 v0.0.5
190
+
191
+ - Do not always activate pytest11 entrypoint to pytest fixture
192
+ `cratedb_service`, as it depends on the `testcontainers` package,
193
+ which is not always installed.
194
+
195
+
196
+ ## 2024/02/10 v0.0.4
197
+
198
+ - Packaging: Use `cloud` extra to install relevant packages
199
+ - Dependencies: Add `testing` extra, which installs `testcontainers` only
200
+ - Testing: Export `cratedb_service` fixture as pytest11 entrypoint
201
+ - Sandbox: Reduce number of extras by just using `all`
202
+
203
+
204
+ ## 2024/01/18 v0.0.3
205
+
206
+ - Add SQL runner utility primitives to `io.sql` namespace
207
+ - Add `import_csv_pandas` and `import_csv_dask` utility primitives
208
+ - data: Add subsystem for "loading" data.
209
+ - Add SDK and CLI for CrateDB Cloud Data Import APIs
210
+ `ctk load table ...`
211
+ - Add `migr8` program from previous repository
212
+ - InfluxDB: Add adapter for `influxio`
213
+ - MongoDB: Add `migr8` program from previous repository
214
+ - MongoDB: Improve UX by using `ctk load table mongodb://...`
215
+ - load table: Refactor to use more OO
216
+ - Add `examples/cloud_import.py`
217
+ - Adapt testcontainers to be agnostic of the testing framework.
218
+ Thanks, @pilosus.
219
+
220
+
221
+ ## 2023/11/06 v0.0.2
222
+
223
+ - CLI: Upgrade to `click-aliases>=1.0.2`, fixing erroring out when no group aliases
224
+ are specified.
225
+
226
+ - Add support for Python 3.12
227
+
228
+ - SQLAlchemy: Improve UNIQUE constraints polyfill to accept multiple
229
+ column names, for emulating unique composite keys.
230
+
231
+
232
+ ## 2023/10/10 v0.0.1
233
+
234
+ - SQLAlchemy: Add a few patches and polyfills, which do not fit well
235
+ into the vanilla Python driver / SQLAlchemy dialect.
236
+
237
+ - Retention: Refactor strategies `delete`, `reallocate`, and `snapshot`, to
238
+ standalone variants.
239
+
240
+ - Retention: Bundle configuration and runtime settings into `Settings` entity,
241
+ and use more OO instead of weak dictionaries: Add `RetentionStrategy`,
242
+ `TableAddress`, and `Settings` entities, to improve information passing
243
+ throughout the application and the SQL templates.
244
+
245
+ - Retention: Add `--schema` option, and `CRATEDB_EXT_SCHEMA` environment variable,
246
+ to configure the database schema used to store the retention policy
247
+ table. The default value is `ext`.
248
+
249
+ - Retention: Use full-qualified table names everywhere.
250
+
251
+ - Retention: Fix: Compensate for `DROP REPOSITORY` now returning `RepositoryMissingException`
252
+ when the repository does not exist. With previous versions of CrateDB, it was
253
+ `RepositoryUnknownException`.
254
+
255
+
256
+ ## 2023/06/27 v0.0.0
257
+
258
+ - Import "data retention" implementation from <https://github.com/crate/crate-airflow-tutorial>.
259
+ Thanks, @hammerhead.