Skip to content

Commit f557915

Browse files
authored
details
1 parent 211ccbc commit f557915

1 file changed

Lines changed: 187 additions & 0 deletions

File tree

0_Azure/2_AzureAnalytics/0_Fabric/demos/39_Domo2Fabric.md

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -444,6 +444,58 @@ graph TD
444444

445445
### Data Connection Types
446446

447+
<details>
448+
<summary><b>Domo Import</b> – Click to expand</summary>
449+
450+
> Data is imported into Domo and stored in its internal data engine for processing and visualization.
451+
452+
- **Performance:** Fast and cached, optimized for quick access and rendering.<br/>
453+
- **Security:** Governed by Domo’s PDP (Personalized Data Permissions) and internal security model.<br/>
454+
- **Offline Access:** Supported, as data is stored within Domo’s environment.<br/>
455+
- **Use Cases:** Dashboards requiring high performance, offline access, or frequent reuse.<br/>
456+
- **Related Tools:** Domo Workbench, Magic ETL, Dataflows.<br/>
457+
458+
</details>
459+
460+
<details>
461+
<summary><b>Domo Federated</b> – Click to expand</summary>
462+
463+
> Live query connection to the source system without importing data into Domo.
464+
465+
- **Performance:** Depends on the source system’s responsiveness and network latency.<br/>
466+
- **Security:** Inherits security from the source system; no data is stored in Domo.<br/>
467+
- **Offline Access:** Not supported, as data is queried in real time.<br/>
468+
- **Use Cases:** Real-time dashboards, sensitive data that shouldn’t be stored in Domo.<br/>
469+
- **Related Tools:** Federated connectors, Domo Federated Query Engine.<br/>
470+
471+
</details>
472+
473+
<details>
474+
<summary><b>Fabric Import</b> – Click to expand</summary>
475+
476+
> Data is imported into Microsoft Fabric or Power BI and stored in the VertiPaq engine for high-performance analytics.
477+
478+
- **Performance:** Fast and cached; optimized for in-memory querying and compression.<br/>
479+
- **Security:** Governed by Row-Level Security (RLS) and Fabric’s workspace-level permissions.<br/>
480+
- **Offline Access:** Supported, as data is stored within the Fabric environment.<br/>
481+
- **Use Cases:** High-performance dashboards, offline reporting, reusable datasets.<br/>
482+
- **Related Tools:** Power BI Desktop, Dataflows, OneLake, DAX.<br/>
483+
484+
</details>
485+
486+
<details>
487+
<summary><b>Fabric Direct Lake / Direct Query</b> – Click to expand</summary>
488+
489+
> Live query to the source system or Direct Lake access to data stored in OneLake without importing.
490+
491+
- **Performance:** Depends on the source system or lakehouse performance; Direct Lake offers near-import speed.<br/>
492+
- **Security:** Inherits source system security; supports RLS and Azure AD-based access control.<br/>
493+
- **Offline Access:** Not supported, as data is queried in real time.<br/>
494+
- **Use Cases:** Real-time analytics, large datasets, lakehouse architecture, sensitive data.<br/>
495+
- **Related Tools:** Direct Lake, Synapse Lakehouse, Power BI, OneLake.<br/>
496+
497+
</details>
498+
447499
| Feature | Domo Import | Domo Federated | Fabric Import | Fabric Direct Lake/Query |
448500
|-----------------|-------------|---------------|---------------|-------------------------|
449501
| **Definition** | Data imported into Domo | Live query to source | Data imported into Fabric/Power BI | Live query to source or Direct Lake |
@@ -464,6 +516,83 @@ graph TD
464516

465517
## Data Modelling
466518

