<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: clintonmarwoka</title>
    <description>The latest articles on Forem by clintonmarwoka (@marwokaclintonops).</description>
    <link>https://forem.com/marwokaclintonops</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3849693%2Fdd37fe7a-a2f1-4ccd-8f99-618718f10fc9.png</url>
      <title>Forem: clintonmarwoka</title>
      <link>https://forem.com/marwokaclintonops</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/marwokaclintonops"/>
    <language>en</language>
    <item>
      <title>From Desktop to Web: A Step-by-Step Guide to Publishing and Embedding Power BI Reports</title>
      <dc:creator>clintonmarwoka</dc:creator>
      <pubDate>Sun, 05 Apr 2026 18:54:28 +0000</pubDate>
      <link>https://forem.com/marwokaclintonops/from-desktop-to-web-a-step-by-step-guide-to-publishing-and-embedding-power-bi-reports-nja</link>
      <guid>https://forem.com/marwokaclintonops/from-desktop-to-web-a-step-by-step-guide-to-publishing-and-embedding-power-bi-reports-nja</guid>
      <description>&lt;p&gt;&lt;strong&gt;Introduction: From Desktop to the World&lt;/strong&gt;&lt;br&gt;
In the modern data ecosystem, a report that sits on a local machine is a missed opportunity. Power BI Desktop is the engine where we perform data cleaning (Power Query), complex calculations (DAX), and modeling (Star Schema). However, the Power BI Service (SaaS) is the stage where that data becomes actionable.&lt;/p&gt;

&lt;p&gt;Publishing and embedding reports allows organizations to democratize data, providing stakeholders with real-time insights accessible via any web browser. In this guide, we will walk through the end-to-end process of moving your "Electronics Sales" analysis from a .pbix file to a live, interactive web environment.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phase 1: Preparing the Cloud Environment (Workspaces)&lt;/strong&gt;&lt;br&gt;
Before you can publish, you need a destination. In Power BI, this destination is called a Workspace. Think of a workspace as a collaborative container for your datasets, reports, and dashboards.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Step 1: Accessing Power BI Service&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Navigate to app.powerbi.com.&lt;/li&gt;
&lt;li&gt;Log in using the provided credentials:&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Email: &lt;a href="mailto:cohortseven@luxdevhq.com"&gt;cohortseven@luxdevhq.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Password: cohort7@123&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Step 2: Creating Your Personal Workspace&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;On the left-hand navigation pane, click on Workspaces.&lt;/li&gt;
&lt;li&gt;Click the + New workspace button.&lt;/li&gt;
&lt;li&gt;Name: Per the assignment instructions, use your Full Name (e.g., John Doe - Electronics Sales).&lt;/li&gt;
&lt;li&gt;Description: Add a brief note (e.g., "Workspace for LuxDev Data Science Assignment").&lt;/li&gt;
&lt;li&gt;Click Apply.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Phase 2: Publishing the Report from Power BI Desktop&lt;/strong&gt;&lt;br&gt;
Now that your cloud "folder" is ready, you must upload your local work.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Step 1: The Publish Command&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Open your Electronics Sales.pbix file in Power BI Desktop.&lt;/li&gt;
&lt;li&gt;Ensure you are signed in (top right corner) with the same credentials used for the web service. 
3.On the Home tab of the ribbon, click the Publish button.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Step 2: Selecting the Destination&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A dialog box will appear listing all available workspaces.&lt;/li&gt;
&lt;li&gt;Select the workspace you created with your Full Name. &lt;/li&gt;
&lt;li&gt;Click Select.&lt;/li&gt;
&lt;li&gt;Wait for the "Success!" message and click "Open [File Name] in Power BI."&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Phase 3: Generating the Embed Code (iFrames)&lt;/strong&gt;&lt;br&gt;
To put a report on a website, we use an iFrame. An iFrame (Inline Frame) is an HTML element that allows you to "window" another website inside your own.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Step 1: Navigating to the Report&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In the Power BI Service, open the workspace you just published to.&lt;/li&gt;
&lt;li&gt;Click on the Report (indicated by the blue icon).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Step 2: Creating the Public Web Link&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;In the top menu bar of the report, go to File.&lt;/li&gt;
&lt;li&gt;Select Embed report. &lt;/li&gt;
&lt;li&gt;Choose Publish to web (public).&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Note: In a corporate environment, you would usually choose "Website or portal" for security, but for public portfolios, "Publish to web" is the standard.&lt;br&gt;
4.Click Create embed code and then Publish.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Step 3: Copying the HTML Code&lt;/strong&gt;&lt;/em&gt;&lt;br&gt;
A dialog box will appear providing two options:&lt;/p&gt;

&lt;p&gt;Link you can send in email: A direct URL.&lt;/p&gt;

