Todos os produtos
Search
Central de documentação

Object Storage Service:Consultar objetos

Última atualização: Jul 03, 2026

Use a API SelectObject para executar instruções SQL em objetos e recuperar os resultados.

Contexto

O Hadoop 3.0 permite executar serviços como Spark, Hive e Presto no E-MapReduce (EMR) para processar dados armazenados no Object Storage Service (OSS). Serviços da Alibaba Cloud, como MaxCompute e Data Lake Analytics (DLA), também processam dados diretamente do OSS.

Tradicionalmente, as plataformas de big data usam a API GetObject para baixar objetos inteiros do OSS antes de filtrá-los e analisá-los.

A API SelectObject resolve esse problema ao transferir a lógica de consulta, como projeções e filtros, para a camada do OSS. Isso permite recuperar apenas o subconjunto de dados necessário, reduzindo a transferência de dados, os custos e o consumo de CPU e memória no lado do cliente. Essa eficiência torna a análise de dados no OSS mais atrativa.

Faturamento

Ao usar a API SelectObject para consultar dados, a cobrança baseia-se na quantidade real de dados verificados no objeto de origem. Para obter mais informações, consulte Taxas de processamento de dados.

Formatos de objeto compatíveis

A API SelectObject oferece suporte a formatos de objeto e sintaxe SQL específicos.

  • Objetos CSV em conformidade com a RFC 4180. Inclui objetos semelhantes a CSV, como TSV. É possível especificar delimitadores de linha, delimitadores de coluna e caracteres de aspas personalizados.

  • Objetos JSON codificados em UTF-8. Dois formatos são compatíveis: DOCUMENT e LINES.

    • DOCUMENT: O objeto inteiro é um único objeto JSON válido.

    • LINES: O objeto consiste em várias linhas, cada uma representando um objeto JSON independente. As linhas são separadas por um caractere de nova linha, como \n ou \r\n. Não é necessário especificar o delimitador. No entanto, o objeto inteiro não constitui um objeto JSON válido.

  • Objetos nas classes de armazenamento Standard e Infrequent Access. Objetos nas classes Archive, Cold Archive ou Deep Cold Archive devem ser restaurados antes da consulta.

  • Objetos criptografados com criptografia no lado do servidor usando chaves gerenciadas pelo OSS ou uma CMK gerenciada pelo KMS.

Sintaxe SQL compatível

  • Cláusulas SQL: SELECT, FROM, WHERE

  • Tipos de dados: string, int (64 bits), double (64 bits), decimal (128 bits), timestamp e bool

  • Operadores: Lógicos (AND, OR, NOT), Aritméticos (+, -, *, /, %), Comparação (>, =, <, >=, <=, !=) e String (LIKE, ||)

    Importante

    O operador LIKE diferencia maiúsculas de minúsculas na correspondência de padrões.

Tipos de dados compatíveis

Por padrão, todos os dados em um objeto CSV são tratados como strings. Use a função CAST para converter tipos explicitamente.

O exemplo a seguir mostra como usar uma consulta SQL para converter os valores nas colunas _1 e _2 para inteiros:Select * from OSSOBject where cast (_1 as int) > cast(_2 as int)

A API SelectObject também suporta conversão implícita de tipos em uma cláusula WHERE. Por exemplo, na instrução a seguir, os valores da primeira e da segunda colunas são convertidos implicitamente para inteiros:

Select _1 from ossobject where _1 + _2 > 100

Para objetos JSON, se você não usar a função CAST, o tipo de dados será determinado pelo conteúdo do objeto. Os tipos de dados JSON internos padrão incluem null, bool, int64, double e string.

Exemplos de SQL

