Todos os produtos
Search
Central de documentação

MaxCompute:UNLOAD

Última atualização: Jul 29, 2026

O comando UNLOAD exporta dados de um projeto do MaxCompute para armazenamento externo, como Object Storage Service (OSS) ou Hologres, permitindo que outros mecanismos de computação os utilizem.

Permissões

  • Permissões do MaxCompute: A conta usada na operação deve ter permissão de leitura (Select) sobre os dados da tabela a ser exportada. Para mais informações sobre como conceder permissões, consulte MaxCompute permissions.

  • Permissões de armazenamento externo: Antes de exportar dados do MaxCompute para armazenamento externo, conceda ao MaxCompute as permissões necessárias para acessar o destino, seja ele OSS ou Hologres.

    • Autorização do OSS: Há suporte para autorização com um clique, garantindo maior segurança. Para mais detalhes, consulte Authorization solutions for accessing external data sources. Os exemplos utilizam essa modalidade e a função recebe o nome AliyunODPSDefaultRole.

    • Autorização do Hologres: Para concluir a autorização, crie uma função do RAM, conceda a ela permissões de acesso ao MaxCompute e adicione-a à instância do Hologres. Para mais informações, consulte Create a Hologres foreign table (STS mode).

Exportar dados para armazenamento externo

O comando UNLOAD opera em modo de anexação. Ao exportar dados repetidamente para o mesmo caminho de destino, o sistema não sobrescreve os arquivos existentes; em vez disso, cria novos arquivos no local. Para substituir os dados, limpe manualmente o caminho de destino antes de executar o comando UNLOAD.

Exportar dados para o OSS

Exportar dados em formato de texto (CSV ou TSV)

Este método utiliza um StorageHandler integrado para realizar a exportação. Por padrão, os arquivos de saída recebem a extensão .csv ou .tsv.

Sintaxe

UNLOAD FROM {<select_statement>|<table_name> [PARTITION (<pt_spec>)]} 
INTO | OVERWRITE
LOCATION <oss_location>
STORED BY <StorageHandler>
[WITH SERDEPROPERTIES ('<property_name>'='<property_value>',...)];

Configurações principais

Item de configuração

Descrição

oss_location

Caminho de destino no OSS. O formato é oss://<oss_endpoint>/<bucket>/<object_path>.

StorageHandler

Processador integrado:

  • 'com.aliyun.odps.CsvStorageHandler': exporta dados no formato CSV.

  • 'com.aliyun.odps.TsvStorageHandler': exporta dados no formato TSV.

SERDEPROPERTIES

Usado para definir propriedades de exportação. As mais comuns são:

  • 'odps.properties.rolearn': Obrigatório. O Alibaba Cloud Resource Name (ARN) da função do RAM usada para acessar o OSS.

  • 'odps.text.option.gzip.output.enabled'='true': Comprime o arquivo exportado no formato GZIP.

Exemplos

Exemplo 1: Exportar dados em formato CSV e compactá-los em GZIP

Exporte dados da tabela sale_detail de um projeto do MaxCompute para o OSS. O código abaixo mostra os dados da tabela sale_detail:

-- Partition fields: sale_date, region
+------------+-------------+-------------+------------+------------+
| shop_name  | customer_id | total_price | sale_date  | region     |
+------------+-------------+-------------+------------+------------+
| s1         | c1          | 100.1       | 2013       | china      |
| s2         | c2          | 100.2       | 2013       | china      |
| s3         | c3          | 100.3       | 2013       | china      |
| null       | c5          | NULL        | 2014       | shanghai   |
| s6         | c6          | 100.4       | 2014       | shanghai   |
| s7         | c7          | 100.5       | 2014       | shanghai   |
+------------+-------------+-------------+------------+------------+