&lt;p&gt;HTML you can paste into a website: This is your iFrame code. Copy this code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Phase 4: Embedding the Report on a Website&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
Whether you are using a custom HTML site, WordPress, or a portfolio builder, the process is the same.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Open the HTML editor of your website.&lt;/li&gt;
&lt;li&gt;Paste the iFrame code you copied from Power BI. &lt;/li&gt;
&lt;li&gt;Customization: You can manually adjust the width and height properties within the code to fit your website's layout.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Phase 5: Version Control with GitHub&lt;/strong&gt;&lt;br&gt;
As part of professional data engineering, your source files (.pbix) should be version-controlled.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Go to GitHub and create a new repository named Power-BI-Electronics-Sales.&lt;/li&gt;
&lt;li&gt;Upload your .pbix file to this repository.&lt;/li&gt;
&lt;li&gt;Commit the changes and copy the repository URL.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Key Insights and Best Practices&lt;/strong&gt;&lt;br&gt;
Security Awareness: Never use "Publish to Web" for sensitive or private data. Once published, anyone with the link can access the data, and it may be indexed by search engines.&lt;/p&gt;

&lt;p&gt;Workspace Organization: Always use clear naming conventions for workspaces to differentiate between Development, Testing, and Production environments.&lt;/p&gt;

&lt;p&gt;Data Refresh: Once a report is published, you can schedule "Data Refreshes" in the workspace settings so that your embedded report updates automatically when the source data changes.&lt;/p&gt;

&lt;p&gt;Mobile Optimization: Power BI allows you to create a "Mobile Layout." If your website is viewed on phones, ensure you have configured this view in Power BI Desktop before publishing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Publishing to the web is the final "mile" of the data journey. By moving from a static file to an embedded iFrame, you transform your analysis into a living tool that can be shared with the world.&lt;/p&gt;

</description>
      <category>analytics</category>
      <category>data</category>
      <category>saas</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Understanding Data Modeling in Power BI: Joins, Relationships, and Schemas Explained</title>
      <dc:creator>clintonmarwoka</dc:creator>
      <pubDate>Sun, 29 Mar 2026 21:40:44 +0000</pubDate>
      <link>https://forem.com/marwokaclintonops/understanding-data-modeling-in-power-bi-joins-relationships-and-schemas-explained-fe8</link>
      <guid>https://forem.com/marwokaclintonops/understanding-data-modeling-in-power-bi-joins-relationships-and-schemas-explained-fe8</guid>
      <description>&lt;p&gt;In the world of data analytics, a dashboard is only as strong as the model beneath it. You can have the most beautiful DAX measures and high-end visuals, but if your data model is fragmented, your reports will be slow, inaccurate, worst of all misleading.&lt;/p&gt;

&lt;p&gt;In this guide, i will break down the pillars of Power BI data modeling: from SQL-style joins to the nuances of relationship cardinality and star schemas.&lt;br&gt;
&lt;strong&gt;1. What is Data Modeling?&lt;/strong&gt;&lt;br&gt;
Data modeling is the architectural phase of business intelligence. It is the process of connecting disparate data sources, defining how they relate to one another, and structuring them to support efficient querying.&lt;/p&gt;

&lt;p&gt;In Power BI, modeling happens in two main places: Power Query (where we shape and join data) and the Model View (where we define relationships).&lt;br&gt;
&lt;strong&gt;2. Merging Data: SQL Joins in Power Query&lt;/strong&gt;&lt;br&gt;
When you need to physically combine two tables into one, you use the Merge Queries feature in Power Query. This mimics standard SQL join logic. Understanding which "Join Kind" to select is critical to ensuring you don't accidentally lose data or create duplicates.&lt;/p&gt;

&lt;p&gt;1.Inner Join: Only includes rows where the join key matches in both tables.&lt;/p&gt;

&lt;p&gt;Example: Creating a list of only those Customers who have placed at least one Order.&lt;/p&gt;

&lt;p&gt;2.Left Outer Join: Retains all rows from the first (left) table and only matching rows from the second (right) table.&lt;/p&gt;

&lt;p&gt;Example: A list of all Products in your catalog, showing Sales data where available (unsold products will show as null).&lt;/p&gt;

&lt;p&gt;3.Right Outer Join: Retains all rows from the second (right) table and matching rows from the first (left).&lt;/p&gt;

&lt;p&gt;Example: A list of all Employees, showing which Department they belong to, even if a department has no employees assigned.&lt;/p&gt;

&lt;p&gt;4.Full Outer Join: Returns all rows from both tables. Where there is no match, the missing side will contain nulls.&lt;/p&gt;

&lt;p&gt;Example: Merging two legacy Customer lists from different regions to create a single master directory.&lt;/p&gt;

