From f6ffc683d5bb62fa1f3414f34e5f5fa07d7c527d Mon Sep 17 00:00:00 2001 From: bohnen Date: Thu, 11 Jan 2024 14:48:06 +0900 Subject: [PATCH 01/22] TiDB Cloud: add a tutorial for Looker Studio This documentation will be helpful for users who want to use Looker Studio, as there was previously a lack of information on how to connect from BI tools. --- TOC-tidb-cloud.md | 2 + develop/dev-guide-bi-looker-stduio.md | 128 ++++++++++++++++++ .../looker-studio-configure-connection.png | Bin 0 -> 38743 bytes media/develop/looker-studio-simple-chart.png | Bin 0 -> 33595 bytes 4 files changed, 130 insertions(+) create mode 100644 develop/dev-guide-bi-looker-stduio.md create mode 100644 media/develop/looker-studio-configure-connection.png create mode 100644 media/develop/looker-studio-simple-chart.png diff --git a/TOC-tidb-cloud.md b/TOC-tidb-cloud.md index a733f74da54ed..4d95648c53232 100644 --- a/TOC-tidb-cloud.md +++ b/TOC-tidb-cloud.md @@ -26,6 +26,8 @@ - [MySQL Workbench](/develop/dev-guide-gui-mysql-workbench.md) - [Navicat](/develop/dev-guide-gui-navicat.md) - [Choose Driver or ORM](/develop/dev-guide-choose-driver-or-orm.md) + - BI + - [Looker Studio](/develop/dev-guide-bi-looker-stduio.md) - Java - [JDBC](/develop/dev-guide-sample-application-java-jdbc.md) - [MyBatis](/develop/dev-guide-sample-application-java-mybatis.md) diff --git a/develop/dev-guide-bi-looker-stduio.md b/develop/dev-guide-bi-looker-stduio.md new file mode 100644 index 0000000000000..72029212d01fc --- /dev/null +++ b/develop/dev-guide-bi-looker-stduio.md @@ -0,0 +1,128 @@ +--- +title: Connect to TiDB Cloud with Looker Studio +summary: Learn how to connect to TiDB Cloud using Looker Studio +--- + +# Connect to TiDB Cloud with Looker Studio + +TiDB is a MySQL-compatible database, and [Looker Studio](https://lookerstudio.google.com/) is a free web-based BI tool that can visualize data from various sources. + +In this tutorial, you can learn how to connect to your TiDB cluster using Looker Studio. + +> **Note:** +> +> - This tutorial is compatible with TiDB Serverless. + +## Prerequisites + +To complete this tutorial, you need: + +- Google Account that can use Looker Studio. +- A TiDB Serverless cluster. + +**If you don't have a TiDB Serverless cluster, you can create one as follows:** + +- Follow [Creating a TiDB Serverless cluster](/develop/dev-guide-build-cluster-in-cloud.md) to create your own TiDB Cloud cluster. + +## Import Dataset + +You can use the S&P 500 dataset provided as an Interactive Tutorial of TiDB Serverless. + + +
+ +1. Navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page, and click the question mark icon in the bottom-right corner. A Help dialog is displayed. + +2. Click **Interactive Tutorials**. Then click **S&P 500 Analysis**. + +3. In the **Import S&P 500 Dataset** dialog, select your Serverless cluster. Then click the **Import Dataset** button. It will start importing briefly. + +4. After the status changed to **Imported**, you can close this dialog. Click the **Exit Tutorial** button in the bottom-left corner of the dialog. + +
+ +## Connect to TiDB + +1. Navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page, and then click the name of your target cluster to go to its overview page. + +2. Click **Connect** in the upper-right corner. A connection dialog is displayed. + +3. Set **Operating System** to `Windows` in the connection dialog. Then Set **Connect With** to `General`. You can download [CA cert](https://letsencrypt.org/certs/isrgrootx1.pem) at the note below. + + > **Tip:** + > + > As TiDB Serverless requires a secure TLS connection between the client and the cluster, you need this CA cert for connection settings on Looker Studio. + +4. Click **Generate Password** to create a random password. + + > **Tip:** + > + > If you have created a password before, use the original password or click **Reset Password** to generate a new one. + +5. Open Looker Studio and create a Blank Report. Select the' MySQL' connector in the **Add data to report** screen. + +6. In the setting pane, configure the following connection parameters: + + - **Host Name or IP**: enter the `HOST` parameter from the TiDB Cloud connection dialog. + - **Port(Optional)**: enter the `PORT` parameter from the TiDB Cloud connection dialog. + - **Database**: enter the database you want to connect to. In this tutorial, set `sp500insight`. + - **Username**: enter the `USERNAME` parameter from the TiDB Cloud connection dialog. + - **Password**: enter the `PASSWORD` parameter from the TiDB Cloud connection dialog. + - Check **Enable SSL**. + - Click the icon on the right of **MySQL SSL Client Configuration Files**. Then, select the downloaded CA file in step 3. + + ![Looker Studio: configure connection settings for TiDB Serverless](/media/develop/looker-studio-configure-connection.png) + +7. Click **AUTHENTICATE**. + +If the authentication succeeds, you can see tables in the database. + +## Create a simple chart + +Now, you can use TiDB Serverless as a data source. Let's make a simple chart with data. + +1. In the setting pane, select **CUSTOM QUERY**. + +2. Put the SQL below, then click **Add** in the bottom-right corner. + ```sql + SELECT sector, + COUNT(*) AS companies, + ROW_NUMBER() OVER (ORDER BY COUNT(*) DESC ) AS companies_ranking, + SUM(market_cap) AS total_market_cap, + ROW_NUMBER() OVER (ORDER BY SUM(market_cap) DESC ) AS total_market_cap_ranking, + SUM(revenue_growth * weight) / SUM(weight) AS avg_revenue_growth, + ROW_NUMBER() OVER (ORDER BY SUM(revenue_growth * weight) / SUM(weight) DESC ) AS avg_revenue_growth_ranking + FROM companies + LEFT JOIN index_compositions ic ON companies.stock_symbol = ic.stock_symbol + GROUP BY sector + ORDER BY 5 ASC + ``` + + If you see **You are about to add data to this report** dialog, click **ADD TO REPORT**. + +3. You see a table in the report. Click **Add a chart**, then select `Combo chart` in the `Line` category. + +4. In the **Chart** settings pane, configure the following parameters: + + - **Dimension**: `sector`. + - **Metric**: `companies` and `total_market_cap`. + - In the **STYLE** Tab: + - Series #1 check `Line`. + - Series #1 axis `Right`. + - Series #2 check `Bars`. + - Series #2 axis `Left`. + - Leave others as defaults. + +You can see a combo chart below: + +![Looker Studio: A simple Combo Chart](/media/develop/looker-studio-simple-chart.png) + +## Next steps + +- Learn more usage of Looker Studio from [Looker Studio Help](https://support.google.com/looker-studio) +- Learn the best practices for TiDB application development with the chapters in the [Developer guide](/develop/dev-guide-overview.md), such as [Insert data](/develop/dev-guide-insert-data.md), [Update data](/develop/dev-guide-update-data.md), [Delete data](/develop/dev-guide-delete-data.md), [Single table reading](/develop/dev-guide-get-data-from-single-table.md), [Transactions](/develop/dev-guide-transaction-overview.md), and [SQL performance optimization](/develop/dev-guide-optimize-sql-overview.md). +- Learn through the professional [TiDB developer courses](https://www.pingcap.com/education/) and earn [TiDB certifications](https://www.pingcap.com/education/certification/) after passing the exam. + +## Need help? + +Ask questions on [Discord](https://discord.gg/DQZ2dy3cuc?utm_source=doc) or [create a support ticket](/support.md). diff --git a/media/develop/looker-studio-configure-connection.png b/media/develop/looker-studio-configure-connection.png new file mode 100644 index 0000000000000000000000000000000000000000..82f5055f897fab89aebb3c33c15fd8be20c47526 GIT binary patch literal 38743 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 literal 0 HcmV?d00001 diff --git a/media/develop/looker-studio-simple-chart.png b/media/develop/looker-studio-simple-chart.png new file mode 100644 index 0000000000000000000000000000000000000000..3fb569f2e21de048819cbfe3fdc64be7b18e9cb7 GIT binary patch literal 33595 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 nsp~gR$z?Y1KqIkKeQQ-do^-0oU literal 0 HcmV?d00001 From de8257680afed634d7bee48a1109664025aa400f Mon Sep 17 00:00:00 2001 From: bohnen Date: Thu, 11 Jan 2024 15:04:28 +0900 Subject: [PATCH 02/22] TiDB Cloud: fix support link --- develop/dev-guide-bi-looker-stduio.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/develop/dev-guide-bi-looker-stduio.md b/develop/dev-guide-bi-looker-stduio.md index 72029212d01fc..444ab5eba4b0c 100644 --- a/develop/dev-guide-bi-looker-stduio.md +++ b/develop/dev-guide-bi-looker-stduio.md @@ -125,4 +125,4 @@ You can see a combo chart below: ## Need help? -Ask questions on [Discord](https://discord.gg/DQZ2dy3cuc?utm_source=doc) or [create a support ticket](/support.md). +Ask questions on [Discord](https://discord.gg/DQZ2dy3cuc?utm_source=doc) or [create a support ticket](https://support.pingcap.com/). From da6d79ead24cc08626bd52998d258005b8507c46 Mon Sep 17 00:00:00 2001 From: bohnen Date: Thu, 11 Jan 2024 16:07:43 +0900 Subject: [PATCH 03/22] Update TOC-tidb-cloud.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix typo Co-authored-by: Daniël van Eeden --- TOC-tidb-cloud.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/TOC-tidb-cloud.md b/TOC-tidb-cloud.md index 4d95648c53232..5fdffb799a1a9 100644 --- a/TOC-tidb-cloud.md +++ b/TOC-tidb-cloud.md @@ -27,7 +27,7 @@ - [Navicat](/develop/dev-guide-gui-navicat.md) - [Choose Driver or ORM](/develop/dev-guide-choose-driver-or-orm.md) - BI - - [Looker Studio](/develop/dev-guide-bi-looker-stduio.md) + - [Looker Studio](/develop/dev-guide-bi-looker-studio.md) - Java - [JDBC](/develop/dev-guide-sample-application-java-jdbc.md) - [MyBatis](/develop/dev-guide-sample-application-java-mybatis.md) From e838521faefd46b3fded58e70804d28db986e55a Mon Sep 17 00:00:00 2001 From: bohnen Date: Thu, 11 Jan 2024 17:17:25 +0900 Subject: [PATCH 04/22] Update develop/dev-guide-bi-looker-stduio.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Daniël van Eeden --- develop/dev-guide-bi-looker-stduio.md | 1 + 1 file changed, 1 insertion(+) diff --git a/develop/dev-guide-bi-looker-stduio.md b/develop/dev-guide-bi-looker-stduio.md index 444ab5eba4b0c..97f46641969d5 100644 --- a/develop/dev-guide-bi-looker-stduio.md +++ b/develop/dev-guide-bi-looker-stduio.md @@ -84,6 +84,7 @@ Now, you can use TiDB Serverless as a data source. Let's make a simple chart wit 1. In the setting pane, select **CUSTOM QUERY**. 2. Put the SQL below, then click **Add** in the bottom-right corner. + ```sql SELECT sector, COUNT(*) AS companies, From 9d286a8c16fca95c0e6419b4fc0e1f75ce93adf3 Mon Sep 17 00:00:00 2001 From: bohnen Date: Thu, 11 Jan 2024 17:18:47 +0900 Subject: [PATCH 05/22] Update develop/dev-guide-bi-looker-stduio.md Co-authored-by: Xiang Zhang --- develop/dev-guide-bi-looker-stduio.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/develop/dev-guide-bi-looker-stduio.md b/develop/dev-guide-bi-looker-stduio.md index 97f46641969d5..ca49babde4649 100644 --- a/develop/dev-guide-bi-looker-stduio.md +++ b/develop/dev-guide-bi-looker-stduio.md @@ -61,7 +61,7 @@ You can use the S&P 500 dataset provided as an Interactive Tutorial of TiDB Serv 5. Open Looker Studio and create a Blank Report. Select the' MySQL' connector in the **Add data to report** screen. -6. In the setting pane, configure the following connection parameters: +6. In the **BASIC** setting pane, configure the following connection parameters: - **Host Name or IP**: enter the `HOST` parameter from the TiDB Cloud connection dialog. - **Port(Optional)**: enter the `PORT` parameter from the TiDB Cloud connection dialog. From 3d197c185739785e3ccd003d554ba9e34a2a5a80 Mon Sep 17 00:00:00 2001 From: bohnen Date: Thu, 11 Jan 2024 17:21:29 +0900 Subject: [PATCH 06/22] fix filename typo --- ...ev-guide-bi-looker-stduio.md => dev-guide-bi-looker-studio.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename develop/{dev-guide-bi-looker-stduio.md => dev-guide-bi-looker-studio.md} (100%) diff --git a/develop/dev-guide-bi-looker-stduio.md b/develop/dev-guide-bi-looker-studio.md similarity index 100% rename from develop/dev-guide-bi-looker-stduio.md rename to develop/dev-guide-bi-looker-studio.md From 77836d67bccc72a83d222bdc84862db18f411e19 Mon Sep 17 00:00:00 2001 From: bohnen Date: Thu, 11 Jan 2024 18:40:24 +0900 Subject: [PATCH 07/22] add separate connection description for a dedicated cluster --- develop/dev-guide-bi-looker-studio.md | 63 +++++++++++++++++++++++---- 1 file changed, 54 insertions(+), 9 deletions(-) diff --git a/develop/dev-guide-bi-looker-studio.md b/develop/dev-guide-bi-looker-studio.md index ca49babde4649..198ddc1e9b210 100644 --- a/develop/dev-guide-bi-looker-studio.md +++ b/develop/dev-guide-bi-looker-studio.md @@ -11,24 +11,25 @@ In this tutorial, you can learn how to connect to your TiDB cluster using Looker > **Note:** > -> - This tutorial is compatible with TiDB Serverless. +> - For this tutorial we will use a serverless cluster. Looker Studio can also be used with dedicated clusters. ## Prerequisites To complete this tutorial, you need: -- Google Account that can use Looker Studio. -- A TiDB Serverless cluster. +- Google Account. +- A TiDB cluster. -**If you don't have a TiDB Serverless cluster, you can create one as follows:** +**If you don't have a TiDB cluster, you can create one as follows:** -- Follow [Creating a TiDB Serverless cluster](/develop/dev-guide-build-cluster-in-cloud.md) to create your own TiDB Cloud cluster. +- Follow [Creating a TiDB Serverless cluster](/develop/dev-guide-build-cluster-in-cloud.md) to create your own TiDB Serverless cluster. ## Import Dataset + + You can use the S&P 500 dataset provided as an Interactive Tutorial of TiDB Serverless. -
1. Navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page, and click the question mark icon in the bottom-right corner. A Help dialog is displayed. @@ -41,7 +42,10 @@ You can use the S&P 500 dataset provided as an Interactive Tutorial of TiDB Serv
-## Connect to TiDB +## Connect to TiDB cluster + + +
1. Navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page, and then click the name of your target cluster to go to its overview page. @@ -71,15 +75,56 @@ You can use the S&P 500 dataset provided as an Interactive Tutorial of TiDB Serv - Check **Enable SSL**. - Click the icon on the right of **MySQL SSL Client Configuration Files**. Then, select the downloaded CA file in step 3. - ![Looker Studio: configure connection settings for TiDB Serverless](/media/develop/looker-studio-configure-connection.png) + ![Looker Studio: configure connection settings for TiDB cloud](/media/develop/looker-studio-configure-connection.png) 7. Click **AUTHENTICATE**. If the authentication succeeds, you can see tables in the database. +
+
+ +1. Navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page, and then click the name of your target cluster to go to its overview page. + +2. Click **...** menu in the upper-right corner. Then, select **Security Settings**. Settings dialog shows up. + +3. Click **Generate** to generate root password and **Copy** it to the clipboard. + + > **Tip:** + > + > If you have created a password before, use the original password or click **Regenerate** to generate a new one. + +4. Click **Apply** to close the dialog. + +5. Click **Connect** in the upper-right corner. A connection dialog is displayed. + +6. Click **Allow Access from Anywhere(Insecure)**. + + For more details about how to obtain the connection string, refer to [TiDB Dedicated standard connection](https://docs.pingcap.com/tidbcloud/connect-via-standard-connection). + +7. You can download CA File with the link under **Step 2**. + +8. Open Looker Studio and create a Blank Report. Select the' MySQL' connector in the **Add data to report** screen. + +9. In the **BASIC** setting pane, configure the following connection parameters: + + - **Host Name or IP**: enter the `HOST` parameter from the TiDB Cloud connection dialog. + - **Port(Optional)**: enter the `PORT` parameter from the TiDB Cloud connection dialog. + - **Database**: enter the database you want to connect to. In this tutorial, set `sp500insight`. + - **Username**: enter the `USERNAME` parameter from the TiDB Cloud connection dialog. + - **Password**: enter the `PASSWORD` parameter from the TiDB Cloud connection dialog. + - Check **Enable SSL**. + - Click the icon on the right of **MySQL SSL Client Configuration Files**. Then, select the downloaded CA file before. + +10. Click **AUTHENTICATE**. + +If the authentication succeeds, you can see tables in the database. +
+
+ ## Create a simple chart -Now, you can use TiDB Serverless as a data source. Let's make a simple chart with data. +Now, you can use TiDB cluster as a data source. Let's make a simple chart with data. 1. In the setting pane, select **CUSTOM QUERY**. From 0754c61bc39617fa538557e384502e6396e2359d Mon Sep 17 00:00:00 2001 From: bohnen Date: Thu, 11 Jan 2024 18:49:10 +0900 Subject: [PATCH 08/22] change support link to /support.md --- develop/dev-guide-bi-looker-studio.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/develop/dev-guide-bi-looker-studio.md b/develop/dev-guide-bi-looker-studio.md index 198ddc1e9b210..feb9b4ffc37b1 100644 --- a/develop/dev-guide-bi-looker-studio.md +++ b/develop/dev-guide-bi-looker-studio.md @@ -171,4 +171,4 @@ You can see a combo chart below: ## Need help? -Ask questions on [Discord](https://discord.gg/DQZ2dy3cuc?utm_source=doc) or [create a support ticket](https://support.pingcap.com/). +Ask questions on [Discord](https://discord.gg/DQZ2dy3cuc?utm_source=doc) or [create a support ticket](/support.md). From b337bf6c8886c4cd1f2c5332c836ea91d1dadbb7 Mon Sep 17 00:00:00 2001 From: bohnen Date: Thu, 11 Jan 2024 18:56:37 +0900 Subject: [PATCH 09/22] revert support link change due to braking CI --- develop/dev-guide-bi-looker-studio.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/develop/dev-guide-bi-looker-studio.md b/develop/dev-guide-bi-looker-studio.md index feb9b4ffc37b1..198ddc1e9b210 100644 --- a/develop/dev-guide-bi-looker-studio.md +++ b/develop/dev-guide-bi-looker-studio.md @@ -171,4 +171,4 @@ You can see a combo chart below: ## Need help? -Ask questions on [Discord](https://discord.gg/DQZ2dy3cuc?utm_source=doc) or [create a support ticket](/support.md). +Ask questions on [Discord](https://discord.gg/DQZ2dy3cuc?utm_source=doc) or [create a support ticket](https://support.pingcap.com/). From f6866125ad25a33a04ee3d1ae03b0fb0c09e96ab Mon Sep 17 00:00:00 2001 From: bohnen Date: Thu, 11 Jan 2024 21:46:27 +0900 Subject: [PATCH 10/22] restrict access from specific IP range --- develop/dev-guide-bi-looker-studio.md | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/develop/dev-guide-bi-looker-studio.md b/develop/dev-guide-bi-looker-studio.md index 198ddc1e9b210..64d8bbf994eb2 100644 --- a/develop/dev-guide-bi-looker-studio.md +++ b/develop/dev-guide-bi-looker-studio.md @@ -26,10 +26,9 @@ To complete this tutorial, you need: ## Import Dataset - - You can use the S&P 500 dataset provided as an Interactive Tutorial of TiDB Serverless. +
1. Navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page, and click the question mark icon in the bottom-right corner. A Help dialog is displayed. @@ -41,6 +40,7 @@ You can use the S&P 500 dataset provided as an Interactive Tutorial of TiDB Serv 4. After the status changed to **Imported**, you can close this dialog. Click the **Exit Tutorial** button in the bottom-left corner of the dialog.
+
## Connect to TiDB cluster @@ -94,13 +94,15 @@ If the authentication succeeds, you can see tables in the database. > > If you have created a password before, use the original password or click **Regenerate** to generate a new one. -4. Click **Apply** to close the dialog. - -5. Click **Connect** in the upper-right corner. A connection dialog is displayed. +4. Allow access from Looker Studio by adding `142.251.74.0/23` to **IP Address**, then click **Add to IP list**. + + > **Tip:** + > + > For more details about the connection from Looker Studio, refer to [Connect to MySQL](https://support.google.com/looker-studio/answer/7088031#zippy=%2Cin-this-article). -6. Click **Allow Access from Anywhere(Insecure)**. +5. Click **Apply** to close the dialog. - For more details about how to obtain the connection string, refer to [TiDB Dedicated standard connection](https://docs.pingcap.com/tidbcloud/connect-via-standard-connection). +6. Click **Connect** in the upper-right corner. A connection dialog is displayed. 7. You can download CA File with the link under **Step 2**. From 328ba79aab762f5ddc97599b74298254764c2c91 Mon Sep 17 00:00:00 2001 From: bohnen Date: Thu, 11 Jan 2024 22:15:14 +0900 Subject: [PATCH 11/22] fix lint error: double space after list marker --- develop/dev-guide-bi-looker-studio.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/develop/dev-guide-bi-looker-studio.md b/develop/dev-guide-bi-looker-studio.md index 64d8bbf994eb2..3e6c94f35621b 100644 --- a/develop/dev-guide-bi-looker-studio.md +++ b/develop/dev-guide-bi-looker-studio.md @@ -108,7 +108,7 @@ If the authentication succeeds, you can see tables in the database. 8. Open Looker Studio and create a Blank Report. Select the' MySQL' connector in the **Add data to report** screen. -9. In the **BASIC** setting pane, configure the following connection parameters: +9. In the **BASIC** setting pane, configure the following connection parameters: - **Host Name or IP**: enter the `HOST` parameter from the TiDB Cloud connection dialog. - **Port(Optional)**: enter the `PORT` parameter from the TiDB Cloud connection dialog. From d040ac3172d9fc6e6d676cb3a8e39a6c19ed43f2 Mon Sep 17 00:00:00 2001 From: bohnen Date: Thu, 11 Jan 2024 22:21:02 +0900 Subject: [PATCH 12/22] Apply suggestions from code review Co-authored-by: Xiang Zhang --- develop/dev-guide-bi-looker-studio.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/develop/dev-guide-bi-looker-studio.md b/develop/dev-guide-bi-looker-studio.md index 3e6c94f35621b..3cfa2f5a79c39 100644 --- a/develop/dev-guide-bi-looker-studio.md +++ b/develop/dev-guide-bi-looker-studio.md @@ -63,7 +63,7 @@ You can use the S&P 500 dataset provided as an Interactive Tutorial of TiDB Serv > > If you have created a password before, use the original password or click **Reset Password** to generate a new one. -5. Open Looker Studio and create a Blank Report. Select the' MySQL' connector in the **Add data to report** screen. +5. Open Looker Studio and create a Blank Report. Select the **MySQL** connector in the **Add data to report** screen. 6. In the **BASIC** setting pane, configure the following connection parameters: @@ -106,7 +106,7 @@ If the authentication succeeds, you can see tables in the database. 7. You can download CA File with the link under **Step 2**. -8. Open Looker Studio and create a Blank Report. Select the' MySQL' connector in the **Add data to report** screen. +8. Open Looker Studio and create a Blank Report. Select the **MySQL** connector in the **Add data to report** screen. 9. In the **BASIC** setting pane, configure the following connection parameters: From 911db947d23c193ee6857f720a8751befc52dafd Mon Sep 17 00:00:00 2001 From: Xiang Zhang Date: Sat, 11 May 2024 11:48:14 +0800 Subject: [PATCH 13/22] Apply suggestions from code review Co-authored-by: Grace Cai --- develop/dev-guide-bi-looker-studio.md | 45 +++++++++++++-------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/develop/dev-guide-bi-looker-studio.md b/develop/dev-guide-bi-looker-studio.md index 3cfa2f5a79c39..897c8de640bf4 100644 --- a/develop/dev-guide-bi-looker-studio.md +++ b/develop/dev-guide-bi-looker-studio.md @@ -1,6 +1,6 @@ --- title: Connect to TiDB Cloud with Looker Studio -summary: Learn how to connect to TiDB Cloud using Looker Studio +summary: Learn how to connect to TiDB Cloud using Looker Studio. --- # Connect to TiDB Cloud with Looker Studio @@ -31,13 +31,13 @@ You can use the S&P 500 dataset provided as an Interactive Tutorial of TiDB Serv
-1. Navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page, and click the question mark icon in the bottom-right corner. A Help dialog is displayed. +1. Navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page, and click **?** in the lower-right corner. A **Help** dialog is displayed. -2. Click **Interactive Tutorials**. Then click **S&P 500 Analysis**. +2. In the dialog, click **Interactive Tutorials**, and then click **S&P 500 Analysis**. -3. In the **Import S&P 500 Dataset** dialog, select your Serverless cluster. Then click the **Import Dataset** button. It will start importing briefly. +3. Select your TiDB Serverless cluster, and then click **Import Dataset** to import the S&P 500 dataset to your cluster. -4. After the status changed to **Imported**, you can close this dialog. Click the **Exit Tutorial** button in the bottom-left corner of the dialog. +4. After the import status changes to **IMPORTED**, click **Exit Tutorial** to close this dialog.
@@ -63,17 +63,17 @@ You can use the S&P 500 dataset provided as an Interactive Tutorial of TiDB Serv > > If you have created a password before, use the original password or click **Reset Password** to generate a new one. -5. Open Looker Studio and create a Blank Report. Select the **MySQL** connector in the **Add data to report** screen. +5. Sign in to [Looker Studio](https://lookerstudio.google.com/), click **Create** > **Report**, and then select the **MySQL** connector on the **Add data to report** page. 6. In the **BASIC** setting pane, configure the following connection parameters: - **Host Name or IP**: enter the `HOST` parameter from the TiDB Cloud connection dialog. - **Port(Optional)**: enter the `PORT` parameter from the TiDB Cloud connection dialog. - - **Database**: enter the database you want to connect to. In this tutorial, set `sp500insight`. + - **Database**: enter the database you want to connect to. For this tutorial, enter `sp500insight`. - **Username**: enter the `USERNAME` parameter from the TiDB Cloud connection dialog. - **Password**: enter the `PASSWORD` parameter from the TiDB Cloud connection dialog. - - Check **Enable SSL**. - - Click the icon on the right of **MySQL SSL Client Configuration Files**. Then, select the downloaded CA file in step 3. + - Select the **Enable SSL** option. + - Click the upload icon to the right of **MySQL SSL Client Configuration Files**. Then, select the downloaded CA file in step 3. ![Looker Studio: configure connection settings for TiDB cloud](/media/develop/looker-studio-configure-connection.png) @@ -120,15 +120,15 @@ If the authentication succeeds, you can see tables in the database. 10. Click **AUTHENTICATE**. -If the authentication succeeds, you can see tables in the database. +If the authentication succeeds, you can see tables in the database on the right side.
## Create a simple chart -Now, you can use TiDB cluster as a data source. Let's make a simple chart with data. +Now, you can use the TiDB cluster as a data source and make a simple chart with data. -1. In the setting pane, select **CUSTOM QUERY**. +1. In the right pane, click **CUSTOM QUERY**. 2. Put the SQL below, then click **Add** in the bottom-right corner. @@ -143,31 +143,30 @@ Now, you can use TiDB cluster as a data source. Let's make a simple chart with d FROM companies LEFT JOIN index_compositions ic ON companies.stock_symbol = ic.stock_symbol GROUP BY sector - ORDER BY 5 ASC + ORDER BY 5 ASC; ``` - If you see **You are about to add data to this report** dialog, click **ADD TO REPORT**. + If you see the **You are about to add data to this report** dialog, click **ADD TO REPORT**. Then, a table is displayed in the report. -3. You see a table in the report. Click **Add a chart**, then select `Combo chart` in the `Line` category. +3. In the toolbar of the report, click **Add a chart**, and then select `Combo chart` in the `Line` category. 4. In the **Chart** settings pane, configure the following parameters: - - **Dimension**: `sector`. - - **Metric**: `companies` and `total_market_cap`. + - In the **SETUP** Tab: + - **Dimension**: `sector`. + - **Metric**: `companies` and `total_market_cap`. - In the **STYLE** Tab: - - Series #1 check `Line`. - - Series #1 axis `Right`. - - Series #2 check `Bars`. - - Series #2 axis `Left`. + - Series #1: select the `Line` option and the `Right` axis. + - Series #2: select the `Bars` option and the `Left` axis. - Leave others as defaults. -You can see a combo chart below: +Then, you can see a combo chart similar as follows: ![Looker Studio: A simple Combo Chart](/media/develop/looker-studio-simple-chart.png) ## Next steps -- Learn more usage of Looker Studio from [Looker Studio Help](https://support.google.com/looker-studio) +- Learn more usage of Looker Studio from [Looker Studio Help](https://support.google.com/looker-studio). - Learn the best practices for TiDB application development with the chapters in the [Developer guide](/develop/dev-guide-overview.md), such as [Insert data](/develop/dev-guide-insert-data.md), [Update data](/develop/dev-guide-update-data.md), [Delete data](/develop/dev-guide-delete-data.md), [Single table reading](/develop/dev-guide-get-data-from-single-table.md), [Transactions](/develop/dev-guide-transaction-overview.md), and [SQL performance optimization](/develop/dev-guide-optimize-sql-overview.md). - Learn through the professional [TiDB developer courses](https://www.pingcap.com/education/) and earn [TiDB certifications](https://www.pingcap.com/education/certification/) after passing the exam. From bbfbc22f27c58db701c001eb5f0e1f7ecbd7407f Mon Sep 17 00:00:00 2001 From: Xiang Zhang Date: Sun, 12 May 2024 12:43:34 +0800 Subject: [PATCH 14/22] Update develop/dev-guide-bi-looker-studio.md --- develop/dev-guide-bi-looker-studio.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/develop/dev-guide-bi-looker-studio.md b/develop/dev-guide-bi-looker-studio.md index 897c8de640bf4..02eb2a6cde8d5 100644 --- a/develop/dev-guide-bi-looker-studio.md +++ b/develop/dev-guide-bi-looker-studio.md @@ -9,10 +9,6 @@ TiDB is a MySQL-compatible database, and [Looker Studio](https://lookerstudio.go In this tutorial, you can learn how to connect to your TiDB cluster using Looker Studio. -> **Note:** -> -> - For this tutorial we will use a serverless cluster. Looker Studio can also be used with dedicated clusters. - ## Prerequisites To complete this tutorial, you need: From cee640f7fc5cf89d56bf7dd5c75717c89305d689 Mon Sep 17 00:00:00 2001 From: Xiang Zhang Date: Sun, 12 May 2024 12:56:04 +0800 Subject: [PATCH 15/22] Apply suggestions from code review --- develop/dev-guide-bi-looker-studio.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/develop/dev-guide-bi-looker-studio.md b/develop/dev-guide-bi-looker-studio.md index 02eb2a6cde8d5..1840c74776adb 100644 --- a/develop/dev-guide-bi-looker-studio.md +++ b/develop/dev-guide-bi-looker-studio.md @@ -47,17 +47,17 @@ You can use the S&P 500 dataset provided as an Interactive Tutorial of TiDB Serv 2. Click **Connect** in the upper-right corner. A connection dialog is displayed. -3. Set **Operating System** to `Windows` in the connection dialog. Then Set **Connect With** to `General`. You can download [CA cert](https://letsencrypt.org/certs/isrgrootx1.pem) at the note below. +3. Set **Connect With** to `General` in the connection dialog. Then click **Generate Password** to create a random password. > **Tip:** > - > As TiDB Serverless requires a secure TLS connection between the client and the cluster, you need this CA cert for connection settings on Looker Studio. - -4. Click **Generate Password** to create a random password. + > If you have created a password before, use the original password or click **Reset Password** to generate a new one. + +4. Download the [CA cert](https://letsencrypt.org/certs/isrgrootx1.pem). > **Tip:** > - > If you have created a password before, use the original password or click **Reset Password** to generate a new one. + > As TiDB Serverless requires a secure TLS connection between the client and the cluster, you need this CA cert for connection settings on Looker Studio. 5. Sign in to [Looker Studio](https://lookerstudio.google.com/), click **Create** > **Report**, and then select the **MySQL** connector on the **Add data to report** page. @@ -69,7 +69,7 @@ You can use the S&P 500 dataset provided as an Interactive Tutorial of TiDB Serv - **Username**: enter the `USERNAME` parameter from the TiDB Cloud connection dialog. - **Password**: enter the `PASSWORD` parameter from the TiDB Cloud connection dialog. - Select the **Enable SSL** option. - - Click the upload icon to the right of **MySQL SSL Client Configuration Files**. Then, select the downloaded CA file in step 3. + - Click the upload icon to the right of **MySQL SSL Client Configuration Files**. Then, select the downloaded CA file in step 4. ![Looker Studio: configure connection settings for TiDB cloud](/media/develop/looker-studio-configure-connection.png) From 8efcb8679052417f03c6353e31d04a206cfc2ed6 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 13 May 2024 16:29:18 +0800 Subject: [PATCH 16/22] refine the content and update the instructions for TiDB Dedicated --- develop/dev-guide-bi-looker-studio.md | 127 ++++++------------ .../looker-studio-configure-connection.png | Bin .../tidb-cloud/looker-studio-custom-query.png | Bin 0 -> 29965 bytes .../looker-studio-simple-chart.png | Bin 4 files changed, 42 insertions(+), 85 deletions(-) rename media/{develop => tidb-cloud}/looker-studio-configure-connection.png (100%) create mode 100644 media/tidb-cloud/looker-studio-custom-query.png rename media/{develop => tidb-cloud}/looker-studio-simple-chart.png (100%) diff --git a/develop/dev-guide-bi-looker-studio.md b/develop/dev-guide-bi-looker-studio.md index 1840c74776adb..72a444e8c7237 100644 --- a/develop/dev-guide-bi-looker-studio.md +++ b/develop/dev-guide-bi-looker-studio.md @@ -1,33 +1,34 @@ --- -title: Connect to TiDB Cloud with Looker Studio -summary: Learn how to connect to TiDB Cloud using Looker Studio. +title: Connect to TiDB Serverless with Looker Studio +summary: Learn how to connect to TiDB Serverless using Looker Studio. --- -# Connect to TiDB Cloud with Looker Studio +# Connect to TiDB Serverless with Looker Studio -TiDB is a MySQL-compatible database, and [Looker Studio](https://lookerstudio.google.com/) is a free web-based BI tool that can visualize data from various sources. +TiDB is a MySQL-compatible database, TiDB Serverless is a fully managed TiDB offering, and [Looker Studio](https://lookerstudio.google.com/) is a free web-based BI tool that can visualize data from various sources. -In this tutorial, you can learn how to connect to your TiDB cluster using Looker Studio. +In this tutorial, you can learn how to connect to your TiDB Serverless cluster with Looker Studio. + +> **Note:** +> +>- Most steps in this tutorial work with TiDB Dedicated as well. However, for TiDB Dedicated, you need to import your dataset following [Import data from files to TiDB Cloud](/tidb-cloud/tidb-cloud-migration-overview.md#import-data-from-files-to-tidb-cloud) and get the connection information for your cluster following [Connect to TiDB Dedicated](/tidb-cloud/connect-via-standard-connection.md). In addition, when connecting to TiDB Dedicated, you need to allow access from `142.251.74.0/23`. For more information about connection from Looker Studio, see [Looker Studio documentation](https://support.google.com/looker-studio/answer/7088031#zippy=%2Cin-this-article). ## Prerequisites To complete this tutorial, you need: -- Google Account. -- A TiDB cluster. - -**If you don't have a TiDB cluster, you can create one as follows:** +- A Google account +- A TiDB Serverless cluster -- Follow [Creating a TiDB Serverless cluster](/develop/dev-guide-build-cluster-in-cloud.md) to create your own TiDB Serverless cluster. +**If you don't have a TiDB Serverless cluster, you can create one as follows:** -## Import Dataset +- [Create a TiDB Serverless cluster](/develop/dev-guide-build-cluster-in-cloud.md) -You can use the S&P 500 dataset provided as an Interactive Tutorial of TiDB Serverless. +## Step 1. Import a dataset - -
+You can import the S&P 500 dataset provided in the interactive tutorial of TiDB Serverless. -1. Navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page, and click **?** in the lower-right corner. A **Help** dialog is displayed. +1. Navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page, and click **?** in the lower-right corner. A **Help** dialog is displayed. 2. In the dialog, click **Interactive Tutorials**, and then click **S&P 500 Analysis**. @@ -35,98 +36,54 @@ You can use the S&P 500 dataset provided as an Interactive Tutorial of TiDB Serv 4. After the import status changes to **IMPORTED**, click **Exit Tutorial** to close this dialog. -
-
- -## Connect to TiDB cluster - - -
+## Step 2. Get the connection information for your cluster 1. Navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page, and then click the name of your target cluster to go to its overview page. 2. Click **Connect** in the upper-right corner. A connection dialog is displayed. -3. Set **Connect With** to `General` in the connection dialog. Then click **Generate Password** to create a random password. +3. In the connection dialog, Set **Connect With** to `General`, and then click **Generate Password** to create a random password. > **Tip:** > > If you have created a password before, use the original password or click **Reset Password** to generate a new one. - -4. Download the [CA cert](https://letsencrypt.org/certs/isrgrootx1.pem). - - > **Tip:** - > - > As TiDB Serverless requires a secure TLS connection between the client and the cluster, you need this CA cert for connection settings on Looker Studio. - -5. Sign in to [Looker Studio](https://lookerstudio.google.com/), click **Create** > **Report**, and then select the **MySQL** connector on the **Add data to report** page. - -6. In the **BASIC** setting pane, configure the following connection parameters: - - - **Host Name or IP**: enter the `HOST` parameter from the TiDB Cloud connection dialog. - - **Port(Optional)**: enter the `PORT` parameter from the TiDB Cloud connection dialog. - - **Database**: enter the database you want to connect to. For this tutorial, enter `sp500insight`. - - **Username**: enter the `USERNAME` parameter from the TiDB Cloud connection dialog. - - **Password**: enter the `PASSWORD` parameter from the TiDB Cloud connection dialog. - - Select the **Enable SSL** option. - - Click the upload icon to the right of **MySQL SSL Client Configuration Files**. Then, select the downloaded CA file in step 4. - ![Looker Studio: configure connection settings for TiDB cloud](/media/develop/looker-studio-configure-connection.png) - -7. Click **AUTHENTICATE**. - -If the authentication succeeds, you can see tables in the database. - -
-
- -1. Navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page, and then click the name of your target cluster to go to its overview page. - -2. Click **...** menu in the upper-right corner. Then, select **Security Settings**. Settings dialog shows up. - -3. Click **Generate** to generate root password and **Copy** it to the clipboard. +4. Download the [CA cert](https://letsencrypt.org/certs/isrgrootx1.pem). > **Tip:** > - > If you have created a password before, use the original password or click **Regenerate** to generate a new one. - -4. Allow access from Looker Studio by adding `142.251.74.0/23` to **IP Address**, then click **Add to IP list**. + > TiDB Serverless requires a secure TLS connection between the client and the cluster, so you need this CA cert for connection settings in Looker Studio. - > **Tip:** - > - > For more details about the connection from Looker Studio, refer to [Connect to MySQL](https://support.google.com/looker-studio/answer/7088031#zippy=%2Cin-this-article). +## Step 3. Connect to your TiDB cluster with Looker Studio -5. Click **Apply** to close the dialog. +1. Log into [Looker Studio](https://lookerstudio.google.com/), and then click **Create** > **Report** in the left navigation pane. -6. Click **Connect** in the upper-right corner. A connection dialog is displayed. +2. On the displayed page, select the **MySQL** connector, and then click **AUTHORIZE**. -7. You can download CA File with the link under **Step 2**. +3. In the **BASIC** setting pane, configure the connection parameters. -8. Open Looker Studio and create a Blank Report. Select the **MySQL** connector in the **Add data to report** screen. + - **Host Name or IP**: enter the `HOST` parameter from the TiDB Serverless connection dialog. + - **Port(Optional)**: enter the `PORT` parameter from the TiDB Serverless connection dialog. + - **Database**: enter the database you want to connect to. For this tutorial, enter `sp500insight`. + - **Username**: enter the `USERNAME` parameter from the TiDB Serverless connection dialog. + - **Password**: enter the `PASSWORD` parameter from the TiDB Serverless connection dialog. + - **Enable SSL**: select this option, and then click the upload icon to the right of **MySQL SSL Client Configuration Files** to upload the CA file downloaded from [Step 2](#step-2-get-the-connection-information-for-your-cluster). -9. In the **BASIC** setting pane, configure the following connection parameters: + ![Looker Studio: configure connection settings for TiDB Serverless](/media/tidb-cloud/looker-studio-configure-connection.png) - - **Host Name or IP**: enter the `HOST` parameter from the TiDB Cloud connection dialog. - - **Port(Optional)**: enter the `PORT` parameter from the TiDB Cloud connection dialog. - - **Database**: enter the database you want to connect to. In this tutorial, set `sp500insight`. - - **Username**: enter the `USERNAME` parameter from the TiDB Cloud connection dialog. - - **Password**: enter the `PASSWORD` parameter from the TiDB Cloud connection dialog. - - Check **Enable SSL**. - - Click the icon on the right of **MySQL SSL Client Configuration Files**. Then, select the downloaded CA file before. +4. Click **AUTHENTICATE**. -10. Click **AUTHENTICATE**. +If the authentication succeeds, you can see tables in the database. -If the authentication succeeds, you can see tables in the database on the right side. -
-
+## Step 4. Create a simple chart -## Create a simple chart +Now, you can use the TiDB cluster as a data source and create a simple chart with data. -Now, you can use the TiDB cluster as a data source and make a simple chart with data. +1. In the right pane, click **CUSTOM QUERY**. -1. In the right pane, click **CUSTOM QUERY**. + ![Looker Studio: custom query](/media/tidb-cloud/looker-studio-custom-query.png) -2. Put the SQL below, then click **Add** in the bottom-right corner. +2. Copy the following code to the **Enter Custom Query** area, then click **Add** in the lower-right corner. ```sql SELECT sector, @@ -142,11 +99,11 @@ Now, you can use the TiDB cluster as a data source and make a simple chart with ORDER BY 5 ASC; ``` - If you see the **You are about to add data to this report** dialog, click **ADD TO REPORT**. Then, a table is displayed in the report. + If you see the **You are about to add data to this report** dialog, click **ADD TO REPORT**. Then, a table is displayed in the report. 3. In the toolbar of the report, click **Add a chart**, and then select `Combo chart` in the `Line` category. -4. In the **Chart** settings pane, configure the following parameters: +4. In the **Chart** settings pane on the right, configure the following parameters: - In the **SETUP** Tab: - **Dimension**: `sector`. @@ -154,11 +111,11 @@ Now, you can use the TiDB cluster as a data source and make a simple chart with - In the **STYLE** Tab: - Series #1: select the `Line` option and the `Right` axis. - Series #2: select the `Bars` option and the `Left` axis. - - Leave others as defaults. + - Leave other fields as defaults. Then, you can see a combo chart similar as follows: -![Looker Studio: A simple Combo Chart](/media/develop/looker-studio-simple-chart.png) +![Looker Studio: A simple Combo chart](/media/tidb-cloud/looker-studio-simple-chart.png) ## Next steps diff --git a/media/develop/looker-studio-configure-connection.png b/media/tidb-cloud/looker-studio-configure-connection.png similarity index 100% rename from media/develop/looker-studio-configure-connection.png rename to media/tidb-cloud/looker-studio-configure-connection.png diff --git a/media/tidb-cloud/looker-studio-custom-query.png b/media/tidb-cloud/looker-studio-custom-query.png new file mode 100644 index 0000000000000000000000000000000000000000..8426e2da3c71a18de33512ea5ae52baa6de508c5 GIT binary patch literal 29965 zcmeFZcUV(RyDuCcu>&@WNKrvRP=fT1FB=gl0qG?K6cR8%=%FKz@Q4}&gcxE#Kq;XI z2_!%e5D_V%NCF8V6lr3JH0k~D?DxE7U)SE}`_9?l`Qy8;cak;vt$Xfu&#YN9v+kMu zp6n0qe*>H`y<>6*aOe;KaOmIz*q=BwXkuvScF)@Kj)}R^UlZB^2Z84%0D$ld39>f+ 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 X?Ti$0qd3_zNl=_$2|_mdfHVAG Date: Mon, 13 May 2024 16:32:39 +0800 Subject: [PATCH 17/22] move the doc to the tidb-cloud folder as it is only for TiDB Cloud --- TOC-tidb-cloud.md | 2 +- {develop => tidb-cloud}/dev-guide-bi-looker-studio.md | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename {develop => tidb-cloud}/dev-guide-bi-looker-studio.md (100%) diff --git a/TOC-tidb-cloud.md b/TOC-tidb-cloud.md index 5fdffb799a1a9..73a215d651c54 100644 --- a/TOC-tidb-cloud.md +++ b/TOC-tidb-cloud.md @@ -27,7 +27,7 @@ - [Navicat](/develop/dev-guide-gui-navicat.md) - [Choose Driver or ORM](/develop/dev-guide-choose-driver-or-orm.md) - BI - - [Looker Studio](/develop/dev-guide-bi-looker-studio.md) + - [Looker Studio](/tidb-cloud/dev-guide-bi-looker-studio.md) - Java - [JDBC](/develop/dev-guide-sample-application-java-jdbc.md) - [MyBatis](/develop/dev-guide-sample-application-java-mybatis.md) diff --git a/develop/dev-guide-bi-looker-studio.md b/tidb-cloud/dev-guide-bi-looker-studio.md similarity index 100% rename from develop/dev-guide-bi-looker-studio.md rename to tidb-cloud/dev-guide-bi-looker-studio.md From ad69eb968123d2af450011b347aeaf7c3d2c0862 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 13 May 2024 16:37:39 +0800 Subject: [PATCH 18/22] Update dev-guide-bi-looker-studio.md --- tidb-cloud/dev-guide-bi-looker-studio.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tidb-cloud/dev-guide-bi-looker-studio.md b/tidb-cloud/dev-guide-bi-looker-studio.md index 72a444e8c7237..ff7d258fb097a 100644 --- a/tidb-cloud/dev-guide-bi-looker-studio.md +++ b/tidb-cloud/dev-guide-bi-looker-studio.md @@ -11,7 +11,7 @@ In this tutorial, you can learn how to connect to your TiDB Serverless cluster w > **Note:** > ->- Most steps in this tutorial work with TiDB Dedicated as well. However, for TiDB Dedicated, you need to import your dataset following [Import data from files to TiDB Cloud](/tidb-cloud/tidb-cloud-migration-overview.md#import-data-from-files-to-tidb-cloud) and get the connection information for your cluster following [Connect to TiDB Dedicated](/tidb-cloud/connect-via-standard-connection.md). In addition, when connecting to TiDB Dedicated, you need to allow access from `142.251.74.0/23`. For more information about connection from Looker Studio, see [Looker Studio documentation](https://support.google.com/looker-studio/answer/7088031#zippy=%2Cin-this-article). +> Most steps in this tutorial work with TiDB Dedicated as well. However, for TiDB Dedicated, you need to import your dataset following [Import data from files to TiDB Cloud](/tidb-cloud/tidb-cloud-migration-overview.md#import-data-from-files-to-tidb-cloud) and get the connection information for your cluster following [Connect to TiDB Dedicated](/tidb-cloud/connect-via-standard-connection.md). In addition, when connecting to TiDB Dedicated, you need to allow access from `142.251.74.0/23`. For more information about connection from Looker Studio, see [Looker Studio documentation](https://support.google.com/looker-studio/answer/7088031#zippy=%2Cin-this-article). ## Prerequisites From 0254ba5df343a3f6bae513e8a112496dd8ce64a9 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Mon, 13 May 2024 16:39:54 +0800 Subject: [PATCH 19/22] Update dev-guide-bi-looker-studio.md --- tidb-cloud/dev-guide-bi-looker-studio.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tidb-cloud/dev-guide-bi-looker-studio.md b/tidb-cloud/dev-guide-bi-looker-studio.md index ff7d258fb097a..e9421b1174acc 100644 --- a/tidb-cloud/dev-guide-bi-looker-studio.md +++ b/tidb-cloud/dev-guide-bi-looker-studio.md @@ -42,7 +42,7 @@ You can import the S&P 500 dataset provided in the interactive tutorial of TiDB 2. Click **Connect** in the upper-right corner. A connection dialog is displayed. -3. In the connection dialog, Set **Connect With** to `General`, and then click **Generate Password** to create a random password. +3. In the connection dialog, set **Connect With** to `General`, and then click **Generate Password** to create a random password. > **Tip:** > @@ -83,7 +83,7 @@ Now, you can use the TiDB cluster as a data source and create a simple chart wit ![Looker Studio: custom query](/media/tidb-cloud/looker-studio-custom-query.png) -2. Copy the following code to the **Enter Custom Query** area, then click **Add** in the lower-right corner. +2. Copy the following code to the **Enter Custom Query** area, and then click **Add** in the lower-right corner. ```sql SELECT sector, From 87745cd0d17cf0df69b4fbc909f19f7b763f9f95 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 14 May 2024 14:40:46 +0800 Subject: [PATCH 20/22] Update looker-studio-simple-chart.png --- .../tidb-cloud/looker-studio-simple-chart.png | Bin 33595 -> 66084 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/media/tidb-cloud/looker-studio-simple-chart.png b/media/tidb-cloud/looker-studio-simple-chart.png index 3fb569f2e21de048819cbfe3fdc64be7b18e9cb7..257f9b19203dab549cf9ba9aea7fce5d4ec092a3 100644 GIT binary patch literal 66084 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 nsp~gR$z?Y1KqIkKeQQ-do^-0oU From 2dea8f0cbaff166ba0cfa1f8f220c88cf4a6d3c1 Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 14 May 2024 14:41:25 +0800 Subject: [PATCH 21/22] Apply suggestions from code review Co-authored-by: xixirangrang --- tidb-cloud/dev-guide-bi-looker-studio.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/tidb-cloud/dev-guide-bi-looker-studio.md b/tidb-cloud/dev-guide-bi-looker-studio.md index e9421b1174acc..1a9952bc650c0 100644 --- a/tidb-cloud/dev-guide-bi-looker-studio.md +++ b/tidb-cloud/dev-guide-bi-looker-studio.md @@ -11,7 +11,13 @@ In this tutorial, you can learn how to connect to your TiDB Serverless cluster w > **Note:** > -> Most steps in this tutorial work with TiDB Dedicated as well. However, for TiDB Dedicated, you need to import your dataset following [Import data from files to TiDB Cloud](/tidb-cloud/tidb-cloud-migration-overview.md#import-data-from-files-to-tidb-cloud) and get the connection information for your cluster following [Connect to TiDB Dedicated](/tidb-cloud/connect-via-standard-connection.md). In addition, when connecting to TiDB Dedicated, you need to allow access from `142.251.74.0/23`. For more information about connection from Looker Studio, see [Looker Studio documentation](https://support.google.com/looker-studio/answer/7088031#zippy=%2Cin-this-article). +> Most steps in this tutorial work with TiDB Dedicated as well. However, for TiDB Dedicated, you need to note the following: +> +> - Import your dataset following [Import data from files to TiDB Cloud](/tidb-cloud/tidb-cloud-migration-overview.md#import-data-from-files-to-tidb-cloud). +> - Get the connection information for your cluster following [Connect to TiDB Dedicated](/tidb-cloud/connect-via-standard-connection.md). +> - When connecting to TiDB Dedicated, you need to allow access from `142.251.74.0/23`. +> +> For more information about connection from Looker Studio, see [Looker Studio documentation](https://support.google.com/looker-studio/answer/7088031#zippy=%2Cin-this-article). ## Prerequisites @@ -22,7 +28,7 @@ To complete this tutorial, you need: **If you don't have a TiDB Serverless cluster, you can create one as follows:** -- [Create a TiDB Serverless cluster](/develop/dev-guide-build-cluster-in-cloud.md) +- [Create a TiDB Serverless cluster](/develop/dev-guide-build-cluster-in-cloud.md#step-1-create-a-tidb-serverless-cluster) ## Step 1. Import a dataset @@ -36,6 +42,12 @@ You can import the S&P 500 dataset provided in the interactive tutorial of TiDB 4. After the import status changes to **IMPORTED**, click **Exit Tutorial** to close this dialog. +If you encounter any issues during import, you can cancel this import task as follows: + +1. On the [**Clusters**](https://tidbcloud.com/console/clusters) page, click the name of your TiDB Serverless cluster to go to its overview page. +2. In the left navigation pane, click **Import**. +3. Find the import task named **sp500-insight**, click **...** in the **Action** column, and then click **Cancel**. + ## Step 2. Get the connection information for your cluster 1. Navigate to the [**Clusters**](https://tidbcloud.com/console/clusters) page, and then click the name of your target cluster to go to its overview page. @@ -58,7 +70,7 @@ You can import the S&P 500 dataset provided in the interactive tutorial of TiDB 1. Log into [Looker Studio](https://lookerstudio.google.com/), and then click **Create** > **Report** in the left navigation pane. -2. On the displayed page, select the **MySQL** connector, and then click **AUTHORIZE**. +2. On the displayed page, search and select the **MySQL** connector, and then click **AUTHORIZE**. 3. In the **BASIC** setting pane, configure the connection parameters. From 95f2ca722b1d16c852ce4e26249233f78075beda Mon Sep 17 00:00:00 2001 From: Grace Cai Date: Tue, 14 May 2024 14:58:48 +0800 Subject: [PATCH 22/22] format udpates --- tidb-cloud/dev-guide-bi-looker-studio.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/tidb-cloud/dev-guide-bi-looker-studio.md b/tidb-cloud/dev-guide-bi-looker-studio.md index 1a9952bc650c0..29a446a68f752 100644 --- a/tidb-cloud/dev-guide-bi-looker-studio.md +++ b/tidb-cloud/dev-guide-bi-looker-studio.md @@ -14,10 +14,7 @@ In this tutorial, you can learn how to connect to your TiDB Serverless cluster w > Most steps in this tutorial work with TiDB Dedicated as well. However, for TiDB Dedicated, you need to note the following: > > - Import your dataset following [Import data from files to TiDB Cloud](/tidb-cloud/tidb-cloud-migration-overview.md#import-data-from-files-to-tidb-cloud). -> - Get the connection information for your cluster following [Connect to TiDB Dedicated](/tidb-cloud/connect-via-standard-connection.md). -> - When connecting to TiDB Dedicated, you need to allow access from `142.251.74.0/23`. -> -> For more information about connection from Looker Studio, see [Looker Studio documentation](https://support.google.com/looker-studio/answer/7088031#zippy=%2Cin-this-article). +> - Get the connection information for your cluster following [Connect to TiDB Dedicated](/tidb-cloud/connect-via-standard-connection.md). When connecting to TiDB Dedicated, you need to allow access from `142.251.74.0/23`. For more information about connections from Looker Studio, see [Looker Studio documentation](https://support.google.com/looker-studio/answer/7088031#zippy=%2Cin-this-article). ## Prerequisites