영업: 1-800-867-1380

엔터티 쿼리

업데이트 날짜: 2014년 12월

Query Entities 작업은 테이블에서 요소를 쿼리하며 $filter$select 옵션을 포함합니다.

$select 쿼리 옵션을 사용한 요청의 경우 2011-08-18 버전 이상을 사용해서 요청을 수행해야 합니다. 또한 DataServiceVersionMaxDataServiceVersion 헤더는 2.0으로 설정해야 합니다. 다음과 같이 Query Entities 요청을 생성할 수 있습니다. HTTPS를 사용하는 것이 좋습니다. myaccount는 사용자의 저장소 계정 이름으로 바꾸고 mytable은 사용자의 테이블 이름으로 바꿉니다.

 

방법 요청 URI HTTP 버전

GET

https://myaccount.table.core.windows.net/mytable(PartitionKey='<partition-key>',RowKey='<row-key>')?$select=<comma-separated-property-names>

https://myaccount.table.core.windows.net/mytable()?$filter=<query-expression>&$select=<comma-separated-property-names>

HTTP/1.1

쿼리할 엔터티 집합 주소는 요청 URI에서 여러 가지 형식을 가질 수 있습니다. 자세한 내용은 테이블 및 엔터티 쿼리를 참조하세요.

에뮬레이트된 저장소 서비스에 대해 요청을 수행할 때는 에뮬레이터 호스트 이름 및 테이블 서비스 포트를 127.0.0.1:10002로 지정하고 뒤에 에뮬레이트된 저장소 계정 이름을 붙입니다.

 

방법 요청 URI HTTP 버전

GET

http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='<partition-key>',RowKey='<row-key>')?$select=<comma-separated-property-names>

http://127.0.0.1:10002/devstoreaccount1/mytable()?$filter=<query-expression>?$select=<comma-separated-property-names>

HTTP/1.1

저장소 에뮬레이터의 테이블 서비스는 Microsoft® Azure™ 테이블 서비스와 몇 가지 면에서 서로 다릅니다. 자세한 내용은 저장소 에뮬레이터와 Azure 저장소 서비스의 차이점를 참조하세요.

Query Entities 작업에는 OData 프로토콜 사양에 정의된 쿼리 옵션이 지원됩니다. 자세한 내용은 OData 프로토콜을 참조하세요.

다음 표에서는 필수 요청 헤더와 선택적 요청 헤더에 대해 설명합니다.

 

요청 헤더 설명

Authorization

필수 사항입니다. 인증 체계, 계정 이름 및 서명을 지정합니다. 자세한 내용은 Azure 저장소 서비스에 대한 인증를 참조하세요.

Date 또는 x-ms-date

필수 사항입니다. 요청의 UCT(협정 세계시)를 지정합니다. 자세한 내용은 Azure 저장소 서비스에 대한 인증를 참조하세요.

x-ms-version

선택적 요소입니다. 이 요청에 사용할 작업의 버전을 지정합니다. 자세한 내용은 Windows Azure에서 Blob, 큐 및 테이블 서비스의 버전 관리를 참조하세요.

Accept

선택적 요소입니다. 응답 페이로드의 허용되는 콘텐츠 형식을 지정합니다. 가능한 값은 다음과 같습니다.

  • application/atom+xml

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

자세한 내용은 테이블 서비스 작업의 페이로드 형식를 참조하세요.

x-ms-client-request-id

선택적 요소입니다. 저장소 분석 로깅을 사용하도록 설정한 경우 분석 로그에 기록된 1KB 문자 제한의 클라이언트에서 생성한 불투명 값을 제공합니다. 클라이언트 쪽 작업과 서버가 받은 요청의 상관 관계를 지정하는 데 이 헤더를 사용하는 것이 좋습니다. 자세한 내용은 저장소 분석 로깅 정보Azure 로깅: 로그를 사용하여 저장소 요청 추적을 참조하세요.

없음.

Request Syntax:
GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince  HTTP/1.1

Request Headers:
x-ms-version: 2013-08-15
x-ms-date: Mon, 25 Nov 2013 15:25:14 GMT
Authorization: SharedKeyLite myaccount:<some key>
Accept: application/atom+xml,application/xml
Accept-Charset: UTF-8
DataServiceVersion: 2.0;NetFx
MaxDataServiceVersion: 2.0;NetFx

응답에는 HTTP 상태 코드, 응답 헤더 집합 및 응답 본문이 포함되어 있습니다.