&lt;p&gt;5.Left Anti Join: Returns rows that exist only in the first (left) table and have no match in the second.&lt;/p&gt;

&lt;p&gt;Example: Identifying "Ghost" Customers or people who registered an account but never actually made a purchase.&lt;/p&gt;

&lt;p&gt;6.Right Anti Join: Returns rows that exist only in the second (right) table and have no match in the first.&lt;/p&gt;

&lt;p&gt;Example: Auditing your data to find "Orphan" Sales records that contain a Product ID that doesn't exist in your Product Master table.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. The Heart of the Model: Power BI Relationships&lt;/strong&gt;&lt;br&gt;
Unlike Joins, Relationships don't merge tables; they create a path for filters to flow between them.&lt;br&gt;
Key Concepts :&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1.Cardinality:&lt;/strong&gt;&lt;br&gt;
  1a.One-to-Many: The standard. One "Category" maps to many "Sales "&lt;br&gt;
 1b.Many-to-Many : Use sparingly. Used when multiple entities on both sides share links (e.g., Students and Classes).&lt;br&gt;
 1c.One-to-One : Used for splitting large tables for performance.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2 Cross-filter Direction:&lt;/strong&gt;&lt;br&gt;
 2a.Single: Filters flow from the Dimension to the Fact table. 2b.Both: Filters flow both ways. Be careful—this can cause performance lag and "ambiguous" paths. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.Active vs. Inactive:&lt;/strong&gt;&lt;br&gt;
 3a. Solid lines are Active (primary path).&lt;br&gt;
3b.Dotted lines are Inactive. &lt;br&gt;
 These are only used when explicitly called in DAX via the USERELATIONSHIP function. &lt;br&gt;
&lt;em&gt;&lt;strong&gt;N/B&lt;/strong&gt;_How to Create Relationships :&lt;br&gt;
_Method A&lt;/em&gt;: Go to Model View and drag a column from Table A onto the matching column in Table B. &lt;br&gt;
&lt;em&gt;Method B:&lt;/em&gt; Use Manage Relationships in the top ribbon to manually define cardinality and direction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. Schemas: Designing the Architecture&lt;/strong&gt;&lt;br&gt;
A schema is the blueprint of your model.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fact vs. Dimension Tables&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;Fact Tables&lt;/em&gt;: Quantitative data (Price, Quantity, Date). These are usually long (millions of rows).&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Dimension Tables:&lt;/em&gt; Descriptive data (Product Name, Store Location, Employee Name). These are wide and provide the "context" for your facts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Three Main Schemas:&lt;/strong&gt;&lt;br&gt;
1.&lt;em&gt;Star Schema (Best Practice)&lt;/em&gt;: A central Fact table connected to multiple Dimension tables. It looks like a star and is the most efficient for Power BI's engine.&lt;/p&gt;

&lt;p&gt;2.&lt;em&gt;Snowflake Schema:&lt;/em&gt; Dimensions are "normalized" (e.g., a "Product" table links to a "Sub-category" table, which then links to "Category"). It saves space but increases complexity.&lt;br&gt;
3.&lt;em&gt;Flat Table (DLAT)&lt;/em&gt;: All data in one giant table. Simple for small files, but slows down significantly as data grows.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyzapfhx5lzu323om94z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkyzapfhx5lzu323om94z.png" alt="a sample of a schema extracted from business units" width="731" height="415"&gt;&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;5. Advanced Challenges&lt;/strong&gt;&lt;br&gt;
a.&lt;em&gt;Role-Playing Dimensions&lt;/em&gt;: This occurs when a single dimension table needs to filter a fact table in multiple ways. A classic example is a Date Table connecting to both an Order Date and a Ship Date.&lt;/p&gt;

&lt;p&gt;b.&lt;em&gt;Common Issues:&lt;/em&gt; Circular Dependencies: When table relationships create a loop, preventing Power BI from calculating data correctly.&lt;/p&gt;

&lt;p&gt;c.&lt;em&gt;Grain Mismatch:&lt;/em&gt; Trying to relate a daily sales table to a monthly budget table without aggregating them first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion: Joins vs. Relationships&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The rule of thumb is simple: Use &lt;em&gt;Joins&lt;/em&gt; in Power Query to clean and simplify your data before it arrives.&lt;br&gt;
. &lt;em&gt;Use Relationships&lt;/em&gt; in the Model View to keep your report interactive and performant.&lt;/p&gt;

&lt;p&gt;Mastering these connections is what separates a basic report builder from a true Power BI Architect.&lt;/p&gt;

</description>
      <category>data</category>
      <category>datascience</category>
      <category>sql</category>
    </item>
  </channel>
</rss>
