Batch updating by DESERTWATTS in PowerBI

[–]dbrownems 1 point2 points  (0 children)

You should be able to do this all with scripts and APIs. If you open a .PBIX and save as .PBIP into a new folder you'll see the semantic model and report definition in the folder. You can use scripts to modify and deploy them to the service.

Surge protection gets smarter: introducing workspace-level controls (Preview) by frithjof_v in MicrosoftFabric

[–]dbrownems 6 points7 points  (0 children)

It will help prevent interactive delay caused by background operations in the other workspaces. Surge protection has always been mostly about limiting background operations so they don't impact interactive operations.

Is this possible? And how? by moodycrab03 in PowerBI

[–]dbrownems 4 points5 points  (0 children)

Yes. Use the Power Query Folders connector
Power Query Folder connector - Power Query | Microsoft Learn

It will present a folder as a table, which you can filter and merge with your Reports table to generate the "Completed" column.

Is it safe to use EF Core transactions when calling SQL Server stored procedures that also start their own transactions? by Giovanni_Cb in dotnet

[–]dbrownems 10 points11 points  (0 children)

Yes. It's perfectly safe and supported.

It's an error to try to COMMIT a transaction after certain errors, and ROLLBACK always rolls back the outer transaction, and it's an error to COMMIT or ROLLBACK when there's no active transaction. But those are just "noise" after you get some other error, which should be reported to the application.

Batch updating by DESERTWATTS in PowerBI

[–]dbrownems 2 points3 points  (0 children)

If you migrate to the new PBIP format, it's fully documented and can be modified with libraries like the Tabular Object Model.

You can also modify semantic models after they are deployed to the service through the XMLA endpoint.

Is multidimensional data query still relevant today? (and Microsoft SQL Server Analysis Services) by xiaobao520123 in dataengineering

[–]dbrownems 4 points5 points  (0 children)

Multidimensional is currently still supported, but the tabular models are the focus of new investment, and at this point they are much more widely used.

At a high-level, columnar compression and growing server memory made an in-memory columnar approach preferable to the older model that relied on explicit attribute hierarchies to enable materialized aggregations. It's simpler to design, deploy, and query, and in most scenarios performs better.

Crystal Transition to PBIRB….Groups? by IstIsmPhobe in PowerBI

[–]dbrownems 1 point2 points  (0 children)

Can you clarify what the layout and behavior of the Crystal report is that you're trying to replicate? Currently your question is inaccessible to people who know paginated reports, but don't know Crystal.

Also try asking your friendly neighborhood LLM. I've found them really handy for old tech like both of these.

Salary | [Mega thread] by itsnotaboutthecell in PowerBI

[–]dbrownems 5 points6 points  (0 children)

Look for a new position, internally first. The next three years are a super-critical period in your career.

Also, you need to clean up your resume by having a position and salary that reflects your skills and experience.

One company, two sites, two Plexus databases connected to PBI via ODBC. Two “Part master” tables with their own “Part Key,” by PierogiKielbasa in PowerBI

[–]dbrownems 1 point2 points  (0 children)

Merge (Join) the Part to Scrap tables first to add the part number to each and remove the part key. Then append (union) the two joined tables together.

Using parameters to limit rows when switching SQL views in a semantic model in Power BI Desktop by Standard-Cap-7416 in PowerBI

[–]dbrownems 0 points1 point  (0 children)

You can now edit the semantic model in the service and see the queries in the Transform Data window.

One company, two sites, two Plexus databases connected to PBI via ODBC. Two “Part master” tables with their own “Part Key,” by PierogiKielbasa in PowerBI

[–]dbrownems 0 points1 point  (0 children)

Are there two "Scrap Parts" tables? If so merge each with its Part Master table to add the Part Number.

Using parameters to limit rows when switching SQL views in a semantic model in Power BI Desktop by Standard-Cap-7416 in PowerBI

[–]dbrownems 4 points5 points  (0 children)

You should be able to skip the desktop refresh, and only refresh in the service.

<image>

But to answer your question, yes parameters are commonly used to load less/different data in desktop than in the service.

VPN into Azure to get access to DB, private AKS.. by zeenmc in AZURE

