Skip to content

Commit 546e714

Browse files
author
Julien Ruaux
committed
docs: Updated README
1 parent e7d4822 commit 546e714

File tree

1 file changed

+40
-18
lines changed

1 file changed

+40
-18
lines changed

README.adoc

Lines changed: 40 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
:project-owner: redis-field-engineering
33
:project-name: redis-sql-trino
44
:project-group: com.redis
5-
:project-version: 0.3.0
5+
:project-version: 0.3.0
66
:name: Redis SQL Trino
77

88
++++
@@ -20,9 +20,12 @@
2020
image:https://github.com/{project-owner}/{project-name}/actions/workflows/early-access.yml/badge.svg["Build Status", link="https://github.com/{project-owner}/{project-name}/actions/workflows/early-access.yml"]
2121
image:https://codecov.io/gh/{project-owner}/{project-name}/branch/master/graph/badge.svg?token={codecov-token}["Coverage", link="https://codecov.io/gh/{project-owner}/{project-name}"]
2222

23-
{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.
2425

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.
2629

2730
== Table of Contents
2831

@@ -36,13 +39,18 @@ Trino is a distributed SQL engine designed to query large data sets across one o
3639

3740
== Background
3841

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.
4045

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.
4249

4350
== Requirements
4451

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.
4654

4755
Redis deployments that bundle RediSearch include:
4856

@@ -52,7 +60,8 @@ Redis deployments that bundle RediSearch include:
5260

5361
== Quick start
5462

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:
5665

5766
image::https://asciinema.org/a/526185.svg[asciicast,link=https://asciinema.org/a/526185]
5867

@@ -69,7 +78,8 @@ Next, use Docker Compose to launch containers for Trino and Redis Stack:
6978
docker-compose up
7079
----
7180

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).
7383

7484
Next, use `riot-file` to import the sample data set into Redis:
7585
[source,console]
@@ -78,20 +88,24 @@ riot-file -h localhost import https://storage.googleapis.com/jrx/beers.json \
7888
hset --keyspace beer --keys id
7989
----
8090

81-
Each beer is represented as a Redis hash. Start the Redis CLI to examine this data. For example, here's how you can view the "Beer Town Brown" record:
91+
Each beer is represented as a Redis hash.
92+
Start the Redis CLI to examine this data.
93+
For example, here's how you can view the "Beer Town Brown" record:
8294
[source,console]
8395
----
8496
docker exec -it redis /opt/redis-stack/bin/redis-cli
8597
127.0.0.1:6379> hgetall beer:190
8698
----
8799

88-
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:
89102
[source,console]
90103
----
91104
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
92105
----
93106

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.
108+
Start the Trino CLI:
95109
[source,console]
96110
----
97111
docker exec -it trino trino --catalog redisearch --schema default
@@ -119,28 +133,36 @@ To run {name} in production, you'll need:
119133

120134
=== Trino
121135

122-
First, you'll need a working Trino installation.
136+
First, you'll need a working Trino installation.
123137

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].
125141

126142
=== {name} Connector
127143

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].
129146

130147
=== Redis installation
131148

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].
133152

134153
== Usage
135154

136155
The example above uses the https://trino.io/docs/current/client/cli.html[Trino CLI] to access your data.
137156

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.
139159

140160
== Support
141161

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].
143164

144165
== License
145166

146-
{name} is licensed under the MIT License. Copyright (C) 2023 Redis, Inc.
167+
{name} is licensed under the MIT License.
168+
Copyright (C) 2023 Redis, Inc.

0 commit comments

Comments
 (0)