You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -10,13 +12,13 @@ In the context of Windmill, the stakes are: **where to effectively store and man
10
12
11
13
When it comes to storing data manipulated by Windmil, it is recommended to only store Windmill-specific elements ([resources](../3_resources_and_types/index.mdx), [variables](../2_variables_and_secrets/index.mdx) etc.). To store data, it is recommended to use external storage service providers that can be accessed from Windmill.
12
14
13
-
<br/>
15
+
<br/>
14
16
15
17
This present document gives a list of trusted services to use alongside Windmill.
16
18
17
19
:::
18
20
19
-
<br/>
21
+
<br/>
20
22
21
23
There are 4 kinds of persistent storage in Windmill:
22
24
@@ -98,7 +100,7 @@ States are what enable Flows to watch for changes in most event watching scenari
98
100
99
101
The convenience functions do this are:
100
102
101
-
*TypeScript*
103
+
_TypeScript_
102
104
103
105
-`getState()` which retrieves an object of any type (internally a simple
104
106
Resource) at a path determined by `getStatePath`, which is unique to the user
@@ -108,9 +110,9 @@ The convenience functions do this are:
108
110
109
111
> Please note it requires [importing](../../advanced/6_imports/index.md) the wmill client library from Deno/Bun.
110
112
111
-
<br/>
113
+
<br/>
112
114
113
-
*Python*
115
+
_Python_
114
116
115
117
-`get_state()` which retrieves an object of any type (internally a simple
116
118
Resource) at a path determined by `get_state_path`, which is unique to the user
@@ -120,14 +122,14 @@ The convenience functions do this are:
120
122
121
123
> Please note it requires [importing](../../advanced/6_imports/index.md) the wmill client library from Python.
122
124
123
-
<br/>
125
+
<br/>
124
126
125
127
<divclass="grid grid-cols-2 gap-6 mb-4">
126
-
<DocCard
127
-
title="States"
128
-
description="A state is an object stored as a resource of the resource type `state` which is meant to persist across distinct executions of the same script."
description="A state is an object stored as a resource of the resource type `state` which is meant to persist across distinct executions of the same script."
@@ -205,20 +207,20 @@ For Postgres databases (best for structured data storage and retrieval, where yo
205
207
4. From Windmill, add your Supabase connection string as a [Postgresql resource](https://hub.windmill.dev/resource_types/114/postgresql) and [Execute queries](https://hub.windmill.dev/scripts/postgresql/1294/execute-query-and-return-results-postgresql). Tip: you might need to set the `sslmode` to "disable".
You can also integrate Supabase [directly through its API](../../integrations/supabase.md#through-supabase-api).
216
218
217
219
:::tip
218
220
219
221
You can find examples and premade Supabase scripts on [Windmill Hub](https://hub.windmill.dev/integrations/supabase).
220
222
221
-
<br/>
223
+
<br/>
222
224
223
225
More tutorials on Supabase:
224
226
@@ -243,18 +245,18 @@ More tutorials on Supabase:
243
245
4. From Windmill, add your Neon.tech connection string as a [Postgresql resource](https://hub.windmill.dev/resource_types/114/postgresql) and [Execute queries](https://hub.windmill.dev/scripts/postgresql/1294/execute-query-and-return-results-postgresql).
Adding the connection string as a Postgres resource requires to parse it.
256
258
257
-
<br/>
259
+
<br/>
258
260
259
261
For example, for `psql postgres://daniel:<password>@ep-restless-rice.us-east-2.aws.neon.tech/neondb`, that would be:
260
262
@@ -277,22 +279,6 @@ Where the sslmode should be "require" and Neon uses the default PostgreSQL port,
277
279
278
280
On heavier data objects & unstructured data storage, Amazon S3 (Simple Storage Service) and its alternatives Cloudflare R2 and MinIO are highly scalable and durable object storage service that provides secure, reliable, and cost-effective storage for a wide range of data types and use cases.
279
281
280
-
### Windmill embedded integration with S3, Polars and DuckDB for data pipelines
281
-
282
-
Run your ETLs on-prem up to 5x faster using Windmill compared to Spark while simplifying your infra.
283
-
284
-
You can link a Windmill workspace to an S3 bucket and use it as source and/or target of your processing steps seamlessly, without any boilerplate.
285
-
286
-
See our page dedicated to Data Pipelines in Windmill:
287
-
288
-
<divclass="grid grid-cols-2 gap-6 mb-4">
289
-
<DocCard
290
-
title="Data Pipelines"
291
-
description="We have integrated with Polars and DuckDB for in-memory data processing and S3 for external storage."
292
-
href="/docs/core_concepts/data_pipelines"
293
-
/>
294
-
</div>
295
-
296
282
### Use Amazon S3, R2 and MinIO directly
297
283
298
284
Amazon S3, Cloudflare R2 and MinIO all follow the same API schema and therefore have a [common Windmill resource type](https://hub.windmill.dev/resource_types/42/).
@@ -302,12 +288,12 @@ Amazon S3, Cloudflare R2 and MinIO all follow the same API schema and therefore
302
288
[Amazon S3](https://aws.amazon.com/s3/) (Simple Storage Service) is a scalable and durable object storage service offered by Amazon Web Services (AWS), designed to provide developers and businesses with an effective way to store and retrieve any amount of data from anywhere on the web.
Key-value stores are a popular choice for managing non-structured data, providing a flexible and scalable solution for various data types and use cases. In the context of Windmill, you can use MongoDB Atlas, Redis, and Upstash to store and manipulate non-structured data effectively.
0 commit comments