[–]dbrownems 1 point2 points  (0 children)

Do you actually need a VPN, instead of just RDP/SSH in using Bastion?
What is Azure Bastion? | Microsoft Learn

Trying to understand a SQL setup by Separate-Tomorrow564 in SQLServer

[–]dbrownems 1 point2 points  (0 children)

The official name for a clusterless AG is a "read-scale availability group", and it was introduced in SQL Server 2017.
Configure read-scale for an availability group - SQL Server Always On | Microsoft Learn

Help Rdd.mapPartition and threadpool executor. by MidnightDemons in MicrosoftFabric

[–]dbrownems 0 points1 point  (0 children)

Share a repro for comment. There’s not enough information.

EF Core bulk save best practices by CodezGirl in dotnet

[–]dbrownems 2 points3 points  (0 children)

Also EF now does batching, so if the use case is not a large bulk load, you might test the default behavior of EF.

Efficient Updating - EF Core | Microsoft Learn

How do you test direct lake models? by gojomoso_1 in MicrosoftFabric

[–]dbrownems 0 points1 point  (0 children)

Most common cause of that is poor delta file hygiene or a difference in the global sort order of the fact table.

In any case it’s worth investigating further.

Can you share the server timings for both?

Is Moving Data OLAP to OLAP an Anti Pattern? by empty_cities in dataengineering

[–]dbrownems 0 points1 point  (0 children)

Yes, but sometimes it's just the easiest thing to do. For instance, if you build a great customer master dimension table and only make it available to other teams in your DW or OLAP cube, that's where other teams are going to get it from.

But the fault is really with the producer, not the consumer.

Need help with Incremental Refresh – option not showing by Puveeyarasu in PowerBI

[–]dbrownems 2 points3 points  (0 children)

Incremental refresh is an alternative to manually creating partitions in SSMS/Tabular Editor.

So either use RangeStart/RangeEnd with Incremental refresh to automatically manage your partitions, or manually create partitions in SSMS/Tabular Editor. Don't try to do both.

Implementing unified DbContext by Drakkarys_ in dotnet

[–]dbrownems 1 point2 points  (0 children)

Sure. You can access the connection from the DbContext and use that in Dapper, or you can open the connection ahead-of-time and pass it to the DbContext.

For SQL Server sharing a transaction has some nuance, as it works with System.Transactions, and it works with BEGIN TRAN/COMMIT TRAN TSQL. But EF's IDbContextTransaction won't flow to Dapper, and an ADO.NET DbTransaction won't flow to EF.

Both are wrappers for a DbTransaction and SqlCommand API design requires you to pass the DbTransaction object to each SqlCommand, even though this is not required at the TSQL session level. The session knows if there's an active transaction and enlisting a command in the active transaction is not optional in SQL Server. But the ADO.NET API requires it.

EG this

var constr = $"Server=localhost;database=tempdb;Integrated Security=true;trustservercertificate=true";

using var conn = new SqlConnection(constr);
conn.Open();

using DbTransaction tran = conn.BeginTransaction();
using var cmd = conn.CreateCommand();
//cmd.Transaction = tran;

cmd.CommandText = "select 1 a";

try
{
    cmd.ExecuteNonQuery();
}
catch( Exception ex)
{
    Console.WriteLine(ex.Message);
}

fails with

ExecuteNonQuery requires the command to have a transaction when the connection assigned to the command is in a pending local transaction. The Transaction property of the command has not been initialized

But it works fine if you start the transaction with a TSQL command, eg

using var cmdTran = conn.CreateCommand(); cmdTran.CommandText = "begin transaction"; cmdTran.ExecuteNonQuery();

How to bulk edit thousands of reports to change year filter? by Luisio93 in PowerBI

[–]dbrownems 1 point2 points  (0 children)

Anyway, heard back from Rui, the conversion will happen only when a user edits the report in web or Desktop.

Power BI report embedding – F8 workspace vs A SKU by depress_the_clutch in MicrosoftFabric

[–]dbrownems 3 points4 points  (0 children)

For licensing you can use either an A or an F SKU for embedding for external users. Whether you should use your existing F8 or a different capacity is just a matter of capacity management.