O Amazon Simple Storage Service (Amazon S3) é um Object Storage Service desenvolvido para armazenar e recuperar qualquer volume de dados, de qualquer lugar. O Data Integration do DataWorks permite ler e gravar dados no Amazon S3. Este tópico descreve os recursos da fonte de dados do Amazon S3 no DataWorks.
Limitações
Leitura em lote
O Amazon S3 armazena dados não estruturados. No Data Integration, o leitor do Amazon S3 oferece suporte aos seguintes recursos:
|
Suportado |
Não suportado |
|
|
Gravação em lote
O gravador do Amazon S3 converte dados do protocolo de sincronização em arquivos de texto no Amazon S3. Como o Amazon S3 é um armazenamento de dados não estruturados, seu gravador oferece os seguintes recursos:
|
Suportado |
Não suportado |
|
|
Adicionar uma fonte de dados
Antes de desenvolver uma tarefa de sincronização no DataWorks, adicione a fonte de dados necessária seguindo as instruções em Gerenciamento de fontes de dados. Consulte as descrições dos parâmetros no console do DataWorks para entender o significado de cada parâmetro ao adicionar uma fonte de dados.
Desenvolver uma tarefa de sincronização de dados
Para obter informações sobre o ponto de entrada e o procedimento de configuração de uma tarefa de sincronização, consulte os guias a seguir.
Configure uma tarefa de sincronização em lote de tabela única
Para o procedimento, consulte Configure uma tarefa de sincronização em lote usando a interface sem código e Configure uma tarefa de sincronização em lote usando o editor de código.
Para obter os parâmetros completos e o exemplo de script para o modo de script, consulte Apêndice: Exemplo de script e descrição de parâmetros.
Apêndice: Exemplo de script e descrição de parâmetros
Configure uma tarefa de sincronização em lote usando o editor de código
Para configure uma tarefa de sincronização em lote com o editor de código, defina os parâmetros relacionados no script conforme os requisitos unificados de formato. Para mais informações, consulte Configuração do modo de script. As informações a seguir descrevem os parâmetros obrigatórios para as fontes de dados ao utilizar o editor de código em tarefas de sincronização em lote.
Exemplo de script do Reader
{
"type":"job",
"version":"2.0",// The version number.
"steps":[
{
"stepType":"s3",// The plug-in name.
"parameter":{
"nullFormat":"",// The string that represents a null value.
"compress":"",// The compression type.
"datasource":"",// The data source name.
"column":[// The columns.
{
"index":0,// The column index.
"type":"string"// The data type.
},
{
"index":1,
"type":"long"
},
{
"index":2,
"type":"double"
},
{
"index":3,
"type":"boolean"
},
{
"format":"yyyy-MM-dd HH:mm:ss", // The time format.
"index":4,
"type":"date"
}
],
"skipHeader":"",// Specifies whether to skip the header row of a CSV-like file.
"encoding":"",// The encoding format.
"fieldDelimiter":",",// The column delimiter.
"fileFormat": "",// The file format.
"object":[]// The object prefix.
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":""// The error count.
},
"speed":{
"throttle":true,// Specifies whether to enable throttling. A value of false indicates that throttling is disabled and the mbps parameter does not take effect. A value of true indicates that throttling is enabled.
"concurrent":1 // The concurrency.
"mbps":"12",// The throttling rate. 1 mbps = 1 MB/s.
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}
Parâmetros do script do Reader
|
Parâmetro |
Descrição |
Obrigatório |
Valor padrão |
|
datasource |
Nome da fonte de dados. O modo de script permite adicionar fontes de dados. O valor deste parâmetro deve ser idêntico ao nome da fonte de dados adicionada. |
Sim |
N/A |
|
Object |
Informações do objeto no Amazon S3. É possível especifique vários objetos. Por exemplo, se o bucket contiver uma pasta de teste e essa pasta contiver um arquivo chamado ll.txt, defina Object como test/ll.txt.
Nota
|
Sim |
N/A |
|
column |
Lista de colunas a serem lidas. O parâmetro type especifica o tipo de dados da origem. O parâmetro index especifica o número da coluna no arquivo de texto (começando em 0). O parâmetro value indica que a coluna atual é uma constante. Em vez de ler dados do arquivo de source, o sistema gera a coluna com base no valor especificado. Por padrão, é possível ler todos os dados como tipo String. Exemplo de configuração:
Também é possível especifique informações de coluna. Exemplo de configuração:
Nota
Para as informações de column especificadas, o campo type é obrigatório, e você deve especifique index ou value. |
Sim |
Todos os dados são lidos como tipo STRING. |
|
fieldDelimiter |
Delimitador de coluna para leitura de dados. Nota
Ao ler dados com o leitor do Amazon S3, especifique um delimitador de coluna. Se nenhum delimitador for especificado, o delimitador padrão (,) será usado. O delimitador padrão (,) também é utilizado na interface sem código. Se o delimitador for invisível, especifique a codificação Unicode. Por exemplo, \u001b ou \u007c. |
Sim |
Valor padrão: (,) |
|
compress |
Tipo de compressão. Por padrão, este parâmetro fica vazio, indicando que nenhuma compressão é aplicada. Os tipos de compressão suportados são gzip, bzip2 e zip. |
Não |
Sem compressão |
|
encoding |
Codificação dos arquivos a serem lidos. |
Não |
utf-8 |
|
nullFormat |
Strings padrão em arquivos de texto não podem representar null (ponteiro nulo). O sistema de sincronização de dados usa nullFormat para definir quais strings representam null. Por exemplo, se você definir |
Não |
N/A |
|
skipHeader |
Para arquivos CSV, use skipHeader para especifique se a linha de cabeçalho deve ser lida.
Nota
skipHeader não é suportado para arquivos compactados. |
Não |
false |
|
csvReaderConfig |
Configuração para leitura de arquivos CSV. Este parâmetro é do tipo Map. O CsvReader lê arquivos CSV e oferece várias configurações. Se este parâmetro não for configurado, valores padrão serão usados. |
Não |
N/A |
Exemplo de script do Writer
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "s3",
"category": "writer",
"name": "Writer",
"parameter": {
"datasource": "datasource1",
"object": "test/csv_file.csv",
"fileFormat": "csv",
"encoding": "utf8/gbk/...",
"fieldDelimiter": ",",
"lineDelimiter": "\n",
"column": [
"0",
"1"
],
"header": [
"col_bigint",
"col_tinyint"
],
"writeMode": "truncate",
"writeSingleObject": true
}
}
],
"setting": {
"errorLimit": {
"record": "" // The error count.
},
"speed": {
"throttle": true, // Specifies whether to enable throttling. A value of false indicates that throttling is disabled and the mbps parameter does not take effect. A value of true indicates that throttling is enabled.
"concurrent": 1 // The concurrency.
"mbps": "12", // The throttling rate. 1 mbps = 1 MB/s.
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Parâmetros do script do Writer
|
Parâmetro |
Descrição |
Obrigatório |
Valor padrão |
|
datasource |
Nome da fonte de dados. O modo de script permite adicionar fontes de dados. O valor deste parâmetro deve ser idêntico ao nome da fonte de dados adicionada. |
Sim |
N/A |
|
object |
Nome do objeto de destino. |
Sim |
N/A |
|
fileFormat |
Formatos de arquivo suportados:
|
Sim |
text |
|
writeMode |
|
Sim |
append |
|
fieldDelimiter |
Delimitador de coluna para gravação de dados. |
Não |
Valor padrão: (,) |
|
lineDelimiter |
Delimitador de linha para gravação de dados. |
Não |
Valor padrão: (\n) |
|
compress |
Tipo de compressão. Por padrão, este parâmetro fica vazio, indicando que nenhuma compressão é aplicada.
|
Não |
Sem compressão |
|
nullFormat |
Strings padrão em arquivos de texto não podem representar null (ponteiro nulo). O sistema de sincronização de dados usa |
Não |
N/A |
|
header |
Cabeçalho a ser gravado. Exemplo: |
Não |
N/A |
|
writeSingleObject |
true: Grava dados em um único arquivo. false: Grava dados em múltiplos arquivos. Nota
|
Não |
false |
|
encoding |
Codificação dos arquivos a serem gravados. |
Não |
utf-8 |
|
column |
Configuração de coluna para gravação de dados.
|
Sim |
N/A |