Procedimento:

  1. No lado do OSS: Faça login no console do OSS, crie a pasta mc-unload/data_location/ em um bucket do OSS localizado na região oss-cn-hangzhou e construa o caminho correspondente. Para saber como criar um bucket, consulte Create a bucket in the console. Monte o caminho com base nas informações de bucket, região e endpoint. Exemplo:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. No lado do MaxCompute: Faça login em um MaxCompute client e execute o comando UNLOAD.

    Método 1: Usar uma consulta SELECT

    -- Set the amount of data to be read from the MaxCompute table by a single worker to 256 MB. This indirectly controls the number of exported files.
    SET odps.stage.mapper.split.size=256;
    
    UNLOAD FROM (SELECT * FROM sale_detail)
    INTO
    LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location'
    STORED BY 'com.aliyun.odps.CsvStorageHandler'
    WITH SERDEPROPERTIES (
        'odps.properties.rolearn'='acs:ram::<uid>:role/AliyunODPSDefaultRole', 
        'odps.text.option.gzip.output.enabled'='true'
    );

    Método 2: Especificar diretamente o nome da tabela (sem custos de consulta)

    -- Set the amount of data to be read from the MaxCompute table by a single worker to 256 MB. This indirectly controls the number of exported files.
    SET odps.stage.mapper.split.size=256;
    
    UNLOAD FROM sale_detail 
    INTO
    LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location'
    STORED BY 'com.aliyun.odps.CsvStorageHandler'
    WITH SERDEPROPERTIES (
        'odps.properties.rolearn'='acs:ram::<uid>:role/AliyunODPSDefaultRole', 
        'odps.text.option.gzip.output.enabled'='true'
    );
  3. Verificar o resultado: Acesse o console do OSS e visualize os dados exportados no caminho de destino. O arquivo gerado estará no formato CSV e compactado com GZIP.

Exemplo 2: Exportar dados particionados em formato TSV com compactação

Exporte os dados das partições onde sale_date='2013' e region='china' da tabela sale_detail no formato TSV, aplicando compressão GZIP.

-- Partition fields: sale_date, region
+------------+-------------+-------------+------------+------------+
| shop_name  | customer_id | total_price | sale_date  | region     |
+------------+-------------+-------------+------------+------------+
| s1         | c1          | 100.1       | 2013       | china      |
| s2         | c2          | 100.2       | 2013       | china      |
| s3         | c3          | 100.3       | 2013       | china      |
| null       | c5          | NULL        | 2014       | shanghai   |
| s6         | c6          | 100.4       | 2014       | shanghai   |
| s7         | c7          | 100.5       | 2014       | shanghai   |
+------------+-------------+-------------+------------+------------+

Procedimento:

  1. No lado do OSS: Faça login no console do OSS, crie a pasta mc-unload/data_location/ em um bucket do OSS na região oss-cn-hangzhou e defina o caminho. Para instruções sobre criação de buckets, veja Create a bucket in the console. Construa o caminho usando as informações de bucket, região e endpoint. Exemplo:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. No lado do MaxCompute: Faça login em um MaxCompute client e execute o comando UNLOAD.

    SET odps.stage.mapper.split.size=256;
    
    UNLOAD FROM sale_detail PARTITION (sale_date='2013',region='china')
    INTO
    LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location'
    STORED BY 'com.aliyun.odps.TsvStorageHandler'
    WITH SERDEPROPERTIES (
        'odps.properties.rolearn'='acs:ram::<uid>:role/AliyunODPSDefaultRole', 
        'odps.text.option.gzip.output.enabled'='true'
    );
  3. Verificar o resultado: Acesse o Console de Gerenciamento do OSS e confira o resultado da importação no caminho de destino. O arquivo exportado estará no formato TSV e compactado com GZIP.

Exportar dados em formato open source (como Parquet ou ORC)

Esta abordagem permite exportar dados para diversos formatos de armazenamento colunar open source ou estruturas de dados padronizadas.

Sintaxe