Esta seção fornece exemplos de SQL para objetos CSV e JSON.

  • CSV

    Caso de uso

    Instrução SQL

    Retornar as primeiras 10 linhas de dados.

    select * from ossobject limit 10

    Retornar inteiros da primeira e da terceira colunas onde o valor na primeira coluna é maior que o valor na terceira coluna.

    select _1, _3 from ossobject where cast(_1 as int) > cast(_3 as int)

    Retornar a contagem de registros na primeira coluna que começam com 'Chen'. (Observação: O caractere chinês após 'like' deve ser codificado em UTF-8.)

    select count(*) from ossobject where _1 like 'Chen%'

    Retornar todos os registros onde o timestamp na segunda coluna é posterior a 2018-08-09 11:30:25 e o valor na terceira coluna é maior que 200.

    select * from ossobject where _2 > cast('2018-08-09 11:30:25' as timestamp) and _3 > 200

    Retornar a média, soma, máximo e mínimo dos números de ponto flutuante na segunda coluna.

    select AVG(cast(_6 as double)), SUM(cast(_6 as double)), MAX(cast(_6 as double)), MIN(cast(_6 as double)) from ossobject

    Retornar todos os registros onde a string concatenada da primeira e da terceira colunas começa com 'Tom' e termina com 'Anderson'.

    select * from ossobject where (_1

    _3) like 'Tom%Anderson'

    Retornar todos os registros onde o valor na primeira coluna é divisível por 3.

    select * from ossobject where (_1 % 3) = 0

    Retornar todos os registros onde o valor na primeira coluna está entre 1995 e 2012.

    select * from ossobject where _1 between 1995 and 2012

    Retornar todos os registros onde o valor na quinta coluna é 'N', 'M', 'G' ou 'L'.

    select * from ossobject where _5 in ('N', 'M', 'G', 'L')

    Retornar todos os registros onde o produto dos valores na segunda e terceira colunas é maior que a soma de 100 com o valor na quinta coluna.

    select from ossobject where _2 _3 > _5 + 100

  • JSON

    Considere o seguinte objeto JSON:

    {
      "contacts":[
    {
      "firstName": "John",
      "lastName": "Smith",
      "isAlive": true,
      "age": 27,
      "address": {
        "streetAddress": "21 2nd Street",
        "city": "New York",
        "state": "NY",
        "postalCode": "10021-3100"
      },
      "phoneNumbers": [
        {
          "type": "home",
          "number": "212 555-1234"
        },
        {
          "type": "office",
          "number": "646 555-4567"
        },
        {
          "type": "mobile",
          "number": "123 456-7890"
        }
      ],
      "children": [],
      "spouse": null
    },... # Additional contact nodes omitted for brevity.
    ]}

    A tabela a seguir fornece exemplos de SQL.

    Caso de uso

    Instrução SQL

    Retornar todos os registros onde o valor de age é 27.

    select from ossobject.contacts[] s where s.age = 27

    Retornar todos os números de telefone residenciais.

    select s.number from ossobject.contacts[].phoneNumbers[] s where s.type = "home"

    Retornar todos os registros onde spouse é null.

    select * from ossobject s where s.spouse is null

    Retornar todos os registros sem filhos.

    select * from ossobject s where s.children[0] is null

    Nota

    Não existe sintaxe dedicada para representar um array vazio. Use a instrução anterior como alternativa.

Casos de uso

