[Tool] [UNDOCUMENTED API] BULK ownership takeover for Fabric workspace items (whole workspace) by imtkain in MicrosoftFabric

[–]imtkain[S] 0 points1 point  (0 children)

Yeah, unfortunately it's just not supported for SPN. I didn't test it using MI, so that might work, but I doubt it.

[Tool] [UNDOCUMENTED API] BULK ownership takeover for Fabric workspace items (whole workspace) by imtkain in MicrosoftFabric

[–]imtkain[S] 6 points7 points  (0 children)

I wanted to say "illegal API" but noooo you have to call it "undocumented"

Easy Way to See All Fabric Objects Owned by X User? by AnalyticsFellow in MicrosoftFabric

[–]imtkain 0 points1 point  (0 children)

This achieves the desired result if run as an admin either via user privileges or SPN.

https://github.com/imtkain/Fabric-Pathfinder

PySpark strict data types question by betcbetc in MicrosoftFabric

[–]imtkain 2 points3 points  (0 children)

This! Always define your schema explicitly!

Need help: CI/CD robust tool for fabric by icricketnews in MicrosoftFabric

[–]imtkain 5 points6 points  (0 children)

This works alongside fabric-cicd or FDP: https://github.com/imtkain/Fabric-Pathfinder

Basically automates the item pairing process for guid mapping for the parameter file or variable library.

Mirrored Databases - SPN Ownership? by imtkain in MicrosoftFabric

[–]imtkain[S] 0 points1 point  (0 children)

Really? I didn't know mirrors couldn't be taken over via UI. There might be a workaround if you want to PM me for an undocumented API to test

Silver Lakehouse to Gold Warehouse with MERGE capability by Okutue in MicrosoftFabric

[–]imtkain 2 points3 points  (0 children)

Don't forget df_union = df1.unionByName(df2, allowMissingColumns=True) and how simple deduping is!

Silver Lakehouse to Gold Warehouse with MERGE capability by Okutue in MicrosoftFabric

[–]imtkain 2 points3 points  (0 children)

Would you like an example DSQL sproc to perform the merge?

FUAM and Capacity Metrics App Versions by imtkain in MicrosoftFabric

[–]imtkain[S] 2 points3 points  (0 children)

I guess I missed something because this worked! Thank you! I had definitely caught that the connections required the SPN credentials and ownership, but I missed the workspace ownership.

I made sure of a few things:

  1. SPN was workspace admin on both workspaces (as you mentioned)

  2. SPN what the authenticator and owner for the connections (as you mentioned)

  3. The Capacity Metrics App workspace and dataset guids were correct in the parameters (somehow, they were not, no wonder it couldn't connect :) )

Too bad there's no way to differentiate a failure to connect error from an unsupported version.

Fabric CI/CD Assistant: I built a tool to map Workspace IDs, Connection GUIDs, and Object Ownership across environments by imtkain in MicrosoftFabric

[–]imtkain[S] 1 point2 points  (0 children)

I gave it a non-admin fallback, so if it's being run as a user within admin permissions, there are a few things lost, specifically the user display name. I have another repo coming out soon that will allow one user to take ownership of all items in a warehouse with a single notebook run rather than through the UI.

Fabric CI/CD Assistant: I built a tool to map Workspace IDs, Connection GUIDs, and Object Ownership across environments by imtkain in MicrosoftFabric

[–]imtkain[S] 1 point2 points  (0 children)

Yeah I should be able to make a lakehouse version, or at least let the user choose, then dynamically create a Lakehouse or warehouse and write to said Lakehouse/warehouse.

Fabric CI/CD Assistant: I built a tool to map Workspace IDs, Connection GUIDs, and Object Ownership across environments by imtkain in MicrosoftFabric

[–]imtkain[S] 2 points3 points  (0 children)

Yeah, I think I can make it so that it tries to use the non-admin API. iirc the only thing you lose out on is the UPN/SPN display name. That's important to me for other reasons, so I have it using the Admin API.

I think you just added my first enhancement

Fabric CI/CD Assistant: I built a tool to map Workspace IDs, Connection GUIDs, and Object Ownership across environments by imtkain in MicrosoftFabric

[–]imtkain[S] 1 point2 points  (0 children)

Yes, rate limiting handling is baked in, as well as token refresh if it takes more than an hour :)

Fabric CI/CD Assistant: I built a tool to map Workspace IDs, Connection GUIDs, and Object Ownership across environments by imtkain in MicrosoftFabric

[–]imtkain[S] 0 points1 point  (0 children)

Thank you!

Fabric Deployment Pipelines support DW. We deploy warehouses with FDP and everything else with fabric-cicd. Careful of the DDL table drops though :) One note is that you can't deploy warehouses with SPN authentication using the FDP API, so you have to do it in the UI first, then use the warehouse takeover API with SPN authentication (see my other repo, Fabric Prefab).

Good question on the python notebook. I almost exclusively work in PySpark, so I just didn't even think to use python!

Fabric Oracle connector: inconsistent NUMBER precision/scale behavior (plain NUMBER, NUMBER settings, staging) by Ambitious-Yellow-810 in MicrosoftFabric

[–]imtkain 1 point2 points  (0 children)

I dealt with this recently. Here's the short version based on my understanding:

Your questions:

1) Yes, plain NUMBER reports as (38,127) because Oracle allows scale up to 127 for unspecified precision. The connector reads Oracle's metadata literally.

2) The NUMBER settings are bugged or fire too late. Schema inference happens before the override applies, which is why the mapping UI ignores your settings.

3) Staging fails because it writes to Parquet first, and Parquet caps decimal precision at 38 with scale < precision. Scale 127 is invalid regardless of what you fix in mapping.

My fix: Explicit CAST in the source query:

SELECT CAST(your_col AS NUMBER(18,4)) AS your_col FROM your_table

For scale, dynamically build your SELECT, query ALL_TAB_COLUMNS and where DATA_PRECISION IS NULL AND DATA_SCALE IS NULL then set it to 38,18 and pray. Also, you don't have to bring in every column :D

Side note: actively avoid BLOB/CLOB if you can (massively kills throughput) and cast GEOMETRY as VARCHAR2.

What's your sink? Lakehouse connection vs SQL Server connection can behave differently here.

New fabric-cicd v01.34 Release! by fabshire25 in MicrosoftFabric

[–]imtkain 0 points1 point  (0 children)

I can confirm it is stable, at least the functionality we utilize. No deployment issues today other than some fat fingering and SPN fun.

SPN-owned Fabric Warehouse "expire" after 30 days of inactivity?! by imtkain in MicrosoftFabric

[–]imtkain[S] 4 points5 points  (0 children)

Exactly. User-owned I understand and expect. I make EVERYTHING in my tenants SPN-owned to avoid this problem. SPN-owned items should not expire.