UNLOAD FROM {<select_statement>|<table_name> [PARTITION (<pt_spec>)]}
INTO | OVERWRITE
LOCATION <oss_location>
[ROW FORMAT SERDE '<serde_class>' 
  [WITH SERDEPROPERTIES ('<property_name>'='<property_value>',...)]
]
STORED AS <file_format>
[PROPERTIES ('<tbproperty_name>'='<tbproperty_value>')];

Configurações principais

Item de configuração

Descrição

oss_location

Caminho de destino no OSS. O formato é oss://<oss_endpoint>/<bucket>/<object_path>.

serde_class

Define a biblioteca de serialização e desserialização. Por exemplo, use org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe para Parquet.

SERDEPROPERTIES

'odps.properties.rolearn': Obrigatório. O ARN da função do RAM usada para acessar o OSS.

file_format

Obrigatório. Especifica o formato do arquivo, como PARQUET, ORC, TEXTFILE ou JSON.

PROPERTIES

- 'mcfed.parquet.compression'='SNAPPY': Define o formato de compressão para arquivos Parquet. Há suporte para SNAPPY e LZO.- 'odps.text.option.gzip.output.enabled'='true': Habilita a compressão GZIP para TextFile.

Formatos e métodos de compressão suportados

Formato de arquivo

Formatos de compressão suportados

Descrição

PARQUET

SNAPPY, LZO

Formato de armazenamento colunar ideal para consultas analíticas.

ORC

SNAPPY, LZO

Armazenamento colunar adequado ao ecossistema Hadoop.

TEXTFILE

GZIP

Formato de texto que aceita separadores personalizados.

RCFILE

-

Formato híbrido de armazenamento linha-coluna.

SEQUENCEFILE

-

Formato de arquivo sequencial do Hadoop.

AVRO

-

Formato de serialização de dados.

JSON

-

Formato JSON.

Exemplos

Exemplo 1: Exportar dados em formato PARQUET com compressão SNAPPY

Exporte dados da tabela sale_detail de um projeto do MaxCompute para o OSS. O trecho abaixo exibe os dados da tabela sale_detail:

-- Partition fields: sale_date, region
+------------+-------------+-------------+------------+------------+
| shop_name  | customer_id | total_price | sale_date  | region     |
+------------+-------------+-------------+------------+------------+
| s1         | c1          | 100.1       | 2013       | china      |
| s2         | c2          | 100.2       | 2013       | china      |
| s3         | c3          | 100.3       | 2013       | china      |
| null       | c5          | NULL        | 2014       | shanghai   |
| s6         | c6          | 100.4       | 2014       | shanghai   |
| s7         | c7          | 100.5       | 2014       | shanghai   |
+------------+-------------+-------------+------------+------------+

Procedimento:

  1. No lado do OSS: Faça login no console do OSS, crie a pasta mc-unload/data_location/ em um bucket do OSS na região oss-cn-hangzhou e monte o caminho. Consulte Create a bucket in the console para aprender a criar buckets. Utilize as informações de bucket, região e endpoint para formar o caminho. Exemplo:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. No lado do MaxCompute: Faça login em um MaxCompute client e execute o comando UNLOAD.

    -- Set the amount of data to be read from the MaxCompute table by a single worker to 256 MB. This indirectly controls the number of exported files.
    SET odps.stage.mapper.split.size=256;
    
    UNLOAD FROM (SELECT * FROM sale_detail) 
    INTO  
    LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location' 
    ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
    WITH SERDEPROPERTIES (
        'odps.properties.rolearn'='acs:ram::<uid>:role/AliyunODPSDefaultRole'
    ) 
    STORED AS PARQUET 
    PROPERTIES('mcfed.parquet.compression'='SNAPPY');
  3. Verificação do resultado: Acesse o Console de Gerenciamento do OSS e visualize o resultado da importação no caminho alvo. Os arquivos exportados estarão no formato PARQUET e comprimidos com SNAPPY.

Exemplo 2: Exportar dados particionados em formato PARQUET

Exporte os dados das partições definidas por sale_date='2013' e region='china' da tabela sale_detail do MaxCompute para o formato PARQUET, utilizando compressão SNAPPY. Veja abaixo os dados da tabela sale_detail:

-- Partition fields: sale_date, region
+------------+-------------+-------------+------------+------------+
| shop_name  | customer_id | total_price | sale_date  | region     |
+------------+-------------+-------------+------------+------------+
| s1         | c1          | 100.1       | 2013       | china      |
| s2         | c2          | 100.2       | 2013       | china      |
| s3         | c3          | 100.3       | 2013       | china      |
| null       | c5          | NULL        | 2014       | shanghai   |
| s6         | c6          | 100.4       | 2014       | shanghai   |
| s7         | c7          | 100.5       | 2014       | shanghai   |
+------------+-------------+-------------+------------+------------+

Procedimento:

  1. No lado do OSS: Faça login no console do OSS, crie a pasta mc-unload/data_location/ em um bucket do OSS na região oss-cn-hangzhou e estruture o caminho. Para detalhes sobre criação de buckets, consulte Create a bucket in the console. Baseie-se nas informações de bucket, região e endpoint. Exemplo:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. No lado do MaxCompute: Faça login em um MaxCompute client e execute o comando UNLOAD.

    -- Set the amount of data to be read from the MaxCompute table by a single worker to 256 MB. This indirectly controls the number of exported files.
    SET odps.stage.mapper.split.size=256;
    
    UNLOAD FROM sale_detail PARTITION (sale_date='2013',region='china') 
    INTO 
    LOCATION 'oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location' 
    ROW FORMAT SERDE 'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
    WITH SERDEPROPERTIES ('odps.properties.rolearn'='acs:ram::<uid>:role/AliyunODPSDefaultRole') 
    STORED AS PARQUET 
    PROPERTIES('mcfed.parquet.compression'='SNAPPY');
  3. Verificar o resultado: Acesse o console do OSS e visualize os dados exportados no caminho de destino. O arquivo estará no formato PARQUET e compactado via SNAPPY.

Exemplo 3: Exportar dados em formato TEXTFILE definindo um separador

Exporte os dados da tabela sale_detail para um arquivo TXT, utilizando vírgula (,) como separador.

-- Partition fields: sale_date, region
+------------+-------------+-------------+------------+------------+
| shop_name  | customer_id | total_price | sale_date  | region     |
+------------+-------------+-------------+------------+------------+
| s1         | c1          | 100.1       | 2013       | china      |
| s2         | c2          | 100.2       | 2013       | china      |
| s3         | c3          | 100.3       | 2013       | china      |
| null       | c5          | NULL        | 2014       | shanghai   |
| s6         | c6          | 100.4       | 2014       | shanghai   |
| s7         | c7          | 100.5       | 2014       | shanghai   |
+------------+-------------+-------------+------------+------------+

Procedimento:

  1. No lado do OSS: Faça login no console do OSS, crie a pasta mc-unload/data_location/ em um bucket do OSS na região oss-cn-hangzhou e estabeleça o caminho. Consulte Create a bucket in the console para saber como criar buckets. Forme o caminho com base no bucket, região e endpoint. Exemplo:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. No lado do MaxCompute: Faça login em um MaxCompute client e execute o comando UNLOAD.

    -- Set the amount of data to be read from the MaxCompute table by a single worker to 256 MB. This indirectly controls the number of exported files.
    SET odps.sql.allow.fullscan=true; 
    
    UNLOAD FROM (SELECT * FROM sale_detail)
    INTO
    LOCATION 'oss://oss-cn-beijing-internal.aliyuncs.com/mc-unload/data_location/'
    ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
    WITH SERDEPROPERTIES ('field.delim'=',')
    STORED AS TEXTFILE
    PROPERTIES ('odps.external.data.enable.extension'='true');
  3. Verificar o resultado: Acesse o console do OSS e visualize os dados no caminho de destino. O arquivo exportado estará em formato TXT e usará vírgulas como separadores.

Personalizar prefixos, sufixos e extensões de nomes de arquivo

