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
{name} lets lets you easily integrate with visualization frameworks — like Tableau and SuperSet — and platforms that support JDBC-compatible databases (e.g., Mulesoft). Query support includes SELECT statements across secondary indexes on both Redis hashes & JSON, aggregations (e.g., count, min, max, avg), ordering, and more.
23
+
{name} lets lets you easily integrate with visualization frameworks — like Tableau and SuperSet — and platforms that support JDBC-compatible databases (e.g., Mulesoft).
24
+
Query support includes SELECT statements across secondary indexes on both Redis hashes & JSON, aggregations (e.g., count, min, max, avg), ordering, and more.
24
25
25
-
Trino is a distributed SQL engine designed to query large data sets across one or more heterogeneous data sources. Though Trino does support a https://trino.io/docs/current/connector/redis.html[Redis OSS connector], this connector is limited to SCAN and subsequent HGET operations, which do not scale well in high-throughput scenarios. However, that is where {name} shines since it can pushdown the entire query to the data atomically which eliminates the waste of many network hops and subsequent operations.
26
+
Trino is a distributed SQL engine designed to query large data sets across one or more heterogeneous data sources.
27
+
Though Trino does support a https://trino.io/docs/current/connector/redis.html[Redis OSS connector], this connector is limited to SCAN and subsequent HGET operations, which do not scale well in high-throughput scenarios.
28
+
However, that is where {name} shines since it can pushdown the entire query to the data atomically which eliminates the waste of many network hops and subsequent operations.
26
29
27
30
== Table of Contents
28
31
@@ -36,13 +39,18 @@ Trino is a distributed SQL engine designed to query large data sets across one o
36
39
37
40
== Background
38
41
39
-
Redis is an in-memory data store designed to serve data with the fastest possible response times. For this reason, Redis is frequently used for caching OLTP-style application queries and as a serving layer in data pipeline architectures (e.g., lambda architectures, online feature stores, etc.). Redis Stack is an extension to Redis that, among other things, lets you index your data on secondary attributes and then efficiently query it using a custom query language.
42
+
Redis is an in-memory data store designed to serve data with the fastest possible response times.
43
+
For this reason, Redis is frequently used for caching OLTP-style application queries and as a serving layer in data pipeline architectures (e.g., lambda architectures, online feature stores, etc.).
44
+
Redis Stack is an extension to Redis that, among other things, lets you index your data on secondary attributes and then efficiently query it using a custom query language.
40
45
41
-
We built the {name} connector so that you can query Redis using SQL. This is useful for any application compatible with JDBC. For example, {name} lets you query and visualize your Redis data from Tableau.
46
+
We built the {name} connector so that you can query Redis using SQL.
47
+
This is useful for any application compatible with JDBC.
48
+
For example, {name} lets you query and visualize your Redis data from Tableau.
42
49
43
50
== Requirements
44
51
45
-
{name} requires a Redis deployment that includes https://redis.io/docs/stack/search/https://redis.io/docs/stack/search/[RediSearch]. RediSearch is a https://redis.io/docs/reference/modules/[Redis module] that adds querying and secondary indexing to Redis.
52
+
{name} requires a Redis deployment that includes https://redis.io/docs/stack/search/https://redis.io/docs/stack/search/[RediSearch].
53
+
RediSearch is a https://redis.io/docs/reference/modules/[Redis module] that adds querying and secondary indexing to Redis.
46
54
47
55
Redis deployments that bundle RediSearch include:
48
56
@@ -52,7 +60,8 @@ Redis deployments that bundle RediSearch include:
52
60
53
61
== Quick start
54
62
55
-
To understand how {name} works, it's best to try it for yourself. View the screen recording or follow the steps below:
63
+
To understand how {name} works, it's best to try it for yourself.
64
+
View the screen recording or follow the steps below:
@@ -69,7 +78,8 @@ Next, use Docker Compose to launch containers for Trino and Redis Stack:
69
78
docker-compose up
70
79
----
71
80
72
-
This example uses a small data set describing a collection of beers. To load the data set, you'll need to have https://developer.redis.com/riot/riot-file/index.html[riot-file] installed locally (see the https://developer.redis.com/riot/riot-file/index.html[riot-file] installation instructions).
81
+
This example uses a small data set describing a collection of beers.
82
+
To load the data set, you'll need to have https://developer.redis.com/riot/riot-file/index.html[riot-file] installed locally (see the https://developer.redis.com/riot/riot-file/index.html[riot-file] installation instructions).
73
83
74
84
Next, use `riot-file` to import the sample data set into Redis:
Next, create an index on the beer data. While still in the Redis CLI, you can create the required index by running the following `FT.CREATE` command:
100
+
Next, create an index on the beer data.
101
+
While still in the Redis CLI, you can create the required index by running the following `FT.CREATE` command:
89
102
[source,console]
90
103
----
91
104
127.0.0.1:6379> FT.CREATE beers ON HASH PREFIX 1 beer: SCHEMA id TAG SORTABLE brewery_id TAG SORTABLE name TEXT SORTABLE abv NUMERIC SORTABLE descript TEXT style_name TAG SORTABLE cat_name TAG SORTABLE
92
105
----
93
106
94
-
Now that you've indexed the data set, you can query it using SQL statements through Trino. Start the Trino CLI:
107
+
Now that you've indexed the data set, you can query it using SQL statements through Trino.
@@ -119,28 +133,36 @@ To run {name} in production, you'll need:
119
133
120
134
=== Trino
121
135
122
-
First, you'll need a working Trino installation.
136
+
First, you'll need a working Trino installation.
123
137
124
-
See the https://trino.io/docs/current/installation.html[Trino installation and deplyoment guide] for details. Trino recommends a https://trino.io/docs/current/installation/containers.html[container-based deployment] using your orchestration platform of choice. If you run Kubernetes, see the https://trino.io/docs/current/installation/kubernetes.html[Trino Helm chart].
138
+
See the https://trino.io/docs/current/installation.html[Trino installation and deplyoment guide] for details.
139
+
Trino recommends a https://trino.io/docs/current/installation/containers.html[container-based deployment] using your orchestration platform of choice.
140
+
If you run Kubernetes, see the https://trino.io/docs/current/installation/kubernetes.html[Trino Helm chart].
125
141
126
142
=== {name} Connector
127
143
128
-
Next, you'll need to install the {name} plugin and configure it. See our documentation for https://{project-owner}.github.io/{project-name}/#redisearch-connector[plugin installation] and https://{project-owner}.github.io/{project-name}/#configuration[plugin configuration].
144
+
Next, you'll need to install the {name} plugin and configure it.
145
+
See our documentation for https://{project-owner}.github.io/{project-name}/#redisearch-connector[plugin installation] and https://{project-owner}.github.io/{project-name}/#configuration[plugin configuration].
129
146
130
147
=== Redis installation
131
148
132
-
For a self-managed deployment, or for testing locally, install https://redis.io/docs/stack/[Redis Stack] or spin up a free https://redis.com/try-free/[Redis Cloud] instance. If you need a fully-managed, cloud-based deployment of Redis on AWS, GCP, or Azure, see all of the https://redis.com/redis-enterprise-cloud/overview/[Redis Cloud] offerings. For deployment in your own private cloud or data center, consider https://redis.com/redis-enterprise-software/overview/[Redis Enterprise].
149
+
For a self-managed deployment, or for testing locally, install https://redis.io/docs/stack/[Redis Stack] or spin up a free https://redis.com/try-free/[Redis Cloud] instance.
150
+
If you need a fully-managed, cloud-based deployment of Redis on AWS, GCP, or Azure, see all of the https://redis.com/redis-enterprise-cloud/overview/[Redis Cloud] offerings.
151
+
For deployment in your own private cloud or data center, consider https://redis.com/redis-enterprise-software/overview/[Redis Enterprise].
133
152
134
153
== Usage
135
154
136
155
The example above uses the https://trino.io/docs/current/client/cli.html[Trino CLI] to access your data.
137
156
138
-
Most real world applications will use the https://trino.io/docs/current/client/jdbc.html[Trino JDBC driver] to issue queries. See the https://{project-owner}.github.io/{project-name}/#clients[{name}] documentation for details.
157
+
Most real world applications will use the https://trino.io/docs/current/client/jdbc.html[Trino JDBC driver] to issue queries.
158
+
See the https://{project-owner}.github.io/{project-name}/#clients[{name}] documentation for details.
139
159
140
160
== Support
141
161
142
-
{name} is supported by Redis, Inc. on a good faith effort basis. To report bugs, request features, or receive assistance, please https://github.com/{project-owner}/{project-name}/issues[file an issue].
162
+
{name} is supported by Redis, Inc. on a good faith effort basis.
163
+
To report bugs, request features, or receive assistance, please https://github.com/{project-owner}/{project-name}/issues[file an issue].
143
164
144
165
== License
145
166
146
-
{name} is licensed under the MIT License. Copyright (C) 2023 Redis, Inc.
0 commit comments