Todos os produtos
Search
Central de documentação

DataWorks:OSS-HDFS

Última atualização: Jun 27, 2026

O OSS-HDFS Service (JindoFS Service) é um produto de armazenamento de data lake nativo da nuvem. Uma fonte de dados OSS-HDFS oferece um canal bidirecional para leitura e gravação 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

Gravação offline

Sim

Gravação 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, use um Grupo de recursos Serverless (recomendado) ou um grupo de recursos exclusivo para Data Integration. Certifique-se de que seu grupo de recursos tenha acesso de rede ao OSS-HDFS.

O OSS-HDFS Reader suporta:

  • Arquivos nos formatos texto, CSV, ORC e Parquet. O conteúdo do arquivo deve representar uma tabela bidimensional lógica.

  • Leitura de múltiplos tipos de dados e constantes de coluna.

  • Leituras recursivas e uso dos 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.

Gravação offline

  • O OSS-HDFS Writer aceita apenas os formatos texto, ORC e Parquet. O conteúdo do arquivo deve constituir uma tabela bidimensional lógica.

  • Em arquivos de texto, verifique se o delimitador de campos usado na gravação corresponde ao delimitador definido na criação da tabela Hive. Isso garante que os dados gravados no OSS-HDFS sejam mapeados corretamente para os campos da tabela Hive.

Gravação em tempo real

  • Suporte a gravações em tempo real.

  • Compatibilidade com gravações 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.

Gravação offline

O OSS-HDFS Writer grava arquivos nos formatos TextFile, ORCFile e ParquetFile em um caminho especificado no sistema de arquivos 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 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. As descrições dos parâmetros estão disponíveis no console do DataWorks durante a adição da fonte de dados.

Desenvolver uma tarefa de sincronização de dados

Configure uma tarefa de sincronização offline para uma única tabela

Configure uma tarefa de sincronização em tempo real para uma única tabela

Consulte Configurar sincronização incremental em tempo real para uma única tabela e Configurar uma tarefa de sincronização em tempo real no DataStudio.

Configure uma tarefa de sincronização em tempo real completa e incremental para um banco de dados inteiro

Consulte Configurar uma tarefa de sincronização em tempo real para um banco de dados inteiro.

Apêndice: Demonstrações de scripts e descrições de parâmetros

Demonstração 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 Configurar uma tarefa no editor de código.

{
    "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 usa uma única thread para ler o arquivo. OPÇÃO 2: Múltiplos arquivos — O OSS-HDFS Reader lê os arquivos simultaneamente. A contagem real de threads é o menor valor entre o número de arquivos e a configuração concurrent. Use padrões regex simples, como /hadoop/data_201704*, ou parâmetros de agendamento para nomes de arquivos baseados em tempo. OPÇÃO 3: Caminho com curinga — O OSS-HDFS Reader percorre os arquivos correspondentes. Especifique / para ler todos os arquivos no diretório raiz. Apenas * e ? são suportados como caracteres curinga. Todos os arquivos em um único trabalho de sincronização são tratados como uma única tabela de dados; portanto, garanta que todos compartilhem o mesmo esquema. O par de AccessKey configurado na fonte de dados deve ter permissões de leitura no caminho OSS-HDFS correspondente.

Sim

Nenhum

fileFormat

Tipo de 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 correspondente. Antes do início da sincronização, ele verifica se todos os arquivos no caminho especificado correspondem ao valor de fileFormat. A tarefa falhará se houver 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 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 campos 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 compactação. Valores válidos: gzip, bzip2, snappy.

Não

Nenhum

Demonstração 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 de arquivo. Valores válidos: text, orc, parquet.

Sim

Nenhum

path

Caminho no sistema de arquivos OSS-HDFS onde os dados são armazenados. O OSS-HDFS Writer grava vários 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 gravados. Não há suporte para gravação 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 é necessário quando fileFormat é parquet.

Sim (não necessário se fileFormat for parquet)

Nenhum

writeMode

Define como o OSS-HDFS Writer lida com arquivos existentes antes da gravação. O OSS-HDFS Writer utiliza uma estratégia de gravar-e-renomear: os dados são primeiramente escritos em um diretório temporário nomeado pela regra path_random e, em seguida, movidos para o caminho de destino após a conclusão de todas as gravações, garantindo nomes de arquivos exclusivos. 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 gravados não serão limpos automaticamente — exclua-os manualmente antes de tentar novamente. Valores válidos: append — grava diretamente sem pré-processamento, evitando conflitos de nomes de arquivos. nonConflict — relata um erro se já existir um arquivo com o prefixo fileName no diretório. truncate — exclui todos os arquivos correspondentes ao prefixo fileName antes de gravar (por exemplo, se fileName for abc, todos os arquivos começando com abc no diretório serão excluídos primeiro).

Sim

Nenhum

fieldDelimiter

Delimitador de campos para arquivos de saída. Apenas delimitadores de caractere único são suportados; múltiplos caracteres causam erro de execução. Não é necessário quando fileFormat é parquet.

Sim (não necessário se fileFormat for parquet)

Nenhum

compress

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

Não

Nenhum

encoding

Codificação do arquivo.

Não

utf-8

parquetSchema

Definição de esquema para arquivos de saída Parquet. Só tem efeito quando fileFormat é parquet. Use o seguinte formato: `message {

optional> ; ... }`. 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