Os casos de uso comuns do SelectObject incluem consulta paralela de objetos grandes, consulta de objetos JSON e análise de arquivos de log.

  • Consulta paralela de objetos grandes

    Assim como o recurso de download multipartido por intervalo de bytes da API GetObject, a API SelectObject suporta consultas paralelas. Existem duas maneiras de dividir os dados:

    • Por linha: Método comum de divisão de dados. Contudo, para dados esparsos, a divisão por linha pode resultar em carga desequilibrada entre os workers de consulta.

    • Por split: Um split é um conceito do OSS para fragmentação de dados. Cada split contém várias linhas e tem aproximadamente o mesmo tamanho.

    Nota

    A divisão de dados por split é mais eficiente do que por linha.

    Se for possível confirmar que as colunas no objeto CSV não contêm caracteres de nova linha, a divisão por intervalo de bytes é mais simples, pois não exige criação de metadados. Caso as colunas contenham caracteres de nova linha ou se a consulta for em um objeto JSON, siga estas etapas:

    1. Chame a API CreateSelectObjectMeta para obter o número total de splits do objeto. Para reduzir o tempo de verificação, recomendamos chamar essa API de forma assíncrona antes de iniciar a consulta.

    2. Com base nos recursos do cliente, determine o grau de paralelismo (n). Em seguida, divida o número total de splits por n para calcular quantos splits cada consulta paralela deve processar.

    3. No corpo da solicitação, especifique o intervalo de splits a serem consultados, como split-range=1-20.

    4. Mescle os resultados de todas as consultas paralelas.

  • Consulta de objetos JSON

    Ao consultar objetos JSON, restrinja o caminho JSON na cláusula FROM para melhorar o desempenho.

    Considere o seguinte exemplo de objeto JSON:

    {
      "contacts":[
    {
      "firstName": "John",
      "lastName": "Smith",
      "address": {
        "streetAddress": "21 2nd Street",
        "city": "New York",
        "state": "NY",
        "postalCode": "10021-3100"
      },
      "phoneNumbers": [
        {
          "type": "home",
          "number": "212 555-1234"
        },
        {
          "type": "office",
          "number": "646 555-4567"
        },
        {
          "type": "mobile",
          "number": "123 456-7890"
        }
      ]
    }
    ]}

    Para encontrar todos os endereços residenciais cujo código postal comece com '10021', escreva a instrução SQL como select s.address.streetAddress from ossobject.contacts[*] s where s.address.postalCode like '10021%' ou select s.streetAddress from ossobject.contacts[*].address s where s.postalCode like '10021%'.

    A segunda instrução, select s.streetAddress from ossobject.contacts[*].address s where s.postalCode like '10021%', apresenta melhor desempenho porque seu caminho JSON é mais preciso.

  • Tratamento de números de ponto flutuante de alta precisão em objetos JSON

    Quando for necessário realizar cálculos com números de ponto flutuante de alta precisão em um objeto JSON, recomendamos definir a opção ParseJsonNumberAsString como true e converter o valor para o tipo decimal. Por exemplo, se um atributo a tiver o valor 123456789.123456789, use a instrução select s.a from ossobject s where cast(s.a as decimal) > 123456789.12345 para manter a precisão dos dados originais.

Procedimento

OSS console

Importante

No OSS console, é possível extrair no máximo 40 MB de dados de um objeto com até 128 MB.

  1. Faça login no OSS console.

  2. No painel de navegação à esquerda, clique em Buckets. Na página exibida, clique no nome do bucket desejado.

  3. No painel de navegação à esquerda, escolha Object Management > Objects.

  4. Localize o objeto desejado e escolha more > Select Content na coluna Actions.

  5. No painel Select Content, configure os parâmetros conforme as descrições a seguir.

    Parâmetro

    Descrição

    Object Type

    Apenas os tipos de objeto CSV e JSON são compatíveis.

    Delimiter

    Aplica-se apenas a objetos CSV. Selecione uma vírgula (,) ou um delimitador personalizado.

    Title Row

    Aplica-se apenas a objetos CSV. Especifique se a primeira linha do objeto contém cabeçalhos de coluna.

    JSON Format

    Aplica-se apenas a objetos JSON. Selecione o formato correspondente ao seu objeto JSON.

    Compression Format

    Especifique se o objeto está compactado. Apenas a compactação GZIP é compatível.

  6. Clique em Preview.

    Importante

    A visualização de um objeto na classe de armazenamento Standard gera taxas de verificação do SelectObject. Para objetos nas classes Infrequent Access, Archive, Cold Archive ou Deep Cold Archive, a visualização gera taxas de verificação do SelectObject e taxas de recuperação de dados. Para obter mais informações, consulte Taxas de processamento de dados.

  7. Clique em Next, insira e execute uma instrução SQL.

    Considere um objeto CSV chamado People com três colunas: Name, Company e Age.

    • Para encontrar pessoas com mais de 50 anos cujos nomes começam com 'Lora', execute a seguinte instrução SQL. Na instrução, _1, _2 e _3 são índices de coluna que representam a primeira, a segunda e a terceira colunas, respectivamente.

      select * from ossobject where _1 like 'Lora*' and _3 > 50
    • Para contar o número de linhas no objeto e encontrar as idades máxima e mínima, execute a seguinte instrução SQL:

      select count(*), max(cast(_3 as int)), min(cast(_3 as int)) from ossobject
  8. Visualize os resultados da execução.

    Você também pode clicar em Download para salvar o conteúdo selecionado localmente.

