O OSS-HDFS service (JindoFS service) é um product de armazenamento de data lake nativo da cloud. Uma source de dados do OSS-HDFS oferece um canal bidirecional para leitura e escrita no OSS-HDFS. Este tópico descreve os recursos de sincronização de dados que o DataWorks fornece para o OSS-HDFS.
Recursos suportados
|
Recurso |
Suportado |
|
Leitura offline |
Sim |
|
Escrita offline |
Sim |
|
Escrita em tempo real |
Sim |
Limitações
Leitura offline
A conexão de rede entre um grupo de recursos e o OSS-HDFS pode ser complexa. Para executar tarefas de sincronização de dados, utilize um Serverless resource group (recommended) ou um exclusive resource group for Data Integration. Certifique-se de que seu grupo de recursos tenha acesso à rede do OSS-HDFS.
O OSS-HDFS Reader suporta o seguinte:
Arquivos nos formatos texto, CSV, ORC e Parquet. O conteúdo do arquivo deve representar uma tabela lógica bidimensional.
Leitura de múltiplos tipos de dados e constantes de coluna.
Leituras recursivas e os caracteres curinga
*e?.Leituras simultâneas de vários arquivos. O número real de threads simultâneas corresponde ao menor valor entre a quantidade de arquivos a serem lidos e a configuração
concurrent.
Devido ao algoritmo interno de fragmentação para arquivos individuais, o OSS-HDFS Reader não suporta leituras simultâneas com múltiplas threads em um único arquivo.
Escrita offline
O OSS-HDFS Writer aceita apenas os formatos texto, ORC e Parquet. O conteúdo do arquivo deve constituir uma tabela lógica bidimensional.
Em arquivos de texto, garanta que o delimitador de campo usado na escrita corresponda ao delimitador utilizado na criação da tabela Hive. Isso assegura o mapeamento correto dos dados gravados no OSS-HDFS para os campos da tabela Hive.
Escrita em tempo real
Oferece suporte a escritas em tempo real.
Compatível com escritas em tempo real para a versão 0.14.x do formato Hudi.
Tipos de campo suportados
Leitura offline
O OSS-HDFS Reader converte os tipos de dados de ParquetFile, ORCFile, TextFile e CsvFile para os tipos internos compatíveis com o Data Integration.
|
Categoria de tipo |
Tipos de dados do OSS-HDFS |
|
Inteiro |
TINYINT, SMALLINT, INT, BIGINT |
|
Ponto flutuante |
FLOAT, DOUBLE, DECIMAL |
|
String |
STRING, CHAR, VARCHAR |
|
Data e hora |
DATE, TIMESTAMP |
|
Booleano |
BOOLEAN |
Os exemplos a seguir ilustram as representações de tipos internos:
LONG: Dados inteiros em um arquivo OSS-HDFS, como 123456789.
DOUBLE: Dados de ponto flutuante em um arquivo OSS-HDFS, como 3,1415.
BOOLEAN: Dados booleanos em um arquivo OSS-HDFS, como true ou false. Os valores não diferenciam maiúsculas de minúsculas.
DATE: Dados de data e hora em um arquivo OSS-HDFS, como 2014-12-31 00:00:00.
Escrita offline
O OSS-HDFS Writer grava arquivos nos formatos TextFile, ORCFile e ParquetFile em um caminho especificado no sistema de arquivos do OSS-HDFS.
|
Categoria de tipo |
Tipos de dados do OSS-HDFS |
|
Inteiro |
TINYINT, SMALLINT, INT, BIGINT |
|
Ponto flutuante |
FLOAT, DOUBLE |
|
String |
CHAR, VARCHAR, STRING |
|
Booleano |
BOOLEAN |
|
Data e hora |
DATE, TIMESTAMP |
Adicionar uma source de dados
Antes de desenvolver uma tarefa de sincronização no DataWorks, adicione a source de dados necessária seguindo as instruções em Gerenciamento de sources de dados. As descrições dos parâmetros estão disponíveis no console do DataWorks durante a adição da source de dados.
Desenvolver uma tarefa de sincronização de dados
Configurar uma tarefa de sincronização offline para uma única tabela
Para instruções passo a passo, consulte Configure a task in the codeless UI e Configure a task in the code editor.
Para obter a lista completa de parâmetros e um exemplo de script, veja Appendix: Script demos and parameter descriptions.
Configurar uma tarefa de sincronização em tempo real para uma única tabela
Consulte Single-table real-time synchronization task configuration.
Configurar uma tarefa de sincronização completa e incremental em tempo real para um banco de dados inteiro
Consulte Configure a real-time synchronization task for an entire database.
Apêndice: Exemplos de scripts e descrições de parâmetros
Exemplo de script do Reader
Todos os parâmetros seguem o formato de script unificado exigido pelo editor de código. Para detalhes sobre o formato, consulte Configure a task in the code editor.
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "oss_hdfs",
"parameter": {
"path": "",
"datasource": "",
"column": [
{
"index": 0,
"type": "string"
},
{
"index": 1,
"type": "long"
},
{
"index": 2,
"type": "double"
},
{
"index": 3,
"type": "boolean"
},
{
"format": "yyyy-MM-dd HH:mm:ss",
"index": 4,
"type": "date"
}
],
"fieldDelimiter": ",",
"encoding": "UTF-8",
"fileFormat": ""
},
"name": "Reader",
"category": "reader"
},
{
"stepType": "stream",
"parameter": {},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": ""
},
"speed": {
"concurrent": 3,
"throttle": true,
"mbps": "12"
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Parâmetros do script do Reader
|
Parâmetro |
Descrição |
Obrigatório |
Valor padrão |
|
|
Caminho do arquivo ou diretório a ser lido. Três estilos de entrada são suportados: OPÇÃO 1: Arquivo único — O OSS-HDFS Reader utiliza uma única thread para ler o arquivo. OPÇÃO 2: Múltiplos arquivos — A leitura ocorre de forma simultânea. A contagem real de threads equivale ao menor valor entre o número de arquivos e a configuração |
Sim |
Nenhum |
|
|
Tipo do arquivo. Valores válidos: |
Sim |
Nenhum |
|
|
Lista de campos a serem lidos. Defina como |
Sim |
Nenhum |
|
|
Delimitador de campo para leitura de dados TextFile. Não é necessário para arquivos ORC ou Parquet. |
Não |
|
|
|
Codificação do arquivo. |
Não |
|
|
|
String a ser tratada como valor nulo. Por exemplo, definir |
Não |
Nenhum |
|
|
Formato de compressão. Valores válidos: |
Não |
Nenhum |
Exemplo de script do Writer
{
"type": "job",
"version": "2.0",
"steps": [
{
"stepType": "stream",
"parameter": {},
"name": "Reader",
"category": "reader"
},
{
"stepType": "oss_hdfs",
"parameter": {
"path": "",
"fileName": "",
"compress": "",
"datasource": "",
"column": [
{
"name": "col1",
"type": "string"
},
{
"name": "col2",
"type": "int"
},
{
"name": "col3",
"type": "double"
},
{
"name": "col4",
"type": "boolean"
},
{
"name": "col5",
"type": "date"
}
],
"writeMode": "",
"fieldDelimiter": ",",
"encoding": "",
"fileFormat": "text"
},
"name": "Writer",
"category": "writer"
}
],
"setting": {
"errorLimit": {
"record": ""
},
"speed": {
"concurrent": 3,
"throttle": false
}
},
"order": {
"hops": [
{
"from": "Reader",
"to": "Writer"
}
]
}
}
Parâmetros do script do Writer
|
Parâmetro |
Descrição |
Obrigatório |
Valor padrão |
|
|
Tipo do arquivo. Valores válidos: |
Sim |
Nenhum |
|
|
Caminho no sistema de arquivos do OSS-HDFS onde os dados são armazenados. O OSS-HDFS Writer grava múltiplos arquivos neste diretório com base na configuração de simultaneidade. Ao associar a uma tabela Hive, especifique o caminho de armazenamento da tabela Hive no OSS-HDFS. |
Sim |
Nenhum |
|
|
Nome base para os arquivos de saída. Um sufixo aleatório é anexado a este nome para cada thread simultânea, formando os nomes reais dos arquivos. |
Sim |
Nenhum |
|
|
Campos a serem escritos. Não há suporte para escrita em um subconjunto de colunas. Ao associar a uma tabela Hive, especifique todos os nomes e tipos de campos. Use |
Sim (não obrigatório se |
Nenhum |
|
|
Define como o OSS-HDFS Writer lida com arquivos existentes antes da escrita. O OSS-HDFS Writer adota uma estratégia de escrever-e-renomear: os dados são primeiramente gravados em um diretório temporário nomeado pela regra |
Sim |
Nenhum |
|
|
Delimitador de campo para os arquivos de saída. Apenas delimitadores de caractere único são suportados; múltiplos caracteres causam erro de execução. Não é obrigatório quando |
Sim (não obrigatório se |
Nenhum |
|
|
Formato de compressão para arquivos de texto. Valores válidos: |
Não |
Nenhum |
|
|
Codificação do arquivo. |
Não |
|
|
|
Definição de schema para arquivos de saída Parquet. Só tem efeito quando |
Não |
Nenhum |