작업에 성공하면 상태 코드 200(정상)이 반환됩니다.

상태 코드에 대한 자세한 내용은 상태 및 오류 코드테이블 서비스 오류 코드를 참조하십시오.

이 작업의 응답에는 다음과 같은 헤더가 포함됩니다. 응답에는 추가 표준 HTTP 헤더가 포함될 수도 있습니다. 모든 표준 헤더는 HTTP/1.1 프로토콜 사양을 따릅니다.

 

응답 헤더 설명

x-ms-continuation-NextPartitionKey

x-ms-continuation-NextRowKey

반환할 엔터티 수가 1,000개를 초과는 경우, 서버 제한 시간 간격이 초과된 경우 또는 쿼리가 파티션 경계를 벗어날 경우, 응답 헤더에는 x-ms-continuation-NextPartitionKeyx-ms-continuation-NextRowKey 연속 헤더가 포함됩니다.

연속 토큰 사용에 대한 자세한 내용은 쿼리 제한 시간 및 페이지 번호 매김을 참조하십시오.

x-ms-request-id

이 헤더는 수행된 요청을 고유하게 식별하며, 이 헤더를 사용해서 요청 문제를 해결할 수 있습니다. 자세한 내용은 API 작업 문제 해결를 참조하세요.

x-ms-version

요청을 실행하는 데 사용되는 테이블 서비스의 버전을 나타냅니다. 이 헤더는 2009-09-19 버전 이상에 대해 수행된 요청에 대해 반환됩니다.

Date

응답이 시작된 시간을 나타내는 서비스에서 생성된 UTC 날짜/시간 값입니다.

Content-Type

페이로드의 콘텐츠 형식을 나타냅니다. 이 헤더의 값은 Accept 요청 헤더의 값에 따라 달라집니다. 가능한 값은 다음과 같습니다.

  • application/atom+xml

  • application/json;odata=nometadata

  • application/json;odata=minimalmetadata

  • application/json;odata=fullmetadata

유효한 콘텐츠 형식에 대한 자세한 내용은 테이블 서비스 작업의 페이로드 형식을 참조하십시오.

Response Status:
HTTP/1.1 200 OK

Response Headers:
Content-Type: application/atom+xml;charset=utf-8
x-ms-request-id: 87f178c0-44fe-4123-a4c1-96c8fa6d9654
Date: Mon, 25 Nov 2013 15:25:14 GMT
x-ms-version: 2013-08-15
Connection: close

Query Entities 작업은 요청의 Accept 헤더에 따라 JSON 또는 Atom 피드에서 테이블의 엔터티 목록을 OData 엔터티 집합으로 반환합니다.

다음은 Customers 테이블의 Query Entities 작업에 대한 예제 요청 URI입니다.

GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince

Atom 피드에 대한 응답 본문은 다음과 같습니다.

<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xml:base="https://myaccount.table.core.windows.net">
   <id>https://myaccount.table.core.windows.net/Customers</id>
   <title type="text">Customers</title>
   <updated>2013-08-22T00:50:32Z</updated>
   <link rel="self" title="Customers" href="Customers" />
   <entry m:etag="W/&quot;0x5B168C7B6E589D2&quot;">
      <id>https://myaccount.table.core.windows.net/Customers(PartitionKey='Customer',RowKey='Name')</id>
      <category term="myaccount.Customers" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />
      <link rel="edit" title="Customers" href="Customers(PartitionKey='Customer',RowKey='Name')" />
      <title />
      <updated>2013-08-22T00:50:32Z</updated>
      <author>
         <name />
      </author>
      <content type="application/xml">
         <m:properties>
            <d:PartitionKey>Customer</d:PartitionKey>
            <d:RowKey>Name</d:RowKey>
            <d:Timestamp m:type="Edm.DateTime">2013-08-22T00:20:16.3134645Z</d:Timestamp>
            <d:CustomerSince m:type="Edm.DateTime">2008-10-01T15:25:05.2852025Z</d:CustomerSince>
         </m:properties>
      </content>
   </entry>
</feed>

JSON 응답 피드는 다음과 같습니다.

메타데이터 없음:

{
   "value":[
      {
         "PartitionKey":"Customer",
         "RowKey":"Name",
         "Timestamp":"2013-08-22T00:20:16.3134645Z",
         "CustomerSince":"2008-10-01T15:25:05.2852025Z"
      }
   ]
}

최소 메타데이터:

