source

T-sql의 LIKE 명령에 해당하는 zure 테이블 스토리지 쿼리는 무엇입니까?

lovecheck 2023. 5. 12. 22:21
반응형

T-sql의 LIKE 명령에 해당하는 zure 테이블 스토리지 쿼리는 무엇입니까?

Azure Storage Explorer를 사용하여 Azure 테이블 스토리지를 쿼리하고 있습니다.T-SQL에서 다음과 같이 지정된 텍스트가 포함된 모든 메시지를 찾습니다.

message like '%SysFn%'

T-SQL을 실행하면 "이 요청을 처리하는 동안 오류가 발생했습니다."라는 메시지가 표시됩니다.

Azure에서 이 쿼리에 해당하는 것은 무엇입니까?

와일드카드 검색이 없기 때문에 직접적인 대응은 없습니다.지원되는 모든 작업이 여기에 나열됩니다.eq, gt, ge, lt, le 등이 표시됩니다.특정 범위를 찾기 위해 이것들을 사용할 수 있습니다.

파티션 구성표에 따라 특정 파티션 키를 기반으로 엔티티의 하위 집합을 선택한 다음 각 엔티티를 스캔하여 검사할 수 있습니다.message필요한 특정 항목을 찾습니다(부분 파티션 검사 필요).

Azure Table Storage에서는 고급 와일드카드 검색이 엄격하게 불가능하지만 "ge" 연산자와 "lt" 연산자를 함께 사용하여 "접두사" 검색을 수행할 수 있습니다.이 과정은 Scott Helme의 블로그 게시물에 설명되어 있습니다.

기본적으로 이 메서드는 ASCII 증분을 사용하여 속성이 특정 문자열로 시작하는 행에 대해 Azure Table Storage를 쿼리합니다.접두사 검색에 필요한 사용자 정의 필터를 생성하는 작은 Powershell 함수를 작성했습니다.

Function Get-AzTableWildcardFilter {
    param (
        [Parameter(Mandatory=$true)]
        [string]$FilterProperty,

        [Parameter(Mandatory=$true)]
        [string]$FilterText
    )

    Begin {}

    Process {
        $SearchArray = ([char[]]$FilterText)
        $SearchArray[-1] = [char](([int]$SearchArray[-1]) + 1)
        $SearchString = ($SearchArray -join '')
    }

    End {
        Write-Output "($($FilterProperty) ge '$($FilterText)') and ($($FilterProperty) lt '$($SearchString)')"
    }
}

그런 다음 이 기능을 사용할 수 있습니다.Get-AzTableRow이와 같이($CloudTable은 사용자의Microsoft.Azure.Cosmos.Table.CloudTable객체):

Get-AzTableRow -Table $CloudTable -CustomFilter (Get-AzTableWildcardFilter -FilterProperty 'RowKey' -FilterText 'foo')

다른 옵션은 Azure Table 스토리지에서 csv로 로그를 내보내는 것입니다.CSV가 있으면 엑셀이나 다른 앱에서 이를 열고 텍스트를 검색할 수 있습니다.

TableXplor(http://clumsyleaf.com/products/tablexplorer) 를 사용하여 테이블 저장소 데이터를 내보낼 수 있습니다.여기에는 필터링된 데이터를 csv로 내보낼 수 있는 옵션이 있습니다.

언급URL : https://stackoverflow.com/questions/15660250/what-is-the-azure-table-storage-query-equivalent-of-t-sqls-like-command

반응형