Ao usar o comando UNLOAD para exportar dados para o OSS, utilize propriedades em PROPERTIES ou SERDEPROPERTIES para personalizar o prefixo, sufixo e extensão dos arquivos de saída.

Sintaxe

UNLOAD FROM {<select_statement>|<table_name> [PARTITION (<pt_spec>)]}
INTO | OVERWRITE
LOCATION <oss_location>
[ROW FORMAT SERDE '<serde_class>' 
  [WITH SERDEPROPERTIES ('<property_name>'='<property_value>',...)]
]
STORED AS <file_format>
[PROPERTIES ('<tbproperty_name>'='<tbproperty_value>',...)];

Configurações principais

property_name/tbproperty_name

Descrição

Valor de exemplo

odps.external.data.output.prefix

Prefixo do nome do arquivo. Aceita letras, dígitos e underscores (_). Deve ter entre 1 e 10 caracteres.

'mc_'

odps.external.data.output.suffix

Sufixo do nome do arquivo. Aceita letras, dígitos e underscores (_).

'_hangzhou'

odps.external.data.enable.extension

Define se extensões padrão como .tx e .parquet serão exibidas.

'true'

odps.external.data.output.explicit.extension

Extensão personalizada para o arquivo. Esta propriedade tem prioridade sobre a extensão padrão.

'jsonl'

Referência de sufixos

A tabela a seguir descreve as extensões geradas automaticamente para diferentes tabelas externas quando o parâmetro odps.external.data.enable.extension=true está definido.

Formato de arquivo

SerDe

Sufixo

SEQUENCEFILE

org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe

.sequencefile

TEXTFILE

org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe

.txt

RCFILE

org.apache.hadoop.hive.serde2.columnar.LazyBinaryColumnarSerDe

.rcfile

ORC

org.apache.hadoop.hive.ql.io.orc.OrcSerde

.orc

PARQUET

org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe

.parquet

AVRO

org.apache.hadoop.hive.serde2.avro.AvroSerDe

.avro

JSON

org.apache.hive.hcatalog.data.JsonSerDe

.json

CSV

org.apache.hadoop.hive.serde2.OpenCSVSerde

.csv

Nota

Ao exportar dados compactados nos formatos SNAPPY ou LZO, as extensões .snappy ou .lzo não aparecem nos nomes dos arquivos gerados.

Exemplos

Exemplo 1: Exportar arquivo TEXTFILE adicionando prefixo e sufixo

Exporte dados da tabela sale_detail de um projeto do MaxCompute para o OSS como um arquivo TXT. O arquivo seguirá o padrão de nomenclatura mc_<system-generated>_beijing.txt. Abaixo estão os dados da tabela sale_detail:

-- Partition fields: sale_date, region
+------------+-------------+-------------+------------+------------+
| shop_name  | customer_id | total_price | sale_date  | region     |
+------------+-------------+-------------+------------+------------+
| s1         | c1          | 100.1       | 2013       | china      |
| s2         | c2          | 100.2       | 2013       | china      |
| s3         | c3          | 100.3       | 2013       | china      |
| null       | c5          | NULL        | 2014       | shanghai   |
| s6         | c6          | 100.4       | 2014       | shanghai   |
| s7         | c7          | 100.5       | 2014       | shanghai   |
+------------+-------------+-------------+------------+------------+

Procedimento:

  1. No lado do OSS: Faça login no console do OSS, crie a pasta mc-unload/data_location/ em um bucket do OSS na região oss-cn-hangzhou e defina o caminho. Consulte Create a bucket in the console para instruções sobre criação de buckets. Monte o caminho usando bucket, região e endpoint. Exemplo:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. No lado do MaxCompute: Faça login em um MaxCompute client e execute o comando UNLOAD.

    UNLOAD FROM (SELECT * FROM sale_detail) 
    INTO 
    LOCATION 'oss://oss-cn-beijing-internal.aliyuncs.com/***/textfile' 
    row format serde 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
    STORED AS textfile
    PROPERTIES (
        'odps.external.data.output.prefix'='mc_', 
        'odps.external.data.output.suffix'='_beijing',
        'odps.external.data.enable.extension'='true');
  3. Verificar o resultado: Acesse o console do OSS e visualize os dados no caminho de destino. O nome do arquivo exportado será mc_<system-generated>_beijing.txt.

