Todos os produtos
Search
Central de documentação

DataWorks:OSS-HDFS

Última atualização: Oct 22, 2026

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.

Importante

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

Nota

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

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

path

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 concurrent. Utilize padrões regex simples, como /hadoop/data_201704*, ou use scheduling parameters para nomes de arquivos baseados em tempo. OPÇÃO 3: Caminho com curinga — O OSS-HDFS Reader percorre os arquivos correspondentes. Especificar / lê todos os arquivos no diretório raiz. Apenas * e ? são aceitos como caracteres curinga. Todos os arquivos em um único job de sincronização são tratados como uma única tabela de dados; portanto, garanta que compartilhem o mesmo schema. O par de AccessKey configurado na source de dados precisa ter permissões de leitura no caminho correspondente do OSS-HDFS.

Sim

Nenhum

fileFormat

Tipo do arquivo. Valores válidos: text, orc, csv, parquet. O OSS-HDFS Reader detecta automaticamente o tipo de arquivo e aplica a política de leitura adequada. Antes do início da sincronização, ele verifica se todos os arquivos no caminho especificado correspondem ao valor de fileFormat. A tarefa falha caso haja incompatibilidade.

Sim

Nenhum

column

Lista de campos a serem lidos. Defina como ["*"] para ler todas as colunas como STRING. Para especificar colunas individuais, forneça type e também index (lê do arquivo de dados, começando em 0) ou value (gera uma coluna constante sem ler do arquivo). Apenas um entre index ou value pode ser definido por entrada de coluna.

Sim

Nenhum

fieldDelimiter

Delimitador de campo para leitura de dados TextFile. Não é necessário para arquivos ORC ou Parquet.

Não

,

encoding

Codificação do arquivo.

Não

utf-8

nullFormat

String a ser tratada como valor nulo. Por exemplo, definir nullFormat: "null" faz com que o Data Integration trate a string de origem null como um campo nulo.

Não

Nenhum

compress

Formato de compressão. Valores válidos: gzip, bzip2, snappy.

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

fileFormat

Tipo do arquivo. Valores válidos: text, orc, parquet.

Sim

Nenhum

path

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

fileName

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

column

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 name para o nome do campo e type para o tipo do campo. Não é obrigatório quando fileFormat for parquet.

Sim (não obrigatório se fileFormat for parquet)

Nenhum

writeMode

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 path_random e depois movidos para o caminho de destino após a conclusão de todas as escritas, garantindo nomes de arquivos únicos. Após a movimentação, o diretório temporário é excluído automaticamente. Se a conexão for interrompida, o diretório temporário e quaisquer arquivos parcialmente escritos não serão limpos automaticamente — exclua-os manualmente antes de tentar novamente. Valores válidos: append — grava diretamente sem pré-processamento, assegurando que não haja conflitos de nomes de arquivos. nonConflict — reporta um erro se já existir um arquivo com o prefixo fileName no diretório. truncate — exclui todos os arquivos que correspondem ao prefixo fileName antes de escrever (por exemplo, se fileName for abc, todos os arquivos iniciados com abc no diretório serão excluídos primeiro).

Sim

Nenhum

fieldDelimiter

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 fileFormat for parquet.

Sim (não obrigatório se fileFormat for parquet)

Nenhum

compress

Formato de compressão para arquivos de texto. Valores válidos: gzip, bzip2. Deixe em branco para escrever sem compressão.

Não

Nenhum

encoding

Codificação do arquivo.

Não

utf-8

parquetSchema

Definição de schema para arquivos de saída Parquet. Só tem efeito quando fileFormat for parquet. Utilize o seguinte formato: message { ; ... }. Tipos de dados suportados: BOOLEAN, INT32, INT64, INT96, FLOAT, DOUBLE, BINARY (use BINARY para tipos string), FIXED_LEN_BYTE_ARRAY. Use optional para campos anuláveis e required para campos não nulos. Recomenda-se definir todos os campos como optional. Cada definição de linha deve terminar com ponto e vírgula, inclusive a última. Exemplo: message m { optional int64 id; optional binary username; optional int32 status; }

Não

Nenhum