DEV Community

Guyo
Guyo

Posted on

Power BI Meets SQL: Everything You Need to Know About Database Connections.

Introduction
Microsoft power BI is a powerful tool used for data visualization .It allows data analyst ,developers and organization to convert raw data from numbers into narrative that drive decisions by creating dashboard ,charts and reports.Power bi is mostly use in data Analysis ,Business intelligence and reporting. In this era of technological advancement most organization used it to monitor spot trends in performance and high impact decision making. Power BI connects directly to databases and automatically retrieves data replacing manual inspection with automated analysis .Most companies stored their operational data in SQL data bases such as PostgreSQL .SQL databases are system built to efficiently manage ,store and query structured data .SQL databases allow organizations to manage large datasets and retrieve any relevant information with ease using SQL queries .Connecting Power BI to SQL databases is fundamental because it gives analyst the freedom of accessing regularly updated data ,building dashboards ,automate reporting, and perform deep analysis using the structured data . I will demonstrate how to link power bi to with local PostgreSQL, structuring and shaping the datasets for analysis in Power bi

Connecting Power BI to local PostgreSQL
1.Launching the Power BI desktop
2.Select the data on the home tab click Get data ,The option allows power BI to connect to various data sources

3.From the category list chose the PostgreSQL and click connect
4.In the connection window input the following details in the connection screen
Server: localhost
Database: sales_db
Mode: Import
The import mode helps to load the data into power BI


5.After confirming ,Power bi will request login credentials for authentication enter user name and password
6.After connection is established the navigator window will display all the available table in the database

Connecting Power BI to a Cloud Database (Aiven PostgreSQL)

These days, many organizations store their data in the cloud rather than on local servers. Cloud databases make it easier to manage large amounts of data, access it from anywhere, and scale as needed. Aiven is one such service that offers fully managed PostgreSQL databases in the cloud.

Connecting Power BI to an aiven PostgreSQL database works almost the same way as connecting to a local database. The main difference is that, since the database is online, you need to take a few extra security steps to ensure the connection is safe.

Step 1: Get the Connection Details from aiven

Start by logging into your aiven dashboard and locating your database’s connection information. You will need:

Host – the server address of your PostgreSQL database

Port – usually 5432

Database name – the database you want to connect to

Username – the account you will use to log in

Password – the password for that account

Here’s an example of what these details might look like:

Host: pg-project.aivencloud.com
Port: 5432
Database: analytics
User: analyst
Password: ********

These credentials tell Power BI where to find the database and how to authenticate.

Step 2: Download the SSL Certificate

Cloud databases usually require SSL encryption to keep your data safe while it travels over the internet.

From your Aiven service page, download the CA certificate provided for your database and save it somewhere on your computer. This certificate ensures that the connection between Power BI and your database is encrypted, protecting sensitive information like passwords and query results.

Step 3: Connect Power BI to the Cloud Database

Once you have your connection details and SSL certificate ready, open Power BI Desktop and follow these steps:

  1. Click Get Data on the Home tab. 2.Choose PostgreSQL database as the data source. 3.Enter the Host and Port for your database server. 4.Provide the database name. 5.Enter your username and password.

If your database requires it, you can also specify the path to your SSL certificate in the advanced options.

Once the connection is verified, Power BI will show all the available tables in the database. You can select the tables you need and load them into Power BI for analysis, just like you would with a local PostgreSQL database

Loading Tables and creating Relationships
Once the datasets is imported the following step is to model the data in power BI .Assuming for instance the database includes the following tables

  1. Customers
  2. Products
  3. Sales
  4. Inventory These tables contains interconnected data that should be modelled through relationships Common examples of such relationships include linking customers.customer_id → sales.customer_id products.product_id → sales.product_id products.product_id → inventory.product_id

The established relationships allows power BI to join data from multiple tables with accuracy

Model View in Power BI
The model view in power BI provides a visual interface for creating relationships between tables .

What I love about this view is the control it gives you. You can literally drag fields between tables to build relationships, figure out if something's one-to-many or many-to-one, manage how filters pass through your model, and rearrange tables until the layout makes sense for your analysis.

Why Data modelling Matters
Proper data modeling provides assurance that
Ensures that all aggregation are derived and calculated properly
Filters are applied consistently across all related tables
Structure tables for effective analysis
For example, when analyzing the the total sales by customers, power bi depend on the relationships to associate the sales table with the customer table without this relational structures the analysis would be incomplete.

The importance of SQL skills for Power BI Analyst
Power BI offers strong visualization capabilities but sql remains a key skill for managing and preparing data at the database level before intergration.Among the core tasks analyst perform with SqL include

1 Retrieving data

SELECT *
FROM sales 
WHERE order_date >= '2025-01-01';
Enter fullscreen mode Exit fullscreen mode


sql

  1. Filtering Data sets SQL reduce the size of the datastets by filtering out irrelevant records prior to loading into power bi
  2. Performing Aggregate functons Calculating different metrics including sum, avg customer counts
SELECT customer_id, SUM(total_amount)
FROM sales
GROUP BY customer_id;
Enter fullscreen mode Exit fullscreen mode

3.Subquiries
This is queries within a query
A queries inside a query
--Allows you to perform an operation that depends on the result of another query

SELECT name
FROM customers
WHERE customer_id IN (
    SELECT customer_id
    FROM orders
);
Enter fullscreen mode Exit fullscreen mode

4.CTES
A CTE is a temporary result set defined within a SQL query. It helps simplify complex queries by breaking them into smaller, more readable parts. CTEs are especially useful when performing calculations, filtering data, or creating intermediate datasets that will later be used for analysis.

WITH product_quantities AS (
    SELECT
        product_id,
        product_name,
        (SELECT SUM(quantity)
            FROM orders o
            WHERE o.product_id = p.product_id) as total_quantity
    FROM Products p
)
SELECT * FROM product_quantities;
Enter fullscreen mode Exit fullscreen mode

Summary
Power BI transforms raw data into dashboards and insights you can actually act on. When you connect it to a SQL database like PostgreSQL, you're tapping directly into organized, reliable data instead of dealing with exported files that are outdated the moment you save them. This direct connection makes life so much easier for analysts who need to build reports that people trust. You're working with structured data that updates automatically, which means your dashboards reflect what's happening in your business right now, not what happened yesterday or last week. For anyone doing serious data analysis, linking Power BI to a SQL database isn't just convenient—it's essential for creating the kind of reporting that actually drives decisions."

Top comments (0)