Unlocking Data Insights: Effective ways to extract data from SQL database for powerful data visualization

Priya G
5 min readApr 4, 2023

--

SQL is a powerful programming language that allows to store, manage, retrieve and manipulate data in relational databases. It has become an essential tool in managing data in many industries, such as, e-commerce, retail, finance, logistics, healthcare, etc.

A data analyst uses SQL to collect, clean, prepare and analyze data. And, then interpret their key insights to the stakeholders in the organization to make data driven decisions. In order to report their findings, they use visualization tools and techniques to translate complex data into meaningful information.

In this post, we will be looking at different ways to extract data from a SQL database that can be used to design visualizations. It is important to note that, before you begin your analysis it is essential to understand your business requirements. This helps you to focus your analysis on the most relevant data. SQL allows you to address the specific objectives and problems of the data. Then, when it is integrated with business tools and programming languages, effective data visualization can be build, that can lead to making informed business decisions.

First, let us look at some of the best practices for extracting data from SQL database for data visualization.

1) Data Validation: The first step begins with data validation since dashboards or reports are powered by data. You can validate your data by checking its data type and format, removing duplicates, handling missing values, etc.

2) SQL Queries: You can use SQL queries to retrieve relevant for your analysis. This includes minimizing the number of tables and columns, preventing unnecessary joins. Hence, the amount of data loaded or extracted is reduced and leads to better performance.
For example, including only the relevant columns in SELECT command.

3) Data Filtering: You can also limit the amount of rows imported to your business tool by filtering. For instance, ‘WHERE’ clause can be used in your SQL query to limit the range based on a specific criteria.

4) Data Aggregation: Summarizing your data can make your visualization process easy and can help you to identify the underlying patterns and trends in your data. This includes, the use of ‘GROUPBY’ clause to aggregate data by a specific column(s) along with other aggregate functions ‘COUNT’, ‘SUM’, and ‘AVG’

Different ways to extract data from SQL(using MySQL):

1. Export Data to CSV file:

  • Open MySQL workbench
  • Connect to database from which you need to export the data.
  • Write a SQL query that would retrieve the relevant data for your analysis and execute the selection.
  • Click Export button in the query editor toolbar and save file in CSV format(or other suitable format)
Example: The purchase history of the user retrieved using SELECT, WHERE & JOINS

2. Using ‘SELECT INTO OUTFILE’ statement:

  • INTO OUTFILE directly queries your result into a text file(CSV). To do this, include ‘INTO OUTFILE’ clause after ‘SELECT’ statement.
  • When you run the SELECT INTO OUTFILE statement, MySQL will write the data to the non-existing file name at the specified location.
SELECT *
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/file_name.csv'
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\r\n'
FROM table_name;
  • The output of the query will only return a message. If you see a message with the number of rows that needs to be exported, then your export was successful!
INTO OUTFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/file_name.csv'

The above line of code allows you to export the data into CSV file to mentioned MySQL Server location.

The following clauses helps you to format your output file:

FIELDS TERMINATED BY ‘,’ : It specifies the character used to separate the fields(columns) in the output file. Here, the delimiter comma (,) is used.

OPTIONALLY ENCLOSED BY ‘ ‘’ ’ : It specifies the character used to enclose the fields in the output file.

LINES TERMINATED BY ‘\r\n’ : It specifies how the lines are terminated. Here that each line is terminated by a carriage return in the output file.

Example: Execution of a INTO OUTFILE returns a message

Note: If the file name already exists, it returns,

“Error Code: 1086. File already exists.”

This is to prevent files such as /etc/passwd and database tables from being modified.

3. Import data in Power BI :

  • Open Power BI desktop and click ‘Get Data’ from Home tab.
  • Select ‘MySQL’ from the list of data source options and click ‘Connect’
Get Data from Database
  • ‘MySQL database’ window opens, enter ‘Server’ and ‘Database’ fields.
  • In the ‘Navigator’ window, list of all tables in the database will be displayed, check all or only the tables that you want to load into Power BI.
Navigator Window: Select relevant tables
  • You can click the ‘Transform Data’ feature to perform transformations on your data before its loaded into Power BI. Or skip the step and click ‘Load’. You are ready to create your report!
  • To reduce the amount of data loaded into Power BI: This is done by selecting ‘Advanced options’, when ‘MySQL database’ window is opened. Enter a SQL statement to retrieve the relevant data from database. Finally click ok. A preview of the retrieved data will be shown. Now, you can create reports in Power BI!
Advance Option: Using SQL statement to filter the data before its loaded into power BI
Preview of the retrieved data

Note:

  • Can schedule ‘Refresh’ to load new data or updates made in MySQL table.
  • Apart from Power BI, many business tools like Tableau, QlikView have built in SQL connectors.

With the data extracted from database, you can now create powerful data visualizations that can convey insights effectively.

These are some of the ways in which data can be exported from SQL database. There are many other methods and data extraction tools available, depending on your preferences. Like, Extract Transform Load (ETL) tools, API’s, and command line methods

Example of ETL tools: Apache NiFi, Microsoft SQL Server Integration Services(SSIS), Hevo Data, Talend Open, Pentaho, Qlik Replicate.

Resources

[1] https://dev.mysql.com/doc/refman/5.7/en/select-into.html

[2] https://powerbi.microsoft.com/fr-be/blog/connecting-to-datasets-in-the-power-bi-service-from-desktop/

[3] https://learn.microsoft.com/en-us/dynamics365/fin-ops-core/dev-itpro/data-entities/data-import-export-job

[4] https://dev.mysql.com/doc/workbench/en/wb-admin-export-import-management.html

[5] https://hevodata.com/learn/microsoft-sql-server-etl-best-tools/

--

--