Exemplo 2: Exportar arquivo JSON personalizando a extensão

Exporte dados da tabela sale_detail de um projeto do MaxCompute para o OSS como um arquivo JSON. O nome do arquivo seguirá o formato mc_<system-generated file name>_beijing.json. Confira abaixo os dados da tabela sale_detail:

-- Partition fields: sale_date, region
+------------+-------------+-------------+------------+------------+
| shop_name  | customer_id | total_price | sale_date  | region     |
+------------+-------------+-------------+------------+------------+
| s1         | c1          | 100.1       | 2013       | china      |
| s2         | c2          | 100.2       | 2013       | china      |
| s3         | c3          | 100.3       | 2013       | china      |
| null       | c5          | NULL        | 2014       | shanghai   |
| s6         | c6          | 100.4       | 2014       | shanghai   |
| s7         | c7          | 100.5       | 2014       | shanghai   |
+------------+-------------+-------------+------------+------------+

Procedimento:

  1. No lado do OSS: Faça login no console do OSS, crie a pasta mc-unload/data_location/ em um bucket do OSS na região oss-cn-hangzhou e configure o caminho. Para saber como criar buckets, veja Create a bucket in the console. Utilize as informações de bucket, região e endpoint. Exemplo:

    oss://oss-cn-hangzhou-internal.aliyuncs.com/mc-unload/data_location
  2. No lado do MaxCompute: Faça login em um MaxCompute client e execute o comando UNLOAD.

    UNLOAD FROM (SELECT * FROM sale_detail) 
    INTO 
    LOCATION 'oss://oss-cn-beijing-internal.aliyuncs.com/***/json' 
    ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
    WITH SERDEPROPERTIES (
        'odps.external.data.output.prefix'='mc_', 
        'odps.external.data.output.suffix'='_beijing',
        'odps.external.data.output.explicit.extension'='json')
    STORED AS JSON;
  3. Verificar o resultado: Acesse o console do OSS e visualize os dados no caminho de destino. O nome do arquivo exportado será mc_<system-generated file name>_beijing.json.

Exportar dados para o Hologres

Limitações

  • Autorização de assinatura dupla: Não há suporte para autorização de assinatura dupla na exportação para o Hologres.

  • Tabelas particionadas: Não é possível exportar dados para tabelas particionadas do Hologres.

  • Mapeamento de tipos: Os tipos de dados dos campos na tabela de destino do Hologres devem corresponder aos tipos de dados dos campos na tabela do MaxCompute. Para mais detalhes, consulte Data type mapping between MaxCompute and Hologres.

Sintaxe

UNLOAD FROM {<select_statement>|<table_name> [PARTITION (<pt_spec>)]} 
INTO 
LOCATION <hologres_location>
STORED BY <StorageHandler>
[WITH SERDEPROPERTIES ('<property_name>'='<property_value>',...)];

Configurações principais

Item de configuração

Descrição

hologres_location

String de conexão JDBC da tabela de destino no Hologres. O formato é 'jdbc:postgresql://<endpoint>:<port>/<database>?ApplicationName=MaxCompute&[currentSchema=<schema>&][useSSL={true|false}&]table=<holo_table_name>/'.

StorageHandler

Especifica um handler integrado. O valor é fixo em com.aliyun.odps.jdbc.JdbcStorageHandler, que utiliza o método de conexão JdbcStorageHandler.

SERDEPROPERTIES

Este parâmetro deve conter as três propriedades seguintes:

  • 'odps.properties.rolearn'='<ram_arn>': O ARN da função do RAM usada para acessar o Hologres.

  • 'mcfed.mapreduce.jdbc.driver.class'='org.postgresql.Driver': O driver JDBC do Hologres.

  • 'odps.federation.jdbc.target.db.type'='holo': O tipo do banco de dados de destino.