{
   "odata.metadata":"https://myaccount.table.core.windows.net/$metadata#Customers",
   "value":[
      {
         "PartitionKey":"Customer",
         "RowKey":"Name",
         "Timestamp":"2013-08-22T00:20:16.3134645Z",
         "CustomerSince@odata.type":"Edm.DateTime",
         "CustomerSince":"2008-10-01T15:25:05.2852025Z"
      }
   ]
}

전체 메타데이터:

{
   "odata.metadata":" https://myaccount.table.core.windows.net/metadata#Customers",
   "value":[
      {
         "odata.type":"myaccount.Customers",
         "odata.id":"https://myaccount.table.core.windows.net/Customers(PartitionKey=Customer',RowKey='Name')",
         "odata.etag":"W/\"0x5B168C7B6E589D2\"",
         "odata.editLink":"Customers(PartitionKey=Customer',RowKey='Name')",
         "PartitionKey":"Customer",
         "RowKey":"Name",
         "Timestamp@odata.type":"Edm.DateTime",
         "Timestamp":"2013-08-22T00:20:16.3134645Z",
         "CustomerSince@odata.type":"Edm.DateTime",
         "CustomerSince":"2008-10-01T15:25:05.2852025Z"
      }
   ]
}

이 작업은 계정 소유자 및 이 작업을 수행할 수 있는 권한이 있는 공유 액세스 서명을 갖는 모든 사용자가 수행할 수 있습니다.

테이블 서비스에 대한 쿼리는 한 번에 최대 1,000개까지 엔터티를 반환할 수 있으며, 최대 5초 동안 실행될 수 있습니다. 결과 집합에 1,000개를 초과하는 엔터티가 포함된 경우, 쿼리가 5초 이내에 완료되지 않은 경우 또는 쿼리가 파티션 경계를 벗어날 경우, 응답에는 연속 토큰 집합이 포함된 사용자 지정 헤더가 포함됩니다. 연속 토큰을 사용하면 다음 데이터 페이지에 대한 후속 요청을 생성할 수 있습니다. 연속 토큰에 대한 자세한 내용은 쿼리 제한 시간 및 페이지 번호 매김을 참조하세요.

$select 쿼리 옵션을 사용한 프로젝션 요청의 경우 2011-08-18 버전 이상을 사용해서 요청을 수행해야 합니다. 반환된 속성의 최대 개수는 255개이며, 속성이 반환된 엔터티에 속하지 않는 경우에도 모든 프로젝션된 속성이 응답 본문에 포함됩니다. 예를 들어 프로젝션된 엔터티에 포함되지 않는 속성이 요청에 포함된 경우 누락된 속성에 Null 특성이 표시됩니다. 위의 예제 응답 본문에서는 프로젝션된 엔터티에 속하지 않는 주소 속성이 포함되므로 이 속성이 Null입니다. <d:Address m:null=”true” />

쿼리 예약 및 처리를 위해 요청에 할당되는 시간은 쿼리 실행을 위한 5초를 포함하여 총 30초입니다.

쿼리 식의 오른쪽은 상수여야 합니다. 식 오른쪽에서는 속성을 참조할 수 없습니다. 쿼리 식 생성에 대한 자세한 내용은 테이블 및 엔터티 쿼리를 참조하십시오.

쿼리 식은 Null 값을 포함할 수 없습니다. 쿼리 문자열에 사용할 경우에는 다음 문자를 인코딩해야 합니다.

  • 슬래시(/)

  • 물음표(?)

  • 콜론(:)

  • @ 기호(at 기호)

  • 앰퍼샌드(&)

  • 등호(=)

  • 더하기 기호(+)

  • 쉼표(,)

  • 달러 기호($)

HTTP GET 요청을 인증하고 보낼 수 있는 모든 응용 프로그램은 테이블의 엔터티를 쿼리할 수 있습니다.

LINQ를 사용하여 테이블 서비스에 대해 지원되는 쿼리 작업에 대한 자세한 내용은 쿼리 연산자(테이블 서비스 지원)테이블 서비스에 대한 LINQ 쿼리 작성을 참조하십시오.

이 정보가 도움이 되었습니까?
(1500자 남음)
의견을 주셔서 감사합니다.
Microsoft는 MSDN 웹 사이트에 대한 귀하의 의견을 이해하기 위해 온라인 설문 조사를 진행하고 있습니다. 참여하도록 선택하시면 MSDN 웹 사이트에서 나가실 때 온라인 설문 조사가 표시됩니다.

참여하시겠습니까?
표시:
© 2015 Microsoft