Todos os produtos
Search
Central de documentação

Object Storage Service:Query objects

Última atualização: Sep 22, 2026

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

Contexto

O Hadoop 3.0 é compatível com a execução de 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 delegar 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, o que reduz a transferência de dados, diminui os custos e economiza CPU e memória no lado do cliente. Essa eficiência torna a análise de dados no OSS muito mais atrativa.

Faturamento

Ao usar a API SelectObject para consultar dados, você paga de acordo com a quantidade real de dados examinados no objeto de origem. Para mais informações, consulte Data processing fees.

Formatos de objeto compatíveis

A API SelectObject é compatível com determinados formatos de objeto e sintaxes SQL.

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

  • Objetos JSON codificados em UTF-8. Há suporte a dois formatos: DOCUMENT e LINES.

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

    • LINES: o objeto consiste em várias linhas, em que cada linha é 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 é um objeto JSON válido.

  • Objetos nas classes de armazenamento Standard e Infrequent Access. É necessário restaurar objetos nas classes de armazenamento Archive, Cold Archive ou Deep Cold Archive antes de consultá-los.

  • Objetos criptografados no lado do servidor com 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 (+, -, *, /, %), de comparação (>, =, <, >=, <=, !=) e de 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, o sistema trata todos os dados em um objeto CSV 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 em inteiros:Select * from OSSOBject where cast (_1 as int) > cast(_2 as int)

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

Select _1 from ossobject where _1 + _2 > 100

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

Exemplos de SQL

Esta seção apresenta 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 os inteiros da primeira e da terceira colunas onde o valor da primeira coluna seja maior que o da terceira.

    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'. (Nota: o caractere chinês após 'like' deve estar codificado em UTF-8.)

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

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

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

    Retornar a média, a soma, o valor máximo e o valor 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 em que a string concatenada da primeira e da terceira colunas comece com 'Tom' e termine com 'Anderson'.

    select * from ossobject where (_1

    _3) like 'Tom%Anderson'

    Retornar todos os registros em que o valor na primeira coluna seja divisível por 3.

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

    Retornar todos os registros em que o valor na primeira coluna esteja entre 1995 e 2012.

    select * from ossobject where _1 between 1995 and 2012

    Retornar todos os registros em que o valor na quinta coluna seja 'N', 'M', 'G' ou 'L'.

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

    Retornar todos os registros em que o produto dos valores na segunda e na terceira colunas seja 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 em que o valor de age seja 27.

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

    Retornar todos os números de telefone residencial.

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

    Retornar todos os registros em que spouse seja nulo.

    select * from ossobject s where s.spouse is null

    Retornar todos os registros em que não haja filhos.

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

    Nota

    Não há uma sintaxe dedicada para representar um array vazio. Use a instrução anterior em vez disso.

Casos de uso

Os casos de uso comuns do SelectObject incluem consultar objetos grandes em paralelo, consultar objetos JSON e analisar arquivos de log.

  • Consultar objetos grandes em paralelo

    Assim como o recurso de download multipart por intervalo de bytes disponível na API GetObject, a API SelectObject é compatível com consultas paralelas. É possível dividir os dados de duas maneiras:

    • Por linha: este é um método comum para dividir dados. No entanto, para dados esparsos, a divisão por linha pode resultar em uma carga desequilibrada entre os workers de consulta.

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

    Nota

    Dividir dados por split é mais eficiente do que dividi-los por linha.

    Se você confirmar que as colunas do seu objeto CSV não contêm caracteres de nova linha, a divisão por intervalo de bytes é mais simples, pois não exige criar metadados. Se as colunas contiverem caracteres de nova linha ou se você estiver consultando 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 varredura, 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 ser consultado, como split-range=1-20.

    4. Mescle os resultados de todas as consultas paralelas.

  • Consultar 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 em que o código postal começa com '10021', é possível escrever 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%', tem um desempenho melhor porque seu caminho JSON é mais preciso.

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

    Quando for necessário fazer 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 então 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 de até 128 MB.

  1. Acesse o OSS console.

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

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

  4. Encontre o objeto de destino e escolha more > Select Content na coluna Actions.

  5. No painel Select Content, configure os parâmetros com base nas descrições a seguir.

    Parâmetro

    Descrição

    Object Type

    Há suporte apenas para os tipos de objeto CSV e JSON.

    Delimiter

    Este parâmetro se aplica apenas a objetos CSV. É possível selecionar uma vírgula (,) ou um delimitador personalizado.

    Title Row

    Este parâmetro se aplica apenas a objetos CSV. Especifique se a primeira linha do objeto contém cabeçalhos de coluna.

    JSON Format

    Este parâmetro se aplica apenas a objetos JSON. Selecione o formato que corresponde ao seu objeto JSON.

    Compression Format

    Especifique se o seu 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 varredura do SelectObject. Para objetos nas classes de armazenamento Infrequent Access, Archive, Cold Archive ou Deep Cold Archive, a visualização gera taxas de varredura do SelectObject e taxas de recuperação de dados. Para mais informações, consulte Data processing fees.

  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 e 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.

    Clique também em Download para salvar o conteúdo selecionado localmente.

OSS SDKs

É possível consultar objetos usando os SDKs do OSS 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 instale ossutil.

O comando a seguir executa uma instrução SQL no objeto chamado exampleobject no bucket chamado examplebucket. A solicitação usa a 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 mais informações sobre este comando, consulte select-object.

Referência da API

As operações descritas acima têm como base a API SelectObject subjacente. Se você tiver requisitos avançados, faça solicitações diretas à API REST. Ao fazer solicitações diretas, calcule manualmente a assinatura de autenticação. Para mais informações, consulte SelectObject.