Exemplo

Exporte dados da tabela do MaxCompute data_test para a tabela do Hologres mc_2_holo. O código abaixo exibe os dados da tabela data_test:

+------------+------+
| id         | name |
+------------+------+
| 3          | rgege |
| 4          | Gegegegr |
+------------+------+

Procedimento:

  1. No lado do Hologres: Crie a tabela de destino mc_2_holo no Hologres.

    CREATE TABLE mc_2_holo (id INT, name TEXT);
  2. No lado do MaxCompute: Faça login em um MaxCompute client e execute o comando UNLOAD.

    UNLOAD FROM (SELECT * FROM data_test) 
    INTO 
    LOCATION 'jdbc:postgresql://hgprecn-cn-5y**********-cn-hangzhou-internal.hologres.aliyuncs.com:80/test?ApplicationName=MaxCompute&currentSchema=public&useSSL=false&table=mc_2_holo/'  
    STORED BY 'com.aliyun.odps.jdbc.JdbcStorageHandler'
    WITH SERDEPROPERTIES ( 
      'odps.properties.rolearn'='acs:ram::13**************:role/aliyunodpsholorole',
      'mcfed.mapreduce.jdbc.driver.class'='org.postgresql.Driver', 
      'odps.federation.jdbc.target.db.type'='holo'
    );
  3. Verificar o resultado: Visualize os dados exportados no Hologres.

    SELECT * FROM mc_2_holo;

    O seguinte resultado é retornado:

    id	name
    4	Gegegegr
    3	rgege

Faturamento

  • Faturamento do comando

    • O comando UNLOAD em si não gera cobrança.

    • Faturamento de cláusulas de consulta: A cláusula de consulta em um comando UNLOAD escaneia dados e consome recursos computacionais para gerar a exportação. Portanto, ela é faturada como um trabalho SQL padrão.

  • Estimativa de custos

    Armazenar dados estruturados no OSS e mantê-los no MaxCompute traz vantagens distintas. Para reduzir custos ao exportar dados do MaxCompute, faça uma estimativa abrangente que considere custos diretos de armazenamento, variações no volume de dados e custos futuros de consulta.

    • Custos diretos de armazenamento

      • O MaxCompute oferece as classes de armazenamento Standard, Infrequent Access (IA) e Archive. Todas suportam armazenamento redundante por zona. Para detalhes sobre faturamento de armazenamento, consulte Storage fees.

      • O OSS também disponibiliza as classes Standard, IA e Archive Storage, todas com suporte a redundância por zona e preços equivalentes aos do MaxCompute. Adicionalmente, o OSS oferece as classes Cold Archive e Deep Cold Archive, que são mais econômicas, mas não possuem redundância por zona. Para mais informações, consulte OSS storage fees.

    • Variações no volume de dados

      Dados importados para o MaxCompute atingem uma taxa de compressão de aproximadamente 5:1. O faturamento considera o volume após a compressão.

      Para dados armazenados no OSS, você deve definir e manter o formato e o método de compressão. Consulte OSS foreign tables para ver os formatos e métodos suportados na exportação do MaxCompute. Sem compressão, o volume de dados aumentará após a exportação para o OSS.

    • Custos subsequentes de consulta

      Dados no MaxCompute podem ser consultados a qualquer momento. Contudo, o uso de classes como Infrequent Access ou Archive implica taxas adicionais de acesso para leitura. No OSS, classes não padrão como Infrequent Access, Archive ou Cold Archive também geram taxas de recuperação de dados. Caso os dados sejam excluídos ou recuperados antes do período mínimo de retenção da classe escolhida, taxas de exclusão antecipada podem ser aplicadas.

Referências

Para importar dados em CSV ou outros formatos open source de armazenamento externo para o MaxCompute, consulte LOAD.