Dados
Os dados processados pelo Alteryx são expressos como uma série de registros, onde cada registro em uma série tem os mesmos nomes de campo e tipos de campo. Há duas referências primárias aos dados:
Recordinfo
contém uma lista de FieldInfo objetos que têm os nomes de campo, tipos, tamanhos e posição, que não mudam entre registros.RECORDREF
tem um blob de bytes que não estão em uma estrutura de conjunto. Para manipular oRECORDREF
, você precisa dorecordinfo
correspondente.
Quando você escreve uma ferramenta de Python, o recordinfo
é gerenciado primeiro porque recordinfo
é passado entre as ferramentas como um argumento de _ _ ii_init_
para identificar os tipos de dados que fazem parte do registro.
Criar registros
Um novo objeto RecordInfo pode ser criado de algumas maneiras, mas o aspecto essencial da criação é que a criação de um requer o objeto AlteryxEngine que é passado para o construtor para o seu plug-in. Há vários valores que podem ser usados como valores de configuração, e a ordem e o número de argumentos determinam qual função do mecanismo é chamada.
A criação de objeto RecordInfo mais simples:
RecordInfo(alteryx_engine)
Uma criação mais complexa define um limite de comprimento para cadeias de caracteres e aplica regras para nomes de campo:
RecordInfo(255, True, alteryx_engine)
A criação mais comum é usar o método clone no objeto RecordInfo de entrada de upstream. Esse método fornece um novo objeto RecordInfo idêntico ao que você chamou-lo, útil ao adicionar um novo campo ou modificando um único campo.
Depois de ter seu objeto RecordInfo, você precisa extrair informações e adicionar novos campos.
Você pode criar um RecordCreator chamando construct_record_creator
no objeto recordinfo. Você também pode configurar um RecordCopier, que fará o trabalho de copiar dados de um registro de entrada para um registro de saída recém-criado. Finalmente, obtenha referências a qualquer um dos campos que serão definidos manualmente em vez de copiados automaticamente.
Para enviar seu objeto RecordInfo downstream, use o OutputAnchor que você criou anteriormente e chame
output_anchor.init(record_info_output)
Depois de criar um RecordCreator e um RecordCopier, construa um registro de saída a partir de um registro de entrada:
- redefinir o RecordCreator.
- copiar os dados do registro de entrada para o RecordCreator usando o RecordCopier.
- Defina o campo de saída para um valor no RecordCreator e, em seguida, Finalize o RecordCreator para produzir um novo registro.
Para enviar um objeto Record downstream, use o OutputAnchor e chame output_anchor. push_record (record_out)
.
Exemplos de gerenciamento de dados
Por exemplo, se sua ferramenta recebe entrada, os dados de uma conexão de entrada podem seguir as etapas abaixo:
- Uma ferramenta upstream envia
_ ' ii_it _
com um argumentorecordinfo
. O argumento RecordInfo pode ser copiado, modificado e transmitido junto a ferramentas downstream. - Uma ferramenta upstream passa um registro como um argumento para
ii_push_record
. O registro está de acordo com a estrutura doRecordinfo
inicialmente recebida. - Sua ferramenta usa os dados do registro para criar um novo registro que esteja de acordo com a estrutura do
Recordinfo
inicialmente recebida.
Se sua ferramenta não for entrada, sua ferramenta poderá seguir as etapas abaixo:
- Crie um novo objeto
Recordinfo
. - Crie registros de sua fonte de dados que estejam de acordo com a estrutura do objeto
Recordinfo
. - Use
pi_push_all_records
para enviar os registros para ferramentas downstream.