Forum Discussion

sergprim's avatar
sergprim
Frequent Visitor
3 years ago

Get last refresh date time for each partition

Hello,
I have custom partitions. How can I get last refresh date time for each partition in powerShell?
Psesudocode
#Working portion
$server.Connect($ConnectionString)
$AllDatabases += $server.Databases
foreach($database in $AllDatabases)

$databaseLastProccesed = $database.LastProcessed
$str = $databaseLastProccesed.ToString()
Write-Output "Database $str"


$AllTables += $database.Model.Tables
foreach($table in $AllTables)

$tableName = $table.Name
$AllPartitions += $table.Partitions
foreach ($partition in $AllPartitions)
$partitionName = $partition.Name
#need to get LastProcessed, not working
 $partitionProcess = $partition.LastProcessed
$str = $partitionProcess.ToString()
Write-Output "partitionProcess $databaseName Table $tableName Partition $str"
Thank you

1 Reply

  • tackytechtom's avatar
    tackytechtom
    Most Valuable Professional

    Hi  sergprim ,

     

     

    How about this: 

    # Parameters
    $groupId = "<your group ID>"
    $datasetId = "<your dataset ID>"
    $accessToken = "<your access token>"
    
    # Base URI for Power BI REST API
    $baseUri = "https://api.powerbi.com/v1.0/myorg"
    
    # Get dataset metadata
    $datasetUri = "$baseUri/groups/$groupId/datasets/$dataSetId"
    $datasetMetadata = Invoke-RestMethod -Uri $datasetUri -Headers @{ "Authorization" = "Bearer $accessToken" }
    
    # Get partition metadata
    $partitionsUri = "$baseUri/groups/$groupId/datasets/$dataSetId/partitions"
    $partitionsMetadata = Invoke-RestMethod -Uri $partitionsUri -Headers @{ "Authorization" = "Bearer $accessToken" }
    
    # Loop through partitions and get latest refresh date time
    foreach ($partition in $partitionsMetadata.value) {
        $partitionMetadataUri = "$baseUri/groups/$groupId/datasets/$dataSetId/partitions/$($partition.id)/metadata"
        $partitionMetadata = Invoke-RestMethod -Uri $partitionMetadataUri -Headers @{ "Authorization" = "Bearer $accessToken" }
        $latestRefresh = $partitionMetadata.refreshHistory.refreshes | Select-Object -First 1
        Write-Output "Partition $($partition.name) - Latest refresh: $($latestRefresh.startTime)"
    }

     

    Let me know if this helps 🙂

     

    /Tom
    https://www.tackytech.blog/
    https://www.instagram.com/tackytechtom/

    sergprim