Удаление неиспользуемых потоков
Преимущества:
- Уменьшение общего времени, затрачиваемого на обслуживание
- Повышение осведомленности
Цель
Есть несколько причин, по которым в среде Qlik могут присутствовать пустые потоки. Иногда приложения перемещают из одного потока в другой, и администратор не замечает, что предыдущий поток теперь стал пустым. В других случаях потоки создаются для публикации в них новых приложений в будущем, но в итоге ни одно приложение в эти потоки не публикуется. Всегда рекомендуется периодически проверять востребованность потоков и удалять те, которые считаются ненужными.
QMC – проверка опубликованных приложений в каждом потоке вручную
В QMC выберите «Streams» («Потоки»):
Чтобы просмотреть все приложения, опубликованные в конкретном потоке, выберите имя потока и войдите в режим редактирования потока.
В режиме редактирования выберите справа вкладку «Apps» («Приложения»).
После этого в центральном блоке окна будут видны приложения, которые опубликованы в этот поток.
Для того чтобы найти неиспользуемые потоки, этот процесс следует повторить для каждого потока.
При большом количестве потоков проверка вручную каждого из них достаточно трудозатратна. В такой ситуации рекомендуется рассмотреть способ с использованием Qlik CLI для Windows.
Получение списка неиспользуемых потоков (Qlik CLI для Windows)
Для использования приведенного ниже фрагмента сценария требуется Qlik CLI для Windows.
Потоки всегда следует удалять вручную. Приведенный ниже сценарий используется только для определения того, какие потоки пусты.
Скрипт
# Script to find empty streams ################ ## Parameters ## ################ # Assumes default credentials are used for the Qlik CLI for Windows Connection # machine name $computerName = 'machineName' # leave empty if windows auth is on default VP $virtualProxyPrefix = '/default' # directory for the output file $filePath = 'C:\tmp2\' # desired filename of the output file $fileName = 'empty_streams' # desired format of the output file (can be 'json' or 'csv') $outputFormat = 'json' ################ ##### Main ##### ################ # create filePath if (Test-Path $filePath) { } else { New-Item -ItemType directory -Path $filePath | Out-Null } # set the output file path $outFile = ($filePath + $fileName + '_' + $(Get-Date -f "yyyy-MM-dd") + '.' + $outputFormat) # if the output file already exists, remove it if (Test-Path $outFile) { Remove-Item $outFile } # set the computer name for the Qlik connection call $computerNameFull = ($computerName + $virtualProxyPrefix).ToString() # connect to Qlik Connect-Qlik -ComputerName $computerNameFull -UseDefaultCredentials -TrustAllCerts | Out-Null # GET all streams $streamJson = Get-QlikStream -raw # GET all applications, and then get all unique stream ids $appStreamIds = Get-QlikApp -filter "published eq true" | foreach{$_.stream.id} | Sort-Object | Get-Unique # compare both lists to see if any stream ids belong to no apps $emptyStreamIds = ($streamJson | foreach{$_.id}) | ?{$appStreamIds -notcontains $_} # if there are any empty streams, retain the full detail of them $streamEmptyJson = $streamJson | ?{$emptyStreamIds -contains $_.id} # see if there are any empty streams (&{If($emptyStreamIds.count) {$("Empty Streams Found: " + $emptyStreamIDs.count); $streamEmptyJson} Else {"No Empty Streams Found"}}) # if there are any empty streams, write them to $outfile If ($emptyStreamIds.count) { (&{If($outputFormat.ToLower() -eq 'csv') { $streamEmptyJson | ConvertTo-Csv -NoTypeInformation | Set-Content $outFile } Else { $streamEmptyJson | ConvertTo-Json | Set-Content $outFile } }) }