519+
<details>
520+
<summary><b>Dataflows</b> – Click to expand</summary>
521+
522+
> Domo Dataflows and Microsoft Fabric Dataflows both enable reusable ETL logic, but they differ significantly in architecture and flexibility.
523+
524+
- In Domo, Dataflows are built using Magic ETL or SQL-based transformations and are tightly coupled with Domo’s internal data engine. In Microsoft Fabric, Dataflows are built using Power Query (M language) and can output to OneLake, Power BI datasets, or Excel. Fabric Dataflows are modular, support parameterization, and can be scheduled or triggered via APIs.
525+
- **Execution Model:** Fabric Dataflows execute in the Power Query engine, which supports query folding—pushing transformations back to the source system when possible, improving performance and reducing data movement.
526+
- **Reusability:** Fabric Dataflows can be reused across multiple datasets and reports, and can be version-controlled via Git integration.
527+
- **Use Cases:** Centralized transformation logic, shared business rules, multi-report consistency, and integration with lakehouse architecture.
528+
- **Developer Considerations:** Fabric Dataflows support advanced transformations, error handling, and incremental refresh, making them suitable for enterprise-scale ETL pipelines.
529+
530+
</details>
531+
532+
<details>
533+
<summary><b>Date Tables & Time Intelligence</b> – Click to expand</summary>
534+
535+
> Domo supports date dimensions, but Microsoft Fabric (via Power BI) requires explicitly defined date tables for time intelligence functions to work correctly.
536+
537+
- Power BI’s DAX engine relies on a properly related date table to enable time intelligence functions like YTD, QTD, MTD, and rolling averages. These functions use the date table to understand calendar logic and apply filters dynamically.
538+
- **Best Practices:** The date table should be marked as a "Date Table" in Power BI and must have a continuous range of dates with no gaps. It should be related to fact tables via a single-column relationship.
539+
- **Performance Implications:** Using a dedicated date table improves query performance and ensures consistent behavior across measures and visuals.
540+
- **Use Cases:** Financial reporting, fiscal calendars, trend analysis, and forecasting.
541+
- **Developer Considerations:** Developers should create reusable date tables with calculated columns for year, quarter, month, week, and fiscal periods. These can be stored in shared datasets or templates.
542+
543+
</details>
544+
545+
<details>
546+
<summary><b>Calculations</b> – Click to expand</summary>
547+
548+
> Domo’s Beast Modes are similar to Power BI’s calculated columns and measures, but DAX offers more advanced and optimized calculation capabilities.
549+
550+
- Beast Modes are SQL-like expressions applied at the visualization layer. In Power BI, calculated columns are evaluated during data refresh and stored in the model, while measures are evaluated at query time and are context-sensitive.
551+
- **Engine Behavior:** Calculated columns increase model size but are useful for row-level logic. Measures are more efficient and preferred for aggregations and dynamic calculations.
552+
- **Expression Language:** DAX (Data Analysis Expressions) is a functional language optimized for in-memory analytics. It supports filter context, row context, and advanced functions like CALCULATE, FILTER, and ALL.
553+
- **Use Cases:** Derived fields, conditional logic, dynamic KPIs, and context-aware metrics.
554+
- **Developer Considerations:** Use calculated columns sparingly to avoid bloating the model. Prefer measures for performance and flexibility. Leverage tools like DAX Studio for debugging and optimization.
555+
556+
</details>
557+
558+
<details>
559+
<summary><b>Measures</b> – Click to expand</summary>
560+
561+
> Domo’s aggregations and Beast Modes are functionally similar to Power BI measures, but Fabric’s DAX measures are more powerful and efficient.
562+
563+
- Measures in Power BI are evaluated at query time using the current filter and row context. They do not consume storage and are highly optimized by the VertiPaq engine.
564+
- **Performance Model:** Measures leverage columnar storage and in-memory compression, enabling sub-second query performance even on large datasets.
565+
- **Context Awareness:** Measures adapt dynamically to slicers, filters, and visual interactions, making them ideal for interactive dashboards.
566+
- **Use Cases:** Sales totals, profit margins, year-over-year comparisons, dynamic benchmarks.
567+
- **Developer Considerations:** Measures should be modular and reusable. Use variables (`VAR`) to simplify logic and improve readability. Avoid complex nested logic in visuals—keep it in the model.
568+
569+
</details>
570+
571+
<details>
572+
<summary><b>Conditionals</b> – Click to expand</summary>
573+
574+
> Domo uses SQL-style CASE WHEN logic, while Power BI uses DAX functions like IF, SWITCH, and nested expressions for conditional logic.
575+
576+
- DAX conditionals are more expressive and support both scalar and table-returning logic. SWITCH is preferred for multiple conditions, while IF is used for binary logic.
577+
- **Advanced Logic:** DAX allows combining conditionals with CALCULATE, FILTER, and other functions to create dynamic, context-aware expressions.
578+
- **Use Cases:** Conditional formatting, dynamic labels, tiered pricing, segmentation.
579+
- **Developer Considerations:** Use SWITCH for readability when handling multiple conditions. Combine with SELECTEDVALUE or HASONEVALUE for dynamic behavior in visuals.
580+
581+
</details>
582+
583+
<details>
584+
<summary><b>Star Schemas</b> – Click to expand</summary>
585+
586+
> Domo supports joins between datasets, but Microsoft Fabric (via Power BI) strongly recommends using a star schema for performance and maintainability.
587+
588+
- A star schema consists of a central fact table connected to multiple dimension tables via one-to-many relationships. This structure is optimized for the VertiPaq engine.
589+
- **Performance Benefits:** Star schemas reduce ambiguity, improve query folding, and enable efficient compression and indexing.
590+
- **Modeling Best Practices:** Avoid many-to-many relationships and snowflake schemas when possible. Use surrogate keys and ensure clean, unique dimension tables.
591+
- **Use Cases:** Enterprise data models, scalable reporting, semantic layer design.
592+
- **Developer Considerations:** Design models with clarity and performance in mind. Use tools like Tabular Editor to manage relationships, hierarchies, and metadata.
593+
594+
</details>
595+
467596
| **Category** | **Comparison** | **Learn More** |
468597
|--------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------|----------------|
469598
| **Dataflows** | `Domo Dataflows are similar to Microsoft Fabric Dataflows, enabling reusable ETL logic.` | [Fabric Dataflows](https://learn.microsoft.com/en-us/power-bi/transform-model/dataflows/dataflows-introduction-self-service) |
@@ -477,6 +606,64 @@ graph TD
477606

478607
### Recreate Simple Visuals
479608

609+
<details>
610+
<summary><b>Card Builder</b> – Click to expand</summary>
611+
612+
> Domo and Power BI both offer drag-and-drop interfaces for building visuals, but Power BI provides a more granular and extensible visualization experience.
613+
614+
- In Domo, cards are built using a simplified UI with limited customization. Power BI’s Visualizations pane allows users to select from a wide range of visual types, configure fields, and apply formatting, analytics, and interactivity.
615+
- **Customization:** Power BI supports conditional formatting, reference lines, tooltips, and analytics overlays (e.g., trend lines, forecasts).
616+
- **Performance Considerations:** Power BI visuals are rendered using the VertiPaq engine, which optimizes query performance and visual responsiveness.
617+
- **Use Cases:** KPI cards, bar/line charts, tables, matrices, and combo charts.
618+
- **Developer Considerations:** Use the Fields pane to control data bindings, and the Format pane for styling. Leverage bookmarks and selection panes for layered visual storytelling.
619+
620+
</details>
621+
622+
<details>
623+
<summary><b>Appstore / Marketplace</b> – Click to expand</summary>
624+
625+
> Domo’s Appstore and Power BI’s Visuals Marketplace both offer extensibility through custom visuals, but Power BI provides a more open and developer-friendly ecosystem.
626+
627+
- Power BI custom visuals are built using TypeScript and the Power BI Visuals SDK. They can be imported from the Marketplace or developed in-house and deployed via organizational visuals.
628+
- **Security & Governance:** Power BI supports certified visuals (Microsoft-validated) and organizational visuals (IT-approved), ensuring compliance and trust.
629+
- **Deployment:** Custom visuals can be packaged as `.pbiviz` files and distributed via GitHub, internal portals, or directly uploaded to reports.
630+
- **Use Cases:** Specialized charts (e.g., Sankey, Gantt, Radar), branded visuals, or industry-specific components.
631+
- **Developer Considerations:** Use the Power BI Visuals CLI for development. Test visuals in sandboxed environments and follow accessibility and performance guidelines.
632+
633+
</details>
634+
635+
<details>
636+
<summary><b>Drill Path</b> – Click to expand</summary>
637+
638+
> Domo supports basic drill paths within cards. Power BI offers more advanced drillthrough, drill-down, and hierarchy navigation.
639+
640+
- Power BI supports three types of drill interactions:
641+
- **Drill-down:** Navigate within a hierarchy (e.g., Year → Quarter → Month).
642+
- **Drill-through:** Navigate to a different page with context passed (e.g., click a region to open a detailed region report).
643+
- **Expand/Collapse:** Inline hierarchy navigation within visuals.
644+
- **Interactivity:** Users can enable or disable drill modes, and visuals can be configured to respond to cross-filtering and highlighting.
645+
- **Use Cases:** Multi-level reporting, detailed analysis, contextual navigation.
646+
- **Developer Considerations:** Define hierarchies in the model, use drill-through filters on target pages, and design consistent navigation cues for users.
647+
648+
</details>
649+
650+
<details>
651+
<summary><b>Filters</b> – Click to expand</summary>
652+
653+
> Domo supports page-level and global filters. Power BI offers a more flexible filtering system with slicers, visual-level filters, page filters, and report-level filters.
654+
655+
- Power BI’s filter pane allows developers to apply filters at different scopes:
656+
- **Visual-level:** Affects only one visual.
657+
- **Page-level:** Affects all visuals on a page.
658+
- **Report-level:** Affects all pages in the report.
659+
- **Slicers:** Slicers are visual filter controls that users can interact with. They support single/multi-select, dropdowns, relative date filtering, and sync across pages.
660+
- **Advanced Filtering:** Power BI supports Top N, relative time, wildcard, and measure-based filtering.
661+
- **Use Cases:** Interactive dashboards, user-driven exploration, dynamic filtering.
662+
- **Developer Considerations:** Use synced slicers for consistent filtering across pages. Leverage filter pane customization to guide user behavior and reduce clutter.
663+
664+
</details>
665+
666+
480667
| Functionality | Domo | Power BI (Fabric) |
481668
|---------------|------|-------------------|
482669
| Card Builder | Drag-and-drop | Drag-and-drop, Visualizations pane |

0 commit comments

Comments
 (0)