OSS SDKs

É possível consultar objetos usando os OSS SDKs para Java, Python e Go.

import com.aliyun.oss.ClientBuilderConfiguration;
import com.aliyun.oss.common.comm.SignVersion;
import com.aliyun.oss.model.*;
import com.aliyun.oss.OSS;
import com.aliyun.oss.common.auth.*;
import com.aliyun.oss.OSSClientBuilder;
import java.io.BufferedReader;
import java.io.ByteArrayInputStream;
import java.io.InputStreamReader;

/**
 * Examples of create select object metadata and select object.
 *
 */
public class SelectObjectSample {
    // Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. 
    private static String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
    // Specify the name of the bucket. Example: examplebucket. 
    private static String bucketName = "examplebucket";

    public static void main(String[] args) throws Exception {
      
      	// Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. 
        EnvironmentVariableCredentialsProvider credentialsProvider = CredentialsProviderFactory.newEnvironmentVariableCredentialsProvider();
        // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to cn-hangzhou.
        String region = "cn-hangzhou";

        // Create an OSSClient instance. 
        // Call the shutdown method to release associated resources when the OSSClient is no longer in use.
        ClientBuilderConfiguration clientBuilderConfiguration = new ClientBuilderConfiguration();
        clientBuilderConfiguration.setSignatureVersion(SignVersion.V4);        
        OSS ossClient = OSSClientBuilder.create()
        .endpoint(endpoint)
        .credentialsProvider(credentialsProvider)
        .clientConfiguration(clientBuilderConfiguration)
        .region(region)               
        .build();
        // Specify the full path of the object that you want to query, and then query the data of the object by using SELECT statements. Do not include the bucket name in the full path. 
        // Specify the full path of the CSV object. 
        selectCsvSample("test.csv", ossClient);
        // Specify the full path of the JSON object. 
        selectJsonSample("test.json", ossClient);
        ossClient.shutdown();
    }

    private static void selectCsvSample(String key, OSS ossClient) throws Exception {
        // Specify the content of the object that you want to upload. 
        String content = "name,school,company,age\r\n" +
                "Lora Francis,School A,Staples Inc,27\r\n" +
                "Eleanor Little,School B,\"Conectiv, Inc\",43\r\n" +
                "Rosie Hughes,School C,Western Gas Resources Inc,44\r\n" +
                "Lawrence Ross,School D,MetLife Inc.,24";

        ossClient.putObject(bucketName, key, new ByteArrayInputStream(content.getBytes()));

        SelectObjectMetadata selectObjectMetadata = ossClient.createSelectObjectMetadata(
                new CreateSelectObjectMetadataRequest(bucketName, key)
                        .withInputSerialization(
                                new InputSerialization().withCsvInputFormat(
                                        // Specify the delimiter that is used to separate different records in the content. Example: \r\n. 
                                        new CSVFormat().withHeaderInfo(CSVFormat.Header.Use).withRecordDelimiter("\r\n"))));
        System.out.println(selectObjectMetadata.getCsvObjectMetadata().getTotalLines());
        System.out.println(selectObjectMetadata.getCsvObjectMetadata().getSplits());

        SelectObjectRequest selectObjectRequest =
                new SelectObjectRequest(bucketName, key)
                        .withInputSerialization(
                                new InputSerialization().withCsvInputFormat(
                                        new CSVFormat().withHeaderInfo(CSVFormat.Header.Use).withRecordDelimiter("\r\n")))
                        .withOutputSerialization(new OutputSerialization().withCsvOutputFormat(new CSVFormat()));
        // Use a SELECT statement to query all records whose values are greater than 40 in the 4th column. 
        selectObjectRequest.setExpression("select * from ossobject where _4 > 40");
        OSSObject ossObject = ossClient.selectObject(selectObjectRequest);

        // Read the content of the object. 
        BufferedReader reader = new BufferedReader(new InputStreamReader(ossObject.getObjectContent()));
        while (true) {
            String line = reader.readLine();
            if (line == null) {
                break;
            }
            System.out.println(line);
        }
        reader.close();

        ossClient.deleteObject(bucketName, key);
    }

    private static void selectJsonSample(String key, OSS ossClient) throws Exception {
        // Specify the content of the object that you want to upload. 
        final String content = "{\n" +
                "\t\"name\": \"Lora Francis\",\n" +
                "\t\"age\": 27,\n" +
                "\t\"company\": \"Staples Inc\"\n" +
                "}\n" +
                "{\n" +
                "\t\"name\": \"Eleanor Little\",\n" +
                "\t\"age\": 43,\n" +
                "\t\"company\": \"Conectiv, Inc\"\n" +
                "}\n" +
                "{\n" +
                "\t\"name\": \"Rosie Hughes\",\n" +
                "\t\"age\": 44,\n" +
                "\t\"company\": \"Western Gas Resources Inc\"\n" +
                "}\n" +
                "{\n" +
                "\t\"name\": \"Lawrence Ross\",\n" +
                "\t\"age\": 24,\n" +
                "\t\"company\": \"MetLife Inc.\"\n" +
                "}";

        ossClient.putObject(bucketName, key, new ByteArrayInputStream(content.getBytes()));

        SelectObjectRequest selectObjectRequest =
                new SelectObjectRequest(bucketName, key)
                        .withInputSerialization(new InputSerialization()
                                .withCompressionType(CompressionType.NONE)
                                .withJsonInputFormat(new JsonFormat().withJsonType(JsonType.LINES)))
                        .withOutputSerialization(new OutputSerialization()
                                .withCrcEnabled(true)
                                .withJsonOutputFormat(new JsonFormat()))
                        .withExpression("select * from ossobject as s where s.age > 40"); // Use the SELECT statement to query data in the object. 

        OSSObject ossObject = ossClient.selectObject(selectObjectRequest);

        // Read the content of the object. 
        BufferedReader reader = new BufferedReader(new InputStreamReader(ossObject.getObjectContent()));
        while (true) {
            String line = reader.readLine();
            if (line == null) {
                break;
            }
            System.out.println(line);
        }
        reader.close();

        ossClient.deleteObject(bucketName, key);
    }
}
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider

def select_call_back(consumed_bytes, total_bytes =  None):
        print('Consumed Bytes:' + str(consumed_bytes) + '\n')

# Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. 
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())

# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com. 
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"

# Specify the ID of the region that maps to the endpoint. Example: cn-hangzhou. This parameter is required if you use the signature algorithm V4.
region = "cn-hangzhou"

# Specify the name of your bucket.
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)

key ='python_select.csv'
content ='Tom Hanks,USA,45\r\n'*1024
filename ='python_select.csv'

# Upload a CSV file. 
bucket.put_object(key, content)
# Configure the parameters for the SelectObject operation. 
csv_meta_params = {'RecordDelimiter': '\r\n'}
select_csv_params = {'CsvHeaderInfo': 'None',
                    'RecordDelimiter': '\r\n',
                    'LineRange': (500, 1000)}

csv_header = bucket.create_select_object_meta(key, csv_meta_params)
print(csv_header.rows)
print(csv_header.splits)
result = bucket.select_object(key, "select * from ossobject where _3 > 44", select_call_back, select_csv_params)
select_content = result.read()
print(select_content)

result = bucket.select_object_to_file(key, filename,
      "select * from ossobject where _3 > 44", select_call_back, select_csv_params)
bucket.delete_object(key)

###JSON DOCUMENT
key =  'python_select.json'
content =  "{\"contacts\":[{\"key1\":1,\"key2\":\"hello world1\"},{\"key1\":2,\"key2\":\"hello world2\"}]}"
filename =  'python_select.json'
# Upload a JSON DOCUMENT object. 
bucket.put_object(key, content)
select_json_params = {'Json_Type': 'DOCUMENT'}
result = bucket.select_object(key, "select s.key2 from ossobject.contacts[*] s where s.key1 = 1", None, select_json_params)
select_content = result.read()
print(select_content)

result = bucket.select_object_to_file(key, filename,
      "select s.key2 from ossobject.contacts[*] s where s.key1 = 1", None, select_json_params)
bucket.delete_object(key)

###JSON LINES
key =  'python_select_lines.json'
content =  "{\"key1\":1,\"key2\":\"hello world1\"}\n{\"key1\":2,\"key2\":\"hello world2\"}"
filename =  'python_select.json'
# Upload a JSON LINES object. 
bucket.put_object(key, content)
select_json_params = {'Json_Type': 'LINES'}
json_header = bucket.create_select_object_meta(key,select_json_params)
print(json_header.rows)
print(json_header.splits)

result = bucket.select_object(key, "select s.key2 from ossobject s where s.key1 = 1", None, select_json_params)
select_content =  result.read()
print(select_content)
result = bucket.select_object_to_file(key, filename,
           "select s.key2 from ossobject s where s.key1 = 1", None, select_json_params)
bucket.delete_object(key)
package main

import (
	"context"
	"flag"
	"io"
	"log"

	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss"
	"github.com/aliyun/alibabacloud-oss-go-sdk-v2/oss/credentials"
)

// Define global variables.
var (
	region     string // The storage region.
	bucketName string // The bucket name.
	objectName string // The object name.
)

// The init function is used to initialize command line parameters.
func init() {
	flag.StringVar(&region, "region", "", "The region in which the bucket is located.")
	flag.StringVar(&bucketName, "bucket", "", "The name of the bucket.")
	flag.StringVar(&objectName, "object", "", "The name of the object.")
}

func main() {
	// Parse command line parameters.
	flag.Parse()

	// Check whether the bucket name is empty.
	if len(bucketName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, bucket name required")
	}

	// Check whether the region is empty.
	if len(region) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, region required")
	}

	// Check whether the object name is empty.
	if len(objectName) == 0 {
		flag.PrintDefaults()
		log.Fatalf("invalid parameters, object name required")
	}

	// Load the default configurations and set the credential provider and region.
	cfg := oss.LoadDefaultConfig().
		WithCredentialsProvider(credentials.NewEnvironmentVariableCredentialsProvider()).
		WithRegion(region)

	// Create an OSS client.
	client := oss.NewClient(cfg)

	// Create a request to select an object.
	request := &oss.SelectObjectRequest{
		Bucket: oss.Ptr(bucketName), // The bucket name.
		Key:    oss.Ptr(objectName), // The object name.
		SelectRequest: &oss.SelectRequest{
			Expression: oss.Ptr("select * from ossobject limit 10"), // Define an SQL expression to query the first 10 rows of data in the object.
			InputSerializationSelect: oss.InputSerializationSelect{
				CsvBodyInput: &oss.CSVSelectInput{
					FileHeaderInfo: oss.Ptr("Use"),
				},
			},
			OutputSerializationSelect: oss.OutputSerializationSelect{
				OutputHeader: oss.Ptr(true),
			},
		},
	}

	// Execute the request to select the object.
	result, err := client.SelectObject(context.TODO(), request)
	if err != nil {
		log.Fatalf("failed to select object %v", err)
	}

	content, err := io.ReadAll(result.Body)
	if err != nil {
		log.Fatalf("failed to read object %v", err)
	}

	// Print the result of selecting the object.
	log.Printf("select object result:%#v\n", string(content))
}

ossutil CLI

Use a ferramenta de linha de comando ossutil para consultar objetos. Para obter instruções de instalação, consulte Instalar ossutil.

O comando a seguir executa uma instrução SQL no objeto chamado exampleobject no bucket chamado examplebucket. A solicitação usa sintaxe CSV.

ossutil api select-object --bucket examplebucket --key exampleobject --select-request "{\"Expression\":\"c2VsZWN0IFllYXIsU3RhdGVBYmJyLCBDaXR5TmFtZSwgU2hvcnRfUXVlc3Rpb25fVGV4dCBmcm9tIG9zc29iamVjdA==\",\"InputSerialization\":{\"CSV\":{\"FileHeaderInfo\":\"Use\",\"Range\":\"line-range=0-100\"}},\"OutputSerialization\":{\"JSON\":{\"RecordDelimiter\":\",\"}}}"

Para obter mais informações sobre este comando, consulte select-object.

Referência da API

As operações descritas acima baseiam-se na API SelectObject subjacente. Para requisitos avançados, faça solicitações diretas à API REST. Ao fazer solicitações diretas, calcule manualmente a assinatura de autenticação. Para obter mais informações, consulte SelectObject.