Sobre comandos de compilação de dados do

Transcrição

Sobre comandos de compilação de dados do
Guia de referência de comando
de compilação de dados e do
TML
Versão 7.0A
©
2013 Pitney Bowes Software Inc. Todos os direitos reservados.
Esse documento pode conter informações confidenciais ou protegidas por direitos autorais pertencentes à
Pitney Bowes Inc. e/ou a seus subsidiários e suas empresas associadas.
Portrait Software, o logotipo Portrait Software, Portrait e a marca Portrait Software’s Portrait são marcas
comerciais da Portrait Software International Limited e não podem ser usadas nem exploradas de forma alguma
sem prévia autorização expressa por escrito da Portrait Software International Limited.
Reconhecimento de marcas comerciais
Outros nomes do produto, nomes, marcas, logotipos e símbolos da empresa referenciados aqui podem ser
marcas comerciais ou marcas comerciais registradas de seus proprietários registrados.
Suporte Portrait Software
Se precisar de ajuda com algo que não se encontre nesses documentos, visite a Base de Conhecimentos em
nosso site da Web. http://support.portraitsoftware.com e siga os links para seu produto.
Também é possível baixar outros documentos da Portrait Software a partir desse site. Se não tiver um nome
de usuário e senha - ou se os esqueceu - contate-nos através de um dos canais abaixo.
Se tiver algum problema com o uso, a instalação ou os documentos desse produto, contate-nos usando um
dos seguintes métodos:
E-mail: [email protected]
Telefone
• EUA/Canadá 1-800-335-3860 (número gratuito)
• Resto do mundo +44 800 840 0001
Quando estiver reportando um problema, ajuda se nos disser:
•
•
•
•
O nome do aplicativo de software
As circunstâncias em que o problema apareceu
Que mensagens de erro você viu (se tiver visto alguma)
A versão do software que você estava usando
Pitney Bowes Software Inc.
June 13, 2013
Sumário
Capítulo 1: Introdução..............................................................................................13
Visão Geral do Portrait Miner...........................................................................................14
Quem deve ler este manual..............................................................................................14
Capítulo 2: Comandos de compilação de dados do Portrait Miner.....................15
Sobre comandos de compilação de dados do Portrait Miner.......................................16
Opções padrão de linha de comando.............................................................................21
A opção de linha de comando -force..............................................................................24
A opção de linha de comando -macro............................................................................24
Capítulo 3: Gerenciar uma compilação de dados Portrait Miner.........................27
qsbuild................................................................................................................................28
Capítulo 4: Comandos para importar e exportar dados........................................31
qsdbaccess........................................................................................................................32
qsimportdb.........................................................................................................................33
qsdbcreatetable.................................................................................................................35
qsdbinsert..........................................................................................................................37
qsdbupdate........................................................................................................................38
qsgenfdd............................................................................................................................40
qsimportflat........................................................................................................................42
qsexportflat........................................................................................................................44
qsimportstat.......................................................................................................................48
qsexportstat.......................................................................................................................49
qsimportfocus....................................................................................................................51
Como o Portrait Miner importa tipos de banco de dados.............................................53
Importar para o Portrait Miner a partir de um banco de dados......................................53
Exportar do Portrait Miner para um banco de dados.....................................................55
Formatos de data...............................................................................................................55
Formatos de data padrão...............................................................................................55
Formatos de data personalizados..................................................................................55
Capítulo 5: Comandos para processar os focus...................................................61
qssort..................................................................................................................................62
qsderive..............................................................................................................................63
qsmeasure..........................................................................................................................66
qstrack,...............................................................................................................................70
qsselect..............................................................................................................................72
qsrenamefields..................................................................................................................74
qsexportmetadata..............................................................................................................77
qsimportmetadata.............................................................................................................78
qsupdate.............................................................................................................................82
Capítulo 6: Comandos para combinar os focus....................................................83
Sobre combinar focus.......................................................................................................84
qsjoin..................................................................................................................................84
qsmerge..............................................................................................................................87
Capítulo 7: Comandos para gerenciar o focus......................................................91
qscopy................................................................................................................................92
qslink..................................................................................................................................93
qsmove...............................................................................................................................93
qsremove............................................................................................................................94
qsarchive............................................................................................................................95
qsunzip...............................................................................................................................96
Capítulo 8: Comandos para produzir relatórios.....................................................99
qssettings.........................................................................................................................100
qsaudit..............................................................................................................................100
qsdescribe........................................................................................................................104
qsdescribestat.................................................................................................................105
qshtmlunpack..................................................................................................................106
qsdtsnapshot, qsscsnapshot.........................................................................................107
qsxt...................................................................................................................................110
qsinfo................................................................................................................................111
4
Portrait Miner 7.0A
qsdescribelicense...........................................................................................................112
Capítulo 9: Comandos para compilar modelos....................................................115
Sobre o Assistente do Scorecard..................................................................................116
qsscorecardwizard..........................................................................................................117
qsdecisiontree.................................................................................................................123
qsscorecard.....................................................................................................................124
Sobre o Assistente de Regra de Associação...............................................................125
qsruleminer......................................................................................................................127
Capítulo 10: Comandos para trabalhar com arquivos QMML.............................131
qsqmmlview.....................................................................................................................132
qsqmmledit......................................................................................................................132
qslt....................................................................................................................................135
qsqmml2sas.....................................................................................................................137
qsqmml2sql......................................................................................................................137
qsqsfmtosas....................................................................................................................138
Capítulo 11: Outros comandos..............................................................................139
qsmapgen.........................................................................................................................140
Capítulo 12: Linguagem de Medição de Transação (TML)..................................145
Sobre Transaction Measurement Language.................................................................146
Sintaxe TML.....................................................................................................................146
Palavras reservadas em TML.........................................................................................147
Capítulo 13: Instruções TML..................................................................................149
Definição de campo: a instrução create.......................................................................150
Usando funções de agregação e as cláusulas where e default..................................152
Dividir agregações: a cláusula by.................................................................................154
Avaliação das estatísticas do focus: a instrução calculate........................................156
Capítulo 14: Funções de agregação......................................................................159
Funções de agregação para medições e derivações..................................................160
any....................................................................................................................................163
confintlower.....................................................................................................................163
Guia de referência de comando de compilação de dados e do TML
5
confintupper.....................................................................................................................164
count.................................................................................................................................165
countnonnull/countnonnulls..........................................................................................165
countnull/countnulls.......................................................................................................166
countunique.....................................................................................................................167
countuniquenonnull........................................................................................................167
first....................................................................................................................................168
last....................................................................................................................................169
max (um argumento).......................................................................................................169
mean (um argumento).....................................................................................................170
median..............................................................................................................................171
min (um argumento)........................................................................................................171
mode.................................................................................................................................172
moderatio.........................................................................................................................173
percentage.......................................................................................................................173
percentagerate.................................................................................................................174
segindex...........................................................................................................................175
significance......................................................................................................................175
stdev.................................................................................................................................176
sum (um argumento).......................................................................................................177
variance............................................................................................................................177
Capítulo 15: Linguagem de Campo Derivado (FDL)............................................179
Sobre Linguagem de Campo Derivado (FDL)...............................................................180
Capítulo 16: Sintaxe FDL........................................................................................181
Tipos de Dados................................................................................................................182
O valor nulo..................................................................................................................182
Dados booleanos.........................................................................................................183
Compatibilidade de tipo...............................................................................................183
Conversão de tipo........................................................................................................184
Expressões......................................................................................................................184
Expressões básicas.....................................................................................................184
Expressões Condicionais...............................................................................................185
A expressão if..............................................................................................................186
A expressão case.........................................................................................................187
Variáveis...........................................................................................................................188
Variáveis globais no Decision Studio...........................................................................189
6
Portrait Miner 7.0A
Variáveis de estado em Transaction Measurement Language (TML).........................189
Funções definidas pelo usuário.....................................................................................190
Function attributes........................................................................................................192
Operadores aritméticos..................................................................................................193
Operadores relacionais...................................................................................................194
Operadores lógicos.........................................................................................................196
Precedência de operador................................................................................................197
Funções internas.............................................................................................................197
Palavras reservadas em FDL.........................................................................................204
Capítulo 17: Funções condicionais.......................................................................205
clamp................................................................................................................................206
cond..................................................................................................................................206
iff.......................................................................................................................................207
ifnull, nvl...........................................................................................................................208
isnull.................................................................................................................................209
isselected.........................................................................................................................210
replace..............................................................................................................................210
Capítulo 18: Funções de conversão de tipos de dados......................................213
todate................................................................................................................................214
tointeger...........................................................................................................................215
toreal.................................................................................................................................215
tostring.............................................................................................................................216
Capítulo 19: Funções para trabalhar com datas..................................................219
addcenturies, addcenturiescountbackwards...............................................................221
adddays............................................................................................................................222
addhours..........................................................................................................................223
addminutes......................................................................................................................223
addmonths, addmonthscountbackwards.....................................................................224
addseconds......................................................................................................................226
addweeks.........................................................................................................................227
addyears, addyearscountbackwards............................................................................228
countcenturies.................................................................................................................229
countdays.........................................................................................................................229
counthours.......................................................................................................................230
Guia de referência de comando de compilação de dados e do TML
7
countminutes...................................................................................................................231
countseconds..................................................................................................................232
countweeks......................................................................................................................233
countwholecenturies, countwholecenturiesbackwards..............................................234
countwholedays..............................................................................................................235
countwholehours.............................................................................................................236
countwholeminutes.........................................................................................................236
countwholemonths, countwholemonthsbackwards....................................................237
countwholeseconds........................................................................................................239
countwholeweeks............................................................................................................240
countwholeyears, countwholeyearsbackwards...........................................................241
countyears.......................................................................................................................242
day....................................................................................................................................243
dayofweek........................................................................................................................243
gmt2edt.............................................................................................................................244
hour...................................................................................................................................244
minute...............................................................................................................................245
month................................................................................................................................246
now...................................................................................................................................246
second..............................................................................................................................247
today.................................................................................................................................247
weekofyear.......................................................................................................................248
year...................................................................................................................................249
Capítulo 20: Funções para trabalhar com strings...............................................251
concat...............................................................................................................................252
endswith...........................................................................................................................252
find....................................................................................................................................253
left.....................................................................................................................................254
mid....................................................................................................................................255
right...................................................................................................................................256
soundex............................................................................................................................257
startswith..........................................................................................................................258
strlen.................................................................................................................................259
strmember........................................................................................................................259
substitute.........................................................................................................................260
substr................................................................................................................................261
tolower..............................................................................................................................262
8
Portrait Miner 7.0A
toupper.............................................................................................................................263
trim....................................................................................................................................263
Capítulo 21: Expressões regulares e funções associadas.................................265
Expressões regulares.....................................................................................................266
Componentes básicos de uma expressão regular......................................................266
Referências inversas...................................................................................................268
Operadores de expressões regulares...........................................................................268
Operadores de repetição.............................................................................................269
O operador de concatenação......................................................................................269
O operador de alternância...........................................................................................270
match................................................................................................................................270
replaceall..........................................................................................................................271
replacefirst.......................................................................................................................272
Capítulo 22: Funções matemáticas e estatísticas...............................................275
abs....................................................................................................................................276
ceil.....................................................................................................................................276
cos....................................................................................................................................277
exp....................................................................................................................................277
floor...................................................................................................................................278
log.....................................................................................................................................278
log10.................................................................................................................................279
logbase.............................................................................................................................279
max (dois ou mais argumentos), maxnonnull..............................................................280
mean (dois ou mais argumentos), meannonnull..........................................................281
min (dois ou mais argumentos), minnonnull................................................................281
normalize..........................................................................................................................282
pow...................................................................................................................................283
product, productnonnull.................................................................................................283
round................................................................................................................................284
sgn....................................................................................................................................285
sin.....................................................................................................................................285
sqrt....................................................................................................................................286
sum (dois ou mais argumentos), sumnonnull..............................................................286
tan.....................................................................................................................................287
Guia de referência de comando de compilação de dados e do TML
9
Capítulo 23: Funções de amostragem de dados.................................................289
numericTestTrainSplit.....................................................................................................290
numericTestTrainValidateSplit.......................................................................................290
sampleEqualSize.............................................................................................................291
sampleExactNumber.......................................................................................................292
sampleExactPercentage.................................................................................................292
sampleStratified...............................................................................................................293
testTrainSplit....................................................................................................................294
testTrainValidateSplit......................................................................................................295
Capítulo 24: Funções de número aleatório..........................................................297
Sobre funções de números aleatórios em FDL............................................................298
rndBinomial......................................................................................................................298
rndBool.............................................................................................................................299
rndExp..............................................................................................................................299
rndGamma........................................................................................................................300
rndNormal........................................................................................................................300
rndPoisson.......................................................................................................................301
rndUniform.......................................................................................................................302
Capítulo 25: Funções de retorno de investimento...............................................303
ActionROI.........................................................................................................................304
ActionROIAnnualized......................................................................................................305
OfferROI............................................................................................................................306
OfferROIAnnualized........................................................................................................307
RetentionActionROI........................................................................................................308
RetentionActionROIAnnualized.....................................................................................310
RetentionOfferROI...........................................................................................................311
RetentionOfferROIAnnualized........................................................................................312
Capítulo 26: Funções diversas..............................................................................315
dblookup..........................................................................................................................316
member.............................................................................................................................317
rankOrder, rankOrderApprox.........................................................................................319
rankOrderMean, rankOrderApproxMean.......................................................................320
rownum.............................................................................................................................321
10
Portrait Miner 7.0A
Capítulo 27: Binnings.............................................................................................323
bin.....................................................................................................................................324
Boolean............................................................................................................................325
DayFrom, WeekFrom, MonthFrom, YearFrom..............................................................326
DayMultipleFrom, WeekMultipleFrom, MonthMultipleFrom, YearMultipleFrom........326
DayMultipleNumBins,WeekMultipleNumBins,MonthMultipleNumBins,YearMultipleNumBins.327
DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost.328
DayMultipleTo, WeekMultipleTo, MonthMultipleTo, YearMultipleTo...........................329
DayMultipleWidth, WeekMultipleWidth, MonthMultipleWidth, YearMultipleWidth....330
DayPrePost, WeekPrePost, MonthPrePost, YearPrePost............................................331
DayRange, WeekRange, MonthRange, YearRange......................................................332
DayTo, WeekTo, MonthTo, YearTo..................................................................................333
EqualRange......................................................................................................................334
EqualRangeWidth............................................................................................................334
NegativeNonNegative......................................................................................................335
PreDuringPost.................................................................................................................336
PrePost.............................................................................................................................336
Sign...................................................................................................................................337
Capítulo 28: XML no Portrait Miner.......................................................................339
XML no Portrait Miner.....................................................................................................340
Especificações de metadados para qsimportmetadata..............................................341
metadada.....................................................................................................................341
focus.............................................................................................................................341
field nos metadados.....................................................................................................342
fdl.................................................................................................................................343
comment......................................................................................................................343
history...........................................................................................................................344
recordselection.............................................................................................................344
numeric........................................................................................................................345
date..............................................................................................................................345
categorical....................................................................................................................346
range............................................................................................................................347
select............................................................................................................................347
Especificação de agregação para qsmeasure..............................................................347
aggregations................................................................................................................347
field nas agregações....................................................................................................348
Guia de referência de comando de compilação de dados e do TML
11
Especificações de derivação para o qsderive..............................................................349
derivations....................................................................................................................349
field nas derivações.....................................................................................................349
Especificação de seleção para qsselect.......................................................................350
selections.....................................................................................................................350
field nas seleções.........................................................................................................350
Especificações da tabela de referência cruzada para qsxt.........................................351
crosstabset...................................................................................................................351
crosstab........................................................................................................................351
specification na tabela de referência cruzada..............................................................352
function.........................................................................................................................353
field na tabela de referência cruzada...........................................................................353
Especificação de mapeamento do campo do nome para qsrenamefields................353
mappingset...................................................................................................................353
map..............................................................................................................................354
Especificação da compilação da árvore de decisão para qsdecisiontree.................354
decisiontree..................................................................................................................354
specification na árvore de decisão...............................................................................355
splitconstraints.............................................................................................................356
testtrain........................................................................................................................356
Especificação da compilação do scorecard parna árvore de decisãoa qsscorecard.357
scorecard.....................................................................................................................357
specification no scorecard...........................................................................................357
Especificações de binning.............................................................................................358
binning..........................................................................................................................358
numeric........................................................................................................................359
date..............................................................................................................................360
categorical....................................................................................................................361
categories.....................................................................................................................362
category.......................................................................................................................363
selectn..........................................................................................................................363
geographic...................................................................................................................364
minendparam...............................................................................................................364
maxendparam..............................................................................................................364
boundaries...................................................................................................................365
boundary......................................................................................................................365
Valores de atributos........................................................................................................366
12
Portrait Miner 7.0A
Capítulo
Introdução
Nesta seção:
• Visão Geral do Portrait Miner . . . . . . . . . . . . . . . . . . . . . .14
• Quem deve ler este manual . . . . . . . . . . . . . . . . . . . . . . . .14
1
Visão Geral do Portrait Miner
Visão Geral do Portrait Miner
O Portrait Miner é uma solução analítica preditiva e poderosa que permite aos profissionais de customer
insight e usuários empresariais terem uma imagem clara de seus clientes para que possuam um
entendimento superior dos clientes, descobrindo áreas de oportunidade, atingindo uma segmentação
ótima e prevendo comportamentos futuros.
Preenchendo a lacuna entre as ferramentas padrão de Inteligência Empresarial com um escopo limitado
para explorar dados e soluções para cálculos numéricos, que requerem programadores estatísticos
para criar consultas e produzir modelos, o Portrait Customer Analytics é uma solução de próxima geração,
projetada para uma facilidade de uso inédita – e um entendimento prático rápido.
A solução usa a visualização de dados em 3D e automatização de modelagem rápida para descobrir
relacionamentos de dados importantes e entregar resultados de propensão clicando em um botão,
melhorando a precisão do modelo preditivo e aumentando a velocidade dos resultados analíticos.
O Portrait Miner pode ser usado para prever comportamentos e tendências que têm impacto nos lucros,
incluindo desistência de clientes, oportunidades de venda incrementada e venda cruzada, planejamento
e segmentação de campanha, satisfação e lealdade do cliente e valor permanente do cliente.
Quem deve ler este manual
Esse manual é indicado para usuários do Portrait Miner que estão familiarizados com linha de comando
e querem criar ou modificar a compilação de dados. Parte dele — em particular, o capítulo descrevendo
comandos disponíveis para gerenciar focus — podem também ser de interesse aos administradores
do Portrait Miner.
Esse documento foi criado para referência e não é um tutorial.
14
Portrait Miner 7.0A
Capítulo
Comandos de compilação
de dados do Portrait Miner
Nesta seção:
• Sobre comandos de compilação de dados do Portrait
Miner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
• Opções padrão de linha de comando . . . . . . . . . . . . . . . .21
• A opção de linha de comando -force . . . . . . . . . . . . . . . .24
• A opção de linha de comando -macro . . . . . . . . . . . . . . .24
2
Sobre comandos de compilação de dados do Portrait Miner
Sobre comandos de compilação de dados do
Portrait Miner
Os comandos de compilação de dados do Portrait Miner fornecem compilação de dados-chave do
Portrait Miner, gerenciamento de dados e funcionalidade de relatório da linha de comando. Embora
seja possível introduzir comandos individualmente para realizar tarefas únicas, a grande vantagem de
usar comandos de compilação de dados é poder combiná-los em scripts do shell UNIX e arquivos em
lotes do Windows para realizar construções de dados complexas.
Para gerenciar construções de dados com vários passos interdependentes, também pode usar a
ferramenta do Data Build Manager do Portrait Miner ou sua linha de comando equivalente, qsbuild.
Usando um plano de compilação para expressar a sequência de passos necessários economiza tempo
e minimiza o erro humano. Se for executada uma compilação de dados normal ou deixado o processo
de implantação sem supervisão, talvez durante a noite, e algo sair errado (como ficar sem espaço no
disco), provavelmente você vai querer reparar o problema e continuar de onde estava, em vez de
começar tudo de novo. Da mesma forma, se as operações necessárias para compilações sucessivas
se sobrepuserem a certa medida, você pode querer economizar tempo de processamento fazendo
essas operações uma única vez. Usando o Data Build Manager ou qsbuild se torna fácil seguir as
dependências entre operações e lembrar quais operações já foram realizadas.
Cada comando de compilação de dados necessita de uns argumentos de linha de comando e pode
aceitar argumentos opcionais específicos de comando, assim como opções padrão [consulte Opções
padrão de linha de comando na página 21]. Na seção que descreve cada comando há uma sinopse
do comando, que usa algumas noções sintáticas:
• Itens entre colchetes não são literais. Por exemplo, onde se lê "<focus de origem>," deve-se
introduzir o nome do arquivo de um focus existente.
• Itens entre colchetes são opcionais. Por exemplo, onde se lê "[-overwrite]," é possível introduzir
"-overwrite" ou nada.
• Itens separados por barras verticais são alternativas: Deve-se escolher apenas um. Por exemplo,
onde se lê "XML | HTML | Full," é possível introduzir "XML," "HTML," ou "Full."
• Um item seguido por uma elipse pode ser repetido conforme necessário. Por exemplo, onde se lê
<campo> [, <campo> ...], é possível introduzir Income (ignorando o item opcional),
Income,Gender, Income,Gender,Age, etc.
• Chaves {...} às vezes são usadas para delinear itens não opcionais. (O que conta como item com
o objetivo de alternação e repetição, se prolonga para a barra vertical, colchete ou chave mais próxima.)
Por exemplo, onde se lê -input <focus de origem> {,-input <focus de origem> ...},
é possível introduzir -input one.ftr -input two.ftr ou -input one.ftr -input two.ftr
-input three.ftr e não somente -input one.ftr.
Existem comandos de compilação de dados para importar e exportar dados, processar, juntar e gerenciar
dados em focus e para reportar em focus e modelos.
Comandos para importar e exportar dados
16
Portrait Miner 7.0A
Capítulo 2: Comandos de compilação de dados do Portrait Miner
Comando
Objetivo
qsdbaccess
Criar, testar ou excluir uma Conexão do Banco de
Dados do Usuário, para acessar o banco de dados.
qsimportdb
Importar dados de uma tabela de banco de dados
ou do resultado de uma consulta de um banco de
dados.
qsdbcreatetable
Criar uma tabela vazia no banco de dados baseado
nos campos em um focus.
qsdbinsert
Inserir registros de um focus em uma tabela de
banco de dados.
qsdbupdate
Atualizar registros existentes em um banco de
dados usando dados de um focus.
qsgenfdd
Criar um arquivo de descrição de dados simples
para dados em um arquivo de texto.
qsimportflat
Importar dados de um arquivo simples.
qsexportflat
Exportar dados para um arquivo simples.
qsimportstat
Importar dados de um arquivo SAS ou outro
conjunto de dados de terceiros.
qsexportstat
Exportar dados de um arquivo SAS ou outro
conjunto de dados de terceiros.
qsimportfocus
Importar dados (sem metadados) de um focus
existente.
Comandos para processar os focus
Comando
Objetivo
qssort
Classificar os registros em um focus.
qsderive
Derivar campos em um focus.
qsmeasure
Agregar registros em um focus para produzir um
novo focus.
qstrack
Derivar campos em um focus usando derivações
do rastreamento de estado.
qsselect
Adicionar uma seleção de registro a um focus.
qsrenamefields
Renomear campos em um focus.
qsexportmetadata
Exportar metadados de um focus.
qsimportmetadata
Importar metadados de um arquivo para um focus.
qsupdate
Copiar metadados de um focus para outro.
Guia de referência de comando de compilação de dados e do TML
17
Sobre comandos de compilação de dados do Portrait Miner
Comandos para combinar os focus
Comando
Objetivo
qsjoin
Adicionar campos de um ou mais focus
secundários a um focus primário, combinando
registros por meio de campos-chave.
qsmerge
Mesclar registros de um focus similar para criar
um novo focus, mantendo os registros classificados
por campos-chave.
Comandos para gerenciar o focus
Comando
Objetivo
qscopy
Copiar um focus para criar um focus novo e
independente.
qslink
Copiar um focus, partilhar dados subjacentes.
qsmove
Mover ou renomear um focus.
qsremove
Excluir focus.
qsarchive
Criar um arquivo compactado de focus ou pastas.
qsunzip
Extrair de um arquivo compactado.
Comandos para produzir relatórios
18
Comando
Objetivo
qssettings
Definir opções de formatação comuns para vários
relatórios.
qsaudit
Produzir um Perfil e Auditoria de um focus.
qsdescribe
Exibir informação resumida sobre um focus.
qsdescribestat
Exibir informação resumida sobre um arquivo SAS
ou outro conjunto de dados de terceiros.
qshtmlunpack
Descompactar um arquivo HTML ou XML
produzido por qsaudit, qsdtsnapshot ou
qsscsnapshot.
qsdtsnapshot
Produzir um Modelo Instantâneo de uma árvore
de decisão.
qsscsnapshot
Produzir um Modelo Instantâneo de um scorecard.
qsxt
Aplicar uma especificação de uma tabela de
referência cruzada a um focus para produzir uma
nova tabela de referência cruzada.
Portrait Miner 7.0A
Capítulo 2: Comandos de compilação de dados do Portrait Miner
Comando
Objetivo
qsinfo
Exibir informação dos arquivos constituintes de um
focus e seu relacionamento com outros focus.
qsdescribelicense
Exibir informação de uma licença Portrait Miner.
Comandos para compilar modelos
Comando
Objetivo
qsdecisiontree
Aplicar uma especificação de uma árvore de
decisão a um focus para produzir um novo relatório
modelo da árvore de decisão.
qsscorecard
Aplicar uma especificação de scorecard a um focus
para produzir um novo relatório modelo de
scorecard.
qsscorecardwizard
Compilar um scorecard em um focus especificado
usando um arquivo de parâmetros.
Comandos para trabalhar com arquivos QMML
Comando
Objetivo
qsqmmlview
Mostrar os conteúdos do arquivo de regras QMML.
qsqmmledit
Modificar um arquivo de regras QMML.
qslt
Transformar um arquivo FDL, QMML ou XML
genérico em um formato diferente.
qsqmml2sas
Converter um arquivo QMML em um arquivo SAS.
qsqmml2sql
Converter um arquivo QMML em um arquivo SQL.
qsqsfmtosas
Converter derivações de um arquivo metadados
em um arquivo SAS.
Outros comandos
Comando
Objetivo
qsbuild
Executar um plano de compilação.
qsmapgen
Criar um conjunto de mapas do Decision Studio
para os binnings em um ou mais arquivos de
hierarquia categórica.
Devido à potencial interdependência dos focus, não se deve tentar copiar, mover,
renomear ou excluir os focus usando utilitários padrão do sistema operacional. Em
vez disso, deve-se usar sempre os comandos para gerenciar os focus listados acima
(ou Portrait Miner).
Guia de referência de comando de compilação de dados e do TML
19
Sobre comandos de compilação de dados do Portrait Miner
Comandos de compilação de dados que geram arquivos, em geral, substituem
qualquer arquivo existente com o mesmo nome. Atenção para não substituir focus
dependentes de outros ou que tenham dependentes, isso poderá deixar esses focus
inutilizáveis.
Observação: • Para usar os comandos de compilação de dados, é necessário ter acesso à linha de
comando para o Portrait Miner. Consulte administração do Portrait Miner para obter
informações sobre como definir seu caminho de comando para usar comandos de
compilação de dados (ou perguntar a seu administrador Portrait Miner).
• Shells de comandos necessitam, normalmente, que os argumentos da linha de comando
contendo certos caracteres sejam colocados entre aspas, em especial, espaços e
pontuação especial (tal como aspas simples ou duplas, "<," ">," "*," "=," e "#").
Algumas opções assumem argumentos que são listas separadas por vírgulas, por
exemplo, a opção -fields em vários comandos. Essa lista é somente um argumento
de linha de comando, por isso, deve colocá-las entre aspas ou garantir que não há
espaços após as vírgulas (ou em outro local na lista).
• Ao usar a opção -verbose ou -logfile consulte Opções padrão de linha de
comando na página 21], a saída de um comando de compilação de danos (na tela
ou em um arquivo log, de acordo com a opção usada) é similar ao seguinte:
11:55:21:
{P1/4/4Hm4096Pd2047Pi63Pw27Jm64Um-1Fs991Fh1784Fc0Fp0}
O string críptico de caracteres codifica a informação sobre os recursos da memória e
do processador usados pelo comando; se tiver problemas de desempenho com os
comandos de compilação de dados, essa informação poderá ajudar o Suporte do
Portrait Miner a resolver essa questão para você.
• Os comandos de compilação de dados qssort, qsjoin e qsmerge exibem ou registram
mensagens específicas de dados ao utilizar a opção -verbose ou -logfile. Isso
pode ajudar a compreender exatamente como o comando atua em seus dados.
• O estado de saída retornado por todos os comandos é zero se for bem-sucedido ou
diferente de zero se falhar. Quando um comando falha, ele sempre gera uma mensagem
de erro como abaixo:
*** Error: <message>
Mensagens de erro aparecem em erros padrão - e também em um arquivo log se usar
a opção -logfile [consulte Opções padrão de linha de comando na página 21].
Os comandos também podem produzir mensagens da seguinte forma:
*** Warning: <message>
As mensagens de aviso aparecem no erro padrão ou em um arquivo log (mas não em
ambos).
• Se um comando falhar porque o focus é somente de leitura, copie o focus somente de
leitura para uma nova localização usando qslink ou qscopy e execute o comando
novamente.
20
Portrait Miner 7.0A
Capítulo 2: Comandos de compilação de dados do Portrait Miner
• Ao criar UDCs, use o comando qsdbaccess com o argumento -add. Como ele pede
informações, não é apropriado usar essa forma de comando em um script do shell ou
arquivo em lotes.
• Por padrão, comandos de compilação de dados que lêem o focus usam o subfocus
padrão, se houver, ou então o focus de nível superior ("raiz"). Pode substituir esse
comportamento para um comando fornecido usando a opção comum-subfocus.
• Muitos comandos de compilação de dados aceitam as opções -field , -xfield ,
-tag e -xtag para especificar listas de campos. Os campos podem ser especificados
usando combinações -field e -xfield ou -tag e -xtag mas as opções de campo
e tag não podem ser usadas em conjunto.
Opções padrão de linha de comando
Opções autônomas: Use uma das seguintes opções em vez dos argumentos normais do comando de
compilação de dados:
Opção
Efeito
-help
Exibe texto de uso, incluindo um resumo de todas
as opções de linha de comando válidas além das
opções padrão.
-helpall
Exibe texto de uso, incluindo um resumo de todas
a opções de linha de comando válidas.
-version
Exibe a versão do Portrait Miner e a informação
de licença associada.
Outras opções comuns a todos os comandos
Opção
Efeito
-config <arquivo de preferências>
Usa o arquivo de preferências especificado
(consulte administração do Portrait Miner).
As definições nesse arquivo substituem as
definições dos arquivos gerais padrão do sistema
e de preferências específicas do usuário.
-email
Ao completar o comando, envia uma mensagem
de e-mail para o destinatário especificado nas
preferências E-mail emailaddress (consulte o
Guia de Administração do Portrait Miner).
A mensagem de e-mail inclui um resumo do estado
em formato HTML, tal como o gerado pela opção
-statusfile.
Guia de referência de comando de compilação de dados e do TML
21
Opções padrão de linha de comando
Opção
Efeito
-logfile <arquivo de log>
Grava informação detalhada do progresso com os
tempos de operação e outras informações
especificas dos comandos sobre execução,
incluindo quaisquer avisos e mensagens de erro,
em um arquivo especificado, substituindo qualquer
arquivo com esse nome. Continua a exibir
mensagens de erro em uma saída padrão. Essa
opção implica a opção -verbose.
-memory <número de megabytes>
Usa, no máximo, a quantidade de memória
especificada. O comando tentará se manter dentro
dos limites, se possível, mas não acima desses
limites. Em casos onde um comando requer mais
memória do que a quantidade máxima, o comando
falha. Essa opção substitui as definições da
preferência do limite leve de memória de
focus (consulte o Guia de Administração do
Portrait Miner).
-parallel <número de processadores>
Usa o número especificado de processadores (se
disponível), para operações que usem mais de um
processador. Essa opção substitui as definições
da preferência de paralelismo (consulte o Guia
de Administração do Portrait Miner).
-progress
Exibe informação simples do progresso, como uma
linha de caracteres . e +.
-settings <arquivo de configurações>
Use as definições no arquivo especificado para
controlar a formatação numérica e de datas em
um relatório gerado. Essa opção tem efeito
somente em comandos criadores de relatórios,
nomeadamente qsaudit, qsdtsnapshot e
qsscsnapshot.
No diretório de configuração especifico do usuário
em um PC de cliente Portrait Miner, o Decision
Studio cria um arquivo chamado settings.xml
quando altera as definições por meio de
Edit->View Preferences. É possível copiar esse
arquivo para o servidor para usar com a opção
-settings. Ou é possível criar um arquivo de
definições no servidor usando o comando
qssettings.
Por padrão, o formato de data é europeu, o número
de casas decimais é dois, zeros à direita não são
retirados, não é usado nenhum separador de
22
Portrait Miner 7.0A
Capítulo 2: Comandos de compilação de dados do Portrait Miner
Opção
Efeito
milhares específico e o formato de hora usado é
de 24 horas.
-statusfile <arquivo de estado>
Produz um resumo de estado de comando em
formato HTML no arquivo de estado.
Se usar a opção -email, a mensagem de e-mail
de estado inclui um resumo similar.
-verbose
Exibe informação detalhada do progresso com
tempos de operação e outras informações
especificas de comando sobre a execução.
Essa opção substitui a opção -progress.
Observação: • Se for especificado o uso de mais de um processador, usando a opção -parallel
ou a preferência correspondente, a memória disponível, conforme especificada usando
a opção -memory ou a preferência correspondente, é compartilhada entre os
processadores.
• Informações específicas de comando sobre execução podem incluir, por exemplo: o
número de registros introduzidos, retirados ou coincidentes; informações sobre
conversões de tipos de dados de bancos de dados; ou códigos de diagnóstico de
interesse a Suporte do Portrait Miner.
Exemplos
Exibe o texto de ajuda para qsremove:
qsremove -help
Dado o arquivo de preferências, audit.ini, contendo o seguinte:
[Audits and Snapshots]
imageheight = 200
barcolor = #FF0000
Use essas preferências para criar um Perfil e Auditoria com imagens de altura de 200 pixels e barras
vermelhas:
qsaudit -config audit.ini -input RetailCustApril.ftr
Use 512 megabytes de memória quando criar um novo focus, RetailTransAprilSorted.ftr,
classificando o focus RetailTransApril.ftr:
qssort -memory 512 -output RetailTransAprilSorted.ftr
-input RetailTransApril.ftr -keys CustomerID
Use quatro processadores (e definições de memória padrão) ao criar um novo focus,
RetailTransMaySorted.ftr, classificando o focus RetailTransMay.ftr:
qssort -parallel 4 -output RetailTransMaySorted.ftr
-input RetailTransMay.ftr -keys CustomerID
Guia de referência de comando de compilação de dados e do TML
23
A opção de linha de comando -force
A opção de linha de comando -force
Esta opção se aplica a comandos para criar focus, nomeadamente:
qscopy, qsderive, qsimportdb, qsimportflat, qsimportfocus, qsimportmetadata,
qsimportstat, qsjoin, qslink, qsmeasure, qsmerge, qsrenamefields, qsselect,
qssort, qstrack, qsupdate, qsscorecard, e qsdecisiontree.
Opção
Efeito
-force
Permite que um novo focus especificado usando
a opção -output ou -to substitua um focus
existente.
Sem a opção -force, se o focus especificado por
-output ou -to já existir, o comando não faz
nada (exceto emitir um aviso).
Observação: • A opção -force deve somente ser usada se absolutamente necessária, deve garantir
que não precisa mais do focus que está a substituir ou qualquer outro focus que esteja
ligado a ele [consulte qsinfo na página 111]. Na maior parte dos casos, seria melhor
remover o focus original usando qsmove antes de usar o comando de compilação de
dados para criar um novo focus.
• A opção -force somente tem efeito em focus de saída explicitamente especificados.
Se está usando um comando de compilação de dados para modificar um focus existente
implicitamente, não precisa usar -force.
Exemplos Criar um novo focus RetailTransAprilSorted.ftr, substituindo qualquer focus existente
com o mesmo nome, contendo todos os registros do focus RetailTransApril.ftr, classificado pelo
campo CustomerID:
qssort -force -output RetailTransAprilSorted.ftr
-input RetailTransApril.ftr -keys CustomerID
A opção de linha de comando -macro
Esta opção se aplica aos comandos:
qsderive, qsmeasure, qstrack, e qsselect
24
Comando
Objetivo
-macro <nome>=<valor>
Antes de efetuar uma análise de uma TML ou de
um arquivo de entrada XML correspondente,
Portrait Miner 7.0A
Capítulo 2: Comandos de compilação de dados do Portrait Miner
Comando
Objetivo
substitua todas as ocurrências de $<nome> pelo
valor fornecido.
É possível usar essa opção repetidamente, na
mesma linha de comando, para especificar
expansões para várias macros.
-macro @<arquivo de macros>
Realizar a substituição da macro no TML e
arquivos de entrada XML correspondentes, lendo
pares <nome>=<valor> de linhas sucessivas do
arquivo de macros.
O arquivo de macros também pode estar no
formato XML.
Observação: • Os nomes das macros devem começar com uma letra e conter somente letras, dígitos
e sublinhado ("_").
• O Data Build Manager fornece suporte similar, mas independente, a macros.
Exemplos
Dado o arquivo de seleções selections-macro.tml, contendo o seguinte:
create ${monthName}Trans${year} :=
month(PurchaseDate) = ${month} and year(PurchaseDate) = ${year};
Usar substituições de macro para selecionar registros de Abril de 1999 do focus
RetailTransApril.ftr:
qsselect -macro monthName=April -macro year=1999 -macro month=4
-selections selections-macro.tml
-input RetailTransApril.ftr -output
RetailTransAprilSelection1.ftr
Ou, alternativamente, dado o arquivo de macros, macros.tml, contendo o seguinte:
monthName=April
year=1999
month=4
Aplicar essas macros para atingir o mesmo resultado:
qsselect -macro @macros.tml -selections selections-macro.tml
-input RetailTransApril.ftr -output
RetailTransAprilSelection2.ftr
Consulte também
XML no Portrait Miner na página 340
Guia de referência de comando de compilação de dados e do TML
25
Capítulo
Gerenciar uma compilação
de dados Portrait Miner
Nesta seção:
• qsbuild . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .28
3
qsbuild
qsbuild
Sinopse qsbuild
[-input <plano de compilação>]
[-targets <destino> [, <destino> ...]
[-skip <destino> [, <destino> ...]
[-D<nome>=<valor>]
[-propertyfile <arquivo de propriedades>] [-describe] [-dryrun]
[-validate full | -validate warn | -validate none]
[-schema <arquivo de esquema>]
[-lib <caminho de classe>]
[-preprocess] [-warn]
Descrição: Executa o plano de compilação qsbuild.qsb no diretório atual (a menos que seja
especificado um plano de compilação diferente usando a opção -input).
Argumentos opcionais
28
Opção
Efeito
-D<nome>=<valor>
Atribui o valor fornecido ao parâmetro nomeado
ou outra propriedade. (Note que não há espaço
depois de -D.)
-describe
Em vez de executar o plano de compilação,
descreve-o, listando alvos principais e suas
descrições.
-dryrun
Executa o plano de compilação normalmente, mas
exibe os comandos de compilação de dados em
vez de os executar. (Quaisquer tarefas que não
são comandos de compilação de dados são
executadas normalmente.)
-input <plano de compilação>
Usa o plano de compilação especificado em vez
do arquivo qsbuild.qsb no diretório atual.
-lib <caminho de classe>
Usa o caminho de classe especificado como
caminho de pesquisa adicional para as classes
Java.
-preprocess
Valida o plano de compilação e gera um arquivo
de compilação intermediário.
Portrait Miner 7.0A
Capítulo 3: Gerenciar uma compilação de dados Portrait Miner
Opção
Efeito
-propertyfile <arquivo de
propriedades>
Atribuir valores para parâmetros ou outras
propriedades, lendo pares <nome>=<valor> de
linhas sucessivas do arquivo de propriedades.
-schema <arquivo de esquema>
Valida o plano de compilação contra o esquema
especificado (na sintaxe RELAX NG) em vez de o
esquema citado no plano de compilação. É
possível usar um URI para especificar a localização
de um arquivo de esquema não local.
-skip <destino> [, <destino> ...]
Não compila os destinos especificados, mesmo se
outros destinos dependerem deles.
-targets <destino> [, <destino> ...]
Compila os destinos especificados em vez de o
destino padrão.
-validate fail
Valida o plano de compilação contra seu esquema,
executando o plano somente se for válido (o
padrão se não especificar uma opção -validate).
-validate none
Não valida o plano de compilação contra seu
esquema.
-validate warn
Valida o plano de compilação contra seu esquema;
se houver erros, emite avisos, mas tenta executar
o plano, independentemente de sua validade.
-warn
Em vez de abortar o plano de compilação quando
não consegue compilar um destino, emite um aviso
e tenta compilar outros destinos que não
dependam do destino que falhou.
Além dessas opções de linha de comando, qsbuild aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • O plano de compilação descreve como construir um conjunto de dados de análise ou
implantar um modelo. Contém vários "destinos" com dependências entre eles, e as
sequências de operações necessárias para compilar os destinos. O arquivo usa um
formato de arquivo baseado em XML. Para mais informação sobre o Data Build Manager
e o formato dos planos de compilação, consulte Usar o Data Build Manager.
• Também é possível acessar a maior parte das funcionalidades do qsbuild por meio
do Data Build Manager , disponível no Portrait Miner.
Exemplos Executar uma compilação de dados usando o plano de compilação qsbuild-starter.qsb:
qsbuild -input qsbuild-starter.qsb
Executar somente a tarefa Clean dentro do plano de compilação qsbuild.qsb:
qsbuild -targets Clean -input qsbuild.qsb
Guia de referência de comando de compilação de dados e do TML
29
qsbuild
Executar o plano de compilação qsbuild.qsb com o parâmetro Month definido para June:
qsbuild -DMonth=June -input qsbuild.qsb
Consulte também
XML no Portrait Miner na página 340
30
Portrait Miner 7.0A
Capítulo
Comandos para importar e
exportar dados
Nesta seção:
•
•
•
•
•
•
•
•
•
•
•
•
•
qsdbaccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
qsimportdb . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .33
qsdbcreatetable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
qsdbinsert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .37
qsdbupdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .38
qsgenfdd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .40
qsimportflat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
qsexportflat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .44
qsimportstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .48
qsexportstat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
qsimportfocus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .51
Como o Portrait Miner importa tipos de banco de dados .53
Formatos de data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .55
4
qsdbaccess
qsdbaccess
Sinopse qsdbaccess {,-add
| -list
| -test <UDC>
| -delete <UDC>,}[-system]
Descrição: Cria interativamente uma UDC (Conexão do Banco de Dados do Usuário), lista UDC, testa
uma UDC ou exclui uma UDC.
Ao usar -add, o qsdbaccess solicita que seja informado um DNS, nome de usuário e senha.
Os UDCs são usados em comandos de compilação de dados relacionados a bancos de dados e outras
partes do Portrait Miner a conectar a bancos de dados. Consulte o Guia de Administração do Portrait
Miner para obter mais informações.
Argumentos opcionais
Opção
Efeito
-system
Aplique a operação (adicionar, listar, testar ou
excluir) aos UDCs do sistema e não a seus UDCs
pessoais.
Ao usar -add com -system, o qsdbaccess
solicita adicionalmente uma URL, uma classe e
um DRL. Normalmente, devem ser aceitos os
padrões para essas três opções.
A opção -system é indicada somente para
administradores de sistema.
Além dessa opção de linha de comando, qsdbaccess aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • O UDC é criptografado: Se contiver detalhes de autenticação do usuário, somente
você pode usá-lo para acessar o banco de dados em questão.
• Ao criar uma UDC, o qsdbaccess substitui um UDC existente com o mesmo nome
(por isso, substitui os detalhes de autenticação do usuário associados).
• O nome de um UDC é sensível a maiúsculas e minúsculas (fred e Fred são distintos),
mesmo quando o DSN não é sensível a maiúsculas e minúsculas em relação ao driver
ODBC.
• Ao usar o Portrait Miner, é possível acessar a funcionalidade do qsdbaccess por
meio da caixa de diálogo Editar a Conexão do Banco de Dados. .
Exemplos: Criar um UDC para o usuário user para acessar o DSN do banco de dados retail:
qsdbaccess Please enter required text at the ">" prompt:
DSN> retail
32
Portrait Miner 7.0A
Capítulo 4: Comandos para importar e exportar dados
User> user
Password>
Updating connection user@retail
Update OK
Testing connection user@retail
ODBC OK
JDBC OK
Connection OK
Criar um sistema UDC (como usuário administrador) para qualquer usuário acessar o DNS do banco
de dados retail:
qsdbaccess -system Please enter required text at the ">" prompt:
DSN> retail
User>
[Just pressing ENTER will use the system default]
URL>
Class>
DRL>
Updating connection dbuser@dbserver:db
Update OK
Consulte também
qsdbcreatetable na página 35
qsdbinsert na página 37
qsdbupdate na página 38
qsimportdb na página 33
qsimportdb
Sinopse qsimportdb -udc <UDC>
-table <tabela de banco de dados ou visualização>
-fields <coluna> [, <coluna> ...] | -fields @<arquivo de campos>]
-xfields <coluna> [, <coluna> ...] | -xfields @<arquivo de campos>] [-catalog
<nome do catálogo>] [-schema <nome do esquema>]-output <focus de destino>
[-force] qsimportdb -udc <UDC>
-sql <arquivo SQL>
-output <focus de destino> [-force]
Descrição: Cria o focus de destino a partir da tabela de banco de dados específica ou visualização,
que está no banco de dados com o UDC fornecido [consulte qsdbaccess na página 32].
Se preferir, cria o focus a partir do resultado de uma instrução SQL SELECT (fornecida em um arquivo
SQL).
Argumentos opcionais
Guia de referência de comando de compilação de dados e do TML
33
qsimportdb
Opção
Efeito
-catalog <nome do catálogo>
Localiza a tabela nesse catálogo do banco de
dados.
-fields <coluna> [, <coluna> ...]
Cria campos no focus de destino correspondentes
somente às colunas especificadas na tabela.
-fields @<arquivo de campos>
Cria campos no focus de destino correspondentes
somente às colunas na tabela que estão listadas
(uma por linha) no arquivo de campos.
-force
Verifique A opção de linha de comando -force
na página 24.
-schema <nome do esquema>
Localiza a tabela nesse esquema de banco de
dados.
-xfields <coluna> [, <coluna> ...]
Cria campos no focus de destino correspondentes
a todas as colunas na tabela, exceto as colunas
especificadas.
-xfields @<arquivo de campos>
Cria campos no focus de destino correspondentes
a todas as colunas na tabela, exceto as colunas
que estão listadas (uma por linha) no arquivo de
campos.
Além dessas opções de linha de comando, qsimportdb aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • Se for especificado um identificador (por exemplo, um nome de campo ou tabela) como
argumento de linha de comando, esse será repassado pelo qsimportdb ao driver
ODBC, colocado entre aspas, e seu banco de dados pode tratar o identificador com
sensibilidade a maiúsculas e minúsculas.
• SQL especificado com a opção -sql é passado como está para o banco de dados
como uma instrução única; não é necessário um ponto e vírgula final (e pode ser de
sintaxe inválida para alguns sistemas de banco de dados).
• Usando o qsimportdb, é possível criar um focus que não tenha nomes de campo
compatíveis com o Portrait Miner. Para converter o focus em uma forma que possa
usar no Decision Studio ou com outros comandos de compilação de dados, pode
renomear campos usando qsrenamefields.
• Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades de
consulta de banco de dados do qsimportdb por meio da caixa de diálogo Importar
de Consulta .
Exemplos Criar um focus, RetailCustApril.ftr, contendo todos os registros da tabela
RetailCustApril, no DSN referido pelo UDC user@retail:
qsimportdb -table RetailCustApril
-udc user@retail -output RetailCustApril.ftr
34
Portrait Miner 7.0A
Capítulo 4: Comandos para importar e exportar dados
Criar um focus, RetailTransAprilCA.ftr, contendo somente os registros da tabela
RetailCustApril no qual o valor da coluna PaymentMethod é igual a CA:
Dado o arquivo de consulta SQL, select-statement.sql, contendo o seguinte:
select *
from RetailTransApril
where (PaymentMethod = 'CA')
Aplique essa consulta para criar um novo focus, RetailTransAprilCA.ftr:
qsimportdb -sql select-statement.sql
-udc user@retail -output RetailTransAprilCA.ftr
Consulte também
qsdbcreatetable na página 35
qsdbinsert na página 37
qsdbupdate na página 38
qsdbcreatetable
Sinopse qsdbcreatetable -udc < UDC >
-focus <focus do modelo> [-subfocus <subfocus>]
-table <tabela de destino>
-fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags
<etiqueta> [, <etiqueta> ...]]
-xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags
<etiqueta> [, <etiqueta> ...]]
[-catalog <nome do catálogo>]
[-schema <nome do esquema>]
[-output <arquivo de destino SQL>]
qsdbcreatetable -udc <UDC>
-sql <arquivo SQL>
Descrição: Usa o focus modelo fornecido para definir os nomes e tipos de campos para uma tabela de
banco de dados nova e vazia com o nome da tabela fornecida, no banco de dados com o UDC fornecido
[consulte qsdbaccess na página 32].
Se preferir, crie uma nova tabela usando uma instrução SQL CREATE TABLE (fornecido num arquivo
SQL).
Argumentos opcionais
Guia de referência de comando de compilação de dados e do TML
35
qsdbcreatetable
Opção
Efeito
-catalog <nome do catálogo>
Cria a tabela nesse catálogo do banco de dados.
-fields <campo> [, <campo> ...]
Cria colunas de tabela correspondentes somente
aos campos no focus.
-fields @<arquivo de campos>
Cria colunas de tabela correspondentes somente
aos campos no focus listados (um por linha) no
arquivo de campos.
[-output <arquivo de destino SQL>]
Em vez de criar um tabela no banco de dados, cria
um arquivo de saída SQL contendo a instrução
CREATE TABLE apropriada.
É possível usar mais tarde um arquivo SQL como
entrada para qsdbcreatetable (com a opção
-sql).
-schema <nome do esquema>
Cria a tabela com nesse esquema do banco de
dados.
-subfocus <subfocus>
Usa o subfocus especificado do focus modelo.
-tags <etiqueta> [, <etiqueta> ...]
Cria colunas de tabela correspondentes somente
aos campos no focus com etiquetas especificadas.
-xfields <campo> [, <campo> ...]
Cria colunas de tabela correspondentes a todos
os campos no focus, exceto nos campos
especificados.
-xfields @<arquivo de campos>
Cria colunas de tabela correspondentes a todos
os campos no focus, exceto os campos listados
(um por linha) no arquivo de campos.
-xtags <etiqueta> [, <etiqueta> ...]
Cria colunas de tabela correspondentes a todos
os campos no focus exceto os campos com
etiquetas especificadas.
Além dessas opções de linha de comando, qsdbcreatetable aceita opções comuns a todos os
comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • Se for especificado um identificador (por exemplo, um nome de campo ou tabela) como
argumento de linha de comando, o qsdbcreatetable passa esse identificador para
o driver ODBC, colocando-o entre aspas, e seu banco de dados pode tratar o
identificador com sensibilidade a maiúsculas e minúsculas.
• SQL especificado com a opção -sql é passado como está para o banco de dados
como uma instrução única; não é necessário um ponto e vírgula final (e pode ser de
sintaxe inválida para alguns sistemas de banco de dados).
Exemplo
36
Portrait Miner 7.0A
Capítulo 4: Comandos para importar e exportar dados
Criar uma tabela de banco de dados vazia, RETAILAGGREGATIONS, do focus
RetailAggregationsApril.ftr, conectando por meio da UDC retail:
qsdbcreatetable -focus RetailAggregationsApril.ftr
-table RETAILAGGREGATIONS -udc user@retail
Consulte também
qsdbinsert na página 37
qsdbupdate na página 38
qsimportdb na página 33
qsdbinsert
Sinopse qsdbinsert-udc <UDC>
-input <focus de origem> [-subfocus <subfocus>]
-table <tabela de destino>
-fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags
<etiqueta> [, <etiqueta> ...]]
-xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags
<etiqueta> [, <etiqueta> ...]]
[-catalog <nome do catálogo>]
[-schema <nome do esquema>]
Descrição: Insere registros do focus de origem na tabela de banco de dados (usando uma instrução
SQL INSERT). Localiza a tabela no banco de dados com o UDC fornecido [consulte qsdbaccess na
página 32].
Argumentos opcionais
Opção
Efeito
-catalog <nome do catálogo>
Localiza a tabela nesse catálogo do banco de
dados.
-fields <campo> [, <campo> ...]
Insere somente dados dos campos especificados
no focus.
-fields @<arquivo de campos>
Insere somente dados dos campos no focus que
estão listados (um por linha) no arquivo de campos.
-schema <nome do esquema>
Localiza a tabela nesse esquema de banco de
dados.
-subfocus <subfocus>
Usa o subfocus especificado do focus de origem.
Guia de referência de comando de compilação de dados e do TML
37
qsdbupdate
Opção
Efeito
-tags <etiqueta> [, <etiqueta> ...]
Insere somente dados dos campos no focus com
as etiquetas especificadas.
-xfields <campo> [, <campo> ...]
Insere dados de todos os campos, exceto dos
campos especificados.
-xfields @<arquivo de campos>
Insere dados de todos os campos no focus, exceto
os campos listados (um por linha) no arquivo de
campos.
-xtags <etiqueta> [, <etiqueta> ...]
Insere dados de todos os campos no focus, exceto
os campos com as etiquetas especificadas.
Além dessas opções de linha de comando, o qsdbinsert aceita as opções comuns a todos os
comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • Para criar uma tabela vazia na qual é possível inserir registros, use o qsdbcreatetable.
• O comando qsdbinsert insere registros adicionais no banco de dados, em vez de
atualizar os registros existentes. Ele não verifica registros duplicados (ou registros com
chaves duplicadas), mas seu banco de dados pode ser configurado para impor essa
verificação.
• Os campos no focus (ou os especificados usando as opções -fields ou -xfields)
devem corresponder em nome e ser compatíveis em tipo com as colunas na tabela
de banco de dados.
• Se for especificado um identificador (por exemplo, um nome de campo ou tabela) como
argumento de linha de comando, o qsdbcreatetable passa esse identificador para
o driver ODBC, colocado entre aspas, e seu banco de dados pode tratar o identificador
com sensibilidade a maiúsculas e minúsculas.
Exemplo
Inserir dados do focus RetailAggregationsApril.ftr na tabela de banco de dados
RETAILAGGREGATIONS:
qsdbinsert -input RetailAggregationsApril.ftr
-table RETAILAGGREGATIONS -udc user@retail
Consulte também
qsdbupdate na página 38
qsdbupdate
Sinopse qsdbupdate -udc <UDC>
-input <focus de origem> [-subfocus <subfocus>]
-table <tabela de destino>
38
Portrait Miner 7.0A
Capítulo 4: Comandos para importar e exportar dados
{-keys <campo-chave> [, <campo-chave>] [, <campo-chave>] | -key
@<arquivo-chave>}
-fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags
<etiqueta> [, <etiqueta> ...]]
-xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags
<etiqueta> [, <etiqueta> ...]]
[-catalog <nome do catálogo>]
[-schema <nome do esquema>]
Descrição: Atualizar registros na tabela de banco de dados com dados dos campos especificados no
focus de origem (usando uma instrução SQL UPDATE). Cada registro no focus atualiza todos os registros
com os mesmos valores do campo-chave na tabela do banco de dados. Localiza a tabela no banco de
dados com o UDC fornecido [consulte qsdbaccess na página 32].
Argumentos opcionais
Opção
Efeito
-catalog <nome do catálogo>
Localiza a tabela nesse catálogo do banco de
dados.
-fields <campo> [, <campo> ...]
Atualiza a tabela usando somente dados dos
campos especificados no focus.
-fields @<arquivo de campos>
Atualiza a tabela usando somente dados dos
campos no focus que não estão listados (um por
linha) no arquivo de campos.
-schema <nome do esquema>
Localiza a tabela nesse esquema de banco de
dados.
-subfocus <subfocus>
Usa o subfocus especificado do focus de origem.
-tags <etiqueta> [, <etiqueta> ...]
Atualiza a tabela usando somente dados dos
campos no focus com etiquetas especificas.
-xfields <campo> [, <campo> ...]
Atualiza a tabela usando dados de todos os
campos no focus, exceto no campos especificados.
-xfields @<arquivo de campos>
Atualiza a tabela usando dados de todos os
campos no focus, exceto os campos listados (um
por linha) no arquivo de campos.
-xtags <etiqueta> [, <etiqueta> ...]
Atualiza a tabela usando dados de todos os
campos no focus, exceto os campos com as
etiquetas especificadas.
Além dessas opções de linha de comando, qsdbupdate aceita opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • O comando qsdbupdate não insere quaisquer registros adicionais na tabela de banco
de dados.
Guia de referência de comando de compilação de dados e do TML
39
qsgenfdd
• Os campos no focus (ou os especificados usando as opções -fields ou -xfields)
devem corresponder em nome e ser compatíveis em tipo com as colunas na tabela
de banco de dados. No entanto, não é necessário atualizar os valores em todas as
colunas da tabela.
• Se for especificado um identificador (por exemplo, um nome de campo ou tabela) como
argumento de linha de comando, o qsdbcreatetable passará esse identificador
para o driver ODBC, colocado entre aspas, e seu banco de dados pode tratar o
identificador com sensibilidade a maiúsculas e minúsculas.
Exemplo
Atualizar somente os campos numberPurchases, averagePurchase e totalPointsRedeemed
na tabela RETAILAGGREGATIONS usando o focus RetailAggregationsMay.ftr:
qsdbupdate -udc user@retail -keys CustomerID
-input RetailAggregationsMay.ftr -table RETAILAGGREGATIONS
-fields "numberPurchases, averagePurchase,
totalPointsRedeemed"
Consulte também
qsdbcreatetable na página 35
qsdbinsert na página 37
qsgenfdd
Sinopse qsgenfdd -input <arquivo simples>
[-template <arquivo FDD modelo>]
[-headers]
[-separator <separador de campo>]
[-null <marcador nulo>]
[-stringmarker <marcador de string>]
[-datemarker <marcador de data>]
[-dateformat <formato de data>] [-defaultday <número do dia>] [-defaultmonth
<número do mês>] [-comment <comentário da tabela>]
Descrição: Cria um arquivo de descrição de dados simples (arquivo .fdd) para o arquivo simples
examinando uma amostra dos registros para determinar a formatação do arquivo. Nomeia o arquivo de
descrição de dados simples usando o nome de base do arquivo simples e cria esse arquivo no mesmo
diretório do arquivo simples.
Argumentos opcionais
40
Portrait Miner 7.0A
Capítulo 4: Comandos para importar e exportar dados
Opção
Efeito
-comment <comentário da tabela>
Inclui este comentário da tabela no arquivo de
descrição de dados simples.
-dateformat <formato de data>
Substitui o formato de data selecionado
automaticamente [consulte Formatos de data na
página 55].
-datemarker <marcador de data>
Substitui o caractere do marcador de data
selecionado automaticamente.
-defaultday <número do dia>
Inclui esse número de dia nas datas que não têm
um componente de dia.
-defaultmonth <número do mês>
Inclui esse número de mês nas datas que não têm
um componente de mês.
-headers
Inclui uma descrição dos dados como tendo uma
linha de cabeçalho inicial, que contém os nomes
de campo.
-null <marcador nulo>
Substitui a string de marcador nulo selecionada
automaticamente.
-separator <separador de campo>
Substitui o caractere do separador de campo
selecionado automaticamente.
-stringmarker <marcador de string>
Substitui o caractere do marcador de string
selecionado automaticamente.
-template <arquivo FDD modelo>
Baseia o arquivo de descrição de dados simples
nesse modelo existente do arquivo de descrição
de dados simples.
Consulte a Ajuda do Portrait Miner para mais informações sobre opções do arquivo simples.
Além dessas opções de linha de comando, o qsgenfdd aceita opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • Se já existir um arquivo de descrição de dados simples, o qsgenfdd não faz nada.
• Na maioria dos casos, o qsgenfdd seleciona automaticamente os valores apropriados
para os metadados que descrevem um arquivo simples. Porém, como só examina
uma amostra dos dados no arquivo simples — e como pode haver ambiguidades no
formato do arquivo simples — ele pode errar. Mesmo assim, normalmente, só é
necessário substituir um ou dois parâmetros para chegar à interpretação correta do
arquivo de dados.
• É possível controlar o tamanho das amostras usadas na detecção automática da
formatação usando as preferências do Banco de Dados do Arquivo Simples tamanho
de amostra de formato de dado e tamanho de amostra de dados (consulte
a Ajuda do Portrait Miner).
Guia de referência de comando de compilação de dados e do TML
41
qsimportflat
• Para a deteção automática de formatação funcionar, os campos no arquivo simples
devem ser delimitados por um caractere separador, em vez de serem distinguidos pela
posição (ou seja, o arquivo não pode estar em um formato de largura fixa).
• Se for usado um arquivo FDD modelo, ele deve incluir uma descrição de todos os
campos em um componente table.
• As opções de formatação especificadas na linha de comando substituem as opções
de formatação globais em um modelo de arquivo FDD, essas, por sua vez, substituem
as opções de formatação globais detectadas automaticamente. As opções de linha de
comando não substituem opções de campo especificas.
• Também é possível acessar a funcionalidade de qsgenfdd por meio do assistenteNew
Focus disponível no Decision Studio ou Portrait Miner.
Exemplos
Criar um arquivo de descrição de dados simples para o arquivo de texto RetailCustMay.txt:
qsgenfdd -input RetailCustMay.txt
Usar o arquivo FDD resultante para criar um novo focus, RetailCustMay.ftr:
qsimportflat -input RetailCustMay.fdd -output RetailCustMay.ftr
Usar uma string de formatação de dados personalizada para criar um arquivo FDD para o arquivo de
texto RetailCustMay.txt:
qsgenfdd -dateformat "%d-%b-%Y %H:%M:%S" -input RetailCustMay.txt
Consulte também
qsexportflat na página 44 qsimportflat na página 42
qsimportflat
Sinopse qsimportflat
-input <arquivo simples>
-output <focus de destino> [-force]
-encoding <codificação>
-fields <campo> [, <campo> ...] | -fields @<arquivo de campos>]
-fields <campo> [, <campo> ...] | -fields @<arquivo de campos>]
[-maxwarnings <número de avisos>] | [-nowarnings]
[-maxerrors <número de erros>]
Descrição Cria o focus de destino a partir de dados do arquivo simples (podendo ser um arquivo de
texto ou um arquivo de descrição de dados simples).
Argumentos opcionais
42
Portrait Miner 7.0A
Capítulo 4: Comandos para importar e exportar dados
Opção
Efeito
-encoding <codificação>
Codificação do arquivo de entrada (UTF-8,
Shift-JIS, LATIN1, EUC_JP, UTF16-LE, UTF_BE,
etc.). .
-fields <campo> [, <campo> ...]
Cria campos no focus de destino correspondentes
somente aos campos especificados no arquivo
simples.
-fields @<arquivo de campos>
Cria campos no focus de destino correspondentes
somente aos campos nos arquivos simples listados
(um por linha) no arquivo de campos.
-force
Verifique A opção de linha de comando -force
na página 24.
-maxerrors <número de erros>
Anula a importação de arquivo simples se o
processo gerar um número de erros superior ao
especificado em relação à formatação do arquivo
simples.
-maxwarnings <número de avisos>
Anula a importação de arquivo simples se o
processo gerar um número de avisos superior ao
especificado em relação à formatação do arquivo
simples.
[-nowarnings]
Não gera quaisquer avisos em relação à
formatação do arquivo simples.
-xfields <campo> [, <campo> ...]
Cria campos no focus de destino correspondentes
a todos os campos no arquivo simples, exceto os
campos especificados.
-xfields @<arquivo de campos>
Cria campos no focus de destino correspondentes
a todos os campos no arquivo simples, exceto os
campos listados (um por linha) no arquivo de
campos.
Além dessas opções de linha de comando, o qsimportflat aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • É necessário especificar um arquivo de descrição de dados simples (FDD) em vez de
um arquivo de texto como entrada para o qsimportflat. É possível criar um arquivo FDD
a partir de um arquivo de texto usando o qsgenfdd.
• Por padrão, a preferência do Banco de Dados de Arquivo Simples permitir erros
de formato de dado está definida como verdadeira (consulte a Ajuda do Portrait
Miner). Isso significa que todos os erros de formatação do arquivo simples são tratados
como avisos e a opção -maxerrors não tem efeito.
• As opções -maxerrors, -maxwarnings e -nowarnings substituem as definições
das preferências do Banco de Dados do Arquivo Simples extração de máximos
Guia de referência de comando de compilação de dados e do TML
43
qsexportflat
erros, extração de máximos avisos e ignore avisos de extração
respectivamente.
• Também é possível acessar a funcionalidade qsimportflat por meio do assistente
Novo Focus disponível no Decision Studio ou Portrait Miner.
Exemplos
Criar um novo focus, RetailTransApril.ftr, contendo todos os campos do arquivo simples
RetailTransApril.txt:
qsimportflat -input RetailTransApril.txt -output RetailTransApril.ftr
Criar um novo focus, RetailCustAprilSomeFields.ftr, contendo os campos CustomerID,
StartDate, Age, PostCode e Gender do arquivo simples RetailCustApril.txt, enquanto
também cria um arquivo FDD:
qsgenfdd -input RetailCustApril.txt
qsimportflat -fields "CustomerID, StartDate, Age, Postcode, Gender"
-input RetailCustApril.fdd
-output RetailCustAprilSomeFields.ftr
depois cria outro focus RetailCustAprilOtherFields.ftr, contendo todos os campos, exceto
CustomerID e PostCode, a partir do arquivo simples RetailCustApril.txt, usando o mesmo
arquivo FDD:
qsimportflat -xfields "CustomerID, Postcode"
-input RetailCustApril.fdd
-output RetailCustAprilOtherFields.ftr
Consulte também
qsexportflat na página 44
qsexportflat
Sinopse qsexportflat
-input <focus de origem> [-subfocus <subfocus>]
-output <arquivo simples>
[-alwaysquotestrings]
-fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags
<etiqueta> [, <etiqueta> ...]]
-xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags
<etiqueta> [, <etiqueta> ...]]
[-records <expressão FDL> | -records @<arquivo FDL>]
[-template <arquivo FDD modelo>]
[-fdd]
[-headers]
44
Portrait Miner 7.0A
Capítulo 4: Comandos para importar e exportar dados
[-separator <separador de campo>]
[-null <marcador nulo>]
[-stringmarker <marcador de string>]
[-datemarker <marcador de data>]
[-dateformat <formato de data>]
[-defaultday <número do dia>]
[-defaultmonth <número do mês>]
[-fixedformat]
Descrição Cria o arquivo simples a partir dos dados no focus de origem.
Argumentos opcionais
Opção
Efeito
-alwaysquotestrings
Coloca aspas em todos os valores da string no
arquivo simples, não somente nas strings com
caracteres especiais (como o separador).
-dateformat <formato de data>
Use esse formato [consulte Formatos de data na
página 55] para datas no arquivo simples.
-datemarker <marcador de data>
Use esse caractere marcador para introduzir datas
no arquivo simples.
-defaultday <número do dia>
Inclui esse número de dia em qualquer arquivo de
descrição de dados simples gerado (para descrever
datas formatadas sem um componente de dia).
-defaultmonth <número do mês>
Inclui esse número de mês em qualquer arquivo
de descrição de dados simples gerado (para
descrever datas formatadas sem um componente
de mês).
-fdd
Além de criar o arquivo simples, cria um arquivo
de descrição de dados simples (arquivo .fdd) para
descrever a formatação dos dados.
-fields <campo> [, <campo> ...]
Cria campos no arquivo simples correspondentes
somente aos campos especificados no focus de
origem.
-fields @<arquivo de campos>
Cria campos no arquivo simples correspondentes
somente aos campos no focus de origem listados
(um por linha) no arquivo de campos.
Guia de referência de comando de compilação de dados e do TML
45
qsexportflat
Opção
Efeito
-fixedformat
Use um número fixo de caracteres para cada
campo (selecionado para acomodar todos os
valores possíveis desse tipo de dados).
É possível usar essa opção em conjunto com um
separador de campo vazio para criar um arquivo
simples, no qual os campos são distinguidos por
posição, em vez de usarem um caractere
separador.
46
-headers
Inclui uma linha de cabeçalho inicial no arquivo
simples, contendo nomes de campo.
-null <marcador nulo>
Use esse string de marcador nulo em vez de deixar
em branco para indicar ocorrências do valor nulo
em um arquivo simples.
-records <expressão FDL>
Cria registros no arquivo simples correspondentes
somente aos registros no focus de origem para o
qual a expressão FDL numérica é diferente de zero
("verdadeiro").
-records @<arquivo FDL>
Cria registros no arquivo simples correspondentes
somente aos registros no focus de origem para o
qual a expressão FDL no arquivo especificado é
diferente de zero ("verdadeiro").
-separator <separador de campo>
Use esse caractere separador de campo, em vez
de uma vírgula.
-stringmarker <marcador de string>
Use esse caractere marcador de string em vez de
aspas duplas.
-subfocus <subfocus>
Usa o subfocus especificado do focus de origem.
-tags <etiqueta> [, <etiqueta> ...]
Cria campos no arquivo simples correspondentes
somente aos campos no focus com as etiquetas
especificadas.
-template <arquivo FDD modelo>
Baseia a formatação do arquivo simples nesse
modelo existente do arquivo de descrição de dados
simples.
-xfields <campo> [, <campo> ...]
Cria campos no arquivo simples correspondentes
a todos os campos no focus de origem, exceto os
campos especificados.
-xfields @<arquivo de campos>
Cria campos no focus de destino correspondentes
a todos os campos no focus de origem, exceto os
campos listados (um por linha) no arquivo de
campos.
Portrait Miner 7.0A
Capítulo 4: Comandos para importar e exportar dados
Opção
Efeito
-xtags <etiqueta> [, <etiqueta> ...]
Cria campos no arquivo simples correspondente
a todos os campos no focus de origem, exceto os
campos com as etiquetas especificadas.
Consulte a Ajuda do Portrait Miner para mais informações sobre opções do arquivo simples.
Além dessas opções de linha de comando, o qsexportflat aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação:
• Se for usada uma expressão de seleção FDL (para exportar somente um subconjunto de registros
no focus), todos os campos usados na expressão devem ser exportados.
• Se for especificado um arquivo simples com a extensão .fdd, o qsexportflattrata esse arquivo
como um arquivo de descrição de dados simples (independente se for ou não especificada a opção
-fdd) e cria um arquivo simples correspondente com a extensão .txt.
• Se for usado um arquivo FDD modelo, ele deve incluir uma descrição de todos os campos em um
componente table.
• As opções de formatação especificadas na linha de comando substituem as opções de formatação
globais do arquivo FDD modelo. As opções de linha de comando não substituem opções de campo
especificas.
• Se já existir um arquivo simples com o mesmo nome do arquivo de saída, o qsexportflat faz um backup
do arquivo existente (com "~" anexado ao nome do arquivo) em vez de somente substitui-lo.
• É possível acessar a maior parte das funcionalidades do qsexportflat por meio da caixa de diálogo
Exportar Focus, no Decision Studio ou o assistente Exportar Texto disponível no Portrait Miner .
Exemplos
Criar um arquivo simples, RetailTransApril.csv que contém todos os registros do focus
RetailTransApril.ftr :
qsexportflat -input RetailTransApril.ftr -output RetailTransApril.csv
Criar um arquivo simples novo, RetailTransAprilDates.csv que contém somente os campos
CustomerID e PurchaseDate do focus RetailTransApril.ftr, usando um formato de data
particular:
qsexportflat -fields "CustomerID, PurchaseDate"
-dateformat "%e %h %Y"
-input RetailTransApril.ftr -output RetailTransAprilDates.csv
Dado um arquivo de descrição de dados simples modelo, template.fdd, contendo o seguinte:
separator |
null (###)
dateformat ((%e %h %Y))
skip header
table \
CustomerID string(18) \
PurchaseDate date \
Store integer \
Amount real \
PaymentMethod string(2) \
PointsRedeemed integer
Guia de referência de comando de compilação de dados e do TML
47
qsimportstat
Aplicar esse modelo para criar um arquivo simples, RetailTransAprilDates.txt:
qsexportflat -template template.fdd
-input RetailTransApril.ftr -output RetailTransAprilDates.txt
Consulte também
qsgenfdd na página 40 qsimportflat na página 42
qsimportstat
Sinopse qsimportstat
-input <conjunto de dados de origem>
-output <focus de destino> [-force]
[-type <tipo de conjunto de dados>]
-fields <campo> [, <campo> ...] | -fields @<arquivo de campos>]
-fields <campo> [, <campo> ...] | -fields @<arquivo de campos>][-metadata
<arquivo de metadados>]
Descrição: Cria o focus de destino a partir de dados no conjunto de dados de origem de terceiros.
Conjuntos de dados SAS, SPSS e Excel estão entre os suportados (consulte
http://support.quadstone.com/info/requirements/ para obter uma lista detalhada).
Argumentos opcionais
48
Opção
Efeito
-fields <campo> [, <campo> ...]
Cria campos no focus de destino correspondentes
somente aos campos especificados no conjunto
de dados de origem.
-fields @<arquivo de campos>
Cria campos no focus de destino correspondentes
somente aos campos no conjunto de dados de
origem listados (um por linha) no arquivo de
campos.
-force
Verifique A opção de linha de comando -force
na página 24.
-metadata <arquivo de metadados>
Cria o arquivo de metadados a partir de um arquivo
de catálogo SAS format.sas7bcat que deve
estar presente na mesma pasta do conjunto de
dados SAS de origem.
-type <tipo de conjunto de dados>
Interpreta o conjunto de dados de origem como o
tipo de conjunto de dados especificado,
substituindo a interpretação padrão (dependendo
da extensão do nome do arquivo). Tipos de
conjunto de dados válidos incluem sas, spss e
Portrait Miner 7.0A
Capítulo 4: Comandos para importar e exportar dados
Opção
Efeito
excel; para ver uma lista completa, use a opção
-help.
-xfields <campo> [, <campo> ...]
Cria campos no focus de destino correspondentes
a todos os campos no conjunto de dados de
origem, exceto os campos especificados.
-xfields @<arquivo de campos>
Cria campos no focus de destino correspondentes
a todos os campos no conjunto de dados de origem
listados (um por linha) no arquivo de campos.
Além dessas opções de linha de comando, o qsimportstat aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • Se for tentada a importação a partir de um conjunto de dados SAS e o arquivo de
metadados já existir, a operação falha. Para evitar isso, use o argumento -force.
• Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do
qsimportstat por meio da caixa de diálogo Importar Focus .
Exemplos
Criar um novo focus, RetailTransApril.ftr, contendo todos os campos do arquivo SAS
RetailTransApril.sas7bdat:
qsimportstat -input RetailTransApril.sas7bdat
-output RetailTransApril.ftr
Criar um novo focus RetailCustAprilSomeFields.ftr, contendo os campos CustomerID,
StartDate, Age, PostCode e Gender a partir do arquivo SAS RetailCustApril.bin:
qsimportstat -fields "CustomerID, StartDate, Age, Postcode, Gender"
-input RetailCustApril.bin -type sas
-output RetailCustAprilSomeFields.ftr
Consulte também
qsdescribestat na página 105
qsexportstat na página 49
qsexportstat
Sinopse qsexportstat
-input <focus de origem> [-subfocus <subfocus>]
-output <conjunto de dados de destino> [-overwrite]
[-type <tipo de conjunto de dados>]
Guia de referência de comando de compilação de dados e do TML
49
qsexportstat
-fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags
<etiqueta> [, <etiqueta> ...]]
-xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags
<etiqueta> [, <etiqueta> ...]] [-records <FDL expression> | -records @<FDL
file>]
Descrição: Cria um conjunto de dados de destino de terceiros a partir de dados no focus de origem.
Conjuntos de dados SAS, SPSS e Excel estão entre os suportados (consulte
http://support.quadstone.com/info/requirements/ para obter uma lista detalhada).
Argumentos opcionais
Opção
Efeito
-fields <campo> [, <campo> ...]
Cria campos no conjunto de dados de destino
correspondentes somente aos campos
especificados no focus de origem.
-fields @<arquivo de campos>
Cria campos no conjunto de dados de destino
correspondentes somente aos campos no focus
de origem listados (um por linha) no arquivo de
campos.
-overwrite
Permite um novo conjunto de dados especificados
usando a opção -output par substituir um arquivo
existente.
Sem a opção -overwrite, se o conjunto de
dados especificado com a opção -output já
existir, o comando não faz nada (exceto emitir um
aviso).
50
-records <expressão FDL>
Cria registros no focus de destino correspondentes
somente aos registros no focus de origem para o
qual a expressão FDL numérica é diferente de zero
("verdadeira").
-records @<arquivo FDL>
Cria registros no conjunto de dados de destino
correspondentes somente aos registros no focus
de origem para o qual a expressão FDL no arquivo
especificado é diferente de zero ("verdadeira").
-subfocus <subfocus>
Usa o subfocus especificado do focus de origem.
-tags <etiqueta> [, <etiqueta> ...]
Cria campos no conjunto de dados de destino
correspondentes somente aos campos no focus
de origem com as etiquetas especificadas.
-type <tipo de conjunto de dados>
Cria um conjunto de dados do tipo de conjunto de
dados especificado, em vez de usar a extensão
do nome do arquivo para determinar seu tipo. Tipos
de conjuntos de dados válidos incluem sas, spss,
Portrait Miner 7.0A
Capítulo 4: Comandos para importar e exportar dados
Opção
Efeito
excel (.xls) e excelx (.xlsx). Para ver uma lista
completa, use a opção -help.
-xfields <campo> [, <campo> ...]
Cria campos no focus de destino correspondentes
a todos os campos no conjunto de dados de
origem, exceto os campos especificados.
-xfields @<arquivo de campos>
Cria campos no focus de destino correspondentes
a todos os campos no conjunto de dados de origem
listados (um por linha) no arquivo de campos.
-xtags <etiqueta> [, <etiqueta> ...]
Cria campos no focus de destino correspondentes
a todos os campos no conjunto de dados de
origem, exceto os campos com as etiquetas
especificadas.
Além dessas opções de linha de comando, o qsexportstat aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do
qsexportstat por meio da caixa de diálogo Exportar para outro programa .
Exemplos Criar um novo arquivo SAS RetailTransAprilStore800.sas7bdat, que contenha um
subconjunto de registros (somente compra da loja 800) e só campos de gastos, a partir do focus
RetailTransApril.ftr:
qsexportstat -input RetailTransApril.ftr
-output RetailTransAprilStore800.sas7bdat
-fields "CustomerID, PurchaseDate, Store, Amount"
-records "Store = \"800\""
Consulte também
qsdescribestat na página 105 qsimportstat na página 48
qsimportfocus
Sinopse qsimportfocus
-input <focus de origem> [-subfocus <subfocus>]
-output <focus de destino> [-force]
-fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags
<etiqueta> [, <etiqueta> ...]]
-xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags
<etiqueta> [, <etiqueta> ...]]
[-records <expressão FDL> | -records @<arquivo FDL>] [-preservetypes]
Guia de referência de comando de compilação de dados e do TML
51
qsimportfocus
Descrição: Cria o focus de destino a partir dos dados do focus de origem. Não copie os metadados .
Argumentos opcionais
Opção
Efeito
-fields <campo> [, <campo> ...]
Cria campos no focus de destino correspondentes
somente aos campos especificados no focus de
origem.
-fields @<arquivo de campos>
Cria campos no focus de destino correspondentes
somente aos campos no focus de origem listados
(um por linha) no arquivo de campos.
-force
Verifique A opção de linha de comando -force
na página 24.
[-preservetypes]
Preserva o tipos de dados de legado de um focus
criados usando uma versão anterior do Portrait
Miner.
-records <expressão FDL>
Cria registros no focus de destino correspondentes
somente aos registros no focus de origem para o
qual a expressão FDL numérica é diferente de zero
("verdadeira").
-records @<arquivo FDL>
Cria registros no focus de destino correspondentes
somente aos registros no focus de origem para o
qual a expressão FDL no arquivo especificado é
diferente de zero ("true").
-subfocus <subfocus>
Usa o subfocus especificado do focus de origem.
-tags <etiqueta> [, <etiqueta> ...]
Cria campos no focus de destino correspondentes
somente aos campos no focus de origem com as
etiquetas especificadas.
-xfields <campo> [, <campo> ...]
Cria campos no focus de destino correspondentes
a todos os campos no focus de origem, exceto os
campos especificados.
-xfields @<arquivo de campos>
Cria campos no focus de destino correspondentes
a todos os campos no focus de origem, exceto os
campos listados (um por linha) no arquivo de
campos.
-xtags <etiqueta> [, <etiqueta> ...]
Cria campos no focus de destino correspondentes
a todos os campos no focus de origem, exceto os
campos com as etiquetas especificadas.
Além dessas opções de linha de comando, qsimportfocus aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • Para criar uma cópia de um focus, incluindo metadados, use qscopy.
52
Portrait Miner 7.0A
Capítulo 4: Comandos para importar e exportar dados
• O focus de destino é independente do focus de origem, ou seja, não compartilha dados
subjacentes.
• Se o focus de origem foi criado em uma versão anterior do Portrait Miner, pode conter
campos com tipos de dados de legado. Por padrão, o qsimportfocus converte esses
campos para campos com datatypes integer, real, date e string. É possível forçar o
qsimportfocus a reter os tipos de dados originais no focus de destino usando a
opção -preservetypes.
• Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do
qsimportfocus por meio da caixa de diálogo Exportar como Focus .
Exemplos Criar um novo focus RetailTransAprilStandardTypes.ftr, que contenha todos os
registros do focus RetailTransApril.ftr mas converter os campos com tipos de dados de legado
para tipos de dados padrão:
qsimportfocus -input RetailTransApril.ftr
-output RetailTransAprilStandardTypes.ftr
Criar um novo focus RetailTransAprilStore800.ftr, que contém um subconjunto de registros
(somente compra da loja 800) e só campos de gastos, do focus RetailTransApril.ftr:
qsimportfocus -input RetailTransApril.ftr
-output RetailTransAprilStore800.ftr
-fields "CustomerID, PurchaseDate, Store, Amount"
-records "Store = \"800\""
Criar um novo focus, RetailTransApril2Customers.ftr, contendendo somente as transações
para cliente 20450000000036004 e 20450000000043009:
qsimportfocus -records "strmember(CustomerID, \"20450000000036004\",
\"20450000000043009\")"
-input RetailTransApril.ftr
-output RetailTransApril2Customers.ftr
Como o Portrait Miner importa tipos de banco de
dados
Importar para o Portrait Miner a partir de um banco de dados
O Portrait Miner mapeia os seguintes tipos de bancos de dados em seus tipos de dados, baseados no
tamanho do tipo de banco de dados e nas configurações de preferências dos Bancos de dados.
Tipo de banco Escala
de dados
Precisão
representar
integers
grandes como
strings
char, char2,
varchar,
Guia de referência de comando de compilação de dados e do TML
preservar
tipos
numéricos
durante a
importação
tipo de campo
do Portrait
Miner
string
53
Importar para o Portrait Miner a partir de um banco de dados
Tipo de banco Escala
de dados
Precisão
representar
integers
grandes como
strings
preservar
tipos
numéricos
durante a
importação
tipo de campo
do Portrait
Miner
varchar2,
nchar, nchar2,
nvarchar,
nvarchar2
date, time,
timestamp,
datetime,
smalldatetime
data
int, integer,
tinyint, smallint,
byteint, bit
inteiro
bigint
false
true
real
false
false
string
true
decimal, dec,
numeric,
number
decimal, dec,
numeric,
number
<0
15
> 15
0
string
true
real
false
real
> 15
string
0
real
10
> 10
false
15
inteiro
false
true
real
> 15
false
false
real
> 15
true
string
> 10
string
float, double,
real
decimal, dec,
numeric,
number
money
real
>0
15
> 15
true
false
> 15
real
real
string
true
real
false
string
smallmoney
real
Observação: • Nas linhas marcadas com , pode haver uma perda de precisão.
54
Portrait Miner 7.0A
Capítulo 4: Comandos para importar e exportar dados
• Nas linhas marcadas com , os valores demasiado grandes para armazenar como
inteiros serão convertidos em Nulos.
Exportar do Portrait Miner para um banco de dados
Os tipos de bancos de dados que o Portrait Miner exporta dependem do banco de dados de destino
e do driver ODBC.O Portrait Miner sugere um tipo apropriado para o banco de dados que você
especificar, enquanto o driver ODBC interpreta essa sugestão em um dos tipos nesse banco de dados.
Formatos de data
Ao trabalhar com arquivos simples e expressões FDL, é possível especificar como o Portrait Miner
deve interpretar ou exportar datas e horas, usando o formato de data padrão [consulte Formatos de
data padrão na página 55] ou um formato de data personalizado [consulte Formatos de data
personalizados na página 55].
Formatos de data padrão
Nome
Formato de data
American
MM/DD/AAAA:hh:mm:ss, por exemplo,
12/31/2000:13:36:59
European
DD/MM/AAAA:hh:mm:ss, por exemplo,
31/12/2000:13:36:59
YMD
AAAA/MM/DD:hh:mm:ss, por exemplo,
2000/12/31:13:36:59
Observação: • Os três formatos de data padrão também se aplicam a datas sem o componente de
horas e somente horas ("datas" somente com o componente de horas). Em datas com
somente data ou somente horas, as horas e datas são omitidas, respectivamente.
• Os formatos American, European e YMD também englobam dados nas formas
MMDDAAAA, DDMMAAAA e AAAAMMDD, respectivamente (somente para entradas).
Formatos de data personalizados
É possível especificar um formato de data personalizado usando códigos de caracteres especiais, cada
um começando com um sinal de porcentagem %:
Código
Componente da data formatada
%%
O próprio sinal de porcentagem: %
%?
Coincide com qualquer caractere
Guia de referência de comando de compilação de dados e do TML
55
Formatos de data personalizados
Código
Componente da data formatada
%*
Coincide com qualquer caractere; por exemplo,
para ignorar caracteres à direita, use %Y/%m/%d%*
%a
O nome do dia, de forma abreviada ("seg,"
"ter," ..., "dom"
%A
O nome do dia, completo ("segunda-feira,"
"terça-feira," ..., "domingo")
%b
O nome do mês, de forma abreviada ("jan,"
"fev," ..., "dez")
%B
O nome do mês, completo ("janeiro,"
"fevereiro," ..., "dezembro")
%c
(Entrada) Equivalente a "%a %b %e %T %Y"
(Saída) A data e hora na representação padrão
para a localização atual
56
%C
Equivalente a "%a %b %e %T %Z %Y"
%d
O dia do mês, usando dois dígitos ("01," "02,"
..., "31")
%D
Equivalente a %m/%d/%y
%e
O dia do mês, com apenas um dígito precedido
por um espaço (" 1," " 2," ..., "31")
%h
Equivalente a "%b"
%H
A hora do dia, usando o relógio de 24 horas
("00," "02," ..., "23")
%I
A hora do dia, usando o relógio de 12 horas
("01," "02," ..., "12")
%j
O dia do ano, usando três dígitos (datas Julianas)
("001," "002," ..., "366")
%m
O número do mês, usando dois dígitos ("01,"
"02," ..., "12")
%M
O minuto da hora, usando dois dígitos ("00,"
"01," ..., "59")
%p
"AM" ou "PM", de acordo com a hora do dia
%r
Equivalente a %I:%M:%S %p
%R
Equivalente a %H:%M
%S
O segundo do minuto, usando dois dígitos ("00,"
"01," ..., "61")
Portrait Miner 7.0A
Capítulo 4: Comandos para importar e exportar dados
Código
Componente da data formatada
%T
Equivalente a %H:%M:%S
%x
A data formatada de acordo com ordem de x de
preferência de x
%X
Equivalente a "%x"
%y
O ano do século, usando dois dígitos ("00,"
"01," ..., "99")
%Y
O ano, usando quadro dígitos
%Z
O nome do fuso horário da localização atual
Observação:
• Para usar "%D" ou "%y," também é necessário especificar o ano dinâmico ou um ano futuro máximo
(mas não ambos).
Se for configurado um ano dinâmico igual a um ano válido Y, o Portrait Miner interpretará os anos
de dois dígitos como anos entre Y - 99 e Y. Por exemplo, se for configurada a preferência para
2077, o Portrait Miner interpreta os anos de dois dígitos 76, 77 e 78 como 2076, 2077 e 1978,
respectivamente.
Se for configurado um ano futuro máximo igual a um valor n positivo e o ano atual for Y, o Portrait
Miner interpretará todos os anos de dois dígitos como anos entre Y + n - 99 e Y + n. Por exemplo,
se forem configuradas as preferências para 50 e o ano atual for 2002, o Portrait Miner interpretará
os anos de dois dígitos 51, 52 e 53 como 2051, 2052 e 1953, respectivamente.
• Se for definida a escreva em formato específico de localidade os códigos "%a," "%A," "%b,"
"%B," "%C," "%p," "%x," "%X," e "%Z" podem produzir resultados diferentes ao exibirem
datas (mas não ao interpretá-las).
• Assim como /, qualquer caractere (exceto para o separador de campo ou marcador nulo) pode ser
usado como separador com a data.
• Para um formato de data sem um componente dia ou mês explícito, é possível especificar um padrão
usando o qualificador "dia" ou "mês".
• Os códigos de caracteres especiais são os da função strftime da biblioteca C padrão.
Exemplo R–1: Strings de Formatação de Data
Exemplo de data
String de formato de data
02/04/2003
European
27/10/1940
04/02/2003
American
10/27/1940
2003/04/02
YMD
1940/10/27
Guia de referência de comando de compilação de dados e do TML
57
Formatos de data personalizados
Exemplo de data
String de formato de data
02-abr-2003
%d-%b-%Y
27-out-1940
02 abr 2003
((%d %b %Y))
27 out 1940
2003-04-02 13:25
((%Y-%m-%d %H:%M))
1940-10-27 08:23
2003-04-02:13:25
%Y-%m-%d:%H:%M
1940-10-27:08:23
2 abr 2003
((%e %b %Y))
27 out 1940
2 de abril de 2003
((%B %e, %Y))
02/04/2003 13:25
((%d/%m/%Y %H:%M))
27/10/1940 08:23
2003-04-02 13:25:15000000
((%Y-%m-%d %H:%M:%S%*))
2 de abril de 2003
((%B %d, %Y))
2-abr-2003
%e-%b-%Y
27-out-1940
02/04/03
(European pivot=2010)
27/10/40
04/02/03
(American pivot=2010)
10/27/40
03/04/02
(YMD pivot=2010)
40/10/27
02-abr-03
(%d-%b-%y pivot=2010)
27-out-40
abril 02, 03
((%B %d, %y) pivot=2010)
2-abr-03
(%e-%b-%y pivot=2010)
27-out-03
abril 2, 03
58
((%B %e, %y) pivot=2010)
Portrait Miner 7.0A
Capítulo 4: Comandos para importar e exportar dados
Exemplo de data
String de formato de data
01:25 PM
((%I:%M %p))
08:23 AM
13:25
%H:%M
08:23
Guia de referência de comando de compilação de dados e do TML
59
Capítulo
Comandos para processar
os focus
Nesta seção:
•
•
•
•
•
•
•
•
•
qssort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
qsderive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
qsmeasure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .66
qstrack, . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .70
qsselect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72
qsrenamefields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .74
qsexportmetadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .77
qsimportmetadata . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .78
qsupdate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .82
5
qssort
qssort
Sinopse qssort
-input <focus de origem>> [-subfocus <subfocus>]
-output <focus de destino> [-force]
{-keys <campo-chave> [, <campo-chave>] [, <campo-chave>]| -key @<key file>}}
qssort-input <focus de origem> [-subfocus <subfocus>]
-check
{-keys <campo-chave> [, <campo-chave>] [, <campo-chave>]| -key @<key file>}}
Descrição: Classifica os registros do focus de origem pelos campos-chave, para produzir o focus de
destino.
Se preferir, verifica se o focus de origem já foi classificado.
Argumentos opcionais
Opção
Efeito
-force
Verifique A opção de linha de comando -force
na página 24.
-subfocus <subfocus>
Usa o subfocus especificado do focus de origem.
Além dessa opção de linha de comando, qssort aceita as opções comuns a todos os comandos de
compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • É possível usar no máximo três campos-chave com o qssort.
• A ordem de agrupamento do Portrait Miner, como é usada pelo qssort, pode diferir,
em detalhe, da ordem de agrupamento usada pelos bancos de dados ou utilitários de
classificação de arquivos de terceiros. Como é importante para um focus ser
classificado, é preciso verificar a ordem de classificação — e, se necessário, voltar a
classificar — usando o qssort.
• No geral, é muito mais rápido verificar a ordem de classificação de um focus que
classificá-lo.
• No geral, é um pouco mais rápido classificar um focus se ele já tiver sido classificado
antes.
• Mesmo quando o focus (ou subfocus) contém somente uma seleção de registros, o
focus de destino contém todos os registros do focus de origem.
• Se for usada a opção -verbose, o qssort informará o número de valores-chave únicos
e o número de registros contendo o valor-chave duplicado mais frequente.
• O comando qssort necessita de espaço de disco temporário comparável ao tamanho
do focus de origem e também de espaço para o focus de destino.
• O focus de destino é independente do focus de origem, ou seja, não compartilha dados
subjacentes.
62
Portrait Miner 7.0A
Capítulo 5: Comandos para processar os focus
• Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do
qssort por meio do assistente Classificar Focus .
Exemplos Verificar se o focus RetailCustApril.ftr é classificado pelo campo CustomerID:
qssort -check -input RetailCustApril.ftr -keys CustomerID
Criar um novo focus, RetailTransAprilSorted.ftr, contendo todos os registros do focus
RetailTransApril.ftr, classificado pelo campo CustomerID:
qssort -output RetailTransAprilSorted.ftr
-input RetailTransApril.ftr -keys CustomerID
qsderive
Sinopse qsderive -derivations <arquivo de derivações>
-input <focus de origem> [-subfocus <subfocus>]
[-macro <nome>=<valor>[-macro <nome>=<valor> ...] | -macro @<nome>=<arquivo
de macro>]
[-output <focus de destino>] [-force]
-fields <campo> [, <campo> ...] | -fields @<arquivo de campos>]
-fields <campo> [, <campo> ...] | -fields @<arquivo de campos>]
[-random <semente integer>]
[-warn] [-savexml]
Descrição: copia todos os campos (por padrão) do focus de origem para o focus de destino; deriva
campos no focus de destino de acordo com as definições de campo no arquivo de derivações que, por
sua vez, contém instruções create ou representações XML correspondentes. Por padrão, anexa os
campos derivados ao focus de origem.
Argumentos opcionais
Comando
Objetivo
Opção
Efeito
-fields <campo> [, <campo> ...]
Deriva somente os campos especificados.
-fields @<arquivo de campos>>
Deriva somente os campos listados (um por linha)
no arquivo de campos.
-force
Verifique A opção de linha de comando -force
na página 24.
-macro <nome>=<valor>
Verifique A opção de linha de comando -macro
na página 24.
Guia de referência de comando de compilação de dados e do TML
63
qsderive
Comando
Objetivo
-macro @<arquivo de macros>
Verifique A opção de linha de comando -macro
na página 24.
-output <focus de destino>
Em vez de anexar os campos derivados ao focus
de origem, copia o focus de origem para o focus
de destino e anexa os campos derivados ao focus
de destino.
-random <semente integer>
Usa a semente integer, em vez de 0, para
quaisquer funções de números aleatórias do FDL
que ocorrem em expressões de derivação.
-savexml
Além de derivar um ou mais campos, grava a(s)
expressão(ões) de derivação em formato TML e
XML para os arquivos <saída>.tml e
<saída>.xml, no mesmo diretório do focus de
destino, onde <saída> é o nome de base do focus
de destino.
-subfocus <subfocus>
Usa o subfocus especificado do focus de origem.
-warn
Se um campo de derivação falhar, ele exibirá um
aviso e continuará a derivar outros campos (em
vez de parar).
-xfields <campo> [, <campo> ...]
Deriva todos os campos no arquivo de derivações,
exceto os campos especificados.
-xfields @<arquivo de campos>
Deriva todos os campos no arquivo de derivações,
exceto os campos listados (um por linha) no
arquivo de campos.
Além dessas opções de linha de comando, o qsderive aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • A ordem na qual os campos derivados surgem no focus de destino é a mesma em que
surgem no arquivo de derivações.
• Se for especificado um focus de destino, ele compartilha dados subjacentes com o
focus de origem.
• O XML para o qsderive assume a forma de um elemento <derivations>, contendo
elementos <field>, dos quais cada um deles deve conter uma expressão FDL em
um elemento <fdl>. Cada elemento <fdl> inclui opcionalmente um atributo de seed
integer para especificar a semente de número aleatório para essa expressão FDL.
• É possível usar o arquivo XML salvo pelo qsderive usando a opção -savexml como
arquivo de derivações.
• Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do
qsderive por meio do assistente Derivar Campos .
Exemplo
64
Portrait Miner 7.0A
Capítulo 5: Comandos para processar os focus
Dado o arquivo de derivações, derivations-purchases.tml, contendo o seguinte:
create TransMonth := month(PurchaseDate);
create CashRecd := if PaymentMethod = "CA" then Amount else 0;
aplicar essas derivações ao focus RetailTransApril.ftr, para criar um novo focus,
RetailTransAprilDeriv.ftr, contendo todos os campos do focus RetailTransApril.ftr,
mais dois campos derivados:
qsderive -derivations derivations-purchases.tml
-input RetailTransApril.ftr -output RetailTransAprilDeriv.ftr
Aplicar todas as derivações, exceto a primeira, ao focus RetailTransApril.ftr, para criar um novo
focus RetailTransAprilDerivAllButFirstOne.ftr, contendo todos os campos do focus
RetailTransApril.ftr, mais todos os campos derivados, exceto o primeiro:
qsderive -xfields TransMonth -derivations derivations-purchases.tml
-input RetailTransApril.ftr
-output RetailTransAprilDerivAllButFirstOne.ftr
Criar um novo focus,RetailCustAprilScored.ftr, contendo todos os campos do focus
RetailCustApril.ftr , mais os campos de pontuação criados no Construtor de Scorecard do
Decision Studio e salvos em um arquivo QMML, derivations-score.qmml:
qsderive -derivations derivations-score.qmml
-input RetailCustApril.ftr
-output RetailCustAprilScored.ftr
Dado o arquivo de derivações, derivations-purchases.xml, contendo o seguinte:
<?xml version="1.0" encoding="UTF-8"?>
<derivations xmlns="http://www.quadstone.com/xml">
<field name="TransMonth">
<fdl>month(PurchaseDate)</fdl>
</field>
<field name="CashRecd">
<fdl>if PaymentMethod = "CA" then Amount else 0</fdl>
</field>
<field name="Random">
<fdl seed="123">rndUniform()</fdl>
</field>
</derivations>
aplicar essas derivações ao focus RetailTransApril.ftr, para criar um novo focus
RetailTransAprilDeriv.ftr, contendo todos os campos do focus RetailTransApril.ftr,
mais dois campos derivados:
qsderive -derivations derivations-purchases.xml
-input RetailTransApril.ftr -output RetailTransAprilDeriv.ftr
Consulte também
Especificações de derivação para o qsderive na página 349
qstrack, na página 70
Guia de referência de comando de compilação de dados e do TML
65
qsmeasure
qsmeasure
Sinopse qsmeasure
-aggregations <arquivo de agregações> [, <arquivo de agregações> ...]
-input <focus de origem>
-output <focus de destino> [-force]
{-keys <campo-chave> [, <campo-chave>] [, <campo-chave>] | -key
@<arquivo-chave>}
[-statistics <arquivo de estatísticas> [, <arquivo de estatísticas> ...]]
[-library <arquivo de funções FDL> [, <arquivo de funções FDL> ...]]
[-macro <nome>=<valor> [-macro <nome>=<valor> ...] | -macro @<nome>=<arquivo
de macro>]
-fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags
<etiqueta> [, <etiqueta> ...]]
-xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags
<etiqueta> [, <etiqueta> ...]]
Descrição: Agrega registros ao focus de origem, para produzir campos no focus de destino de acordo
com as definições de campo nos arquivos de agregações. Os arquivos de agregações contêm instruções
create ou representações XML correspondentes. Use os campos-chave para identificar grupos de
registros para agregação [consulte Usando funções de agregação e as cláusulas where e default
na página 152].
Argumentos opcionais
Opção
Efeito
-fields <campo> [, <campo> ...]
Considera somente os campos especificados do
focus de origem (para otimizar o desempenho do
comando, evitando consideração de campos não
usados).
-fields @<arquivo de campos>
Considera somente campos do focus de origem
listados (um por linha) no arquivo de campos.
-force
Verifique A opção de linha de comando -force
na página 24.
-library <arquivo de funções FDL> [,
<arquivo de funções FDL> ...]
Inclui definições de função FDL [consulte Funções
definidas pelo usuário na página 190].
Expressões em arquivos de agregações podem
envolver essas funções.
66
Portrait Miner 7.0A
Capítulo 5: Comandos para processar os focus
Opção
Efeito
-macro <nome>=<valor>
Verifique A opção de linha de comando -macro
na página 24.
-macro @<arquivo de macros>
Verifique A opção de linha de comando -macro
na página 24.
-statistics <arquivo de estatísticas> Computa estatísticas para o focus de entrada de
acordo com as definições nos arquivos de
[, <arquivo de estatísticas> ...]
estatísticas que, por sua vez, contêm instruções
calculate [consulte Avaliação das estatísticas
do focus: a instrução calculate na página 156] ou
representações XML correspondentes.
Expressões nos arquivos de agregações podem
se referir a essas estatísticas.
-tags <etiqueta> [, <etiqueta> ...]
Considera somente os campos do focus de origem
com etiquetas especificadas (para otimizar o
desempenho do comando, evitando consideração
de campos não usados).
-xfields <campo> [, <campo> ...]
Considera todos os campos do focus de origem,
exceto os campos especificados (para otimizar o
desempenho do comando evitando consideração
de campos não usados).
-xfields @<arquivo de campos>
Considera todos os campos do focus de origem,
exceto os campos listados (um por linha) no
arquivo de campos.
-xtags <>tag> [, <etiqueta> ...]
Considera todos os campos do focus de origem,
exceto os campos com a etiqueta especificada
(para otimizar o desempenho do comando evitando
consideração de campos não usados).
Além dessas opções de linha de comando, o qsmeasure aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • O focus de origem deve ser classificado pelos campos-chave [consulte qssort na
página 62]. Porém, o qsmeasure não verifica isso nem emite um aviso ou erro se o
focus não estiver corretamente classificado.
• O focus de destino contém campos-chave correspondentes aos campos-chave do
focus de origem, seguidos pelos campos agregados (na mesma ordem na qual
aparecem no arquivo de agregações), seguidos por quaisquer campos derivados
(novamente, na mesma ordem na qual aparecem no arquivo de agregações). Para
forçar o surgimento de um campo agregado após um campo derivado no focus de
destino, é possível usar uma instrução temporary para criar um campo agregado e
depois derivar um campo a partir desse.
• O focus de destino é independente do focus de origem, ou seja, não compartilha dados
subjacentes.
Guia de referência de comando de compilação de dados e do TML
67
qsmeasure
• Para computar agregações envolvendo os estados entre transações, em vez de apenas
os valores nos próprios registros de transações, derive campos intermédios apropriados,
usando o qstrack antes de usar o qsmeasure.
• O XML para o qsmeasure assume a forma de um elemento <aggregations>,
contendo elementos <field context="aggregation">, nos quais cada um deve
conter uma expressão TML em um elemento <fdl>. É possível usar um elemento
<by> para especificar agrupamentos e um elemento <where> para filtrar os registros
de entrada.
• Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do
qsmeasure por meio do assistente Agregar Registros .
Exemplos Dado o arquivo de agregações, aggregations-purchases.tml, contendo o seguinte:
create numberPurchases := count();
create averagePurchase := mean(Amount);
create totalPointsRedeemed := sum(PointsRedeemed);
create averagePointsPerPurchase :=
totalPointsRedeemed / numberPurchases;
Aplicar essas agregações e a derivação ao focus RetailTransAprilSorted.ftr para criar o focus
RetailAggregationsApril.ftr contendo os campos CustomerID, numberPurchases,
averagePurchase, totalPointsRedeemed e averagePointsPerPurchase:
qsmeasure -aggregations aggregations-purchases.tml
-input RetailTransAprilSorted.ftr
-output RetailAggregationsApril.ftr
-keys CustomerID
Dado o arquivo de funções FDL, fdl-functions-storeSplit.fdl, contendo o seguinte:
function StoreSplitFunction( Store )
[
element_names = "0,800,600,700,300,400,100,500,900,Other"
]
{
case
Store = "0000" : 1;
Store = "0800" : 2;
Store = "0600" : 3;
Store = "0700" : 4;
Store = "0300" : 5;
Store = "0400" : 6;
Store = "0100" : 7;
Store = "0500" : 8;
Store = "0900" : 9;
default : 10;
}
Dado o arquivo de agregações, aggregations-mostCommon.tml, contendo o seguinte:
create mostCommonStore := mode(Store);
create averageSpendInStore_ := mean(Amount)
by StoreSplitFunction(Store);
Aplicar essas agregações ao focus RetailTransAprilSorted.ftr, para criar o focus
RetailStoreSplitsApril.ftr, contendo os campos CustomerID, mostCommonStore,
averageSpendInStore_0, averageSpendInStore_800, averageSpendInStore_600,
averageSpendInStore_700, averageSpendInStore_300, averageSpendInStore_400,
68
Portrait Miner 7.0A
Capítulo 5: Comandos para processar os focus
averageSpendInStore_100, averageSpendInStore_500, averageSpendInStore_900, e
averageSpendInStore_Other:
qsmeasure -library fdl-functions-storeSplit.fdl
-aggregations aggregations-mostCommon.tml
-input RetailTransAprilSorted.ftr
-output RetailStoreSplitsApril.ftr -keys CustomerID
Se preferir, dado o arquivo de agregações XML aggregations-mostCommon.xml, contendo o
seguinte:
<?xml version="1.0" encoding="UTF-8"?>
<aggregations xmlns="http://www.quadstone.com/xml">
<field name="mostCommonStore" context="aggregation">
<fdl>mode(Store)</fdl>
</field>
<field name="averageSpendInStore_" context="aggregation">
<fdl>mean(Amount)</fdl>
<by>StoreSplitFunction(Store)</by>
</field>
</aggregations>
aplicar essas agregações ao focus RetailTransAprilSorted.ftr, para criar o focus
RetailStoreSplitsApril.ftr, contendo os mesmos campos, como o exemplo acima:
qsmeasure -library fdl-functions-storeSplit.fdl
-aggregations aggregations-mostCommon.xml
-input RetailTransAprilSorted.ftr
-output RetailStoreSplitsApril.ftr -keys CustomerID
Dados o arquivo de estatísticas, statistics-amount.tml, contendo o seguinte:
calculate averageAmount := mean(Amount);
e o arquivo de agregações, aggregations-statistic.tml, contendo o seguinte:
create averageSpend := mean(Amount);
create bigSpender := averageSpend > STATISTIC.averageAmount;
aplicar essa agregação e derivação ao focus RetailTransAprilSorted.ftr para criar o focus
RetailRankApril1.ftr, contendo os campos CustomerID, averageSpend e bigSpender:
qsmeasure -statistics statistics-amount.tml
-aggregations aggregations-statistic.tml
-input RetailTransAprilSorted.ftr
-output RetailRankApril1.ftr
-keys CustomerID
Se preferir, acelere a agregação importando somente os campos CustomerID e Amount do focus
RetailTransAprilSorted.ftr:
qsmeasure -fields "CustomerID, Amount"
-statistics statistics-amount.tml
-aggregations aggregations-statistic.tml
-input RetailTransAprilSorted.ftr
-output RetailRankApril2.ftr
-keys CustomerID
Consulte também
Especificação de agregação para qsmeasure na página 347
Guia de referência de comando de compilação de dados e do TML
69
qstrack,
qstrack,
Sinopse qstrack
-trackers <arquivo de rastreios> [, <arquivo de rastreios> ...] -input <focus
de origem> -output <focus de destino> [-force]-key <campo-chave> | -key
@<arquivo-chave>[-statistics <arquivo de estatísticas> [, <arquivo de
estatísticas> ...]] [-library <arquivo de funções FDL> [, <arquivo de funções
FDL> ...]]
[-macro <nome>=<valor> [-macro <nome>=<valor> ...] | -macro @<nome>=<arquivo
de macro>]
-fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags
<etiqueta> [, <etiqueta> ...]]-xfields <campo> [, <campo> ...] | -xfields
@<arquivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]]
Descrição: copia todos os campos (por padrão) do focus de origem para o focus de destino; deriva
campos no focus de destino de acordo com as definições de campo no arquivo de rastreios que, por
sua vez, contém instruções create ou representações XML correspondentes. Essas definições
normalmente envolvem variáveis de estado [consulte Variáveis na página 188]. Use o campo-chave
para identificar grupos de registros para rastrear o estado: qstrack reinicia todas as variáveis de estado
no início de cada grupo.
Argumentos opcionais
Opção
Efeito
-fields <campo> [, <campo> ...]
Considera somente os campos especificados do
focus de origem (para otimizar o desempenho do
comando, evitando consideração de campos não
usados).
-fields @<arquivo de campos>
Considera somente campos do focus de origem
listados (um por linha) no arquivo de campos.
-force
Verifique A opção de linha de comando -force
na página 24.
-library <arquivo de funções FDL> [,
<arquivo de funções FDL> ...]
Inclui definições de função FDL [consulte Funções
definidas pelo usuário na página 190].
Expressões nos arquivos de rastreios podem
envolver essas funções.
70
-macro <nome>=<valor>
Verifique A opção de linha de comando -macro
na página 24.
-macro @<arquivo de macros>
Verifique A opção de linha de comando -macro
na página 24.
Portrait Miner 7.0A
Capítulo 5: Comandos para processar os focus
Opção
Efeito
-statistics <arquivo de estatísticas> Computa estatísticas para o focus de entrada de
acordo com as definições nos arquivos de
[, <arquivo de estatísticas> ...]
estatísticas que, por sua vez, contêm instruções
calculate [consulte Avaliação das estatísticas
do focus: a instrução calculate na página 156] ou
representações XML correspondentes.
Expressões nos arquivos de rastreio podem se
referir a essas estatísticas.
-tags <etiqueta> [, <etiqueta> ...]
Considera somente os campos do focus de origem
com etiquetas especificadas (para otimizar o
desempenho do comando, evitando consideração
de campos não usados).
-xfields <campo> [, <campo> ...]
Considera todos os campos do focus de origem,
exceto os campos especificados (para otimizar o
desempenho do comando evitando consideração
de campos não usados).
-xfields @<arquivo de campos>
Considera todos os campos do focus de origem,
exceto os campos listados (um por linha) no
arquivo de campos.
-xtags <etiqueta> [, <etiqueta> ...]
Considera todos os campos do focus de origem,
exceto os campos com etiquetas especificadas
(para otimizar o desempenho do comando,
evitando consideração de campos não usados).
Além dessas opções de linha de comando, o qstrack aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • A ordem pela qual os campos derivados surgem no focus de destino é a mesma em
que surgem no arquivo de rastreios.
• O focus de origem deve ser classificado pelo campo-chave [consulte qssort na página
62]. Porém, o qstrack não verifica isso nem emite um aviso ou erro se o focus não
estiver corretamente classificado.
• O focus de destino é independente do focus de origem, ou seja, não compartilha dados
subjacentes.
• O XML para o qstrack assume a forma de um elemento <trackers>, contendo
elementos <field context="tracker">, dos quais cada um deles deve conter
uma expressão FDL em um elemento <fdl>.
Exemplos
Dado o arquivo de rastreios, trackers-monthlySpend.tml, contendo o seguinte:
create monthlySpend := (
state currentMonth := null;
state currentYear := null;
Guia de referência de comando de compilação de dados e do TML
71
qsselect
state monthSpend := 0;
if (currentMonth = month(PurchaseDate) and
currentYear = year(PurchaseDate))
then (monthSpend := monthSpend + Amount)
else (monthSpend := Amount);
currentMonth := month(PurchaseDate);
currentYear := year(PurchaseDate);
monthSpend;
);
aplicar essas derivações ao focus RetailTransAprilSorted.ftr para criar um novo focus
RetailTransAprilRunningSpend.ftr:
qstrack -trackers trackers-monthlySpend.tml -key CustomerID
-input RetailTransAprilSorted.ftr
-output RetailTransAprilRunningSpend.ftr
Se preferir, dado o arquivo de rastreios XML trackers-monthlySpend.xml, contendo o seguinte:
<?xml version="1.0" encoding="UTF-8"?>
<trackers xmlns="http://www.quadstone.com/xml">
<field name="monthlySpend" context="tracker">
<fdl>
state currentMonth := null;
state currentYear := null;
state monthSpend := null;
if (currentMonth = month(PurchaseDate) and currentYear =
year(PurchaseDate))
then (monthSpend := monthSpend + Amount)
else (monthSpend := Amount);
currentMonth := month(PurchaseDate);
currentYear := year(PurchaseDate);path>
monthSpend;h
</fdl>
</field>
</trackers>
aplicar essas derivações ao focus RetailTransAprilSorted.ftr para criar um novo focus
RetailTransAprilRunningSpend.ftr:
qstrack -trackers trackers-monthlySpend.xml -key CustomerID
-input RetailTransAprilSorted.ftr
-output RetailTransAprilRunningSpend.ftr
Consulte também
XML no Portrait Miner na página 340
qsderive na página 63
qsselect
Sinopse qsselect -selections <arquivo de seleções>
-input <focus de origem> [-subfocus <subfocus>]
[-macro <nome>=<valor>[-macro <nome>=<valor> ...] | -macro @<nome>=<arquivo
de macro>]
72
Portrait Miner 7.0A
Capítulo 5: Comandos para processar os focus
[-output <focus de destino>] [-force][-random <semente integer>] [-savexml]
[-selection <campo>]
Descrição: copia todos os campos (por padrão) do focus de origem para o focus de destino; deriva um
campo numérico no focus de destino de acordo com a definição do primeiro campo (por padrão) no
arquivo de seleções, que é o arquivo que contém instruções create ou um arquivo XLM correspondente.
Por padrão, anexa o campo derivado ao focus de origem.
Aplica uma seleção de registro a um novo campo, selecionando somente registros com o valor 1.
Argumentos opcionais
Opção
Efeito
-force
Verifique A opção de linha de comando -force
na página 24.
-macro <nome>=<valor>
Verifique A opção de linha de comando -macro
na página 24.
-macro @<arquivo de macros>
Verifique A opção de linha de comando -macro
na página 24.
-output <focus de destino>
Em vez de anexar os campos derivados ao focus
de origem, copia o focus de origem para o focus
de destino e anexa os campos derivados ao focus
de destino.
-random <semente integer>
Usa a semente integer, em vez de 0, para
quaisquer funções de números aleatórias do FDL
que ocorrem em expressões de derivação.
-savexml
Além de derivar um ou mais campos e aplicar uma
seleção, grava a(s) expressão(ões) de derivação
do arquivo de seleções em formatos TML e XML
para os arquivos <saída>.tml e <saída>.xml,
no mesmo diretório do focus de destino, onde
<saída> é o nome de base do focus de destino.
-selection <campo>
Em vez de usar a definição do primeiro campo no
arquivo de seleções, usa a definição do campo
especificado.
-subfocus <subfocus>
Usa o subfocus especificado do focus de origem.
Além dessas opções de linha de comando, o qsselect aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • Normalmente, as expressões de derivação no arquivo de seleções são aplicações de
operadores relacionais ou lógicos, produzindo os valores 1 se "verdadeiro" e 0 para
"falso." Nesses casos, o qsselect seleciona esses registros onde a expressão lógica
é verdadeira.
• Se for especificado um focus de destino, ele compartilha dados subjacentes com o
focus de origem.
Guia de referência de comando de compilação de dados e do TML
73
qsrenamefields
• O XML para o qsselect assume a forma de um elemento <selections>, contendo
elementos <field context="selection">, dos quais cada um deles deve conter
uma expressão FDL em um elemento <fdl>.
• É possível usar o arquivo XML salvo pelo qsselect, usando a opção -savexml, como
um arquivo de seleções.
Exemplos,
Dado o arquivo de seleções selections-sixmonth.tml, contendo o seguinte:
create lastSixMonths :=
countwholemonths(PurchaseDate, #1999/07/01) < 6;
aplicar essa seleção ao focus RetailTransApril.ftr:
qsselect -selections selections-sixmonth.tml
-input RetailTransApril.ftr
-output RetailTransApril6Months.ftr
Dado o arquivo de seleções selections-random.tml, contendo o seguinte:
create random := rndUniform() < 0.1;
aplicar essa seleção para selecionar 10% dos registros no focus RetailTransApril.ftr, com uma
semente conhecida (12345678), para permitir a seleção da mesma série de registros em aplicações
futuras:
qsselect -selections selections-random.tml -random 12345678
-input RetailTransApril.ftr
-output RetailTransAprilSampleSelect.ftr
Se preferir, dado o arquivo de seleções XML, selections-random.xml, contendo o seguinte:
<?xml version="1.0" encoding="UTF-8"?>
<selections xmlns="http://www.quadstone.com/xml"?>
<field name="random" context="selection">
<fdl seed="12345678">rndUniform() < 0.1</fdl>
</field>
</selections>
Aplicar essa seleção para selecionar os mesmos 10% dos registros no focus RetailTransApril.ftr,
usando a mesma semente:
qsselect -selections selections-random.xml
-input RetailTransApril.ftr
-output RetailTransAprilSampleSelect.ftr
Consulte também
Especificação de seleção para qsselect na página 350
qsrenamefields
Sinopse qsrenamefields
-input <focus de origem>
74
Portrait Miner 7.0A
Capítulo 5: Comandos para processar os focus
{-map <nome antigo>=<nome novo> | -map @<arquivo de mapeamento de entrada>}
[{-map <nome antigo>=<nome novo> | -map @<arquivo de mapeamento de entrada>}
...]
[-output <focus de destino>] [-force]
[-invert]
[-mapping <arquivo de mapeamento de saída>]
qsrenamefields
-input <focus de origem>
[-map QSCompliant]
[-output <focus de destino>] [-force]
[-invert]
[-mapping <arquivo de mapeamento de saída>]
Descrição: renomeia campos no focus de origem, aplicando mapeamentos <nome antigo>=<nome
novo> e mapeamentos em arquivos de mapeamento de entrada.
Se preferir, renomeia os campos no focus de origem para equivalentes únicos, compatíveis com Portrait
Miner, usando um algoritmo interno .
Argumentos opcionais
Comando
Objetivo
-force
Verifique A opção de linha de comando -force
na página 24.
-invert
Inverte o sentido dos mapeamentos do
campo-nome.
-mapping <arquivo de mapeamento de
saída>
Cria um arquivo de mapeamento XML,
descrevendo o mapeamento real usado para
passar de antigos para novos nomes de campos.
É possível usar esse arquivo como arquivo de
mapeamento de saída para qsrenamefields. Em
conjunto com a opção -invert, é possível usar
então um mapeamento de campo-nome inverso
mesmo em situações onde o mapeamento
campo-nome original foi algorítmico (e não
necessariamente um-para-um).
-output <focus de destino>
Em vez de renomear diretamente os campos no
focus de origem, copia o focus de origem para o
focus de destino e renomeia os campos no focus
de destino.
Além dessas opções de linha de comando, o qsrenamefields aceita as opções comuns a todos os
comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Guia de referência de comando de compilação de dados e do TML
75
qsrenamefields
Observação: • Omitir o argumento -map na totalidade tem o mesmo efeito que especificar -map
QSCompliant.
• Um arquivo de mapeamento de entrada está no formato XML ou contém pares <nome
antigo>=<nome novo> em linhas sucessivas do arquivo.
• Se for usado mais de um argumento -map, o qsrenamefields aplica os mapeamentos
campo-nome na mesma ordem em que aparecem na linha de comando.
• Se for tentado renomear campos para que mais de um campo tenha o mesmo nome,
o qsrenamefields avisa o usuário e não faz nada.
• Se for especificado um focus de destino, ele compartilha dados subjacentes com o
focus de origem.
• Não é possível renomear um campo mais de uma vez em uma única invocação de um
comando.
• Se o focus de origem inclui um subfocus, o qsrenamefields renomeia os campos ao
longo de toda a hierarquia dos subfocus.
• O XML para qsrenamefields assume a forma de um elemento <mappingset> contendo
elementos <map>, nos quais cada um deve conter um elemento <name> e <alias>.
• Dado um focus produzido por qsimportdb, que pode incluir nomes de campo não
compatíveis com Portrait Miner, é possível usar o qsrenamefields (com -map
QSCompliant) para converter o focus para uma forma que possa ser usada no Decision
Studio ou com outros comandos construtores de dados.
• É possível acessar algumas das funcionalidades do qsrenamefields por meio do
Visualizador de Dados, no Decision Studio , ou a caixa de diálogo Renomear campos
disponível no Portrait Miner .
Exemplos
Criar um focus, RetailCustAprilRenamed1.ftr, com o campo StartDate renomeado como
Inicializado, Age renomeado como CurrentAge e Gender renomeado como Sex:
qsrenamefields -map StartDate=Initialized
-map Age=CurrentAge -map Gender=Sex
-input RetailCustApril.ftr -output RetailCustAprilRenamed1.ftr
Se preferir, dado o arquivo de mapeamento de saída, mapping-file.txt, com os seguintes conteúdos:
StartDate=Initialized
Age=CurrentAge
Gender=Sex
aplique esse arquivo de mapeamento para criar o focus RetailCustAprilRenamed2.ftr, com o
campo StartDate renomeado como Initialized, Age renomeado como CurrentAge e Gender
renomeado como Sex:
qsrenamefields -map @mapping-file.txt
-input RetailCustApril.ftr -output RetailCustAprilRenamed2.ftr
ou, alternativamente, dado o arquivo de mapeamento de entrada XML mapping-file.xml, com os
seguintes conteúdos:
<?xml version="1.0" encoding="UTF-8"?>
<mappingset xmlns="http://www.quadstone.com/xml">
<map>
<name>StartDate</name>
<alias>Initialized</alias>
76
Portrait Miner 7.0A
Capítulo 5: Comandos para processar os focus
</map>
<map>
<name>Age</name>
<alias>CurrentAge</alias>
</map>
<map>
<name>Gender</name>
<alias>Sex</alias>
</map>
</mappingset>
aplique esse arquivo de mapeamento para criar o focus RetailCustAprilRenamed2.ftr, com o
campo StartDate renomeado como Inicializado, Age renomeado como CurrentAge e Gender
renomeado como Sex:
qsrenamefields -map @mapping-file.xml
-input RetailCustApril.ftr -output RetailCustAprilRenamed2.ftr
Criar um focus,RetailCustAprilQSCompliant.ftr, como nomes de campos compatíveis com
Portrait Miner:
qsrenamefields
-input RetailCustApril.ftr
-output RetailCustAprilQSCompliant.ftr
Consulte também
Especificação de mapeamento do campo do nome para qsrenamefields na página 353
qsexportmetadata
Sinopse qsexportmetadata -input <focus de origem> [-output <arquivo de
metadados>]
Descrição: Exporta metadados a partir de um focus de origem, incluindo histórico do focus, binnings,
comentários, derivações, interpretações, seleções de registros, estrutura de subfocus e subfocus padrão.
Por padrão, grava a informação para uma saída padrão.
Argumentos opcionais
Opção
Efeito
-output <arquivo de metadados>
Cria esse arquivo de metadados em vez de gravar
para uma saída padrão.
Além dessa opção de linha de comando, o qsexportmetadata aceita as opções comuns a todos os
comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • A saída de metadados por qsexportmetadata está em um formato de arquivo baseado
em XML [consulte Especificações de metadados para qsimportmetadata na página
341].
• Usando o Portrait Miner, é possível acessar a funcionalidade de qsexportmetadata
por meio da caixa de diálogo Exportar metadados .
Guia de referência de comando de compilação de dados e do TML
77
qsimportmetadata
Exemplos
Criar um arquivo XML novo RetailTransApril.xml, que contenha os metadados do focus
RetailTransApril.ftr:
qsexportmetadata -input RetailTransApril.ftr
-output RetailTransApril.xml
Consulte também
qsimportmetadata na página 78
qsimportmetadata
Sinopse qsimportmetadata
-input <focus de origem> -metadata <arquivo de metadados>[-output <focus de
destino>] [-force] [-details <tipo> [, <tipo> ...] -fields <campo> [, <campo>
...] | -fields @<arquivo de campos>] -fields <campo> [, <campo> ...] | -fields
@<arquivo de campos>] [-dryrun] [-warn]
Descrição: Importa metadados, incluindo binnings, comentários, derivações, interpretações, seleções
de registros, estrutura de subfocus e subfocus padrão do arquivo de metadados do focus de origem.
Argumentos opcionais
78
Opção
Efeito
-details <tipo> [, <tipo> ...]
Importa os tipos especificados de metadados,
podendo incluir binnings, comentários,
derivações, histórico, interpretações, seleções,
inicialização (subfocus padrão) e subfocus
(estrutura do subfocus). Interpretações categóricas
são classificadas como binnings, não como
interpretações. Na falta dessa opção, todos os tipos
de metadados, exceto histórico, são importados.
-dryrun
Não importa metadados mas exibe informação dos
metadados que teriam sido importados.
-fields <campo> [, <campo> ...]
Em vez de importar metadados de campo de todos
os campos, importa metadados somente dos
campos especificados.
-fields @<arquivo de campos>
Em vez de importar metadados de campo de todos
os campos, importa metadados somente dos
campos listados (um por linha) no arquivo de
campos.
-force
Verifique A opção de linha de comando -force
na página 24.
Portrait Miner 7.0A
Capítulo 5: Comandos para processar os focus
Opção
Efeito
-output <focus de destino>
Em vez de aplicar diretamente os metadados ao
focus de origem, copia o focus de origem para o
focus de destino e aplica os metadados ao focus
de destino.
-warn
Em vez de abortar a operação se a importação de
algum metadado falhar, emite um aviso e tenta
importar os demais metadados.
-xfields <campo> [, <campo> ...]
Importa metadados de campo de todos os campos,
exceto dos campos especificados.
-xfields @<arquivo de campos>
Importa metadados de campo de todos os campos
exceto dos campos listados (um por linha) no
arquivo de campos.
Além dessas opções de linha de comando, o qsimportmetadata aceita as opções comuns a todos os
comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • Se for importado o histórico e o arquivo de metadados incluir metadados do histórico
não vazios, o qsimportmetadata substitui os metadados do histórico no focus; se os
metadados do histórico não estiverem presentes ou estiverem em branco, o
qsimportmetadata não substitui os metadados do histórico no focus.
• Se for especificado um focus de destino, ele compartilha dados subjacentes com o
focus de origem.
• O arquivo de metadados usa um formato de arquivo baseado em XML [consulte
Especificações de metadados para qsimportmetadata na página 341]. Metadados
XML para o qsimportmetadata assume a forma de um elemento <metadada>, contendo
elementos <focus>, que podem conter elementos <comment>, <history>, <focus>
aninhado e <field>. Os elementos <field> podem conter elementos <comment>,
<binning>, <recordselection> e <fdl>.
• Se for importado um binning categórico para um campo sem uma interpretação
categórica, o qsimportmetadata vai interpretar primeiro o campo como categórico,
criando categorias base a partir dos valores no campo (e um binning chamado "nó
sem nome"). Se as categorias base no binning importado se referem a valores não
referidos pelas categorias base do campo, o qsimportmetadata os adiciona como
categorias base. Por fim, adiciona as categorias (se houver) do binning importado
diretamente abaixo das categorias base do campo (a não ser que o binning importado
tenha o mesmo conjunto de categorias base que o campo, nesse caso, o
qsimportmetadata omite o primeiro nível do binning importado, adicionando os outros
níveis diretamente abaixo das categorias base do campo).
• Se for importado um binning categórico para um campo com uma interpretação
categórica, e o binning importado contiver pelo menos um elemento <category>, o
qsimportmetadata limpa a interpretação categórica no campo (excluindo todos os
binnings categóricos no campo) antes de importar o binning. (Se o binning importado
não contiver elementos <category>, o qsimportmetadata não faz nada.)
Guia de referência de comando de compilação de dados e do TML
79
qsimportmetadata
• Se for importada uma estrutura de subfocus, o subfocus recém-criado herda
automaticamente os atributos de campo (como candidatos à análise e binnings) do
subfocus primário. Isso ocorre mesmo se não forem especificados explicitamente os
atributos na definição do subfocus, pois os atributos são definidos no processo de
aplicação da estrutura do subfocus.
• Um subfocus definido em um arquivo de metadados toma precedência sobre um
subfocus de mesmo nome no arquivo de origem, por isso, quaisquer metadados
existentes associados a esse subfocus serão substituídos.
• Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do
qsimportmetadata por meio da caixa de diálogo Importar metadados para focus .
Exemplos
Dado o arquivo de metados do focus metadata-fieldfocus.xml, com os seguintes conteúdos:
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.quadstone.com/xml">
<focus>
<comment>This focus was created for the Retail Analysis
project.</comment>
<field name="Age">
<comment>Imported from database field DOB
in CUSTINFO.</comment>
</field>
<field name="Gender">
<comment>Imported from CUSTINFO:SEX,
mapping 1="M" and 2="F".</comment>
</field>
</focus>
</metadata>
importar esse arquivo de metadados para criar um focus RetailCustAprilCommented2.ftr,
contendo comentários de campo e um comentário de focus:
qsimportmetadata -metadata metadata-fieldfocus.xml
-input RetailCustApril.ftr
-output RetailCustAprilCommented2.ftr
Se preferir, importe o mesmo arquivo de metadados para criar um focus
RetailCustAprilCommented3.ftr, com um comentário de campo somente no campo Age:
qsimportmetadata -fields Age -metadata metadata-fieldfocus.xml
-input RetailCustApril.ftr
-output RetailCustAprilCommented3.ftr
Dado o arquivo de metados do focus metadata-focushtml.xml, com os seguintes conteúdos:
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.quadstone.com/xml">
<focus>
<comment xhtml="true">
<div>
This focus was created for the
Retail Analysis project.<br/>
An audit is available on the
<a href="http://intranet.company.com/audits">
intranet</a>.
</div>
</comment>
80
Portrait Miner 7.0A
Capítulo 5: Comandos para processar os focus
</focus>
</metadata>
importar esse arquivo de metados para criar um focus RetailCustAprilCommented4.ftr, contendo
um comentário de focus com formatação HTML:
qsimportmetadata -metadata metadata-focushtml.xml
-input RetailCustApril.ftr
-output RetailCustAprilCommented4.ftr
Dado o arquivo de metados do focus metadata-catbinning1.xml, com os seguintes conteúdos:
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.quadstone.com/xml">
<field name="MaritalStatus">
<binning>
<categorical>
<categories>
<category name="Single" levelname="Summarized">
<category name="Single" value="1"
levelname="Detail"/>
</category>
<category name="Married">
<category name="Married" value="2"/>
</category>
<category name="Other">
<category name="Divorced" value="3"/>
<category name="Widowed" value="4"/>
<category name="Separated" value="5"/>
</category>
</categories>
</categorical>
</binning>
</field>
</metadata>
importar esse arquivo de metados para criar um focus Lion1.ftr, onde MaritalStatus tem um
binning categórico com dois níveis (um dos quais dá nome às categorias base e o outro mescla três
categorias):
qsimportmetadata -metadata metadata-catbinning1.xml
-input Lion.ftr -output Lion1.ftr
Dado o arquivo de metados do focus metadata-catbinning2.xml, com os seguintes conteúdos:
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.quadstone.com/xml">
<field name="SRVOverallSatisfaction">
<binning>
<categorical>
<categories>
<category name="Very Dissatisfied" value="VD"/>
<category name="Dissatisfied" value="D"/>
<category name="Neutral" value="N"/>
<category name="Fairly Satisfied" value="FS"/>
<category name="Very Satisfied" value="VS"/>
</categories>
</categorical>
</binning>
</field>
</metadata>
Guia de referência de comando de compilação de dados e do TML
81
qsupdate
importar esse arquivo de metadados para criar um focus Lion2.ftr, no qual
SRVOverallSatisfaction tem um binning categórico com uma ordenação particular de categorias
indo de "Muito Insatisfeito" até "Muito Satisfeito:"
qsimportmetadata -metadata metadata-catbinning2.xml
-input Lion1.ftr -output Lion2.ftr
Consulte também
qsexportmetadata na página 77
qsupdate
Sinopse qsupdate -from <focus do modelo> -to <focus de destino> [-force]
Descrição: Aplicar os metadados do focus no focus modelo para o focus de destino, incluindo definições
de subfocus e campos derivados e também quaisquer interpretações de campo, binnings e seleções
de registros.
Argumentos opcionais
Opção
Efeito
-force
Verifique A opção de linha de comando -force
na página 24.
Além dessa opção de linha de comando, o qsupdate aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • O focus de destino não pode ter interpretações, binnings ou seleções de registros de
campo.
• Se o focus modelo e o focus de destino tiverem nomes de campo ou tipos de dados
diferentes, o qsupdate pode não ser capaz de copiar alguns aspectos dos metadados
do focus do modelo.
• Esse comando de complicação de dados não é recomendado: prefira o
qsexportmetadata e o qsimportmetadata.
Exemplo
Aplicar derivações, interpretações, binnings e seleções de registros de pré-processamento
RetailCustApril.ftr para o focus RetailCustMay.ftr recém-importado:
qslink -from RetailCustMay.ftr -to RetailCustMayUpdated.ftr
qsupdate -from RetailCustApril.ftr -to RetailCustMayUpdated.ftr
82
Portrait Miner 7.0A
Capítulo
Comandos para combinar os
focus
Nesta seção:
• Sobre combinar focus . . . . . . . . . . . . . . . . . . . . . . . . . . . .84
• qsjoin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .84
• qsmerge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .87
6
Sobre combinar focus
Sobre combinar focus
O Portrait Miner fornece duas formas de combinar os campos de vários focus para criar um novo focus,
sendo a primeira ("junção de focus") uma variante da junção esquerda. É possível usar a junção
de focus no Portrait Miner ou por meio do comando de compilação de dados qsjoin do Portrait
Miner.
O segundo método usa o Decision Studio para importar campos de um focus em uma variante da junção
esquerda de duas tabelas.
Também é possível mesclar os registros de vários focus, no Portrait Miner ou por meio do comando
de compilação de dados qsmerge do Portrait Miner.
Consulte também
dblookup na página 316
qsjoin
Sinopse qsjoin
-input <focus primário> [-subfocus <subfocus>]
{-keys <campo-chave> [, <campo-chave>] [, <campo-chave>] | -key
@<arquivo-chave>}
[-output <focus de destino>] [-force]
[-equalnulls] [-importmeta] [-onetoone]
[-match <prefixo>] [-unmatched <prefixo>]
-join <focus secundário> [ -subfocus <subfocus>] -fields <campo> [, <campo>
...] | -fields @<arquivo de campos> | -tags <etiqueta> [, <etiqueta> ...]]
-xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags
<etiqueta> [, <etiqueta> ...]] [-join <focus secundário> [ -subfocus
<subfocus>] -fields <campo> [, <campo> ...] | -fields @<arquivo de campos>
| -tags <etiqueta> [, <etiqueta> ...]] -xfields <campo> [, <campo> ...] |
-xfields @<arquivo de campos> | -xtags <etiqueta> [, <etiqueta> ...]] ...]
Descrição: Junta campos do focus secundário com o focus primário, coincidindo registros usando os
campos-chave. Por padrão, junta todos os campos não chave do focus secundário.
A não ser que seja usada a opção -onetoone, o qsjoin realizará efetivamente uma série de junções
externas à esquerda (o focus primário está na tabela esquerda), incorporando os campos a partir de
cada um dos focus secundários por vez. Os valores-chave em um registro no focus primário identificam
de forma única um registro correspondente em cada focus secundário (onde houver um).
Argumentos opcionais
84
Portrait Miner 7.0A
Capítulo 6: Comandos para combinar os focus
Opção
Efeito
-equalnulls
Ao coincidir registros, trate o null value em um
campo-chave como um valor normal (ou seja,
considere todas as ocorrências do valor nulo como
iguais um ao outro, mas distintos de outros
valores).
-fields <campo> [, <campo> ...]
Em vez de juntar todos os campos do focus
secundário, junte apenas os campos especificados.
-fields @<arquivo de campos>
Em vez de juntar todos os campos do focus
secundário, junte apenas os campos listados (um
por linha) no arquivo de campos.
-force
Verifique A opção de linha de comando -force
na página 24. Isso também afeta o focus criado
com a opção -unmatched.
-importmeta
Importa metadados de campo dos focus
secundários.
-match <prefixo>
Para cada focus secundário, cria um campo integer
adicional no focus de saída, contendo o valor 1
para registros que incluem dados do focus
secundário e o valor 0 para todos os outros
registros. Use o prefixo fornecido juntamente com
o nome do focus secundário para nomear o campo.
-onetoone
Em vez de realizar uma junção externa à esquerda,
tente realizar uma correspondência um-para-um
dos registros com as mesmas chaves.
-output <focus de destino>
Em vez de juntar campos ao focus primário, copie
o focus primário para o focus de destino, depois
junte os campos ao focus de destino.
-subfocus <subfocus>
Use o subfocus especificado do focus primário ou
secundário mencionado pela última vez na linha
de comando (usando -input ou -join).
-tags <etiqueta> [, <etiqueta> ...]
Em vez de juntar todos os campos do focus
secundário, junte os campos com etiquetas
especificadas.
-unmatched <prefixo>
Para cada focus secundário, crie um focus de saída
alternativo, preservando esses registros do focus
secundário cujos campos-chave não correspondem
aos registros no focus primário. Use o prefixo
fornecido juntamente com o nome do focus
secundário para nomear o focus de saída
alternativo.
Guia de referência de comando de compilação de dados e do TML
85
qsjoin
Opção
Efeito
-xfields <campo> [, <campo> ...]
Junta todos os campos no focus, exceto os campos
especificados.
-xfields @<arquivo de campos>
Junta todos os campos no focus, exceto os campos
listados (um por linha) no arquivo de campos.
-xtags <etiqueta> [, <etiqueta> ...]
Junta todos os campos no focus, exceto os campos
com as etiquetas especificadas.
Além dessas opções de linha de comando, o qsjoin aceita as opções comuns a todos os comandos de
compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação:
• Para cada campo-chave nomeado, os campos desse nome no focus primário e secundário devem
ser compatíveis, ou seja, todos os campos de strings, todos os campos de datas ou todos os campos
numéricos.
• Os focus primário e secundário devem ser classificados pelos campos-chave [consulte qssort na
página 62]. Se o focus não for classificado apropriadamente, o qsjoin falha e mostra uma mensagem
de erro para esse efeito.
• Para uma junção externa à esquerda (o tipo de junção padrão para o qsjoin), não podem existir dois
registros em um focus secundário com as mesmas chaves.
• Para uma junção externa à esquerda (o tipo de junção padrão para o qsjoin), se um focus secundário
não contiver registros correspondentes ao registro fornecido no focus primário, o qsjoin usa um null
record.
• Para uma junção externa à esquerda (o tipo de junção padrão para o qsjoin), se mais de um registro
no focus primário tiver o mesmo conjunto de chaves, serão anexadas cópias dos registros
correspondentes do focus secundário (se houver) a cada um desses registros.
• Se for usada a opção -onetoone, para cada conjunto de registros no focus primário que compartilham
uma dada combinação de valores de campo-chave, o qsjoin tenta juntar os campos de registros
sucessivos em um focus secundário que compartilha a mesma combinação de valores de campo-chave,
de tal forma que os registros são comparados um-para-um.
Se, para uma chave fornecida, houver menos registros em um focus secundário que em um focus
primário, o qsjoin usa null records no lugar de registros em falta no focus secundário.
Se, para uma chave fornecida, houver mais registros em um focus secundário que em um focus
primário, o qsjoin trata os registros excedentes no focus secundário como não combinados. Se for
usada a opção -unmatched, o qsjoin preserva esses registros em um focus de saída alternativo.
• Se a operação de junção resultar em nomes de campo duplicados, o qsjoin renomeia os campos
necessários, adicionando sufixos numéricos.
• Se for especificado um focus de destino, ele compartilha dados subjacentes com o focus primário
(mas é independente do focus secundário).
• Ao coincidir registros, o qsjoin trata normalmente cada ocorrência do valor nulo num campo-chave
como um valor novo e distinto: um registro com o valor nulo em um campo-chave nunca corresponde
a um registro em outro focus. É possível evitar esse comportamento usando a opção -equalnulls.
86
Portrait Miner 7.0A
Capítulo 6: Comandos para combinar os focus
• Para compatibilidade com versões anteriores, se for especificado somente um focus secundário e
usada a opção -match ou -unmatched, o nome do focus secundário não será usado para nomear
o campo coincidente ou o focus de saída alternativo.
• Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do qsjoin por meio
do assistente Juntar Campos ao Focus .
Exemplos
Criar um focus, RetailAprilAnalysis1.ftr, combinando registros do focus RetailCustApril.ftr
e RetailAggregationsApril.ftr:
qsjoin -input RetailCustApril.ftr -join RetailAggregationsApril.ftr
-keys CustomerID -output RetailAprilAnalysis1.ftr
Se preferir, adicione somente os campos numberPurchases e TotalAmount do focus
RetailAggregationsApril.ftr:
qsjoin -fields numberPurchases,totalAmount
-input RetailCustApril.ftr -join RetailAggregationsApril.ftr
-keys CustomerID -output RetailAprilAnalysis2.ftr
Criar o focus RetailAprilAnalysis3.ftr, combinando registros do focus RetailCustApril.ftr,
RetailAggregationsApril.ftr e RetailAggregationsMay.ftr:
qsjoin -input RetailCustApril.ftr -join RetailAggregationsApril.ftr
-join RetailAggregationsMay.ftr
-keys CustomerID -output RetailAprilAnalysis3.ftr
Repetir a parte acima e escrever quaisquer registros de transação não combinada para o focus
unmatchedRetailAggregationsApril.ftr ou unmatchedRetailAggregationsMay.ftr:
qsjoin -unmatched unmatched
-input RetailCustApril.ftr -join RetailAggregationsApril.ftr
-join RetailAggregationsMay.ftr
-keys CustomerID -output RetailAprilAnalysis4.ftr
Repetir a parte acima, juntando somente um subconjunto dos campos do focus secundário:
qsjoin -unmatched unmatched
-input RetailCustApril.ftr
-join RetailAggregationsApril.ftr
-fields numberPurchasesApr,totalAmountApr
-join RetailAggregationsMay.ftr
-fields numberPurchasesMay,totalAmountMay
-keys CustomerID -output RetailAprilAnalysis5.ftr
Consulte também
qsmerge na página 87
qsmerge
Sinopse qsmerge
-input <focus primário> [-subfocus <subfocus>]
Guia de referência de comando de compilação de dados e do TML
87
qsmerge
{-keys <campo-chave> [, <campo-chave>] [, <campo-chave>] | -key
@<arquivo-chave>}
[-equalnulls]
-output <focus de destino> [-force]
[-nodups]
-merge <focus secundário> [ -subfocus <subfocus>][-merge <focus secundário>
[ -subfocus <subfocus>] ...]
Descrição Mescla registros do focus primário e secundário, intercalando-os para criar o <focus de
destino>, de forma que permaneça classificado pelos campos-chave [consulte qssort na página 62].
Argumentos opcionais
Opção
Efeito
-equalnulls
Ao coincidir registros, trate o valor null em um
campo-chave como um valor normal (ou seja,
considere todas as ocorrências do valor nulo como
iguais umas às outras, mas distintas de outros
valores).
-force
Verifique A opção de linha de comando -force
na página 24.
-nodups
Evita a duplicação de valores do campo-chave: Se
dois ou mais registros compartilharem valores de
campo-chave, retenha o primeiro registro para
conter tal registro (tratando os focus pela ordem:
primário, secundário mencionado em primeiro
lugar, etc.); descarte os demais registros com os
mesmos valores de campo-chave.
-subfocus <subfocus>
Use o subfocus especificado do focus primário ou
secundário mencionado na linha de comando
(usando -input ou -join).
Além dessas opções de linha de comando, o qsmerge aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • Os focus primário e secundário devem ser classificados pelos campos-chave [consulte
qssort na página 62]. Se o focus não for classificado apropriadamente, o qsjoin falha
e mostra uma mensagem de erro para esse efeito.
• campos correspondentes nos focus primário e secundário (identificados por nome)
devem ser do mesmo tipo, mas não precisam estar organizados pela mesma ordem.
• O focus de destino contém o mesmo conjunto de campos que o focus primário,
organizado na mesma ordem. Se um focus secundário contiver campos que não
existem no focus primário, o qsmerge vai ignorá-los. Se o focus primário contiver
campos que não existem no focus secundário, o qsmerge usa o null value no lugar
dos valores em falta no focus secundário.
88
Portrait Miner 7.0A
Capítulo 6: Comandos para combinar os focus
• Se dois ou mais registros compartilham os mesmos valores de campo-chave, os do
primeiro focus aparecem primeiro no focus de destino, seguidos pelos outros em cada
focus secundário. A não ser que seja usada a opção -nodups, a operação de
mesclagem não remove quaisquer registros com chaves duplicadas.
• Usando o mesmo focus duas vezes na linha de comando — como argumento para
-input e para -merge — e usando a opção -nodups, é possível usar o qsmerge
para remover registros com valores de chave duplicados de um focus.
• O focus de destino é independente do focus primário e secundário, ou seja, não
compartilha dados subjacentes.
• Ao ordenar registros ou procurar chaves duplicadas, o qsmerge trata normalmente o
valor nulo como um valor novo e distinto: um registro com o valor nulo em um
campo-chave nunca corresponde a um registro em outro focus. É possível evitar esse
comportamento usando a opção -equalnulls.
• Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do
qsmerge por meio da caixa de diálogo Mesclar registros .
• Se o focus mesclado contiver tipos de dados legados, os tipos legados são convertidos
para o tipo de dados mais apropriados no focus de saída.
Se a conversão falhar porque o tipo de dados não tem armazenamento suficiente, em
vez de truncar o conteúdo o campo conterá o valor nulo. Nesse caso, uma mensagem
de resumo exibirá o campo afetado e o número de entradas a completar.
• Para mesclar dois focus, é necessário que os campos contenham tipos de dados
compatíveis.
Exemplos
Criar um focus, RetailTransAprilMayJune.ftr, contendo todos os registros nos focus
RetailTransAprilSorted.ftr, RetailTransMaySorted.ftr e
RetailTransJuneSorted.ftr:
qsmerge -input RetailTransAprilSorted.ftr
-merge RetailTransMaySorted.ftr
-merge RetailTransJuneSorted.ftr
-keys CustomerID -output RetailTransAprilMayJune.ftr
Se preferir, inclua somente registros do focus RetailTransAprilSorted.ftr cujos valores-chave
também aparecem no focus RetailTransMaySorted.ftr:
qsmerge -nodups
-input RetailTransAprilSorted.ftr
-merge RetailTransMaySorted.ftr
-keys CustomerID -output RetailTransAprilMayNodups.ftr
Consulte também
qsjoin na página 84
Guia de referência de comando de compilação de dados e do TML
89
Capítulo
Comandos para gerenciar o
focus
Nesta seção:
•
•
•
•
•
•
qscopy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
qslink . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
qsmove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .93
qsremove . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .94
qsarchive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .95
qsunzip . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .96
7
qscopy
qscopy
Sinopse qscopy -from <focus de origem>
{-to <focus de destino> | -to <diretório>} [-force]
Descrição: Copia o focus de origem para o focus de destino ou para um focus no diretório especificado
(preservando o nome do focus de origem). Copia os dados subjacentes para que o novo focus seja
independente de outros focus.
Argumentos opcionais
Opção
Efeito
-force
Verifique A opção de linha de comando -force
na página 24.
Além dessas opções de linha de comando, o qscopy aceita opções comuns a todos os comandos de
compilação de dados [consulte Opções padrão de linha de comando na página 21].
Devido à potencial interdependência dos focus, não se deve tentar copiar um focus
usando utilitários padrão do sistema operacional. Em vez disso, deve-se usar
sempre qscopy ou qslink (ou Portrait Miner).
Observação: • Se for tentar copiar um focus sobre um focus existente, o qscopy avisa o usuário e
não faz nada.
• Para criar uma cópia associada de um focus, na qual a cópia compartilha os dados
subjacentes com o focus original, use o qslink.
• Para criar uma cópia de um focus ou de um subconjunto de um focus, não incluindo
quaisquer metadados , use qsimportfocus.
• Também é possível acessar a funcionalidade do qscopy por meio do Portrait Miner
.
Exemplo
Criar um novo focus, RetailArchiveMay.ftr, arquivando os resultados da sessão de análise de
Maio no focus RetailAnalysisMay.ftr:
qscopy -from RetailAnalysisMay.ftr -to RetailArchiveMay.ftr
Consulte também
qsmove na página 93
qsremove na página 94
92
Portrait Miner 7.0A
Capítulo 7: Comandos para gerenciar o focus
qslink
Sinopse qslink -from <focus de origem>
{-to <focus de destino> | -to <diretório>} [-force]
Descrição: Copia o focus de origem para o focus de destino ou para um focus no diretório especificado
(preservando o nome do focus de origem). Compartilha os dados subjacentes com o focus original. (O
novo focus é dependente do focus original.)
Argumentos opcionais
Opção
Efeito
-force
Verifique A opção de linha de comando -force
na página 24.
Além dessas opções de linha de comando, qslink aceita opções comuns a todos os comandos de
compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • Se for tentar copiar um focus sobre um focus existente, o qslink avisa o usuário e
não faz nada.
• Para criar uma cópia independente de um focus, na qual a cópia não compartilha os
dados subjacentes com o focus original, use qscopy.
• Também é possível acessar a funcionalidade do qslink por meio do Portrait Miner
.
Exemplo
Criar um focus RetailLoyaltyProjectMay.ftr, que compartilha os dados subjacentes com o focus
RetailAnalysisMay.ftr:
qslink -from RetailAnalysisMay.ftr
-to RetailLoyaltyProjectMay.ftr
Consulte também
qsimportfocus na página 51
qsmove na página 93
qsremove na página 94
qsmove
Sinopse qsmove -from <focus de origem>
-to {,<focus de destino> | <diretório>,}
Guia de referência de comando de compilação de dados e do TML
93
qsremove
Descrição: Renomeia o focus de origem para o focus de destino ou move o focus de origem para o
diretório especificado, considerando possíveis dependências de dados.
Argumentos opcionais Além dos argumentos necessários, o qscopy aceita as opções comuns para
todos os comandos construtores de dados [consulte Opções padrão de linha de comando na página
21].
Observação: • Se for tentar renomear ou mover um focus sobre um focus existente, o qsmove avisa
o usuário e não faz nada.
• Também é possível acessar a funcionalidade do qsmove por meio do Portrait Miner
.
Devido à potencial interdependência do focus, não se deve tentar renomear ou
mover um focus usando utilitários padrão do sistema operacional. Em vez disso,
deve-se usar sempre o qsmove (ou o Portrait Miner).
Exemplos
Renomear o focus RetailTransAprilSorted.ftr para RetailTransAprilSort.ftr:
qsmove -from RetailTransAprilSorted.ftr
-to RetailTransAprilSort.ftr
Mover o focus RetailArchiveMay.ftr para o diretório Retail:
qsmove -from RetailArchiveMay.ftr -to Retail
Consulte também
qscopy na página 92
qslink na página 93
qsremove na página 94
qsremove
Sinopse qsremove -focus <arquivo de focus>
-focus <arquivo de focus>
[-force]
[-recursive]
Descrição: Exclui um ou mais arquivos de focus, considerando possíveis dependências de dados.
Argumentos opcionais
94
Opção
Efeito
-force
Ignora quaisquer erros causados pela falha na
atualização de links com os focus relacionados.
Portrait Miner 7.0A
Capítulo 7: Comandos para gerenciar o focus
Opção
Efeito
-recursive
Exclui o focus e todos os focus dependentes.
Além dessas opções de linha de comando, o qsremove aceita opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Devido à potencial interdependência do focus, não se deve tentar excluir um focus
usando utilitários padrão do sistema operacional. Em vez disso, deve-se sempre
usar o qsremove (ou o Portrait Miner).
Observação: • Se houver uma dependência circular na cadeia ou o primário da cadeia do focus não
for gravável, será exibido um erro. Nesse caso, é necessário usar -force e
-recursive para excluir o focus.
• Se for usado mais de um argumento -focus e o qsremove não conseguir excluir um
dos focus, ele continuará excluindo focus subsequentes (mas produz uma mensagem
de erro e devolve um estado de saída diferente de zero).
• Não será possível remover um focus com qsremove sem permissão de gravação para
o arquivo de focus .ftr.
• Após remover um focus usando qsremove, pode haver um arquivo .ftr de backup.
É possível excluir esse arquivo em segurança, como faria com qualquer arquivo.
• Também é possível acessar a funcionalidade do qsremove por meio do Portrait Miner
.
Exemplos
Excluir o focus RetailTransApril6Months.ftr e seus dependentes:
qsremove -focus RetailTransApril6Months.ftr
Excluir dois focus RetailTransAprilCA.ftr e RetailTransApril2Customers.ftr:
qsremove -focus RetailTransAprilCA.ftr
-focus RetailTransApril2Customers.ftr
Consulte também
qscopy na página 92
qslink na página 93
qsmove na página 93
qsarchive
Sinopse qsarchive -input <focus ou pasta>
[, -input <focus ou pasta> ...]-output <arquivo compactado>
Descrição: Cria um arquivo compactado a partir de uma lista de focus ou pastas.
Guia de referência de comando de compilação de dados e do TML
95
qsunzip
Argumentos opcionais: Além dos argumentos necessários, o qsarchive aceita as opções comuns
a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na
página 21].
Observação: • Se for criado um arquivo compactado a partir de uma pasta que contém focus ligados
a dados fora da pasta, os dados externos são copiados para o arquivo.
• É possível acessar a maior parte das funcionalidades do comando de compilação de
dados qsarchive usando a caixa de diálogo Arquivo, no Portrait Miner.
Exemplo
Criar um arquivo FirstQuarter.zip que compartilhe dados subjacentes com os focus January.ftr,
February.ftr e March.ftr:
qsarchive -input January.ftr -input February.ftr -input March.ftr
-output FirstQuarter.zip
Consulte também
qsunzip na página 96
qsunzip
Sinopse qsunzip -input <arquivo compactado> [-output <diretório de saída>]
[-overwrite]
Descrição: Extrai arquivos e pastas de um arquivo compactado.
Argumentos opcionais
Opção
Efeito
-output <diretório de saída>
Extrai para um diretório alternativo ao local onde
o arquivo compactado está localizado. Se não for
fornecida uma opção -output, os arquivos e
pastas serão extraídos para o diretório atual.
-overwrite
Substitui arquivos e pastas se for extraído para
uma localização com o mesmo conteúdo do
arquivo zip.
Além dessas opções de linha de comando, o qsunzip aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • Se não for usada a opção -overwrite e extrair para uma localização que contenha
os mesmos arquivos e pastas de origem, a extração irá falhar.
• É possível acessar a maior parte das funcionalidades do comando de compilação de
dados qsunzip usando a caixa de diálogo Extrair, no Portrait Miner
96
Portrait Miner 7.0A
Capítulo 7: Comandos para gerenciar o focus
Exemplo Extrair de um arquivo compactado firstquarter.zip para o mesmo local como
firstquarter.zip:
qsunzip -input firstquarter.zip
Consulte também
qsarchive na página 95
Guia de referência de comando de compilação de dados e do TML
97
Capítulo
Comandos para produzir
relatórios
Nesta seção:
•
•
•
•
•
•
•
•
•
qssettings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100
qsaudit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100
qsdescribe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .104
qsdescribestat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .105
qshtmlunpack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106
qsdtsnapshot, qsscsnapshot . . . . . . . . . . . . . . . . . . . . .107
qsxt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
qsinfo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .111
qsdescribelicense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .112
8
qssettings
qssettings
Sinopse qssettings [<propriedade>=<valor> ...]
Descrição: Define o valor de cada propriedade listada, para controlar aspectos da saída dos comandos
geradores de relatório qsaudit, qsdtsnapshot e qsscsnapshot.
É possível definir valores das seguintes propriedades:
• DateFormat, com 0 corresponde ao europeu, 1 corresponde ao americano e 2 corresponde ao YMD
• NumDecimalPlaces
• StripTrailingZeroes
• ThousandSeparators
• TwelveHour
Argumentos opcionais Além dos argumentos necessários, qssettings aceita as opções comuns a
todos os comandos construtores de dados [consulte Opções padrão de linha de comando na página
21].
Observação: O comando qssettings cria ou modifica o arquivo settings.xml em seu diretório
de configuração especifico de usuário do Portrait Miner. Use esse arquivo em conjunto
com qsaudit, qsdtsnapshot ou qsscsnapshot especificando a opção Opções
padrão de linha de comando na página 21-settings [consulte ].
Exemplo Criar um arquivo de definições para exibir datas no formato de data AMD, formato de 12 horas
e números com zeros à direita, para quatro casas e um separador de milhares especifico localmente:
qssettings DateFormat=2 TwelveHour=true StripTrailingZeroes=false
NumDecimalPlaces=4 ThousandSeparators=true
Consulte também
Formatos de data na página 55 qsaudit na página 100 qsdtsnapshot, qsscsnapshot na página 107
qsaudit
Sinopse qsaudit [-generate Full]
-input <focus> [-subfocus <subfocus>]
[-reference <relatório HTML arquivado> | -reference <relatório XML arquivado>]
-output <relatório HTML arquivado>
-fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags
<etiqueta> [, <etiqueta> ...]]
-xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags
<etiqueta> [, <etiqueta> ...]]
100
Portrait Miner 7.0A
Capítulo 8: Comandos para produzir relatórios
[-records <expressão FDL> | -records @<arquivo FDL>]
[-targets <campo> [, <campo> ...] | -targets @<arquivo de campos> | -notarget]
[-overwrite]
[-htmlimages largepng | -htmlimages smallpng | -htmlimages svg | -htmlimages
none]
[-paginate]
[-nopartition]
-partitionfield <campo>
qsaudit -generate XML
-input <focus> [-subfocus <subfocus>]
[-reference <relatório HTML arquivado> | -reference <relatório XML arquivado>]
-output <relatório XML arquivado>
-fields <campo> [, <campo> ...] | -fields @<arquivo de campos> | -tags
<etiqueta> [, <etiqueta> ...]]
-xfields <campo> [, <campo> ...] | -xfields @<arquivo de campos> | -xtags
<etiqueta> [, <etiqueta> ...]]
[-records <expressão FDL> | -records @<arquivo FDL>]
[-targets <campo> [, <campo> ...] | -targets @<arquivo de campos> | -notarget]
[-overwrite]
[-nopartition]
[-partitionfield <campo>] qsaudit -generate HTML
{-input <relatório HTML arquivado> | -input <relatório XML arquivado>}
-output <relatório HTML arquivado>
[-overwrite]
[-htmlimages largepng | -htmlimages smallpng | -htmlimages svg | -htmlimages
none] [-paginate]
Descrição: Cria um Perfil e relatório de Auditoria no focus especificado ou um relatório de comparação
descrevendo as diferenças entre o focus especificado e o focus descrito em um relatório de referência
com a opção -reference). Por padrão, audita todos os campos no focus, em relação ao objetivo do
focus, se houver um. Este é um processo de duas fases: primeiro o comando gera um arquivo XML
intermediário (compactado em um arquivo .qsxml), depois, a partir desse arquivo intermediário, é
criado o relatório final no formato HTML (compactado em um arquivo .qshtml).
Se preferir, crie somente o arquivo .qsxml intermediário — ou crie um arquivo .qshtml a partir de
um arquivo .qshtml ou .qsxml existente.
Para descompactar arquivos .qshtml e .qsxml, para visualizar ou reutilizar fora do Portrait Miner,
use o qshtmlunpack.
Guia de referência de comando de compilação de dados e do TML
101
qsaudit
Argumentos opcionais
Opção
Efeito
-fields <campo> [, <campo> ...]
Audita somente os campos especificados (exceto
campos excluídos usando -xfields).
-fields @<arquivo de campos>
Audita somente os campos listados (um por linha)
no arquivo de campos.
-generate HTML
Cria um relatório HTML de um relatório XML ou
HTML.
-generate Full
Cria um relatório HTML diretamente (padrão se
não for especificada uma opção -generate).
-generate XML
Cria um relatório XML.
-htmlimages largepng
Inclui bitmaps PNG e imagens SVG otimizados
para impressora e tela.
-htmlimages none
Não inclui nenhuma imagem.
-htmlimages smallpng
Incluiu bitmaps PNG e imagens SVG otimizadas
para tela (padrão, se não for especificada uma
opção -htmlimages).
-htmlimages svg
Inclui somente imagens SVG.
-nopartition
Cria um Perfil e Auditoria sem elevação, ignorando
quaisquer interpretações de partição nesse focus.
-notarget
Não audita campos no focus em relação a
quaisquer campos de destino, mesmo se o focus
tiver um objetivo.
-overwrite
Substitui qualquer relatório existente.
Caso contrário, se já há um relatório com o mesmo
nome, o qsaudit avisa o usuário e não faz nada.
-paginate
Cria uma página HTML individual para cada campo
auditado.
-partitionfield <campo>
Usa o campo especificado como campo de
partição.
-records <expressão FDL>
Reporta somente nos registros onde a expressão
FDL numérica é diferente de zero ("verdadeira").
-records @<arquivo FDL>
Reporta somente nos registros para quais a
expressão FDL no arquivo especificado é diferente
de zero ("verdadeira").
-reference <relatório HTML arquivado> Usa o relatório HTML criado arquivado
anteriormente como relatório de referência e cria
um relatório de comparação.
102
Portrait Miner 7.0A
Capítulo 8: Comandos para produzir relatórios
Opção
Efeito
-subfocus <subfocus>
Usa o subfocus especificado do focus.
-tags <etiqueta> [, <etiqueta> ...]
Audita somente os campos com etiquetas
especificadas (exceto quaisquer campos excluídos
usando -xtags).
-targets <campo> [, <campo> ...]
Audita campos no focus relacionados com os
campos de destino especificados, em vez de o
objetivo do focus.
-targets @<arquivo de campos>
Audita campos no focus relacionados com os
campos de destino listados (um por linha) no
arquivo de campos.
-xfields <campo> [, <campo> ...]
Não audita os campos especificados.
-xfields @<arquivo de campos>
Não audita os campos listados (um por linha) no
arquivo de campos.
-xtags <etiqueta> [, <etiqueta> ...]
Não audita os campos com as etiquetas
especificadas.
Além dessas opções de linha de comando, qsaudit aceita a opção -settings, assim como opções
comuns a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando
na página 21].
Observação: • Por padrão, um relatório de comparação inclui os mesmos campos do relatório de
referência. Se escolher campos explicitamente para incluir no relatório de comparação
(usando a opção -fields), esses são adicionados aos campos cujo perfil foi criado
anteriormente.
• Um relatório de comparação usa os mesmos campos de destino como no relatório de
referência. Quaisquer campos de destino especificados explicitamente são ignorados.
• Estão disponíveis opções de formatação de relatório adicionais nas preferências de
Auditorias e Instantâneos (consulte Ajuda Portrait Miner).
• Se não incluir um objetivo e uma opção -target, qsaudit não irá conseguir auditar o
focus.
• Usando Portrait Miner, é possível acessar a maior parte das funcionalidades do qsaudit
por meio da caixa de diálogo Criar Perfil e Auditoria .
Exemplos
Criar um novo Perfil e Auditoria RetailCustApril.qshtml do focus RetailCustApril.ftr:
qsaudit -input RetailCustApril.ftr -output RetailCustApril.qshtml
Criar um novo Perfil e Auditoria RetailCustMay.qshtml do focus RetailCustMay.ftr, auditar
todos os campos por Age:
qsaudit -targets Age -input RetailCustMay.ftr
-output RetailCustMay.qshtml
Guia de referência de comando de compilação de dados e do TML
103
qsdescribe
Substitua isso para criar um Perfil e Auditoria no qual cada auditoria de campo ocorre em uma página
HTML separada:
qsaudit -paginate -targets Age -overwrite -input RetailCustMay.ftr
-output RetailCustMay.qshtml
Criar um Perfil e Auditoria RetailCustAprilnoimages.qshtml sem imagens, do focus
RetailCustApril.ftr, somente para os campos StartDate, Age e Gender:
qsaudit -fields "StartDate, Age, Gender" -htmlimages none
-input RetailCustApril.ftr
-output RetailCustAprilnoimages.qshtml
Recriar a saída HTML, com uma auditoria de um campo por página HTML (sem recriar dados da auditoria
subjacente):
qsaudit -generate HTML -paginate
-input RetailCustApril.qshtml
-output RetailCustAprilpaginate.qshtml
Criar um relatório de comparação RetailCustMayApril.qshtml do focus RetailCustMay.ftr
em comparação com o relatório de referência RetailCustApril.qshtml:
qsaudit -reference RetailCustApril.qshtml
-input RetailCustMay.ftr -output RetailCustMayApril.qshtml
Consulte também
XML no Portrait Miner na página 340 qsdescribe na página 104 qsdtsnapshot, qsscsnapshot na
página 107 qssettings na página 100
qsdescribe
Sinopse qsdescribe
-input <focus de origem> [-subfocus <subfocus>]
[-output <arquivo de relatório>]
[-fields [-detail]]
Descrição: Exibe informações do resumo sobre o focus no formato texto simples, incluindo o número
de campos e registros e o histórico do focus.
Argumentos opcionais
104
Opção
Efeito
-detail
Reporta informações mais detalhadas sobre os
campos no focus, incluindo estatística dos campos,
expressões de derivação e sementes para campos
derivados.
-fields
Reporta informações sobre cada um dos campos
no focus.
Portrait Miner 7.0A
Capítulo 8: Comandos para produzir relatórios
Opção
Efeito
-output <arquivo de relatório>
Grava o relatório no arquivo especificado e não na
saída padrão.
-subfocus <subfocus>
Usa o subfocus especificado do focus de origem.
Além dessas opções de linha de comando, o qsbuild aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • Por padrão, o qsdescribe informa toda a hierarquia do subfocus dentro de um focus.
Se for usada a opção -subfocus, o qsdescribe informa somente o subfocus
especificado.
• Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do
qsdescribe por meio da caixa de diálogo Exibir Informações do Focus .
Exemplos
Reportar o número de campos, número de registros e histórico do focus RetailCustApril.ftr:
qsdescribe -input RetailCustApril.ftr
Além disso, reportar os nomes e tipos de campos:
qsdescribe -fields -input RetailCustApril.ftr
Por fim, reportar estatísticas de campo, seleções, comentários e derivações nos campos:
qsdescribe -detail -fields -input RetailCustApril.ftr
Consulte também
qsaudit na página 100
qssettings na página 100
qsdescribestat
Sinopse qsdescribestat -input <conjunto de dados de origem>
[-output <arquivo de relatório>]
[-type <tipo de conjunto de dados>]
[-detail]
Descrição: Exibe uma lista de nomes de campos no conjunto de dados de origem de terceiros, em
formato de texto simples. Conjuntos de dados SAS, SPSS e Excel estão entre os suportados (consulte
http://support.quadstone.com/info/requirements/ para obter uma lista detalhada).
Argumentos opcionais
Guia de referência de comando de compilação de dados e do TML
105
qshtmlunpack
Opção
Efeito
-detail
Mostra os tipos de dados dos campos juntamente
com seus nomes.
-output <arquivo de relatório>
Grava o relatório no arquivo especificado e não na
saída padrão.
-type <tipo de conjunto de dados>
Interpreta o conjunto de dados de origem como o
tipo de conjunto de dados especificado,
substituindo a interpretação padrão (dependendo
da extensão do nome do arquivo). Tipos de
conjunto de dados válidos incluem sas, spss e
excel; para ver uma lista completa, use a opção
-help.
Além dessas opções de linha de comando, o qsdescribestat aceita as opções comuns a todos os
comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Exemplos
Reportar os nomes dos arquivos do conjunto de dados SAS RetailCustApril.sas7bdat:
qsdescribestat -input RetailCustApril.sas7bdat
Além disso, reportar os tipos de campo:
qsdescribestat -detail -input RetailCustApril.sas7bdat
Consulte também
qsexportstat na página 49
qsimportstat na página 48
qshtmlunpack
Sinopse qshtmlunpack <relatório arquivado> <relatorio de destino> [<Nome do
arquivo HTML>]
Descrição:Descompacta um relatório gerado pelo Portrait Miner na forma de um arquivo .qshtml ou
.qsxml, criando o diretório de saída especificado para conter os componentes do relatório. No caso
de um relatório HTML arquivado, o próprio arquivo HTML (dentro do diretório de saída) é nomeado
qsreport.html, por padrão.
Argumentos opcionais
106
Portrait Miner 7.0A
Capítulo 8: Comandos para produzir relatórios
Opção
Efeito
<Nome do arquivo HTML>
Use esse nome de arquivo para o arquivo HTML
em um relatório HTML descompactado, em vez do
qsreport.html.
Ao descompactar um relatório XML arquivado,
qshtmlunpack ignora este argumento.
Observação: Usando Portrait Miner, é possível acessar a maior parte das funcionalidades do
qshtmlunpack usando a opção do botão direito do mouse Descompactar para Pasta.
Exemplo
Descompactar o arquivo RetailCustApril.qshtml como um Perfil e Auditoria HTML
RetailCustApril.html no subdiretório www:
qshtmlunpack RetailCustApril.qshtml www RetailCustApril.html
Consulte também
qsaudit na página 100
qsdtsnapshot, qsscsnapshot na página 107
qsdtsnapshot, qsscsnapshot
Sinopse
{qsdtsnapshot -input <árvore de decisão> | qsscsnapshot -input <scorecard>}
[-generate Full]
-output <relatório HTML arquivado>
[-focus <focus> [-subfocus<subfocus>]]
[-audit modeled | -audit all | -audit none]
[-description <arquivo de texto>]
[-overwrite]
[-htmlimages largepng | -htmlimages smallpng | -htmlimages svg | -htmlimages
none]
{qsdtsnapshot -input <árvore de decisão> | qsscsnapshot -input <scorecard>}
-generate XML
-output <relatório XML arquivado>
[-focus <focus> [-subfocus<subfocus>]]
[-audit modeled | -audit all | -audit none]
Guia de referência de comando de compilação de dados e do TML
107
qsdtsnapshot, qsscsnapshot
[-overwrite]
[-htmlimages largepng | -htmlimages smallpng | -htmlimages svg | -htmlimages
none]
{qsdtsnapshot | qsscsnapshot}
-generate HTML
{-input <relatório HTML arquivado> | -input<relatório XML arquivado>}
-output <relatório HTML arquivado>
[-description <arquivo de texto>
[-overwrite]
[-htmlimages largepng | -htmlimages smallpng | -htmlimages svg | -htmlimages
none]
Descrição: Cria um Modelo Instantâneo da árvore de decisão especificada (arquivo .qsdt) ou scorecard
(arquivo .qssc). Por padrão, audita todos os campos usados no modelo. Este é um processo de duas
fases: primeiro o comando gera um arquivo XML intermediário (compactado em um arquivo .qsxml),
depois, a partir desse arquivo intermediário, é criado o relatório final no formato HTML (compactado em
um arquivo .qshtml).
Se preferir, crie somente o arquivo .qsxml intermediário — ou crie um arquivo .qshtml a partir de
um arquivo .qshtml ou .qsxml existente.
Para descompactar arquivos .qshtml e .qsxml, para visualizar ou reutilizar fora do Portrait Miner,
use o qshtmlunpack.
Argumentos opcionais
108
Opção
Efeito
-audit all
Audita todos os campos no focus.
-audit modeled
Audita os campos usados no modelo (padrão se
não especificar uma opção -audit).
-audit none
Não audita nenhum campo.
-description <arquivo de texto>
Inclui os conteúdos desse arquivo de texto como
uma descrição do modelo na seção "Metadados
Fornecidos pelo Usuário" do relatório.
-focus <focus>
Reporta no modelo aplicado ao focus especificado,
em vez do focus usado para construir o modelo.
-generate HTML
Cria um relatório HTML de um relatório XML ou
HTML.
-generate Full
Cria um relatório HTML diretamente (padrão se
não for especificada uma opção -generate).
-generate XML
Cria um relatório XML.
Portrait Miner 7.0A
Capítulo 8: Comandos para produzir relatórios
Opção
Efeito
-htmlimages largepng
Inclui bitmaps PNG e imagens SVG otimizados
para impressora e tela.
-htmlimages none
Não inclui nenhuma imagem.
-htmlimages smallpng
Incluiu bitmaps PNG e imagens SVG otimizadas
para tela (padrão, se não for especificada uma
opção -htmlimages).
-htmlimages svg
Inclui somente imagens SVG.
-overwrite
Substitui qualquer relatório existente.
Caso contrário, se já há um relatório com o mesmo
nome, o qsdtsnapshot/qsscsnapshot avisa o
usuário e não faz nada.
-subfocus <subfocus>
Usa o subfocus especificado do focus.
Além dessas opções de linha de comando, o qsdtsnapshot e qsscsnapshot aceitam a opção
-settings, assim como opções comuns a todos os comandos de compilação de dados [consulte
Opções padrão de linha de comando na página 21].
Observação: • Se não for usada a opção -focus, o focus usado para construir o modelo ainda deve
existir.
• Estão disponíveis opções adicionais de formatação de relatório nas preferências de
Auditorias e Instantâneos (consulte Ajuda Portrait Miner).
• Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do
qsdtsnapshot e qsscsnapshot por meio da caixa de diálogo Instantâneo da
Árvore de Decisão ou do Instantâneo do Scorecard .
Exemplos
Criar um Modelo Instantâneo do arquivo da árvore de decisão early-adopter-modelApril.qsdt,
compilado no focus RetailCustApril.ftr e aplicado ao mesmo focus:
qsdtsnapshot -input early-adopter-modelApril.qsdt
-output early-adopter-modelApril.qshtml
Aplique esse modelo ao focus RetailCustMay.ftr, mas agora auditando todos os campos, em vez
de somente os envolvidos na definição do modelo:
qsdtsnapshot -focus RetailCustMay.ftr -audit all
-input early-adopter-modelApril.qsdt
-output early-adopter-modelMay.qshtml
Consulte também
XML no Portrait Miner na página 340
qsaudit na página 100
qssettings na página 100
Guia de referência de comando de compilação de dados e do TML
109
qsxt
qsxt
Sinopse qsxt -focus <focus> [-subfocus <subfocus>]
[-spec <arquivo da tabela de referência cruzada>] [-comparable]
[-output <arquivo da tabela de referência cruzada>]
[-description <arquivo de texto>]
Descrição: Aplica uma especificação de tabela de referência cruzada (fornecida por padrão na entrada
padrão) para o focus especificado, para criar uma nova tabela de referência cruzada (por padrão na
saída padrão).
Argumentos opcionais
Opção
Efeito
-comparable
Ao relevante, use binnings da parte do resultado
da tabela de referência cruzada fornecida, em vez
de a parte da especificação.
-description <arquivo de texto>
Inclui os conteúdos desse arquivo de texto como
uma descrição da tabela de referência cruzada.
-output <arquivo da tabela de
referência cruzada>
Cria esse arquivo da tabela de referência cruzada
em vez de gravar em uma saída padrão.
-spec <arquivo da tabela de referência Usa esse arquivo da tabela de referência cruzada
em vez de ler a partir da entrada padrão.
cruzada>
-subfocus <subfocus>
Usa o subfocus especificado do focus.
Além dessas opções de linha de comando, o qsxt aceita as opções comuns a todos os comandos de
compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • Na tabela de referência cruzada de saída, o qsxt bina cada campo usando um dos
seguintes (em ordem decrescente de preferência): um binning para o campo na
especificação de tabela de referência cruzada (ou parte do resultado se usar a opção
-comparable); um binning para o campo no focus fornecido; os parâmetros padrão
de binning, como configurado pelas preferências de binning (consulte Ajuda do Portrait
Miner).
• Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do
qsxt por meio de uma caixa de diálogo Aplicar tabela de referência cruzada .
Exemplos
110
Portrait Miner 7.0A
Capítulo 8: Comandos para produzir relatórios
Criar uma nova tabela de referência cruzada, ageGenderMay.qstv, a partir do focus
RetailCustMay.ftr, usando o arquivo de especificação de tabela de referência cruzada do
ageGenderApril.qstv (gerado a partir do Decision Studio):
qsxt -focus RetailCustMay.ftr -spec ageGenderApril.qstv
-output ageGenderMay.qstv
Se preferir, use o binning contido no arquivo da tabela de referência cruzada ageGenderApril.qstv
para criar o resultado ageGenderMay-binbyApril.qstv:
qsxt -comparable -focus RetailCustMay.ftr -spec ageGenderApril.qstv
-output ageGenderMay-binbyApril.qstv
Consulte também
Especificações da tabela de referência cruzada para qsxt na página 351
qsinfo
Sinopse qsinfo -input <focus de origem>
[-generate HTML | -generate XML]
[-output <arquivo de relatório>]
Descrição: Exibe informações sobre localizações e tamanhos de arquivos que constituem o focus de
origem, incluindo quaisquer arquivos de dados compartilhados com outros focus. Exibe os
relacionamentos do focus de origem com outros focus (listando ambos os focus que dependem dele e
os focus dos quais depende). Por padrão, grava o relatório na saída padrão, em um formato de arquivo
baseado em XML.
Argumentos opcionais
Opção
Efeito
-generate HTML
Cria o relatório no formato HTML.
-generate XML
Cria o relatório num formato de arquivo baseado
em XML (padrão, se não for especificada uma
opção -generate).
-output <arquivo de relatório>
Grava o relatório no arquivo especificado e não na
saída padrão.
Além dessas opções de linha de comando, o qsinfo aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • Um focus é armazenado em disco como um arquivo .ftr (o "arquivo de focus")
juntamente com um conjunto de arquivos de dados e outros arquivos em duas pastas,
com nomes com as extensões .rdx ("Raw Data eXtract") e .xtr ("eXTRa").
Um novo focus criado por meio da cópia de um focus existente [consulte qscopy na
página 92] ou pela importação de dados de outro tipo de conjunto de dados é
independente de outros focus. Por outro lado, um focus que é salvo no Decision Studio
Guia de referência de comando de compilação de dados e do TML
111
qsdescribelicense
com novo nome ou um que seja criado por meio de uma cópia vinculada [consulte
qslink na página 93] é dependente das pastas de dados de outros focus.
• Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do
qsinfo por meio da caixa de diálogo Exibir Propriedades do Focus. .
Exemplo
Criar um novo relatório HTML das propriedades do focus RetailCustApril.html, a partir do focus
RetailCustApril.ftr:
qsinfo -input RetailAprilAnalysis.ftr -generate HTML
-output RetailAprilAnalysis.html
Consulte também
XML no Portrait Miner na página 340
qsdescribelicense
Sinopse qsdescribelicense
[-input <arquivo de licença>]
[-output <arquivo de relatório>]
Descrição:Exibe um relatório sobre a licença do Portrait Miner no formato texto simples.
Argumentos opcionais
Opção
Efeito
-input <arquivo de licença>
Relata sobre o arquivo de licença especificado, em
vez de a licença instalada.
-output <arquivo de relatório>
Grava o relatório no arquivo especificado e não na
saída padrão.
Além dessas opções de linha de comando, o qsdescribelicense aceita as opções comuns a todos
os comandos de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: O relatório pode incluir os seguintes componentes:
•
•
•
•
•
o nome do titular da licença
o endereço de IP ou subrede para a qual a licença é válida
o tamanho máximo do focus para o qual a licença é válida
data inicial e de expiração da licença
uma lista de componentes licenciados do Portrait Miner, com possíveis substituições
por componentes para o endereço de IP/subrede, tamanho máximo do focus e datas
de validade
Exemplo
112
Portrait Miner 7.0A
Capítulo 8: Comandos para produzir relatórios
Mostrar chaves de licença no arquivo atual de licença do Portrait Miner:
qsdescribelicense
Guia de referência de comando de compilação de dados e do TML
113
Capítulo
Comandos para compilar
modelos
Nesta seção:
•
•
•
•
•
•
Sobre o Assistente do Scorecard . . . . . . . . . . . . . . . . . .116
qsscorecardwizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .117
qsdecisiontree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .123
qsscorecard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124
Sobre o Assistente de Regra de Associação . . . . . . . . .125
qsruleminer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .127
9
Sobre o Assistente do Scorecard
Sobre o Assistente do Scorecard
O Assistente do Scorecard automatiza a modelagem do scorecard, usando boas práticas metodológicas:
realizando binning otimizado, em seguida, redução variável e, por fim, compilando uma sequência de
modelos sobre dados de teste e treinamento para estabelecer o melhor "tamanho de modelo". A
metodologia de modelagem inclui as seguintes fases.
Metodologia teste/treinamento: Parte dos dados de origem é usada para o treinamento e outra parte
para teste: essa divisão pode ser gerada aleatoriamente ou usando um campo indicador binário
designado.
Binning otimizado: Os dados de treinamento são usados para selecionar um binning para cada
candidato de análise que maximiza sua capacidade preditiva univariável contra o objetivo.
Para campos não categóricos, o assistente do binning otimizado é usado repetidamente para selecionar
o melhor binning. O número de bins é aumentado até o número de "pontos de mudança" na área do
valor médio objetivo do bin exceder um limite configurável (sendo um "ponto de mudança" uma alteração
de sinal na inclinação do gráfico). Intuitivamente, isso garante que o perfil do valor médio objetivo, como
uma função de cada candidato de análise, é relativamente regular, com poucos altos e baixos.
Para campos categóricos, as categorias onde o valor médio objetivo não é significativamente diferente
da média geral são mescladas. É usada uma diferença padrão do teste de médias [consulte significance
na página 175], com uma correção de Bonferroni aplicada com base no número total de categorias, c,
que aparecem para o campo. Assim, todas as categorias em que o nível de confiança é
são
mescladas (com um limite de significância configurável).
Durante essa fase, os campos com correlação anormalmente elevada para o objetivo são excluídos da
análise (com uma mensagem de aviso). É também emitido um aviso para campos onde cada bin
individual contenha um pequeno número de registros. Ambos os limites são configuráveis.
Redução variável: a fase da redução variável reduz o número de candidatos de análise (preditores
independentes) daqueles inicialmente marcados para um conjunto de n menor, para diminuir o tempo
de execução da fase final de "dimensionamento correto".
O processo divide os candidatos à análise em grupos de até 2n campos e compila um scorecard (usando
os dados de treinamento) em cada grupo, descartando os piores campos por meio de uma exclusão
por etapas até que reste somente os melhores n campos do grupo. Repetindo esse procedimento,
acaba-se por identificar os melhores n campos gerais.
Dimensionamento correto: a fase de dimensionamento correto seleciona o scorecard que melhor
equilibra a complexidade (número de preditores) e a capacidade generalizante (como medido pelo
conjunto de teste de desempenho). Os dados de treinamento são usados para compilar uma sequência
de scorecards com os primeiros que contêm todos os candidatos de análise e cada modelo subsequente,
excluindo o pior preditor. O desempenho de cada modelo é avaliado com base nos dados de teste, com
o melhor tamanho de modelo selecionado usando um critério configurável. Como fase final, as
ponderações no modelo selecionado são reajustadas com base em todos os dados (ou seja, de teste
e de treinamento) para aumentar a precisão. Todos os modelos provisórios podem ser salvos em
conjunto com os modelos finais, se desejado.
Resultados: São gerados vários resultados (opcionalmente), incluindo:
116
Portrait Miner 7.0A
Capítulo 9: Comandos para compilar modelos
• Um relatório HTML resumindo a forma como a metodologia foi aplicada, incluindo os parâmetros de
entrada e os links para o log de execução detalhado. Isso inclui uma tabela de dados de desempenho
que pode ser facilmente apresentada no Excel.
• O modelo final recomendado (nos formatos .qssc e QMML ).
• Um relatório do Modelo Instantâneo para o modelo recomendado.
• O conjunto de dados final, incluindo os candidatos de análise selecionados, binnings otimizados e
predições de modelo. Os conjuntos de dados intermediários também podem ser salvos, se desejado,
contendo os metadados gerados pela metodologia até aquele ponto. Eles são normalmente úteis
para fazer busca detalhada e explorar as decisões tomadas durante o processo.
Consulte também
qsscorecardwizard na página 117
qsscorecardwizard
Sinopse qsscorecardwizard <arquivo de parâmetros>
Descrição: Compilar um scorecard em um focus especificado usando um arquivo de parâmetros.
Observação: Também é possível acessar a funcionalidade do comando de compilação de dados
qsscorecardwizard, usando a caixa de diálogo do assistente Scorecard no Portrait
Miner.
Parâmetros de modelagem: O processo de modelagem executado pelo qsscorecardwizard é
controlado pelo arquivo de parâmetros que for especificado como argumento de linha de comando. Por
exemplo, com um arquivo chamado parameters.ini contendo:
[globals]
inputFocus=D:/Data/DirectBank/DirectBank.ftr
objectiveField=CardVisa
xmlReport=D:/Data/DirectBank/DirectBank.xml
[variable reduction]
maxVariables=5
[model development]
finalModel=D:/Data/DirectBank/DirectBank_auto.qssc
finalFocus=D:/Data/DirectBank/DirectBank_auto_3rightsized.ftr
o comando
qsscorecardwizard parameters.ini
criaria um modelo de scorecard DirectBank_auto.qssc em conjunto com um novo focus
DirectBank_auto_3rightsized.ftr e um relatório modelo DirectBank.xml.
O arquivo de parâmetros tem um formato similar a um arquivo .ini do Windows:
• Cada seção é indicada por um cabeçalho de seção fechado entre colchetes, por ex., [globals].
Os quatro nomes de seção válidos estão listados abaixo.
• Os parâmetros em cada seção são definidos especificando o nome do parâmetro, o sinal igual e o
valor do parâmetro, por ex., maxBins = 20.
Guia de referência de comando de compilação de dados e do TML
117
qsscorecardwizard
• Os nomes dos parâmetros não são sensíveis a maiúsculas e minúsculas e são ignorados espaços
em branco à direita e à esquerda em cada linha.
• Linhas em branco e as linhas que começam com os caracteres de comentário # ou ; (em conjunto
com espaços em branco à esquerda) são ignoradas.
Existem valores padrão para vários parâmetros, que podem ser modificados com base no usuário ou
em todo o site, mas esses valores são sempre substituídos por parâmetros especificados no arquivo
.ini de linha de comando. Especificar um valor de parâmetro em qualquer uma das seguintes
localizações substitui qualquer definição em uma localização prévia (onde <pmhome> é o diretório de
instalação do Portrait Miner):
• As definições necessárias, por padrão, estão em
<pmhome>/ext/scorecardwizard/defaults.ini.
• Definições opcionais de todo o site em
<pmhome>/ext/scorecardwizard/scorecardwizard.ini
• Definições opcionais pelo usuário em
<pmhome>/shared/users/<user>@<domain>/scorecardwizard.ini
• O arquivo de parâmetro necessário especificado na linha de comando.
Parâmetros na seção [globais]
Parâmetro
Padrão
Descrição
inputFocus
(necessário)
A localização do focus de entrada.
objectiveField (nenhum)
O nome do campo objetivo. Necessário, a menos que o focus
contenha uma interpretação objetiva. Se definido, esta
definição substitui qualquer interpretação de focus.
useFields
(nenhum)
Uma lista separada por vírgulas dos campos de candidatos
à análise. Se definido, qualquer interpretação de candidato
à análise no focus é ignorada.
ignoreFields
(nenhum)
Uma lista, separada por vírgula, de campos a excluir da lista
de candidatos à análise.
testTrainingField (nenhum)
O campo a usar como indicador de teste-treinamento. O
campo deve ser um campo numérico binário, com 1 indicando
dados de treinamento e 0 indicando teste. Se não definido,
será gerada automaticamente uma divisão.
trainingProportion 0.5
A proporção de registros (entre 0 e 1) para selecionar para
treinamento, a menos que seja especificado
testTrainingField.
randomSeed
118
(nenhum)
A semente aleatória a usar. Se não definido, será gerada
automaticamente uma semente aleatória. É possível replicar
uma execução anterior, usando a semente informada por
essa execução (na seção "parâmetros").
Portrait Miner 7.0A
Capítulo 9: Comandos para compilar modelos
Parâmetro
Padrão
Descrição
verbose
false
Defina como verdadeira (true) para emitir informações de
diagnóstico adicionais ao log de console. Esse detalhe extra
está sempre registrado no arquivo de log; consulte logFile.
logFile
(automático)
A localização para o processo de execução do log. Se não
for especificado, o log é criado em
<parâmetros>-<AAAA-mm-dd-HH-MM-SS>.log em
conjunto com o arquivo de parâmetro <parâmetros>.ini
especificado na linha de comando. (Ao ser acionado por meio
do Portrait Miner, o log é criado em
<pmhome>/shared/logs/qsscorecardwizard-<user>-<AAAA-mm-dd-HH-MM-SS>.log.)
xmlReport
(automático)
A localização para criar o relatório de resumo XML. Por
padrão, o relatório é salvo em
<parâmetros>_report.xml em conjunto com o arquivo
de parâmetros <parâmetros>.ini especificado na linha
de comando.
Parâmetros na seção [binning otimizado]
Parâmetro
Padrão
Descrição
doOptimizedBinning
true
Defina como falso (false) para
ignorar o binning otimizado.
minBinSize
0
O número mínimo de registros
que devem aparecer em um bin
não nulo durante o binning
otimizado de campos não
categóricos. Qualquer bin
(incluindo bins nulos e
categóricos) com menos registros
irá disparar um aviso no relatório
final.
maxBins
20
O número máximo de bins que
deve ser criado para campos não
categóricos. O número de bins
selecionado pode ser inferior,
com base na restrição "ponto de
mudança" (consulte abaixo).
maxTurningPoints
2
O número máximo de mudanças
de sinal na diferença da média
do campo objetivo entre bins
consecutivos (excluindo nulo, não
classificado). Um valor 0 força o
binning final a ser monótono na
média do campo objetivo. Um
Guia de referência de comando de compilação de dados e do TML
119
qsscorecardwizard
Parâmetro
Padrão
Descrição
valor maxBins (ou superior)
remove essa restrição.
Normalmente, um valor de 1 ou
2 é razoável.
maxQuality
95
A porcentagem máxima
"verossímil" de Gini (ou R^2).
Campos com potência preditiva
acima desse limite serão
excluídos da análise. Note que
essa verificação sempre é
realizada (mesmo quando o
binning otimizado está
desativado), a menos que seja
especificado um valor de 100.
pValue
0.001
O nível de significância que
determina se um bin categórico
tem uma taxa de resposta
significativamente diferente da
população global. O valor é
especificado em uma escala de
0 a 1, normalmente próximo a 0.
Note que também é aplicada uma
correção de Bonferroni.
binnedFocus
(nenhum)
A localização para salvar o focus
provisório após o binning
otimizado, se desejado.
Parâmetros na seção [redução variável]
Parâmetro
Padrão
Descrição
doVariableReduction
true
Defina para falso (false) para
ignorar a redução variável (e usar
todos os candidatos à análise na
fase de dimensionamento correto
de modelo).
maxVariables
100
O número máximo de candidatos
à análise a permitir no modelo
final (normalmente 20 — 100).
reducedFocus
(nenhum)
A localização para salvar o focus
provisório após a redução
variável, se desejado.
Parâmetros na seção [desenvolvimento de modelo]
120
Portrait Miner 7.0A
Capítulo 9: Comandos para compilar modelos
Parâmetro
Padrão
Descrição
doModelDevelopment
true
Defina para falso (false) para
ignorar o dimensionamento
correto de modelo.
modelType
resposta
Especifica o tipo de modelo para
fins de rotulamento. Valores
válidos são: response, risk,
churn, satisfaction,
dissatisfaction.
regressionMethod
Logística
Especifica se os modelos de
scorecard devem apresentar
regressão logística ou uma
aproximação linear (mais
rápida).
regressionLevel
campo
Especifica uma estimativa de
parâmetro ao nível do field ou
bin no scorecard. A ponderação
ao nível do bin pode ser mais
precisa em dados de treinamento,
mas é provável que seja mais
adequada para dados de teste.
rightSizeCriteria
min
Especifica o critério de
dimensionamento correto usado
para selecionar o melhor número
de campos. Os valores válidos
são: BIC equivalente a Critério
de Informação Bayesiano, AIC
equivalente a Critério de
Informação de Akaike
(normalmente mais fraco que o
BIC no sentido de permitir mais
campos), delta para diminuição
de retornos em medida de
qualidade para resultados
binários (consulte
minQualityIncreasePct
abaixo), min. ou max. para o
mínimo (ou máximo) de todos os
critérios recomendados
(excluindo delta, no caso
contínuo).
minQualityIncreasePct
0.5
Esse é um parâmetro usado para
a forma delta de
rightSizeCriteria: o modelo
Guia de referência de comando de compilação de dados e do TML
121
qsscorecardwizard
Parâmetro
Padrão
Descrição
recomendado é o que apresenta
mais campos, de forma que o pior
campo adiciona pelo menos a
quantia especificada para a
porcentagem do conjunto de teste
Gini (ou R^2).
saveIntermediateModels
false
Defina para verdadeiro (true) para
salvar modelos intermediários
como arquivos .qssc e .qmml.
Caso contrário, somente a
recomendação final será salva.
predictionField
(automático)
Especifica o nome do campo de
predição para o modelo final. Se
não for definido, será usado
apenas um nome de campo
baseado no tipo de modelo, por
ex.,
assistentescorecard__response.
finalFocus
(nenhum)
A localização para salvar o focus
que contém os candidatos à
análise finais e o modelo
recomendado, se desejado.
finalModel
(nenhum)
O tronco de localização para
salvar o arquivo modelo de
scorecard final (nos formatos
.qssc e .qmml), se desejado.
runModelSnapshot
true
Se o finalModel e o
finalFocus forem
especificados e a opção for
verdadeira, será criado um
Modelo Instantâneo
(arquivo.qshtml file) em
conjunto com os arquivos
finalModel.
Consulte também
Sobre o Assistente do Scorecard na página 116
122
Portrait Miner 7.0A
Capítulo 9: Comandos para compilar modelos
qsdecisiontree
Sinopse qsdecisiontree -input <focus de origem> [-subfocus<subfocus>]
-build <especificação da compilação da árvore de decisão> -result <relatório
de compilação da árvore de decisão> [-output <focus de destino>] [-force]
Descrição: Usa uma especificação da compilação da árvore de decisão, para compilar uma árvore de
decisão no focus especificado e cria um novo relatório de compilação da árvore de decisão (contendo
estatísticas da árvore de decisão, uma pontuação de predição da árvore de decisão e uma tabela de
referência cruzada da calibração), em um formato de arquivo baseado em XML.
Argumentos opcionais
Opção
Efeito
-force
Verifique A opção de linha de comando -force
na página 24.
-output <focus de destino>
Cria esse focus, contendo um campo derivado
adicional que aplica a nova pontuação de predição
da árvore de decisão ao focus de entrada.
-subfocus <subfocus>
Usa o subfocus especificado do focus.
Além dessas opções de linha de comando, o qsdecisiontree aceita opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Exemplo:Dada a especificação da compilação da árvore de decisão,
decisiontree-specification.xml, contendo o seguinte:
<?xml version="1.0" encoding="UTF-8"?>
<decisiontree xmlns="http://www.quadstone.com/xml">
<specification nlevels="3">
<objectivefield>
<field name="Age"/>
</objectivefield>
<analysiscandidates>
<field name="Gender"/>
<field name="MaritalStatus"/>
<field name="HomeOwner"/>
</analysiscandidates>
<resultfield>
<field name="PredictedAge"/>
</resultfield>
</specification>
</decisiontree>
use essa especificação para criar um relatório de compilação da árvore de decisão
decisiontree-report.xml e criar um novo focus RetailCustAprilPredictedAge.ftr, contendo
o campo derivado da predição da árvore de decisãoPredictedAge:
qsdecisiontree -build decisiontree-specification.xml
-input RetailCustApril.ftr -result decisiontree-report.xml
-output RetailCustAprilPredictedAge.ftr
Guia de referência de comando de compilação de dados e do TML
123
qsscorecard
Consulte também
Especificação da compilação da árvore de decisão para qsdecisiontree na página 354
qsscorecard na página 124
qsscorecard
Sinopse qsscorecard -input <focus de origem> [-subfocus <subfocus>]
-build <especificação da compilação do scorecard> -result <relatório de
compilação do scorecard> [-output <focus de destino>] [-force]
Descrição: Usa uma especificação de compilação do scorecard para compilar um scorecard no focus
especificado e cria um novo relatório de compilação do scorecard (contendo suas estatísticas, uma
pontuação de predição do scorecard e uma tabela de referência cruzada de calibração) em um formato
de arquivo baseado em XML.
Argumentos opcionais
Opção
Efeito
-force
Verifique A opção de linha de comando -force
na página 24.
-output <focus de destino>
Cria esse focus, contendo um campo derivado
adicional que aplica a nova pontuação de predição
do scorecard ao focus de entrada.
-subfocus <subfocus>
Usa o subfocus especificado do focus.
Além dessas opções de linha de comando, o qsscorecard aceita opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • Para um objetivo binário, o qsscorecard usa regressão logística; para um objetivo
contínuo, usa regressão linear.
Exemplo
Dada a especificação da compilação do scorecard, scorecard-specification.xml, contendo o
seguinte:
<?xml version="1.0" encoding="UTF-8"?>
<scorecard xmlns="http://www.quadstone.com/xml">
<specification modeltype="value" nfields="2" iscontinuous="true">
<objectivefield>
<field name="Age"/>
</objectivefield>
<analysiscandidates>
<field name="Gender"/>
<field name="MaritalStatus"/>
<field name="HomeOwner"/>
</analysiscandidates>
<resultfield>
124
Portrait Miner 7.0A
Capítulo 9: Comandos para compilar modelos
<field name="PredictedAge"/>
</resultfield>
</specification>
</scorecard>
use essa especificação para criar um relatório de compilação do scorecard scorecard-report.xml
e criar um novo focus RetailCustAprilPredictedAge.ftr, contendo o campo derivado da predição
do scorecard PredictedAge:
qsscorecard -build scorecard-specification.xml
-input RetailCustApril.ftr -result scorecard-report.xml
-output RetailCustAprilPredictedAge.ftr
Consulte também
qsdecisiontree na página 123
Especificação da compilação do scorecard parna árvore de decisãoa qsscorecard na página 357
Sobre o Assistente de Regra de Associação
O Assistente de Regra de Associação automatiza a descoberta de regras de associação e sequenciação.
Isso normalmente é usado para explorar transações detalhadas do cliente, cesta ou dados do evento,
para aplicações como:
Análise de compras do consumidor: A análise da cesta de compras identifica combinações de produtos
que aparecerem (ou não aparecem) juntos com maior frequência em uma transação de compra (cesta
de itens).
Melhor produto seguinte: O melhor produto seguinte determina a sequência mais comum em que os
produtos ou serviços são comprados; por exemplo, é mais provável que os clientes do banco abram
contas de investimento/comerciais após abrirem uma conta poupança com taxa de juro elevada.
Análise de impacto do marketing: A análise de impacto do marketing identifica padrões de
comunicações de marketing mais prováveis de ocorrerem antes de uma compra
Preparação de Dados: O Assistente de Regra de Associação executa diretamente com transações ou
dados do evento armazenados em um conjunto de dados de um focus, se beneficiando do acesso aos
dados de alto desempenho do Portrait Miner.
• Para a análise da Cesta de Compras, é necessário usar um conjunto de dados de nível do item que
contenha um registro por item. O conjunto de dados deve incluir um campo identificador de cesta que
agrupe itens na mesma cesta e também um campo identificador de produto (binado e categórico) que
indica o nome ou código do produto para cada item. O conjunto de dados deve ser classificado pelo
campo-chave identificador da cesta.
• Para a análise do Produto Seguinte, é necessário escolher um conjunto de dados com um registro
por produto ou serviço. O conjunto de dados deve conter um identificar de cesta — muitas vezes o
identificador do cliente — que agrupe os produtos, juntamente com o identificador do produto (em bin
e categórico) e um carimbo de data/hora de um produto (integer ou date) que indique a ordem pela
qual os produtos foram adquiridos. O conjunto de dados deve ser classificado pelo campo-chave
identificador da cesta.
Guia de referência de comando de compilação de dados e do TML
125
Sobre o Assistente de Regra de Associação
Parâmetros do algoritmo : O Assistente de Regra de Associação apriori é baseado no algoritmo padrão
do setor e inclui uma ampla gama de funcionalidades para controlar a descoberta da regra.
É possível restringir a descoberta de regra a certos produtos de interesse e controlar vários parâmetros
que definem o que é uma regra de interesse (suporte, confiança, complexidade da regra, medidas
ampliadas de seleção de regra). Note que essas configurações podem ter impacto no tempo de execução:
em particular, reduzir o valor mínimo de suporte aumentará o tempo de execução, a menos que seja
especificada também uma complexidade de regra máxima (número de antecessores).
Terminologia: O Assistente de Regra de Associação usa diversos termos que podem ser desconhecidos,
incluindo:
Regra: Em geral, uma regra declara se um conjunto de condições é satisfeito (o lado esquerdo ou o
antecessor da regra), depois ocorrerá uma outra condição (o lado direito ou o consequente da regra).
Nas regras de associação e sequenciamento, as condições na regra correspondem à presença de
certos itens na cesta. Por exemplo, uma regra simples pode ser: se uma cesta contém pão, então
também conterá geleia.
Antecessor : O lado esquerdo de uma regra, ou seja, o conjunto de itens que devem aparecer em uma
cesta para que a regra seja relevante.
Consequente: O lado direito de uma regra, ou seja, o conjunto de itens que a regra prevê estarem
presentes quando o lado esquerdo (antecessor) é satisfeito.
Suporte: O suporte (absoluto) de um conjunto de itens corresponde ao número de cestas que contêm
todos os itens no conjunto. Suporte relativo é o mesmo número expresso como porcentagem do número
total de cestas.
Suporte da Regra: O suporte de uma regra é o suporte do antecessor da regra, ou seja, a proporção
de cestas às quais se aplica a regra do lado esquerdo. Isso mede a frequência de relevância da regra.
Confiança da Regra A confiança de uma regra é o suporte do conjunto de todos os itens que aparecem
na regra (à esquerda ou direita), dividido pelo suporte do antecessor da regra. Mede a probabilidade
do consequente da regra (lado direito) ser verdadeiro, considerando que o antecessor da regra seja
satisfeito, ou seja, a probabilidade de a regra estar correta.
Diferença de Confiança Absoluta relativamente ao Anterior: A razão das medidas de confiança
posteriores e anteriores (com e sem os itens antecessores). Isso mede a maior (ou menor) probabilidade
do consequente da regra quando o lado esquerdo da regra é verdadeiro. Por exemplo, a regra "se há
pão, então há geleia" não é muito interessante se sua confiança for similar à regra "se (qualquer coisa),
então há geleia".
Valor de elevação: A razão das medidas de confiança posteriores e anteriores (com e sem os itens
antecessores).
Resultados: São gerados vários resultados (opcionalmente), incluindo:
• Um relatório modelo em HTML interativo resume as regras criadas, as suas métricas e a opção de
filtro de regras que interessam.
• Um conjunto de dados novo criando um conjunto de dados agregado (um registro por identificador
de cesta) que indica se a regra selecionada é satisfeita nesse grupo de registros.
• As regras como código implementável no formato Transaction Measurement Language.
126
Portrait Miner 7.0A
Capítulo 9: Comandos para compilar modelos
qsruleminer
Sinopse qsruleminer -ini <arquivo de configuração> -output <arquivo de regras>
[-force]
Descrição: Descobre regras de associação e de sequenciação.
Parâmetros: O arquivo de configuração controla a forma como o processo de exploração de regra é
executado. Cada linha do arquivo pode especificar uma das opções listadas abaixo. Linhas que começam
com # ou sem um sinal igual (=) são ignoradas. (Note que comentários à direita não são suportados.)
Uma linha que comece com eof faz com que o resto do arquivo seja ignorado.
Por exemplo, o seguinte arquivo ini iria procurar regras que exibem a elevação como medida adicional
com um mínimo de três itens e um máximo de 10 itens, com um mínimo de confiança de 20%, o mínimo
de suporte de 5% e um mínimo de elevação de 25%:
focus = C:/association/MarketBasket.ftr
task = market basket
key fields = TRANS_NO
product field = ProductName
options = -tr -el -d25 -s5,0 -c20,0 -n10 -m3
eof
Parâmetro
Padrão
Descrição
focus
(necessário)
A localização do focus de
entrada.
task
(necessário)
Especifica a tarefa de descoberta.
Valores válidos são: segment,
market basket, next
product
key fields
(necessário)
Especifica um campo-chave ou
chave composta (lista de campos
separada por vírgulas) que define
uma cesta. O conjunto de dados
de entrada deve estar ordenado
relativamente à chave.
product field
(necessário)
Especifica o identificador do
campo do produto. O campo deve
ser com bin e categórico. Cada
bin define um produto separado
(por isso, pode ser usada uma
hierarquia binning para trabalhar
em diferentes níveis de detalhe
Guia de referência de comando de compilação de dados e do TML
127
qsruleminer
Parâmetro
Padrão
Descrição
com os mesmos dados de
produtos subjacentes). Não são
suportadas chaves compostas.
rhs
(nenhum)
Lista de itens separada por
vírgulas que restringe os itens
que podem surgir na parte direita
(consequente) de uma regra.
Note que não é permitido
excesso de espaços em branco
— - os rótulos itemA, itemB e
itemC precisam coincidir
exatamente com os rótulos de bin
correspondentes no campo do
produto.
timestamp field
(nenhum)
(somente tarefa de produto
seguinte) Especifica o campo que
deve ser usado como timestamp
para cada item. Deve ser do tipo
integer ou date. Não são
suportadas chaves timestamp
compostas.
segment fields
(nenhum)
(somente tarefa de segmento)
Especifica uma lista de campo
separada por vírgulas na tarefa
de descoberta do segmento. Os
rótulos de bin nos campos
especificados irão corresponder
aos itens na tarefa de descoberta.
options
(nenhum)
Passa tudo o que se estiver
depois do sinal igual diretamente
para o algoritmo apriori.
Opções de suporte apriori incluem (consulte também
http://www.borgelt.net/doc/apriori/apriori.html#options):
128
Opção
Descrição
-tr
Regras de associação de descoberta
-s<#>
Valor de suporte mínimo (padrão: 10%)
-S<#>
Valor de suporte máximo: positivo: porcentagem;
negativa: número absoluto (padrão: 100%)
-c<#>
Valor de confiança mínimo (padrão: 80%)
Portrait Miner 7.0A
Capítulo 9: Comandos para compilar modelos
Opção
Descrição
-m<#>
Número mínimo de itens por regra (padrão: 1)
-n<#>
Número máximo de itens por regra (padrão: sem
limite)
-ex
Não use uma medida de avaliação de regra
adicional
-d<#>
Valor mínimo para a medida de avaliação de regra
adicional (padrão 10%)
Para especificar a medida de avaliação de regra adicional:
-ec
Confiança da Regra
-ed
Diferença de Confiança Absoluta relativamente ao
Anterior
-el
Valor de elevação
-ea
Diferença do Valor de Elevação para 1
-eq
Diferença do Quociente de Elevação para 1
-ev
Convicção
-ee
Diferença de Convicção para 1
-er
Diferença do Quociente de Convicção para 1
-ef
Fator Certeza
-en
Medida de Quadrado Chi Normalizada
-ep
Valor P da Medida do Quadrado Chi
-ei
Diferença de Informações relativamente ao Anterior
-eg
Valor P da Estatística G
-eb
Log Binário do Quociente de Suporte
Guia de referência de comando de compilação de dados e do TML
129
Capítulo
Comandos para trabalhar
com arquivos QMML
Nesta seção:
•
•
•
•
•
•
qsqmmlview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
qsqmmledit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .132
qslt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .135
qsqmml2sas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
qsqmml2sql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .137
qsqsfmtosas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .138
10
qsqmmlview
qsqmmlview
Sinopse qsqmmlview -input <arquivo de origem QMML>
[-prettyprint | -rulesets | -ruleset <conjunto de regras>]
Descrição: Exibe informações sobre o arquivo de origem QMML: mostra os conteúdos organizadamente
formatados em XML (a opção -prettyprint). Mostra informações de resumo para todos os conjuntos
de regras no arquivo (a opção -rulesets) ou mostra informações detalhadas para um conjunto de
regras especificado (a opção -ruleset).
Por padrão, o qsqmmlview mostra informações detalhadas para todos os conjuntos de regras no
arquivo.
Argumentos opcionais: Além dos argumentos necessários, o qsqmmlview aceita as opções comuns
a todos os comandos de compilação de dados [consulte Opções padrão de linha de comando na
página 21].
Observação: • Se for especificada a opção -rulesets ou -ruleset e o arquivo QMML não for do
formulário qmml:rules, o qsqmmlview falha.
• Se dor usada a opção -ruleset e o arquivo QMML não apresentar um conjunto de
regras com o nome especificado, o qsqmmlview falha.
• Para informações sobre regras e conjuntos de regras QMML, consulte Quadstone
Metadata Markup Language.
Exemplos
Verificar qual o conjunto de regras (se houver) no documento de regras QMML model.qmml é dinâmico:
qsqmmlview -input model.qmml -rulesets
Visualizar os nomes e os tipos dos campos de entrada e de saída para o conjunto de regras (compilado)
OutcomeRules, no documento de regras QMML model.qmml:
qsqmmlview -input model.qmml -ruleset OutcomeRules
Consulte também
XML no Portrait Miner na página 340
qsqmmledit na página 132
qsqmmledit
Sinopse qsqmmledit -input <arquivo de origem QMML> [-output <arquivo de destino
QMML>]
-addrule <arquivo de regras>
132
Portrait Miner 7.0A
Capítulo 10: Comandos para trabalhar com arquivos QMML
qsqmmledit -input <arquivo de origem QMML> [-output <arquivo de destino QMML>]
-addruleset <conjunto de regras> <regra> [<regra> ...]
qsqmmledit -input <arquivo de origem QMML> [-output <arquivo de destino QMML>]
-deleteruleset <conjunto de regras> qsqmmledit -input <arquivo de origem
QMML>
[-output <arquivo de destino QMML>]
-parse
[-s]
qsqmmledit -input <arquivo de origem QMML> [-output <arquivo de destino QMML>]
{-compile | -compile <conjunto de regras> [<conjunto de regras> ...] }
[-l] [-s]
qsqmmledit
-input <arquivo de origem QMML> [-output <arquivo de destino QMML>]
{-setlive | -setlive <conjunto de regras> | -setlive <conjunto de regras>
true | -setlive <conjunto de regras> false}
Descrição: Modifica o arquivo de origem QMML (se a opção -output não for usada) realizando uma
das seguintes operações:
• Adiciona uma regra de um arquivo de regras, que é um arquivo padrão XML contendo elementos
<field>, ou um arquivo QMML de intercâmbio FDL, contendo regras em elementos de
<fdl-derivation> e <fdl-function>.
Dá o nome Rule a uma regra sem nome. Se o arquivo de origem QMML não for do formulário
qmml:rules, ou se já apresentar uma regra com o mesmo nome de uma outra regra qualquer do
arquivo de regras, o qsqmmledit falha.
• Adiciona um conjunto de regras contendo uma ou mais regras (já existentes como elementos de
<field> ao arquivo de origem QMML).
Se o arquivo de origem não for do formulário qmml:rules ou se já apresentar um conjunto de regras
com o nome especificado do conjunto de regras, ou se não apresentar regras com todos os nomes
especificados, o qsqmmledit falha.
• Exclui um conjunto de regras (mas não as regras que contém).
Se o arquivo de origem QMML não for do formulário qmml:rules, ou se não apresentar um conjunto
de regras com o nome especificado, o qsqmmledit falha.
• Analisa o arquivo.
Se for usado Arquivo->Exportar como QMML no Decision Studio para criar o arquivo de origem
QMML, o Portrait Miner analisa o arquivo QMML automaticamente. Neste caso, não é necessário
usar o comando -parse. Caso contrário, o comando -parse é um pré-requisito para a compilação.
Se o arquivo de origem QMML não for da forma qmml:rules, o qsqmmledit não faz nada (a menos
que seja usada a opção -s e, nesse caso, falha). Se o arquivo QMML for da forma qmml:rules, o
qsqmmledit tenta analisar todas as regras não analisadas. Se uma regra não puder ser analisada,
Guia de referência de comando de compilação de dados e do TML
133
qsqmmledit
o qsqmmledit produz uma mensagem de aviso e continua com a regra seguinte (a menos que seja
usada a opção -s e, nesse caso, falha).
• Compila todos os conjuntos de regras ou os conjuntos de regras especificados (um pré-requisito para
a implementação).
Se o arquivo de origem QMML não for da forma qmml:rules, o qsqmmledit não faz nada (a menos
que seja usada a opção -s e, nesse caso, falha). Se uma regra não for analisada, o qsqmmledit
falha.
• Identifica todos os conjuntos de regras como dinâmicos (prontos para implementação) ou identifica
um conjunto de regras especificado como dinâmico (verdadeiro, padrão) ou não (falso).
Se o arquivo de origem QMML não for da forma qmml:rules ou se não apresentar um conjunto de
regras com o nome especificado ou se o conjunto de regras especificado não estiver compilado, o
qsqmmledit falha.
Argumentos opcionais
Opção
Efeito
-l
À medida que cada conjunto de regras for
compilado, identifica-o como dinâmico.
-output <arquivo de destino QMML>
Em vez de modificar o arquivo de origem QMML,
cria o arquivo de destino QMML especificado e
aplica as mudanças solicitadas a ele.
-s
Trata o arquivo estritamente, não permitindo
conjuntos de regras vazios. Ao usar com a opção
-parse, falha se o arquivo de origem QMML não
for da forma qmml:rules ou se alguma regra não
analisada no arquivo de origem não puder ser
analisada. Ao usar com a opção -compile, falha
se o arquivo de origem QMML não for da forma
qmml:rules.
Além dessas opções de linha de comando, o qsqmmleditaceita opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • Para informações sobre regras e conjuntos de regras QMML, consulte Quadstone
Metadata Markup Language.
• Uma regra só pode ser analisada se for suportada pela variante RealTime do FDL.
Exemplos
Adicionar regras a partir de um arquivo QMML de intercâmbio FDL model.xfdl para o documento de
regras QMML model.qmml:
qsqmmledit -input model.qmml -addrule model.xfdl
134
Portrait Miner 7.0A
Capítulo 10: Comandos para trabalhar com arquivos QMML
Atribuir uma regra Outcome no documento de regras QMML model.qmml a um novo conjunto de
regras OutcomeRules:
qsqmmledit -input model.qmml
-addruleset OutcomeRules Outcome
Implantar o documento de regras QMML model.qmml, analisando todos os FDLs incorporados,
compilando todos os conjuntos de regras e identificando o conjunto de regras OutcomeRules como
dinâmico:
qsqmmledit -input model.qmml -parse
qsqmmledit -input model.qmml -compile
qsqmmledit -input model.qmml -setlive OutcomeRules
Consulte também
XML no Portrait Miner na página 340
qslt na página 135
qsqmmlview na página 132
qslt
Sinopse qslt {-input <arquivo de origem> | -input -}
[-output <arquivo de destino> | -output -]
[[-source <tipo de origem>] [-target <tipo de destino>] | -transform <nome
da transformação>]
[-spec <arquivo de especificação>
Descrição: Transforma o arquivo de origem especificado ou a entrada padrão (com -input -) para
um formato diferente, gravando o resultado, por padrão, na saída padrão.
Por padrão, o qslt deduz os tipos de arquivo de origem e de destino a partir das extensões do nome
do arquivo (se houver) e a partir dos conteúdos do arquivo, no caso de um arquivo de origem XML. Em
seguida, tenta encontrar e aplicar uma transformação que coincida com esses tipos. Se não houver
nenhuma ou se houver mais de uma transformação possível, o comando não faz nada, emite uma
mensagem de erro, e falha.
As transformações padrão que coincidem com os tipos de arquivo de origem e de destino são:
• De fdl (uma expressão FDL ou um conjunto de instruções create TML) para expressões qmml
(FDL totalmente analisada em QMML)
• De fdl (uma expressão FDL ou um conjunto de instruções create TML) para qmml:x-fdl o
(formato de intercâmbio FDL QMML) e vice-versa
• De qmml:expressions (FDL totalmente analisada em QMML) para qmml:x-fdl (formato QMML
de intercâmbio FDL)
• De qmml:rules (formato de regras QMML) para fdd (formato de descrição de dados simples)
Guia de referência de comando de compilação de dados e do TML
135
qslt
A transformação padrão restante é a transformação chamada prettyprint, que transforma XML
arbitrário em XML organizadamente formatado (com quebras de linha e recuo). Só é possível selecioná-la
usando a opção -transform.
Argumentos opcionais
Opção
Efeito
-output <arquivo de destino>
Grava os dados transformados neste arquivo de
destino (substituindo qualquer arquivo existente
com o mesmo nome).
-output -
Grava os dados transformados na saída padrão
(a definição padrão, se não for especificada uma
opção -output).
-source <tipo de origem>
Considera somente transformações que coincidam
com este tipo de origem (substituindo um tipo de
origem deduzido, se houver). É necessário
especificar essa opção se o qslt estiver lendo a
partir de uma entrada padrão.
-spec <arquivo de especificação>
Localiza a transformação pretendida nesse arquivo,
ignorando as transformações padrão e qualquer
personalização de todo o sistema ou especificada
pelo usuário.
-target <tipo de destino>
Considera somente transformações que coincidam
com este tipo de destino (substituindo um tipo de
destino deduzido, se houver). É necessário
especificar essa opção se o qslt estiver gravando
em uma saída padrão.
-transform <nome da transformação>
Usa o nome da transformação em vez de
selecionar uma transformação com base nos tipos
de origem e de destino.
Além dessas opções de linha de comando, o qslt aceita as opções comuns a todos os comandos de
compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação: • Ao converter entre o tipo fdl e QMML, as instruções create TML correspondem a
derivações de campo com nome em QMML, enquanto expressões FDL simples
correspondem a derivações de campo sem nome em QMML.
• A conversão do tipo qmml:rules para fdd omite campos derivados.
• Assim como acontece nos tipos de transformação padrão, é possível definir
transformações personalizadas baseadas em todo o sistema ou especificadas pelo
usuário. As transformações personalizadas podem aceitar opções de linha de comando
adicionais.
• Para detalhes sobre as formas QMML qmml:expressions, qmml:rules, e
qmml:x-fdl, consulte Quadstone Metadata Markup Language.
Exemplos
136
Portrait Miner 7.0A
Capítulo 10: Comandos para trabalhar com arquivos QMML
Transformar o campo de metadados representado pelo arquivo FDD model.fdd em um documento
de regras "vazio" QMML model.qmml (descrevendo um conjunto de campos, mas não contendo regras),
usando uma transformação especificada pelo usuário descrita no arquivo ext/qmml/qslt.xml:
qslt -source fdd -target qmml:rules -input model.fdd
-output model.qmml -spec ext/qmml/qslt.xml
Transformar uma expressão FDL no arquivo model.fdl para o formato QMML de intercâmbio FDL,
gravando o resultado no arquivo model.xfdl:
qslt -source fdl -target qmml:x-fdl -input model.fdl
-output model.xfdl
Consulte também
XML no Portrait Miner na página 340 qsqmmledit na página 132
qsqmml2sas
Sinopse qsqmml2sas <arquivo QMML>
Descrição: Converte um arquivo QMML em um arquivo SAS que apresenta instruções SAS separadas
para cada derivação de campo.
Observação: • O comando é experimental.
• É possível acessar a maior parte das funcionalidades do comando de compilação de
dados qsqmml2sas, usando a caixa de diálogo Converter para SAS, no Portrait
Miner.
Exemplo
Converter model.qmml para model.sas:
qsqmml2sas model.qmml
qsqmml2sql
Sinopse qsqmml2sql <arquivo QMML>
{Oracle | Teradata V2Rx | MS SQL Server}
<tabela de origem>
[<campo> [, <campo> ... ]]}
Descrição: Usa um tipo de banco de dados suportado e uma tabela de origem para converter um
arquivo QMML em um arquivo SQL que apresenta uma instrução SQL SELECT separada para cada
derivação de campo.
Argumentos opcionais
Guia de referência de comando de compilação de dados e do TML
137
qsqsfmtosas
Opção
Efeito
<campo> [, <campo> ... ]
Converte somente campos derivados.
Observação: • O comando é experimental.
• É possível acessar a maior parte das funcionalidades do comando de compilação de
dados qsqmml2sql, usando a caixa de diálogo Converter para SQL, no Portrait
Miner.
Exemplo
Converter model.qmml em model.sql, criar instruções SELECT para Microsoft SQL Server e usar
prod.customer como a tabela de origem para qualquer pontuação.
qsqmml2sas model.qmml "MS SQL Server" prod.customer
qsqsfmtosas
Sinopse qsqsfmtosas <arquivo de metadados>
Descrição: Converte derivações de um arquivo de metadados em um arquivo SAS que apresenta uma
instrução SAS separada para cada derivação de campo.
Observação: • O comando é experimental.
• É possível acessar a maior parte das funcionalidades do comando de compilação de
dados qsqsfmtosas usando a caixa de diálogo Converter para SAS, no Portrait
Miner.
Exemplo
Converter metadata.qsfm para metadata.sas:
qsqsfmtosas metadata.qsfm
138
Portrait Miner 7.0A
Capítulo
Outros comandos
Nesta seção:
• qsmapgen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .140
11
qsmapgen
qsmapgen
Sinopse qsmapgen
-input <hieraquia categórica> [-input <hieraquia categórica> ...]
-name <nome do mapa> -output <diretório> [-overwrite]
[-style radial_drill | -style radial_layers]
Descrição: Cria, a partir de um ou mais arquivos de hierarquias categóricas (normalmente com extensão
do nome de arquivo .hrc), uma representação das hierarquias categóricas apropriadas para uso no
Visualizador de Mapas do Decision Studio, com uma região correspondente a cada categoria. Cria o
mapa dos mapas no diretório especificado, usando o nome do mapa especificado como base dos nomes
dos arquivos.
Argumentos opcionais
Opção
Efeito
-overwrite
Permite arquivos de mapas novos especificados
usando as opções -name e -output para
substituir arquivos existentes.
Sem a opção -overwrite, se algum dos arquivos
de mapa a serem criados já existirem, o comando
não faz nada (exceto emitir um aviso).
-style radial_drill
Cria uma hierarquia de mapas apropriados para
fazer uma busca detalhada no Visualizador de
Mapas do Decision Studio, com o mapa de nível
superior (exibido inicialmente) baseado no binning
de alta granularidade em cada hierarquia binning
categórica (padrão, se não for especificada uma
opção -style).
-style radial_layers
Cria um mapa independente para cada nível nas
hierarquias binning categóricas, para que um
usuário do Decision Studio possa escolher o grau
de granulidade em que irá ver os campos no
Visualizador de Mapas, mas sem a opção de busca
detalhada.
Além dessas opções de linha de comando, o qsmapgen aceita as opções comuns a todos os comandos
de compilação de dados [consulte Opções padrão de linha de comando na página 21].
Observação:
• Se um arquivo de hierarquia categórica não especificar uma hieraquia correta, o qsmapgen falha.
• Não deve ser usado um valor de campo em mais de um arquivo de hierarquia categórica. Se for
usado, o comportamento do qsmapgen é indefinido.
140
Portrait Miner 7.0A
Capítulo 11: Outros comandos
• Se for especificado um nome de categoria em mais de um arquivo de hierarquia categórica, ou em
mais de um nível do mesmo arquivo, o qsmapgen adiciona um ou mais sufixos aos nomes das regiões
para garantir exclusividade.
• Para um mapa produzido usando -style radial_drill (ou nenhuma opção -style especificada),
o mapa de nível superior consiste de arquivos .mif e .mid, nomeados usando o nome de mapa
especificado. Mapas de busca detalhada para o próximo nível de detalhe estão dentro do próximo
subdiretório. Mapas em níveis de detalhe subsequentes (se houver) estão dentro do próximo
subdiretório desse diretório, e assim por diante.
• Os mapas produzidos usando -style radial_layers consistem de pares de arquivos .mif e
.mid, cada um nomeado por meio do nome do mapa fornecido juntamente com um sufixo numérico
correspondendo ao nível na hieraquia.
• Usando o Portrait Miner, é possível acessar a maior parte das funcionalidades do qsmapgen por
meio da caixa de diálogo Criar mapa de categoria .
Exemplos: Dado um arquivo de hierarquia categórica Referrer.hrc, contendo o seguinte:
B, Banner Ad, Marketing
D, Direct, Direct
E, E-mail Link, Marketing
G, Google, Search Engine
M, MSN, Search Engine
Y, Yahoo, Search Engine
L, Lycos, Search Engine
e o arquivo de hierarquia categórica PurchasePage.hrc, que contém o seguinte:
01, Menswear
02, Womens
03, Kids
04, Home
criar um arquivo de mapa clickthru.mif (e arquivos de suporte) apropriados para busca detalhada,
em um novo diretório webmaps:
qsmapgen -input Referrer.hrc -input PurchasePage.hrc
-output webmaps -name clickthru
O mapa de nível superior tem as seguintes regiões (os "picos" na circunferência indicam regiões que
suportam a busca detalhada até o próximo nível):
Guia de referência de comando de compilação de dados e do TML
141
qsmapgen
Busca detalhada na região "SearchEngine" produz um mapa com as seguintes regiões:
Se preferir, crie arquivos de mapas independentes clickthru_layer_1.mif e
clickthru_layer_2.mif (e arquivos de suporte) no diretório webmaps:
qsmapgen -input Referrer.hrc -input PurchasePage.hrc
-output webmaps -name clickthru_layer -style radial_layers
O mapa clickthru_layer_1.mif tem as seguintes regiões:
142
Portrait Miner 7.0A
Capítulo 11: Outros comandos
e o mapa clickthru_layer_2.mif tem as seguintes regiões:
Guia de referência de comando de compilação de dados e do TML
143
Capítulo
Linguagem de Medição de
Transação (TML)
Nesta seção:
• Sobre Transaction Measurement Language . . . . . . . . .146
• Sintaxe TML . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146
• Palavras reservadas em TML . . . . . . . . . . . . . . . . . . . . . .147
12
Sobre Transaction Measurement Language
Sobre Transaction Measurement Language
A Transaction Measurement Language (TML) é um conjunto de invólucros sintáticos leves, em torno
de expressões FDL, usada para especificar derivações e agregações de campo em conjunto com os
assistentes Derivar Campos e Agregar Registros e os comandos de compilação de dados do Portrait
Miner qsderive, qsmeasure, qstrack e qsselect.
Consulte também
Sobre Linguagem de Campo Derivado (FDL) na página 180
qsderive na página 63
qsmeasure na página 66
qsselect na página 72
qstrack, na página 70
Sintaxe TML na página 146
Sintaxe TML
Um arquivo de derivações, rastreios, seleções ou agregações contém uma ou mais instruções TML
create, enquanto um arquivo de estatísticas contém uma ou mais instruções TML calculate.
• A TML é uma linguagem sensível a maiúsculas e minúsculas:
• Palavras-chave da TML (create, by, string etc.) são escritas em minúsculas, exceto em
STATISTIC.
• Os nomes de todas as funções de agregação [consulte Funções de agregação para medições
e derivações na página 160] estão escritos em letra minúscula.
• Os nomes Average, average e AVERAGE referem-se todos a campos ou estatísticas diferentes.
• Nomes para campos e estatísticas devem começar com uma letra ("A" — "Z" ou "a" — "z"), conter
apenas letras, dígitos e sublinhado ("_") e não podem ter mais que 128 caracteres; opcionalmente,
pode ficar entre aspas simples, por exemplo, 'CustomerID'. É necessário colocar o nome de um
campo ou estatística entre aspas simples se ele coincidir com uma palavra reservada à TML ou FDL,
ou diferir somente quanto ao uso de maiúsculas ou minúsculas.
• A sintaxe TML é descrita através de diagramas de ferrovia como esse:
Desde que siga as setas e não volte para trás, qualquer caminho no diagrama de ferrovia leva a uma
TML sintaticamente válida (mesmo que não faça sentido):
146
Portrait Miner 7.0A
Capítulo 12: Linguagem de Medição de Transação (TML)
• Palavras em caixas ovais/circulares (tal como create) são palavras-chave TML; devem ser escritas
exatamente como aparecem.
• A pontuação nas caixas ovais também deve ser escrita (como ":" e ":=") exatamente como aparecem
(não pode haver espaço entre ":" e "=" em ":=").
• Não esqueça o ponto e vírgula que termina cada instrução TML.
• Termos em caixas retangulares (como expressões) referem-se a outros diagramas de ferrovia ou
formas descritas em outros locais em palavras; não devem ser escritas literalmente.
• A TML é uma linguagem formatada livremente: é possível quebrar linhas ou inserir espaço extra entre
elementos sintáticos (em caixas ovais/circulares nos diagramas de ferrovia) sem afetar a interpretação
de um arquivo de derivações, rastreios, seleções, agregações ou estatísticas.
• Além de introduzir espaços entre elementos sintáticos, é possível incluir comentários, começando
com barras duplas ("//") e continuando até o final da linha.
• Sempre que a sintaxe TML exigir uma expressão, é possível usar qualquer expressão FDL [consulte
Expressões na página 184], exceto expressões que usem uma palavra reservada TML, ponto e vírgula
ou chaves {...}, que devem ficar entre parênteses (...).
Consulte também
Sobre Transaction Measurement Language na página 146
Avaliação das estatísticas do focus: a instrução calculate na página 156
Definição de campo: a instrução create na página 150
Palavras reservadas em FDL na página 204
Palavras reservadas em TML na página 147
Palavras reservadas em TML
Os seguintes tokens são palavras reservadas em TML:
aggregation, all, and, as, auto, automatic, bin, binning, bool, boolean, by,
calculate, constant, create, crosstab, date, default, description, dimension,
double, drl, enum, except, fields, file, float, format, from, full, function,
group, include, inplace, input, int, integer, join, left, long, merge, meta,
modifiable, normal, on, open, outer, outfile, output, parameter, pragma,
real, ref, reference, rename, right, separate_functions, short,
Para usar uma palavra reservada ou uma palavra que difere somente no uso de maiúsculas e minúsculas,
como nome de campo ou estatística em TML ou como um identificador [consulte Expressões na página
184] em FDL, é necessário colocá-lo entre aspas simples — por exemplo, 'Date'.
Consulte também
Sobre Transaction Measurement Language na página 146
Palavras reservadas em FDL na página 204
Guia de referência de comando de compilação de dados e do TML
147
Capítulo
Instruções TML
Nesta seção:
• Definição de campo: a instrução create . . . . . . . . . . . . .150
• Usando funções de agregação e as cláusulas where e
default . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .152
• Dividir agregações: a cláusula by . . . . . . . . . . . . . . . . . .154
• Avaliação das estatísticas do focus: a instrução
calculate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .156
13
Definição de campo: a instrução create
Definição de campo: a instrução create
A instrução create define um campo por derivação ou agregação, dependendo do contexto em que
aparece.
derivations: O arquivo de derivações para qsderive ou a janela Campos Derivados equivalente, o
arquivo de rastreios para qstrack e o arquivo de seleções para qsselect devem conter instruções
create, da seguinte forma:
É possível que opcionalmente o arquivo de agregações para qsmeasure ou a janela Agregar Registros
equivalente contenham instruções create, da seguinte forma:
Em ambos os casos, a instrução create define um campo chamado nome, em termos de uma expressão
FDL [consulte Expressões na página 184]. O tipo de dado do campo é o tipo de dado da expressão, a
não ser que seja substituído especificando um tipo compatível [consulte Tipos de Dados na página
182].
• Para cada instrução create sucessiva, o qsderive ou a janela Campos Derivados equivalente
derivam um campo no focus de saída usando a expressão fornecida, sendo possível se referir a
campos no focus de origem e a campos derivados anteriormente no arquivo de derivações.
• Para cada instrução create sucessiva no arquivo de rastreios, o qstrack deriva um campo usando
a expressão fornecida, sendo possível se referir a campos no focus de origem e a campos derivados
anteriormente no arquivo de rastreios, assim como também a estatísticas de focus definidas em
quaisquer arquivos de estatísticas. A expressão envolve, normalmente, variáveis de estado [consulte
Variáveis na página 188].
• Dado um arquivo de seleções, o qsselect deriva um campo correspondente, por padrão, à primeira
instrução create e ignora quaisquer outras instruções no arquivo. É necessário que a expressão de
definição seja de tipo booleano (ou compatível).
• Para cada instrução create sucessiva dessa forma no arquivo de agregações, o qsmeasure ou a
janela Agregar Registros deriva um campo no focus de saída usando a expressão fornecida, sendo
possível se referir a campos derivados anteriormente no arquivo de agregações e a estatísticas de
focus definidas em quaisquer arquivos de estatística.
• Uma instrução temporary tem o mesmo efeito de uma instrução create, exceto que o campo não
aparece no focus de saída. No entanto, ainda é possível consultar o campo temporário nas expressões
subsequentes no arquivo de agregações.
Agregações É possível que o arquivo de agregações para o qsmeasure ou a janela Agregar Registros
equivalente contenham instruções create da seguinte forma:
150
Portrait Miner 7.0A
Capítulo 13: Instruções TML
Para cada instrução create desse formulário no arquivo de agregações, o qsmeasure ou a janela
Agregar Registros deriva eficazmente um campo virtual correspondente à expressão seguindo a função
de agregação. É possível a essa expressão se referir a campos no focus de origem.
Após derivar o campo virtual, o qsmeasure ou a janela Agregar Registros aplica a função de agregação
[consulte Usando funções de agregação e as cláusulas where e default na página 152].
O tipo de dado padrão do(s) campo(s) resultante(s) depende da função de agregação e dos valores,
operadores e funções envolvidas na expressão a que se aplicam, mas é possível ser substituído
especificando um tipo compatível.
Uma instrução temporary tem o mesmo efeito de uma instrução create, exceto que o campo não
aparece no focus de saída. No entanto, ainda é possível consultar o campo temporário nas expressões
subsequentes no arquivo de agregações.
Observação: • No qsderive ou nos arquivos de derivações Campos Derivados, nos arquivos de
seleção qsselect e arquivos de rastreios qstrack, é possível que a expressão
envolva estatísticas de campo, variáveis globais e funções definidas nesses termos.
Esses recursos FDL não estão disponíveis em um qsmeasure ou arquivo de
agregações Agregar Registros.
• É necessário colocar parênteses extras contendo a expressão, se ela contiver ponto
e vírgula, chaves ou uma palavra reservada da TML [consulte Palavras reservadas
em TML na página 147].
• É necessário que cada instrução create comece em uma nova linha.
Exemplos
Dado o arquivo de derivações, derivations-customer.tml, contendo o seguinte:
// Length of standing of customer in months
create CustMonths := countwholemonths(StartDate, today());
// A key field of extended length
create CustomerID_24 : string(24) := CustomerID;
Aplique essas derivações ao focus RetailCustApril.ftr para criar um novo focus
RetailCustAprilDeriv.ftr:
qsderive -derivations derivations-customer.tml
-input RetailCustApril.ftr -output RetailCustAprilDeriv.ftr
Dado o arquivo de seleções selections-customer.tml, contendo o seguinte:
// Select male customers aged between 18 and 65 inclusive.
create Selection := Gender = 1 and Age >= 18 and Age <= 65;
Guia de referência de comando de compilação de dados e do TML
151
Usando funções de agregação e as cláusulas where e default
Aplique essas seleções ao focus RetailCustApril.ftr para criar um novo focus
RetailCustAprilDeriv.ftr:
qsselect -selections selections-customer.tml
-input RetailCustApril.ftr%
-output RetailCustAprilSelection.ftr
Dado o arquivo de agregações, aggregations-mostRecent.tml, contendo o seguinte:
temporary LastPurchase := max(PurchaseDate);
create AvgTransVal := mean(Amount - 0.01 * PointsRedeemed);
create NumTrans := count();
create MonthsSinceLastPurchase :=
countwholemonths(LastPurchase, today());
Aplicar essas agregações ao focus RetailTransApril.ftr para criar um focus orientado para cliente
RetailAggRecentApril:
qsmeasure -aggregations aggregations-mostRecent.tml
-input RetailTransAprilSorted.ftr -output RetailAggRecentApril%
-keys CustomerID
Consulte também
Funções de agregação para medições e derivações na página 160
qsderive na página 63
qsmeasure na página 66
qsselect na página 72
qstrack, na página 70
Dividir agregações: a cláusula by na página 154
Usando funções de agregação e as cláusulas where
e default
É possível agregar dados usando o qsmeasure ou a janela Agregar Registros equivalente.
Ao usar uma instrução create em um arquivo de agregações [consulte Definição de campo: a
instrução create na página 150], o qsmeasure ou a janela Agregar Registros deriva eficazmente um
campo virtual correspondente à expressão entre parênteses seguidas da função agregação.
Conceitualmente, o qsmeasure ou a janela Agregar Registros dividem os registros no focus de origem
— aumentados pelo campo virtual — em grupos de registros com o mesmo valor do campo-chave. Para
cada grupo de registros (correspondendo a apenas um valor do campo-chave), o qsmeasure ou a
janela Agregar Registros aplicam a função de agregações aos valores do campo virtual dentro desses
registros, para produzir apenas um valor de resultado.
152
Portrait Miner 7.0A
Capítulo 13: Instruções TML
Os valores do resultado para todos os grupos juntos constituem um novo campo, com o mesmo nome
fornecido na instrução create — a não ser que a instrução create contenha uma cláusula by [consulte
Dividir agregações: a cláusula by na página 154].
Dentro de cada grupo de registros com um valor de campo-chave comum, certas funções de agregação
ignoram os registros para o qual o campo virtual contém um nulo [consulte O valor nulo na página 182].
Se a instrução create tiver uma cláusula where, a função de agregação ignora os registros para os
quais a expressão associada avalia para 0 ("falso"). É possível a essa expressão se referir a campos
no focus de origem.
Como é possível que as funções de agregação ignorem alguns dos registros em um grupo com um
valor de campo-chave comum, é possível saltar todos os registros no grupo. Muitas funções de agregação
devolvem o valor nulo. Ao incluir uma cláusula default, é possível especificar uma expressão constante
a ser avaliada em vez de a agregação no caso de ser devolvido um nulo.
Observação: Ao usar a função de agregação sum [consulte sum (um argumento) na página 177],
deve ser especificada uma soma padrão de 0. Se não for usada uma cláusula default,
a soma de uma seleção de registro vazio é nula, o que, certamente, não é desejado.
Exemplos Dado o arquivo de agregações, aggregations-purchaseSummary.tml, contendo o
seguinte:
create
create
create
create
firstPurchaseDate := first(PurchaseDate);
commonPaymentMethod := mode(PaymentMethod);
Spend := sum(Amount) default 0;
SpendInStore800 := sum(Amount)
where Store = "0800" default 0;
create proportionSpendInStore800 := SpendInStore800 / Spend;
create NumTransCRRedeemed := count()
where PaymentMethod = "CR" and not isnull(PointsRedeemed);
Aplicar essas agregações ao focus RetailTransApril.ftr para criar um focus orientado para cliente
RetailAggSummaryApril:
qsmeasure -aggregations aggregations-purchaseSummary.tml
-input RetailTransAprilSorted.ftr -output RetailAggSummaryApril
-keys CustomerID
Consulte também
Funções de agregação para medições e derivações na página 160
Guia de referência de comando de compilação de dados e do TML
153
Dividir agregações: a cláusula by
Expressões na página 184
Dividir agregações: a cláusula by
O arquivo de agregações para qsmeasure ou a janela Agregar Registros equivalente contêm uma
sequência de instruções create [consulte Definição de campo: a instrução create na página 150].
Como parte dessa instrução create, é possível incluir opcionalmente uma cláusula by, para dividir
sua agregação de acordo com a aplicação de uma função split ou a função bin a uma expressão derivada
de outros campos.
Por cada i integer possivelmente retornado pela função split ou a função bin, o qsmeasure ou a janela
Agregar Registros criam um campo separado, contendo somente valores agregados dos registros
para o qual a aplicação de função avalia para i. O nome de cada um desses campos relacionados é
formado a partir do nome na instrução create juntamente com um sufixo que depende da função usada
para dividir a agregação.
• As seguintes funções internas de divisão estão disponíveis (com sufixos de nome de campo fornecidos
correspondendo a valores de função sucessivos):
Função
Sufixos de nome de campo
day
"_1," "_2," "_3," ..., "_31"
dayofweek
"Sun," "Mon," "Tue," ..., "Sat"
hour
"0000," "0100," "0200" ..., "2300"
isnull
"NonNull," "Null"
match
"MisMatch," "Match"
member
"NotMember," "Member"
minute
"0," "1," "2," ..., "59"
month
"Jan," "Feb," "Mar," ..., "Dec"
second
"0," "1," "2," ..., "59"
sgn
"Negative," "Zero," "Positive"
strmember
"NotMember," "Member"
weekofyear
"_1," "_2," "_3," ..., "_53"
• É possível usar a função bin para aplicar um binning FDL a uma expressão. Usada como uma função
de divisão, a função bin dá origem a sufixos de nome de campo "_1," "_2," ..., "_n," "_null," e "_other"
(onde n depende do número de bins no binning).
• Também é possível configurar sua função de divisão [consulte Funções definidas pelo usuário na
página 190]. O atributo element_names define os sufixos dos nomes de campo correspondentes aos
valores de retorno das funções.
154
Portrait Miner 7.0A
Capítulo 13: Instruções TML
Exemplos Fornecido o arquivo de agregações, aggregations-builtinSplit.tml, contendo o
seguinte:
create numberPurchases := count();
create numberPurchasesOn_ := count() by dayofweek(PurchaseDate);
create proportionPurchases_Mon :=
numberPurchasesOn_Mon / numberPurchases;
create purchaseAmountIn_ :=
sum(Amount) by month(PurchaseDate) default 0;
Aplicar essas agregações ao focus RetailTransApril.ftr para criar um focus orientado para cliente
RetailDateSplitsApril.ftr contendo os campos CustomerID, numberPurchases,
numberPurchasesOn_Sun, numberPurchasesOn_Mon, ..., numberPurchasesOn_Sat,
proportionPurchases_Mon e purchaseAmountIn_Jan, purchaseAmountIn_Feb, ...,
purchaseAmountIn_Dec:
qsmeasure -aggregations aggregations-builtinSplit.tml -keys CustomerID -input RetailTransApril.ftr
-output RetailDateSplitsApril.ftr
Fornecido o arquivo de agregações, aggregations-binSplit.tml, contendo o seguinte:
create numberPurchasesAmountBand :=
count() by bin(EqualRange(20,100,4),Amount);
create numberPurchasesDateBand := count() by
bin(PrePost(todate(19990401), todate(19990501),
todate(19990601)), PurchaseDate);
create ratioPrePost :=
numberPurchasesDateBand_3 / numberPurchasesDateBand_2;
Aplicar essas agregações ao focus RetailTransApril.ftr para criar um focus orientado para cliente,
RetailRangeSplitsApril.ftr, contendo os campos CustomerID,
numberPurchasesAmountBand_1, numberPurchasesAmountBand_2, ...,
numberPurchasesAmountBand_6, numberPurchasesAmountBand_null,
numberPurchasesAmountBand_other (correspondendo a dois últimos bins, quatro bins internos e
o bin nulo e não classificado), numberPurchasesDateBand_1, numberPurchasesDateBand_2,
..., numberPurchasesDateBand_4, numberPurchasesDateBand_null,
numberPurchasesDateBand_other, e ratioPrePost:
qsmeasure -aggregations aggregations-binSplit.tml -keys CustomerID -input RetailTransApril.ftr -output
RetailRangeSplitsApril.ftr
Fornecido o arquivo de funções FDL, fdl-functions-storeGroups.fdl, contendo o seguinte:
function StoreGroupFunction( Store )
[
element_names = "North, South, East, West"
]
{
case
Store = "0000" or Store = "0800" : 1;
Store = "0300" or Store = "0600" or Store = "0700" : 2;
Store = "0100" or Store = "0400" : 3;
default : 4;
}
Fornecido o arquivo de agregações, aggregations-userDefinedSplit.tml, contendo o seguinte:
create totalPurchases := sum(Amount);
create totalPurchasesByStore_ :=
sum(Amount) by StoreGroupFunction( Store );
Guia de referência de comando de compilação de dados e do TML
155
Avaliação das estatísticas do focus: a instrução calculate
create proportionPurchases_North :=
totalPurchasesByStore_North / totalPurchases;
Aplicar essas agregações ao focus RetailTransApril.ftr para criar um focus orientado para cliente,
RetailGroupSplitsApril.ftr, contendo os campos CustomerID, totalPurchases,
totalPurchasesByStore_North, totalPurchasesByStore_South, totalPurchasesByStore_East,
totalPurchasesByStore_West, e proportionPurchases_North:
qsmeasure -aggregations aggregations-userDefinedSplit.tml
-library fdl-functions-storeGroups.fdl
-keys CustomerID
-input RetailTransApril.ftr -output RetailGroupSplitsApril.ftr
Consulte também
Funções de agregação para medições e derivações na página 160
Expressões na página 184
Usando funções de agregação e as cláusulas where e default na página 152
Avaliação das estatísticas do focus: a instrução
calculate
O arquivo de estatísticas para o qsmeasure, a janela Agregar Registros equivalente ou o qstrack
contêm instruções calculate da seguinte forma:
A instrução calculate define uma estatística de focus chamada nome em termos de uma função de
agregação aplicada a uma expressão FDL [consulte Expressões na página 184], que pode se referir a
campos no focus de origem.
No caso de uma medição [consulte Usando funções de agregação e as cláusulas where e default
na página 152], o qsmeasure, o qstrack ou a janela Agregar Registros deriva efetivamente um
campo virtual correspondendo à expressão entre parênteses após a função de agregação.
A instrução calculate dá origem a apenas um valor de resultado, obtido por meio da aplicação da
função de agregação a todos os valores no campo virtual. (Em contraste, uma instrução create em
um arquivo de agregações dá origem a um campo no qual cada valor é obtido pela aplicação da função
de agregação aos valores no campo virtual para um grupo de registros.)
O tipo de dado padrão de uma estatística de focus depende da função de agregação e dos valores,
operadores e funções envolvidas na expressão a que se aplicam, mas é possível substituí-lo
especificando-se um tipo compatível [consulte Tipos de Dados na página 182].
156
Portrait Miner 7.0A
Capítulo 13: Instruções TML
Se a instrução calculate tiver uma cláusula where, a função de agregação ignora os registros para
os quais a expressão associada avalia para 0 ("falso"). É possível a essa expressão se referir a campos
no focus de origem.
Assim que for definida uma estatística de focus no arquivo de estatísticas, é possível se referir a ele
em expressões no arquivo de agregações ou rastreios usando a forma especial de nome STATISTIC
. É possível usar essa forma em qualquer lugar que seja possível indicar um campo no focus de origem
ou arquivo de rastreios.
Exemplos Dado o arquivo de estatísticas, statistics-amount.tml, contendo o seguinte:
calculate averageAmount := mean(Amount);
Dado o arquivo de agregações, aggregations-statistic.tml, contendo o seguinte:
create averageSpend := mean(Amount);
create bigSpender := averageSpend > STATISTIC.averageAmount;
Aplicar essas agregações ao focus RetailTransApril.ftr para criar um focus
RetailAprilBigSpenders.ftr orientado para cliente contendo os campos CustomerID,
averageSpend e bigSpender:
qsmeasure -statistics statistics-amount.tml
-aggregations aggregations-statistic.tml
-keys CustomerID
-input RetailTransApril.ftr -output RetailAprilBigSpenders.ftr
Consulte também
Funções de agregação para medições e derivações na página 160
Guia de referência de comando de compilação de dados e do TML
157
Capítulo
Funções de agregação
Nesta seção:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Funções de agregação para medições e derivações . .160
any . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163
confintlower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .163
confintupper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .164
count . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
countnonnull/countnonnulls . . . . . . . . . . . . . . . . . . . . . .165
countnull/countnulls . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
countunique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167
countuniquenonnull . . . . . . . . . . . . . . . . . . . . . . . . . . . . .167
first . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .168
last . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .169
max (um argumento) . . . . . . . . . . . . . . . . . . . . . . . . . . . .169
mean (um argumento) . . . . . . . . . . . . . . . . . . . . . . . . . . .170
median . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171
min (um argumento) . . . . . . . . . . . . . . . . . . . . . . . . . . . . .171
mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172
moderatio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173
percentage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .173
percentagerate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .174
segindex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175
significance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .175
stdev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .176
sum (um argumento) . . . . . . . . . . . . . . . . . . . . . . . . . . . .177
variance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .177
14
Funções de agregação para medições e derivações
Funções de agregação para medições e derivações
Existem várias funções de agregação disponíveis para uso em medições e derivações.
Usar uma função contexto de medição significa usá-la em um arquivo de agregações [consulte Usando
funções de agregação e as cláusulas where e default na página 152] ou arquivo de estatísticas
[consulte Avaliação das estatísticas do focus: a instrução calculate na página 156] para qsmeasure
ou a janela Agregar Registros equivalente, ou em um arquivo de estatísticas para qstrack.
Usar uma função em um contexto de derivação significa usá-la em uma derivação do Decision Studio,
em um arquivo de derivações para o qsderive ou a janela Derivar Campos equivalente, em o arquivo
de rastreios para o qstrack ou em um arquivo de seleções para o qsselect.
Exceto quando indicado, uma função de agregação assume apenas um campo numeric, string ou date
como argumento.
Funções de agregação para medições e para derivações É possível usar as seguintes funções de
agregação, tanto nos contextos de medição como de derivação:
Função
Resultado
count
O número de registros no grupo/segmento
(Essa função não usa argumento.)
max [consulte max (um argumento) na página
169]
O valor não nulo máximo no campo para o
grupo/segmento
(Em um contexto de derivação, essa função não
aceita uma expressão de valor string como
argumento.)
mean [consulte mean (um argumento) na página A média (média comum) dos valores não nulos no
170]
campo para o grupo/segmento
(Essa função requer uma expressão numérica
como argumento.)
min [consulte min (um argumento) na página 171] O valor não nulo mínimo no campo para o
grupo/segmento
(Em um contexto de derivação, essa função não
aceita uma expressão de valor string como
argumento.)
stdev
O desvio padrão dos valores não nulos no campo
para o grupo/segmento
(Essa função requer uma expressão numérica
como argumento.)
160
Portrait Miner 7.0A
Capítulo 14: Funções de agregação
Função
Resultado
sum [consulte sum (um argumento) na página
177]
A soma dos valores não nulos no campo para o
grupo/segmento
(Essa função requer uma expressão numérica
como argumento.)
variance
A variância dos valores não nulos no campo para
o grupo/segmento
(Essa função requer uma expressão numérica
como argumento.)
Funções de agregação somente para medições Só é possível usar as seguintes funções de agregação
em uma medida de contexto:
Função
Resultado
any
Um valor não nulo no campo, obtido de um registro
não nulo arbitrário no grupo/segmento
confintlower
O limite inferior de um intervalo de confiança de
95% para a média do campo no grupo
confintupper
O limite superior de um intervalo de confiança de
95% para a média do campo no grupo
countnonnull [consulte
countnonnull/countnonnulls na página 165]
O número de registros no grupo para o qual o
campo não tem valores não nulos [consulte O valor
nulo na página 182]
Em derivações, use o countnonnulls.
countnull [consulte countnull/countnulls na
página 166]
O número de registros do grupo para o qual o
campo contém nulo [consulte O valor nulo na
página 182]. Em derivações, prefira o countnulls.
countunique
O número de valores únicos que ocorrem no
campo, possivelmente incluindo o valor nulo
countuniquenonnull
O número de valores únicos, excluindo o valor nulo,
que ocorrem no campo
first
O primeiro valor não nulo no campo para o grupo
last
O último valor não nulo no campo para o grupo
median
A mediana (valor do meio) dos valores não nulos
no campo para o grupo
(Essa função requer uma expressão numérica ou
de valor string como argumento.)
Guia de referência de comando de compilação de dados e do TML
161
Funções de agregação para medições e derivações
Função
Resultado
mode
O modo (valor mais comum) dos valores não nulos
no campo para o grupo
moderatio
A proporção dos registros não nulos no grupo que
contêm o valor não nulo mais comum no campo
Funções de agregação somente para derivações Só é possível usar as seguintes funções de
agregação em um contexto de derivação:
Função
Resultado
countnonnulls [consulte
countnonnull/countnonnulls na página 165]
O número de registros no segmento para o qual o
campo não tem valores não nulos [consulte O valor
nulo na página 182]
Em medições, use o countnonnull.
countnulls [consulte countnull/countnulls na
página 166]
O número de registros no segmento para o qual o
campo contém valores nulos [consulte O valor
nulo na página 182]
Em medições, use o countnull.
percentage
O número de registros em um segmento, como
porcentagem do número total de registros
(Essa função não usa argumento.)
percentagerate
A porcentagem de registros não nulos no segmento
que contém o valor 1 no campo
É necessário que o campo contenha somente os
valores 0 e 1.
segindex
Um número positivo identificando exclusivamente
o segmento dentro da tabela de referência cruzada
formada pelos campos de divisão
(Essa função não usa argumento.)
significance
A significância estatística de qualquer discrepância
entre o valor médio do campo no segmento e o
valor médio do campo para a população geral, com
um sinal para indicar a direção do desvio
(Essa função requer uma expressão numérica
como argumento.)
162
Portrait Miner 7.0A
Capítulo 14: Funções de agregação
any
Objetivo: Escolher um valor não nulo e arbitrário de um campo (possivelmente por grupo ou segmento).
Sintaxe any(x)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
O campo de onde escolher um
valor
Resultado
Tipo
Descrição
como entrada
Um valor não nulo e arbitrário do campo x
(possivelmente por grupo ou segmento)
Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de
derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo
de rastreios para o qstrack ou em um arquivo de seleções para o qsselect.
Consulte também
Funções de agregação para medições e derivações na página 160
first na página 168
last na página 169
confintlower
Objetivo: Calcular o limite mínimo de um intervalo de confiança de 95% para a média de um campo.
Sintaxe confintlower(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
O campo a ser considerado
Resultado
Guia de referência de comando de compilação de dados e do TML
163
confintupper
Tipo
Descrição
real
O limite inferior de um intervalo dentro do qual,
para a média de população do segmento para o
campo x, espera-se uma queda com 95% de
confiança
Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de
derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo
de rastreios para o qstrack ou em um arquivo de seleções para o qsselect.
Consulte também
Funções de agregação para medições e derivações na página 160
confintupper na página 164
significance na página 175
confintupper
Objetivo: Calcular o limite máximo de um intervalo de confiança de 95% para a média de um campo.
Sintaxe confintupper(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
O campo a ser considerado
Resultado
Tipo
Descrição
real
O limite superior de um intervalo dentro do qual,
para a média de população do segmento para o
campo x, espera-se uma queda com 95% de
confiança
Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de
derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo
de rastreios para o qstrack ou em um arquivo de seleções para o qsselect.
Consulte também
Funções de agregação para medições e derivações na página 160
confintlower na página 163
significance na página 175
164
Portrait Miner 7.0A
Capítulo 14: Funções de agregação
count
Objetivo: Contar o número de registros (possivelmente por grupo ou segmento).
Sintaxe count()
Argumentos Nenhum
Resultado
Tipo
Descrição
inteiro
O número de registros (possivelmente por grupo
ou segmento).
Consulte também
Funções de agregação para medições e derivações na página 160
countnonnull/countnonnulls na página 165
countnull/countnulls na página 166
countunique na página 167
countuniquenonnull na página 167
countnonnull/countnonnulls
Objetivo: Contar o número de registros no qual um campo tem valores não nulos (possivelmente por
grupo ou segmento).
Sintaxe countnonnull(x)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
O campo a ser considerado
Resultado
Tipo
Descrição
inteiro
O número de registros no qual o campo x tem
valores não nulos (possivelmente por grupo ou
segmento)
Observação: Nas tabelas de referência cruzada do Decision Studio e em um contexto de medição
[consulte Funções de agregação para medições e derivações na página 160] essa
Guia de referência de comando de compilação de dados e do TML
165
countnull/countnulls
função é countnonnull, enquanto que em um contexto de derivação é
countnonnulls.
Consulte também
Funções de agregação para medições e derivações na página 160
count na página 165
countnull/countnulls na página 166
countunique na página 167
countuniquenonnull na página 167
countnull/countnulls
Objetivo: Contar o número de registros no qual um campo contém o valor nulo (possivelmente por
grupo ou segmento).
Sintaxe countnull(x)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
O campo a ser considerado
Resultado
Tipo
Descrição
inteiro
O número de registros no qual o campo x é nulo
(possivelmente por grupo ou segmento)
Observação: Nas tabelas de referência cruzada do Decision Studio e em um contexto de medição
[consulte Funções de agregação para medições e derivações na página 160] essa
função é countnull, enquanto que em um contexto de derivação é countnulls.
Consulte também
Funções de agregação para medições e derivações na página 160
count na página 165
countnonnull/countnonnulls na página 165
countunique na página 167
countuniquenonnull na página 167
166
Portrait Miner 7.0A
Capítulo 14: Funções de agregação
countunique
Objetivo: Contar o número de valores únicos que ocorrem em um campo incluindo, potencialmente, o
valor nulo (possivelmente por grupo ou segmento).
Sintaxe countunique(x)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
O campo a ser considerado
Resultado
Tipo
Descrição
inteiro
O número de valores únicos, incluindo nulo, que
ocorre em x (possivelmente por grupo ou
segmento)
Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de
derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo
de rastreios para o qstrack ou em um arquivo de seleções para o qsselect.
Consulte também
Funções de agregação para medições e derivações na página 160
count na página 165
countnonnull/countnonnulls na página 165
countnull/countnulls na página 166
countuniquenonnull na página 167
countuniquenonnull
Objetivo: Contar o número de valores únicos não nulos ocorrendo em um campo (possivelmente por
grupo ou segmento).
Sintaxe countuniquenonnull(x)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
O campo a ser considerado
Guia de referência de comando de compilação de dados e do TML
167
first
Resultado
Tipo
Descrição
inteiro
O número de valores únicos, excluindo o nulo, que
ocorre em x (possivelmente por grupo ou
segmento)
Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de
derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo
de rastreios para o qstrack ou em um arquivo de seleções para o qsselect.
Consulte também
Funções de agregação para medições e derivações na página 160
count na página 165
countnonnull/countnonnulls na página 165
countnull/countnulls na página 166
countunique na página 167
first
Objetivo: Escolher o primeiro valor não nulo de um campo (possivelmente por grupo ou segmento).
Sintaxe first(x)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
O campo de onde escolher um
valor
Resultado
Tipo
Descrição
como entrada
O primeiro valor não nulo encontrado no campo x
(possivelmente por grupo ou segmento)
Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de
derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo
de rastreios para o qstrack ou em um arquivo de seleções para o qsselect.
Consulte também
Funções de agregação para medições e derivações na página 160
168
Portrait Miner 7.0A
Capítulo 14: Funções de agregação
any na página 163
last na página 169
last
Objetivo: Escolher o último valor não nulo de um campo (possivelmente por grupo ou segmento).
Sintaxe last(x)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
O campo de onde escolher um
valor
Resultado
Tipo
Descrição
como entrada
O último valor não nulo encontrado no campo x
(possivelmente por grupo ou segmento)
Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de
derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo
de rastreios para o qstrack ou em um arquivo de seleções para o qsselect.
Consulte também
Funções de agregação para medições e derivações na página 160
any na página 163
first na página 168
max (um argumento)
Objetivo: Calcular o valor não nulo máximo em um campo (possivelmente por grupo ou segmento).
Sintaxe max(x)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
O campo cujos valores serão
comparados
Guia de referência de comando de compilação de dados e do TML
169
mean (um argumento)
Resultado
Tipo
Descrição
como entrada
O valor não nulo máximo no campo x
(possivelmente por grupo ou segmento)
Observação: • Atenção para não confundir essa função aggregation com a função multi-argument
[consulte max (dois ou mais argumentos), maxnonnull na página 280] de mesmo
nome.
• em um contexto de derivação, essa função não aceita um campo de string ou de valor
de data como argumento.
Consulte também
Funções de agregação para medições e derivações na página 160
min (um argumento) na página 171
mean (um argumento)
Objetivo: Calcular a média (média geral) de valores não nulos em um campo (possivelmente por grupo
ou segmento).
Sintaxe mean(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
O campo cuja média vai ser
calculada
Resultado
Tipo
Descrição
real
A média dos valores não nulos no campo x
(possivelmente por grupo ou segmento)
Observação: Atenção para não confundir essa função aggregation com a função multi-argument
[consulte mean (dois ou mais argumentos), meannonnull na página 281] de mesmo
nome.
Consulte também
Funções de agregação para medições e derivações na página 160
median na página 171
mode na página 172
170
Portrait Miner 7.0A
Capítulo 14: Funções de agregação
median
Objetivo: Calcular a mediana (valor médio) dos valores não nulos em um campo (possivelmente por
grupo ou segmento).
Sintaxe median(x)
Argumentos
Tipo
Nome
Descrição
inteiro, real, ou string
x
O campo cuja mediana será
calculada
Resultado
Tipo
Descrição
como entrada
O valor da mediana dos valores não nulos no
campo x (possivelmente por grupo ou segmento)
Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de
derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo
de rastreios para o qstrack ou em um arquivo de seleções para o qsselect.
Consulte também
Funções de agregação para medições e derivações na página 160
mean (um argumento) na página 170
mode na página 172
min (um argumento)
Objetivo: Calcular o valor mínimo não nulo em um campo (possivelmente por grupo ou segmento).
Sintaxe min(x)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
O campo cujos valores serão
comparados
Resultado
Guia de referência de comando de compilação de dados e do TML
171
mode
Tipo
Descrição
como entrada
O valor não nulo mínimo no campo x
(possivelmente por grupo ou segmento)
Observação: • Atenção para não confundir essa função aggregation com a função multi-argument
[consulte min (dois ou mais argumentos), minnonnull na página 281] de mesmo
nome.
• em um contexto de derivação, essa função não aceita um campo de string ou de valor
de data como argumento.
Consulte também
Funções de agregação para medições e derivações na página 160
max (um argumento) na página 169
mode
Objetivo: Calcular o modo (valor mais comum) dos valores não nulos em um campo (possivelmente
por grupo ou segmento).
Sintaxe mode(x)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
O campo cujo modo será
calculado
Resultado
Tipo
Descrição
como entrada
O modo dos valores não nulos no campo x
(possivelmente por grupo ou segmento)
Observação: • No caso de um empate pelo valor mais comum, a função retorna o número menos
repetido, a data de empate mais antiga ou a string mais recente alfabeticamente.
• Não é possível usar essa função em uma derivação do Decision Studio, no arquivo
de derivações para o qsderive ou na janela Campos Derivados equivalente, no
arquivo de rastreios para o qstrack ou em um arquivo de seleções para o qsselect.
Consulte também
Funções de agregação para medições e derivações na página 160
mean (um argumento) na página 170
172
Portrait Miner 7.0A
Capítulo 14: Funções de agregação
median na página 171
moderatio na página 173
moderatio
Objetivo: Calcular a proporção de registros não nulos contendo o valor não nulo mais comum em um
campo (possivelmente por grupo ou segmento).
Sintaxe moderatio(x)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
O campo cuja razão do modo
será calculada
Resultado
Tipo
Descrição
real
A razão do modo do campo x (possivelmente por
grupo ou segmento)
Observação: Não é possível usar essa função em uma derivação do Decision Studio, no arquivo de
derivações para o qsderive ou na janela Campos Derivados equivalente, no arquivo
de rastreios para o qstrack ou em um arquivo de seleções para o qsselect.
Consulte também
Funções de agregação para medições e derivações na página 160
mode na página 172
percentage
Sintaxe percentage()
Objetivo: Calcular o número de registros em um segmento da tabela de referência cruzada, como
porcentagem do total.
Argumentos Nenhum
Resultado
Guia de referência de comando de compilação de dados e do TML
173
percentagerate
Tipo
Descrição
real
A porcentagem de registros (possivelmente por
grupo ou segmento).
Observação: Só é possível usar essa função em uma derivação do Decision Studio, no arquivo de
derivações para qsderive ou na janela Campos Derivados equivalente, no arquivo
de rastreamento para o qstrack ou em um arquivo de seleções para o qsselect.
Consulte também
Funções de agregação para medições e derivações na página 160
percentagerate
Objetivo: Calcular, para um campo binário (1/0), a proporção de registros não nulos contendo o valor
1, como uma porcentagem.
Sintaxe percentagerate(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
O campo binário a ser
considerado
Resultado
Tipo
Descrição
real
A porcentagem de registros em um campo binário
com o valor 1 (possivelmente por grupo ou
segmento)
Observação: Não é possível usar essa função em um arquivo de agregações [consulte Usando
funções de agregação e as cláusulas where e default na página 152] ou arquivo de
estatísticas [consulte Avaliação das estatísticas do focus: a instrução calculate na
página 156] para o qsmeasure ou na janela Dados Agregados equivalente ou em um
arquivo estatístico para o qstrack.
Consulte também
Funções de agregação para medições e derivações na página 160
174
Portrait Miner 7.0A
Capítulo 14: Funções de agregação
segindex
Objetivo: Gerar um número de índice representando um segmento.
Sintaxe segindex()
Argumentos Nenhum
Resultado
Tipo
Descrição
inteiro
Um número positivo identificando, de forma única,
um segmento dentro da tabela de referência
cruzada
Observação: • Havendo segmentos nulos, não classificados ou ocultos em uma visualização da tabela
de referência cruzada, eles ainda recebem um índice de segmento, por isso, pode
parecer haver intervalos na sequência dos índices visíveis.
• Não é possível usar essa função em um arquivo de agregações [consulte Usando
funções de agregação e as cláusulas where e default na página 152] ou arquivo de
estatísticas [consulte Avaliação das estatísticas do focus: a instrução calculate
na página 156] para o qsmeasure ou na janela Dados Agregados equivalente ou em
um arquivo estatístico para o qstrack.
Exemplo R–2: Marcação de decis aproximados
É possível guardar um campo "meucampo" em 10 bins iguais de população e depois derivar um campo
"decil":
segindex() by myfield
Consulte também
Funções de agregação para medições e derivações na página 160
bin na página 324
significance
Objetivo: Calcular a significância estatística de qualquer discrepância entre o valor médio de um campo
para um segmento na tabela de referência cruzada e o valor médio do mesmo campo para toda a
população.
Sintaxe significance(x)
Argumentos
Guia de referência de comando de compilação de dados e do TML
175
stdev
Tipo
Nome
Descrição
numérico
x
O campo a ser considerado
Resultado
Tipo
Descrição
real
Um valor entre -1 e 1, cujo sinal indica a direção
na qual o segmento médio de x se desvia da média
da população de x e cujo valor absoluto indica a
significância desse desvio, tendo em conta o
tamanho do segmento
Observação: Não é possível usar essa função em um arquivo de agregações [consulte Usando
funções de agregação e as cláusulas where e default na página 152] ou arquivo de
estatísticas [consulte Avaliação das estatísticas do focus: a instrução calculate na
página 156] para o qsmeasure ou na janela Dados Agregados equivalente ou em um
arquivo estatístico para o qstrack.
Consulte também
Funções de agregação para medições e derivações na página 160
confintlower na página 163
confintupper na página 164
stdev
Objetivo: Calcular o desvio padrão dos valores não nulos em um campo (possivelmente por grupo ou
segmento).
Sintaxe stdev(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
O campo cujo desvio padrão será
computado
Resultado
Tipo
Descrição
real
O desvio padrão dos valores não nulos no campo
x (possivelmente por grupo ou segmento)
Consulte também
176
Portrait Miner 7.0A
Capítulo 14: Funções de agregação
Funções de agregação para medições e derivações na página 160
sum (um argumento)
Objetivo: Calcular a soma dos valores não nulos em um campo (possivelmente por grupo ou segmento).
Sintaxe sum(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
O campo cujos valores serão
somados
Resultado
Tipo
Descrição
como entrada
A soma dos valores não nulos no campo x
(possivelmente por grupo ou segmento)
Observação: • Atenção para não confundir essa função aggregation com a função multi-argument
[consulte sum (dois ou mais argumentos), sumnonnull na página 286] de mesmo
nome.
• Note que quando a função de agregação sum é aplicada a um conjunto de registros
vazios (por exemplo, como resultado do filtro de registro), o resultado é nulo.
Normalmente, esse comportamento é evitado configurando o valor padrão para 0.
Consulte também
Funções de agregação para medições e derivações na página 160
variance
Objetivo: Calcular a variação estatística dos valores não nulos em um campo (possivelmente por grupo
ou segmento).
Sintaxe variance(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
O campo cuja variação será
computada
Guia de referência de comando de compilação de dados e do TML
177
variance
Resultado
Tipo
Descrição
real
A variação dos valores não nulos no campo x
(possivelmente por grupo ou segmento)
Consulte também
Funções de agregação para medições e derivações na página 160
178
Portrait Miner 7.0A
Capítulo
Linguagem de Campo
Derivado (FDL)
Nesta seção:
• Sobre Linguagem de Campo Derivado (FDL) . . . . . . . .180
15
Sobre Linguagem de Campo Derivado (FDL)
Sobre Linguagem de Campo Derivado (FDL)
A Linguagem de Campo Derivado (FDL) é uma linguagem simples, para especificar a criação de novos
campos nos focus do Portrait Miner. É possível usar a FDL no Visualizador de Dados No Decision
Studio, os assistentes de Derivar Campos e Agregar Registros e os comandos de compilação de
dados do Portrait Miner: qsderive, qsmeasure, qstrack e qsselect.
É possível usar a FDL para:
•
•
•
•
Transformar, combinar e realizar diversas outras computações em campos existentes em um focus
Dividir um focus em um conjunto de amostras aleatórias.
Definir segmentos e modelos preditivos
Selecionar registros de acordo com um critério de sua escolha
Usa-se normalmente em expressões simples, "de uma linha", como as descritas em Expressões
básicas na página 184, mas também é possível usar para construir scripts com caminhos de execução
complexos e dependentes de dados.
A sintaxe FDL inclui:
• Operadores para aritmética [consulte Operadores aritméticos na página 193].
• Operadores para comparação [consulte Operadores relacionais na página 194] e para combinar
expressões lógicas [consulte Operadores lógicos na página 196].
• Duas construções alternativas para uma avaliação condicional de instruções: if...then...else
e case [consulte Expressões Condicionais na página 185].
• Um conjunto abrangente de funções internas [consulte Funções internas na página 197].
• A capacidade de encapsular transformações comuns como funções definidas pelos usuários [consulte
Funções definidas pelo usuário na página 190], para reutilização e compartilhamento.
• Variáveis, para manter valores para a reutilização em um script FDL, incluindo (em alguns contextos)
variáveis "acumuladoras" globais [consulte Variáveis globais no Decision Studio na página 189].
• Uma recurso para incorporar tabelas de referência cruzada em derivações .
Consulte também
Sobre Transaction Measurement Language na página 146
Expressões na página 184
180
Portrait Miner 7.0A
Capítulo
Sintaxe FDL
Nesta seção:
•
•
•
•
•
•
•
•
•
•
•
Tipos de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .182
Expressões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .184
Expressões Condicionais . . . . . . . . . . . . . . . . . . . . . . . .185
Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .188
Funções definidas pelo usuário . . . . . . . . . . . . . . . . . . .190
Operadores aritméticos . . . . . . . . . . . . . . . . . . . . . . . . . .193
Operadores relacionais . . . . . . . . . . . . . . . . . . . . . . . . . .194
Operadores lógicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .196
Precedência de operador . . . . . . . . . . . . . . . . . . . . . . . . .197
Funções internas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .197
Palavras reservadas em FDL . . . . . . . . . . . . . . . . . . . . . .204
16
Tipos de Dados
Tipos de Dados
O FDL é compatível com os seguintes tipos de dados básicos [consulte Sobre Linguagem de Campo
Derivado (FDL) na página 180]:
Tipo
Descrição
Exemplos (como literais de
FDL)
inteiro
Um número sem parte fracional
(entre -2 147 483 647 e 2 147
483 646)
78004, -100
real
Um número com parte
42,3, -0,56
fracionária, representado
internamente como número de
"ponto flutuante", com precisão
de 15 dígitos (entre
e
ou 0)
data
Uma data/hora entre 1507 d.C e #2009/01/01,
3015 d.C, com uma precisão de #2009/01/01:16:01:39
um segundo
string
Uma string de caractere,
representando dados textuais
smallinteger
Um número pequeno sem parte 42, -1
fracional (entre qsminsmallint
e qsmaxsmallint)
"hello"
Observação: • Se for usado um valor inteiro literal (tal como 12345678910) que é grande demais
para um tipo de dado integer, haverá uma sobrecarga. Muitas vezes é possível resolver
esse ponto se for usado um valor real: (nesse caso, 12345678910,0).
• O tipo smallinteger tem uma aplicabilidade limitada dentro do Portrait Miner e só deve
ser usado se absolutamente necessário. Em geral, prefira um tipo integer.
O valor nulo
Além dos valores comuns para cada um dos tipos de dados básicos, é possível um campo ou expressão
do tipo integer, real, date ou string assumir o valor especial null. O valor nulo representa sempre um
valor desconhecido (devido à falta de dados, por uma sobrecarga em um cálculo — como uma divisão
por zero — ou por outro motivo). É distinto tanto do zero como da string vazia "".
As funções FDL e os operadores preservam a incerteza introduzida por um argumento ou operando
nulo, muitas vezes dando o valor nulo como resultado. Existem, no entanto, funções — em especial
isnull e algumas funções de agregação — que lidam especialmente com o valor nulo.
Exemplos
182
Portrait Miner 7.0A
Capítulo 16: Sintaxe FDL
?
1 + null é igual a null.
1 != null é igual a null.
1 < null é igual a null.
null = null é igual a null.
null != null é igual a null.
false ou null é igual a null.
true e null é igual a null.
true ou null é igual a true.
false e null é igual a false.
Consulte também
ifnull, nvl na página 208
Dados booleanos
Não existe um tipo de dado booleano (true/false) formal em FDL. No entanto, é possível tratar um campo
inteiro (ou variável) contendo somente os valores 0 e 1 ou uma expressão lógica, como Income <
10000, como se fosse do tipo booleano.
As expressões lógicas são avaliadas como 1 quando são verdadeiras e 0 quando são falsas. Expressões
condicionais usam esses valores para determinar qual de duas ou mais expressões vão avaliar.
Operadores lógicos também trabalham com esses valores. Um valor 0 em um campo inteiro ou variável
é interpretado como "false" e qualquer outro valor (não nulo) é interpretado como "true".
Além disso, é possível usar as palavras-chave true e false como literais booleanos (que significam
1 e 0, respectivamente).
Compatibilidade de tipo
Os tipos de dados integers e reais são indicados como compatíveis por tipo, é possível usar um valor
integer sempre que for necessário um valor real (mas não vice-versa), por exemplo, como um argumento
para uma função. Os tipos de dados date e string só são compatíveis por tipo entre eles.
Os operandos de um operador aritmético binário [consulte Operadores aritméticos na página 193] ou
operador relacional [consulte Operadores relacionais na página 194] têm de ser compatíveis por tipo.
Na verdade, no caso de um operador aritmético binário, é necessário que ambos os operandos sejam
numéricos; o resulto é real a não ser que ambos os operadores seja integers.
Da mesma forma, as expressões de resultados em uma expressão if ou case [consulte Expressões
Condicionais na página 185] têm de ser compatíveis por tipo para ser possível determinar o tipo do
resultado antes da avaliação. Se as expressões de valores integers e real estão misturadas, o resultado
é de valor real.
Guia de referência de comando de compilação de dados e do TML
183
Conversão de tipo
Conversão de tipo
Além de usarem uma conversão implícita de tipo de dado (que ocorre quando é forçado por um tipo de
dado de uma expressão), é possível converter explicitamente os tipos de dados com as funções FDL
tointeger, toreal, todate e tostring.
Observação: Ao converter de uma string para um numeric, quaisquer caracteres não numéricos à
direita são ignorados.
Expressões
Uma expressão FDL pode ser uma das seguintes:
•
•
•
•
Uma expressão básica [consulte Expressões básicas na página 184]
Uma expressão condicional [consulte Expressões Condicionais na página 185]
Uma inicialização ou atribuição de variáveis [consulte Variáveis na página 188]
Uma lista de expressões separadas por ponto e vírgula (uma lista de expressões), fechadas entre
parênteses
Cada expressão tem um tipo de dado associado [consulte Tipos de Dados na página 182] e podem ser
avaliadas.
Para avaliar uma lista de expressões em um determinado contexto, avalie cada expressão constituinte
por vez, da primeira à última; o valor da lista de expressões como um todo é o último valor computado.
Observação: • O tipo de dado é deduzido automaticamente. Não é possível especificar sem ser com
uma variável local do tipo necessário ou usando uma expressão que force o tipo. Por
exemplo, a seguinte expressão força o tipo a ser real:
if false then 0,0 else...
• Por padrão, você usará listas de expressões em combinação com atribuições de
variáveis.
Expressões básicas
Uma expressão básica pode ser uma das seguintes:
• Um identificador, opcionalmente contido entre aspas simples, por exemplo, 'CustomerID'. É
necessário fechar um identificador entre aspas simples se não começar por uma letra ("A" — "Z" ou
"a" — "z"), contiver caracteres que não sejam letras, dígitos e sublinhados ou coincidir com uma
palavra reservada TML ou FDL (ou diferir apenas por ser maiúscula ou minúscula). Um identificador
não deve ter mais de 128 caracteres.
• Um literal numérico, por exemplo, 30, -3,28 ou
3,1e8 (o último representa
• Um literal de string, contido entre aspas duplas, por exemplo, "Uma string"
• Um literal de data, com prefixo "#," por exemplo, #2004/03/16 ou #2004/03/16:09:12:13
184
Portrait Miner 7.0A
Capítulo 16: Sintaxe FDL
• A palavra-chave "null" (consulte O valor nulo na página 182)
• Uma aplicação de função, formada por um nome de função (um identificador) seguido por uma lista
de argumentos separados por vírgulas (expressões) em parênteses; por exemplo, mean(IncomeA
+ IncomeB, TotalEstIncome)
• Uma expressão aritmética, formada por uma expressão de valor numérico conectados por operadores
aritméticos [consulte Operadores aritméticos na página 193], por exemplo, 365 / 52
• Uma relação, formada por expressões de valor numérico ou string conectados por operadores
relacionais [consulte Operadores relacionais na página 194], por exemplo, Age > 30 ou 'State'
= "New York"
• Uma expressão lógica, formada por expressões relacionais ou outras de valor booleano vinculadas
por operadores lógicos [consulte Operadores lógicos na página 196], por exemplo, (Income >
250000) e (MaritalStatus = "Solteiro")
• Um identificador estatístico, formado por uma palavra-chave da TML STATISTIC seguido por um
ponto seguido por um identificador, por exemplo, STATISTIC.AverageIncome (somente em um
arquivo de agregações TML)
• Uma estatística de campo — somente em uma derivação do Decision Studio, um arquivo de derivação
qsderive ou um arquivo de seleções qsselect
Observação: • Os identificadores FDL são sensíveis a maiúsculas e minúsculas. Por exemplo, as
expressões CustomerID e CUSTOMERID se referem a campos diferentes, enquanto
as expressões isnull(Age) e IsNull(Age) envolvem funções diferentes.
• Um literal numérico é avaliado com um integer se não contiver pontos decimais e não
usar notação científica. Caso contrário, é avaliado com um número real.
• É possível a um literal de string conter qualquer caractere que não aspas duplas (")
e caracteres newline.
• Uma literal de data é inicialmente avaliada em um formato AMD [consulte Formatos
de data na página 55]; se falhar, é avaliado de acordo com a definição de sua
preferência read .
• Além de inserir espaços entre os elementos sintáticos, é possível incluir comentários,
começando com uma barra dupla ("//") e continua até o final da linha. Por exemplo,
// This is a comment.
2 + 2 // This is a comment.
Consulte também
Palavras reservadas em FDL na página 204
Palavras reservadas em TML na página 147
Expressões Condicionais
Em FDL, existem duas formas principais de avaliar condicionalmente uma expressão: a expressão if e
a expressão case.
Guia de referência de comando de compilação de dados e do TML
185
A expressão if
Consulte também
Sobre Linguagem de Campo Derivado (FDL) na página 180
Expressões na página 184
A expressão if
Se a condição (uma expressão FDL retornando um valor booleano [consulte Dados booleanos na
página 183]) for verdadeira, a expressão após then é avaliada; caso contrário, a expressão após else
é avaliada. O valor da expressão if é o valor da expressão avaliada.
Observação: • É necessário que as expressões após then e else sejam compatíveis por tipo [consulte
Tipos de Dados na página 182].
• Se for omitida a parte "else" de uma expressão e a condição for falsa, o valor da
expressão if é nulo [consulte O valor nulo na página 182].
• Uma condição nula [consulte O valor nulo na página 182] é tratada pela expressão if
como se fosse falsa. Essa é uma exceção à regra geral, pois a incerteza introduzida
pelo valor nulo é preservada pelas expressões FDL. É possível que isso leve a
resultados inesperados: por exemplo, quando Age é nula, as seguintes expressões (a
princípio equivalentes) geram o valor nulo, 0 E 1, respectivamente:
Age > 40
if Age > 40 then 1 else 0
if Age <= 40 then 0 else 1
• É possível testar várias condições usando expressões if aninhadas — expressões if
onde a expressão após then ou else é também uma expressão if. Se a expressão
após then é uma expressão if, ela deve ser contida entre parênteses para evitar
ambiguidade. Se preferir, é possível usar a expressão case [consulte A expressão
case na página 187].
• Se for possível expressar sua condição como x = 0 (ou
) para algum número x,
também é possível usar a função FDL interna cond em vez de uma expressão if.
Exemplos
if Age < 40 then "Jovem"
if Age < 40 then "Jovem" else "Sênior"
if Age > 40 then "Jovem" else if Age < 60 then "Meia-Idade" else "Sênior"
if (Age >= 13 and Age < 20) then "Adolescente"
if isnull(Age) then mean(Age) else Age
if Responder then RespondDate else StartDate
if match(PostalCode, "^EH") then "Y" else "N"
186
Portrait Miner 7.0A
Capítulo 16: Sintaxe FDL
if StartDate < #1998/09/08 then "Loyal" else "Recente"
A expressão case
Se a primeira condição (uma expressão FDL retornando um valor booleano [consulte Dados booleanos
na página 183]) for verdadeira, a expressão correspondente (à direita dos dois pontos) é avaliada e
retornada como o valor da expressão case. Caso contrário, a condição seguinte é testada; sendo
verdadeira, a expressão correspondente é avaliada e retornada como o valor de uma expressão case.
Caso contrário, a condição seguinte é testada, e assim por diante.
A palavra-chave especial default é interpretada com uma expressão sempre verdadeira: normalmente
seria usada como a última condição em uma expressão case (quaisquer condições subsequentes seriam
ignoradas).
Observação: • É necessário que todas as expressões que ocorrem à direita dos dois pontos sejam
compatíveis por tipo [consulte Tipos de Dados na página 182].
• Se nenhuma das condições for verdadeira (e não existir uma palavra-chave default),
o valor da expressão case é nulo [consulte O valor nulo na página 182].
• Uma condição nula [consulte O valor nulo na página 182] é tratada pela expressão
case como se fosse falsa. Essa é uma exceção à regra geral, pois a incerteza
introduzida pelo valor nulo é preservada pelas expressões FDL. Por exemplo, quando
Age é nulo, a expressão seguinte gera o valor 3:
case
Idade > 40 : 1;
Idade <= 40 : 2;
default : 3;
• Se for usada uma expressão case em uma lista de expressões ou aninhar uma
expressão case como uma condição (dentro de uma expressão if ou outra expressão
case), ela deve ser contida entre parênteses para evitar ambiguidade.
Exemplos
case
Age < 40: "Jovem";
default: "NãoJovem";
case
Response = "Exc": 7;
Response = "M. Sat": 6
Response = "Sat": 5;
Guia de referência de comando de compilação de dados e do TML
187
Variáveis
Response = "F. Sat": 4;
Response = "Fraco": 3;
Response = "Mau": 2;
default: 1;
Variáveis
Uma variável em FDL é uma localização temporária de armazenamento para valores real, integer, string
ou date. É possível usar uma variável local para avaliar uma subexpressão% complicada —
particularmente útil se a mesma subexpressão ocorrer mais de uma vez% — ou para avaliar uma
expressão envolvendo uma função de número aleatório, para evitar a alteração de valor de uma avaliação
para outra. Também é possível usar variáveis globais no Decision Studio [consulte Variáveis globais
no Decision Studio na página 189] e variáveis de estado em arquivos de rastreio TML [consulte Variáveis
de estado em Transaction Measurement Language (TML) na página 189] para levar informação de
um registro para outro.
Para atribuir um valor a uma variável, use a seguinte sintaxe:
A primeira atribuição é uma inicialização e determina a classe da variável% — local (sem palavra-chave),
global ou de estado. As palavras-chave global ou state são usadas somente em conjunto com a
primeira atribuição para uma variável global ou de estado (a inicialização).
O identificador [consulte Expressões básicas na página 184] é o nome da variável (não deve coincidir
com um nome de campo no focus).
Para qualquer classe de variável, seu tipo de dado [consulte Tipos de Dados na página 182] corresponde
ao primeiro valor que lhe for atribuído.
O valor de uma expressão de atribuição é simplesmente o valor da expressão à direita do sinal ":=".
Por exemplo, a seguinte lista de expressões atribui aleatoriamente o valor 1 (para 20% dos registros),
2 (para outros 20% dos registros) ou 0 (para os demais registros):
x := rndUniform();
case
x < 0,2 : 1;
x < 0,4 : 2;
default : 0;
Podia ser escrita de forma equivalente nessa forma mais compacta:
188
Portrait Miner 7.0A
Capítulo 16: Sintaxe FDL
case
( x := rndUniform() ) < 0,2 : 1;
x < 0,4 : 2;
default : 0;
No entanto, a seguinte lista de expressões gera um resultado diferente (e provavelmente indesejado):
case
rndUniform() < 0,2 : 1;
rndUniform() < 0,4 : 2;
default : 0;
Variáveis globais no Decision Studio
As variáveis são locais por padrão. Uma variável local é destruída assim que a última expressão (a mais
externa) na lista de expressões [consulte Expressões na página 184] é avaliada — A próxima vez que
a mesma variável for usada, será reinicializada. Uma variável local não pode levar informações de um
registro para outro. Por exemplo, a seguinte lista de expressões de derivação do campo produz um
campo com 1 em todos os registros:
i := 0;
i := i + 1
Uma variável global difere de uma variável local pois não é destruída até que o Decision Studio ou o
comando de compilação de dados calcule os valores do campo de todos os registros. A inicialização
só acontece uma vez, para o primeiro registro no focus. Por exemplo, a seguinte lista de expressões
de derivação de campo produz um campo de índice, com 1 no primeiro registro, 2 no segundo e assim
por diante:
global i := 0;
i := i + 1
É possível usar uma variável global na lista de expressões de derivação de campo em uma derivação
do Decision Studio, no arquivo de derivações para qsderive ou a janela Campos Derivados equivalente,
em um arquivo de rastreios para o qstrack,ou em um arquivo de seleções para o qsselect.
Variáveis de estado em Transaction Measurement Language (TML)
É possível usar uma variável de estado em uma definição de campo TML no arquivo de rastreios qstrack.
Uma variável de estado difere de uma variável local ou uma variável global pois não é destruída até
que o qstrack tenha calculado todos os valores de campo para o grupo atual (como definido pelo
campo-chave). A inicialização ocorre uma vez por cada grupo.
Por exemplo, a seguinte definição de campo define um campo de balanço atualizado, assumindo que
o campo "Depósito" contém uma quantia depositada em uma transação (ou um valor negativo para um
levantamento) e o campo"InitialBalance" contém o balanço inicial para o cliente (talvez de uma tabela
de cliente adicionada anteriormente):
Guia de referência de comando de compilação de dados e do TML
189
Funções definidas pelo usuário
create Balance := (
state bal := InitialBalance;
bal := bal + Deposit
)
Funções definidas pelo usuário
Para definir uma função FDL que possa ser usada da mesma forma que uma função interna [consulte
Funções internas na página 197], use a seguinte sintaxe:
O identificador [consulte Expressões básicas na página 184] após a palavra-chave "function" é o
nome da função. A lista de argumentos (formais) vem a seguir:
Cada argumento formal (que não é precedido por uma palavra-chave de "field" atua como uma
variável local [consulte Variáveis na página 188] inicializada com o valor do argumento correspondente
quando a função é aplicada. O tipo [consulte Tipos de Dados na página 182] de um argumento formal
é o tipo especificado na definição de função, se presente; caso contrário, é a do argumento usado
quando a função é aplicada. Note que são necessários os parênteses mesmo sem argumentos formais.
Seguindo a lista de argumentos vem uma lista opcional de atributos de função [consulte Function
attributes na página 192] e depois o corpo de definição da função. A lista de expressão [consulte
Expressões na página 184] é efetivamente prefixada com atribuições variáveis locais, correspondendo
a argumentos formais (que não os precedidos por uma palavra-chave "field") antes de serem avaliados
para dar o valor de retorno para a função. O tipo de valor de retorno corresponde ao da última expressão.
Exemplos Definir uma função para substituir os zeros no resultado de uma expressão (de qualquer
tipo) com o resultado de outra expressão:
function replaceZeros(expr1, expr2)
{
if expr1 = 0 then expr2 else expr1
}
190
Portrait Miner 7.0A
Capítulo 16: Sintaxe FDL
Uma função que pega um argumento de string e o devolve com a primeira letra maiúscula:
function titleCase(string text)
{
concat(toupper(left(text, 1)), right(text, strlen(text) - 1));
}
Observação:
• Ao especificar o tipo de um argumento de função, use "real", "integer", "string" ou "date."
• É possível incluir estatísticas de campo em uma definição de função, mas cada argumento de função
usado em uma estatística de campo deve ser precedido por uma palavra-chave "field". Por exemplo,
para comparar um valor com um resumo sobre todo o focus:
function MyBand(real field x)
{
averageX := mean(x);
stdevX := stdev(x);
case
x < averageX - stdevX : "Lower";
x > averageX + stdevX : "Upper";
default: "Mid";
}
• É possível incluir definições de função no início da lista de expressões que definem um campo derivado.
Funções definidas dessa forma são locais para a derivação de campo.
Também é possível definir funções acessíveis globalmente, armazenando-as em um arquivo (ou
arquivos) em uma pasta listada na preferência de bibliotecas de derivação . No Decision
Studio, no painel Família de Função da caixa de diálogo Funções de Derivação no Visualizador de
Dados, as funções em um arquivo chamado classe.fdl aparece na classe chamada classe. Por
exemplo, funções em um arquivo com o nome Conditional.fdl aparecem na classe Conditional. É
possível reutilizar um nome de classe existente para expandir uma classe com suas próprias funções
definidas pelo usuário ou criar sua classe usando um novo nome.
Ao usar o comando de compilação de dados do Portrait Miner, o qsmeasure, a janela Agregar
Registros equivalente ou o comando de compilação de dados qstrack, é possível especificar um
arquivo que contenha definições de funções globais adicionais.
• Não é possível definir funções de agregação em um contexto de medição, isto é, em um arquivo de
agregações [consulte Usando funções de agregação e as cláusulas where e default na página
152], arquivo de estatísticas [consulte Avaliação das estatísticas do focus: a instrução calculate
na página 156] para qsmeasure ou na janela Agregar Registros equivalente ou em um arquivo de
estatística para qstrack.
• Se a lista de expressão terminar com um caractere alfabético, ele deve ser separado da chave por
ponto e vírgula ou espaços em branco.
Guia de referência de comando de compilação de dados e do TML
191
Function attributes
Function attributes
Especifica atributos da função da seguinte forma:
Atributos úteis são:
synopse e description. Esses atributos fornecem uma forma padrão de tornar a função
"autodocumentável." Se uma função é instalada em uma pasta listada nas preferências de bibliotecas
de derivação, a sinopse é exibida quando a função for selecionada no painel Funções da caixa de
diálogo Funções de Derivação no Visualizador de Dados. Ao clicar no botão Detalhes, a descrição é
exibida. O texto da sinopse deve ser curto, mas o texto de descrição pode ser maior.
Por exemplo:
function nvl(testNull, replaceValue)
[
synopsis = "Substituir valores nulos"
description = "A função nvl() substitui valores nulos...strings."
]
(Note que o atributo de descrição deve estar todo na mesma linha.)
element_names. Em um arquivo de agregações, é possível usar uma função com o atributo
element_names para dividir uma agregação para criar vários campos [consulte Dividir agregações:
a cláusula by na página 154].
O valor desse atributo é uma string que contém uma lista de nomes separados por vírgulas que, por
sua vez, estão associados aos valores de retorno 1, 2, ..., da função, na ordem pela qual estão listados.
Por exemplo, o atributo element_names da função abaixo associa os nomes "Baixo", "Médio" e
"Elevado" aos valores de retorno 1, 2 e 3, respectivamente:
function band(x)
[ element_names = "Baixo,Médio,Alto" ]
{
clamp(floor(x / 1000), 0, 2) + 1
}
O atributo element_names da função abaixo associa os nomes "Norte", "Sul", "Leste" e "Oeste" aos
valores de retorno 1, 2, 3 e 4, respectivamente:
function StoreGroupFunction( Store )
[
192
Portrait Miner 7.0A
Capítulo 16: Sintaxe FDL
element_names = "Norte, Sul, Leste, Oeste"
]
{
case
Store = "0000" or Store = "0800" : 1;
Store = "0300" or Store = "0600" or Store = "0700" : 2;
Store = "0100" or Store = "0400" : 3;
default : 4;
}
Operadores aritméticos
Exceto o operador menos unário, que prefixa seu único operando, todos os operadores aritméticos FDL
são operadores binários infixos, ou seja, são escritos entre seus dois operandos.
Operador
Operandos
Resultado
+ (adição)
numérico
A soma dos operandos
- (subtração)
numérico
O resultado de subtrair o segundo
operando ao primeiro
- (menos unário)
numérico
O negativo do operando
* (multiplicação)
numérico
O produto dos operandos
/ (divisão)
numérico
O resultado (real) da divisão do
primeiro operando pelo segundo
div (divisão de número inteiro)
inteiro
O resultado (inteiro) da divisão
do primeiro operando pelo
segundo, ignorando o resto
mod (módulo)
inteiro
O resto na divisão do primeiro
operando inteiro pelo segundo (o
módulo), com o mesmo sinal do
primeiro operando — por
exemplo, 9 % 7 é igual a 2 mas
-9 % 7 é igual a -2
Exemplos
2 + 5 é igual a 7.
2 - 5 é igual a -3.
Guia de referência de comando de compilação de dados e do TML
193
Operadores relacionais
- (2 + 5) é igual a -7.
2 * 5 é igual a 10.
2 / 5 é igual a 0,4.
2 div 5 é igual a 0.
2 mod 5 é igual a 2.
5 % 2 é igual a 1.
Observação: • Os operadores de adição, subtração, menos unário e de multiplicação preservam o
tipo de seus operandos (que são de tipo compatível) [consulte Compatibilidade de
tipo na página 183]). Se um operando for integer e o outro for um número real, o
resultado é real.
• Se o segundo operando do operador de divisão, de divisão de número inteiro ou de
módulo, for zero, o resultado é nulo [consulte O valor nulo na página 182], uma vez
que a divisão por zero é indefinida.
• mod exige operandos integer.
• É possível usar também % em vez de mod.
Consulte também
Operadores lógicos na página 196
Precedência de operador na página 197
Operadores relacionais na página 194
Operadores relacionais
Todos os operadores relacionais FDL são operadores binários infixos, ou seja, são escritos entre seus
dois operandos.
194
Operador
Operandos
Resultado
< (menor que)
inteiro, real, data ou string
"True" se o primeiro operando for
menor que o segundo; "false" se
o primeiro operando for maior ou
igual ao segundo
<= (menor ou igual a)
inteiro, real, data ou string
"True" se o primeiro operando for
menor ou igual ao segundo;
"false" se o primeiro operando for
maior que o segundo
> (maior que)
inteiro, real, data ou string
"True" se o primeiro operando for
maior que o segundo; "false" se
o primeiro operando for menor ou
igual ao segundo
Portrait Miner 7.0A
Capítulo 16: Sintaxe FDL
Operador
Operandos
Resultado
>= (maior ou igual a)
inteiro, real, data ou string
"True" se o primeiro operando for
maior ou igual ao segundo;
"false" se o primeiro operando for
menor que o segundo
= (igualdade)
inteiro, real, data ou string
"True" se ambos os operandos
tiverem o mesmo valor; "false" se
os operandos apresentarem
valores distintos. Para tipos
string, a comparação ignora o
caractere de espaço à direita em
ambos os operandos.
!= (desigualdade)
inteiro, real, data ou string
"True" se os operandos
apresentarem valores distintos;
"false" se ambos os operandos
tiverem o mesmo valor. Para
tipos string, a comparação ignora
o caractere de espaço à direita
em ambos os operandos.
Exemplos
2 > 5 é igual a 1 ("TRUE").
5 < 5 é igual a 0 ("FALSE").
"A" < "B" é igual a 1 ("TRUE").
5 <= 5 é igual a 1 ("TRUE").
5 > 5 é igual a 0 ("FALSE").
7 > 5 é igual a 1 ("TRUE").
#2003/12/31 > #2003/11/30 é igual a 1 ("TRUE").
5 >= 5 é igual a 1 ("TRUE").
"A" = "A" é igual a 1 ("TRUE").
"A" = "a" é igual a 0 ("FALSE").
"A" != "A" é igual a 0 ("FALSE").
"A" != "a" é igua a 1 ("TRUE").
Observação: • Os operandos de um operador relacional binário devem ser de tipos compatíveis
[consulte Compatibilidade de tipo na página 183].
• Ao comparar datas, "menor que" significa anterior. Ao comparar strings, "menor que"
significa anterior alfabeticamente (ou, mais especificamente, anterior na representação
de caracteres). Acontece o mesmo com "maior que", etc.
• Também é possível usar == ou eq em vez de = e <> em vez de !=.
Guia de referência de comando de compilação de dados e do TML
195
Operadores lógicos
Consulte também
Operadores aritméticos na página 193
Dados booleanos na página 183
Operadores lógicos na página 196
Operadores lógicos
O operador de negação lógica prefixa seu único operando, enquanto os operadores de disjunção e
conjugação lógica são operadores binários infixos, ou seja, são escritos entre seus dois operandos.
Operador
Operandos
Resultado
and (conjugação lógica)
boolean
"True" se ambos os operandos
forem verdadeiros; "false" se um
dos operandos for falso
or (disjunção lógica)
boolean
"True" se um dos operandos for
verdadeiro; "false" se ambos os
operandos forem falsos
not (negação lógica)
boolean
"True" se o operando for falso;
"false" se o operando for
verdadeiro
Exemplos
("A" = "A") or (5 = 5) é igual a 1 ("TRUE").
("A" = "B") and (5 = 5) é igual a 0 ("FALSE").
("A" = "B") and (5 = 2) é igual a 0 ("FALSE").
("A" = "A") or (5 = 5) é igual a 1 ("TRUE").
("A" = "B") || (5 = 5) é igual a 1 ("TRUE").
("A" = "B") or (5 = 2) é igual a 0 ("FALSE").
not ("A" = "A") é igual a 0 ("FALSE").
!(("A" = "B") or (5 = 2)) é igual a 1 ("TRUE").
Observação: • Atualmente, não existe um tipo de dado booleano [consulte Dados booleanos na
página 183] em FDL, de forma que os operandos para operadores lógicos são, na
verdade, integers. Não se deve, porém, aplicar esses operadores para quaisquer
números inteiros.
• Também é possível usar and em vez de and, || em vez de or e ! em vez de not.
Consulte também
196
Portrait Miner 7.0A
Capítulo 16: Sintaxe FDL
Operadores aritméticos na página 193
Precedência de operador na página 197
Operadores relacionais na página 194
Precedência de operador
Na ausência de parênteses, as operações FDL em uma expressão são realizadas por ordem de
precedência de operador, da mais alta à mais baixa:
Classe
Operadores
Menos unário
-
Operadores de multiplicação
* / div mod
Operadores de adição
+ -
Operadores relacionais
< <= > >= != =
Negação lógica
not
Operadores binários lógicos
and or
Se há uma ligação de precedência, as operações são realizadas da esquerda para a direita.
As subexpressões entre parênteses são sempre avaliadas em primeiro lugar.
Exemplos -5 + 12 / 4 * 2 + 20 * 3 é igual a 61.
ou seja, a expressão é avaliada como: -5 + ((12 / 4) * 2) + (20 * 3)
Movendo os parênteses:
-(5 + 12 / (4 * 2) + 20) * 3 é igual a -79.5.
Consulte também
Operadores aritméticos na página 193
Operadores lógicos na página 196
Operadores relacionais na página 194
Funções internas
O FDL inclui um conjunto abrangente de funções internas.
Funções condicionais
Guia de referência de comando de compilação de dados e do TML
197
Funções internas
Função
Descrição
clamp
Restringir um número a um intervalo específico.
cond
Produzir um de dois resultados dependendo se
uma expressão é zero ou diferente de zero.
iff
Produzir um de dois resultados dependendo se
uma expressão é zero ou diferente de zero.
ifnull, nvl
Substituir o valor nulo.
isnull
Testar se um valor é nulo.
isselected
Marcar os registros selecionados atualmente.
replace
Substituir um número se não estiver dentro do
intervalo fornecido.
Funções de conversão de tipos de dados
Função
Objetivo
todate
Converte um valor para uma data.
tointeger
Converte um valor para um número integer.
toreal
Converte um valor para um número real.
tostring
Converte um valor para uma string.
Funções para trabalhar com datas
198
Função
Objetivo
addcenturies, addcenturiescountbackwards
Calcular uma data a partir de outra data, usando
um deslocamento em séculos.
adddays
Calcular uma data a partir de outra data, usando
um deslocamento em dias.
addhours
Calcular uma data a partir de outra data, usando
um deslocamento em horas.
addminutes
Calcular uma data a partir de outra data, usando
um deslocamento em minutos.
addmonths, addmonthscountbackwards
Calcular uma data a partir de outra data, usando
um deslocamento em meses.
addseconds
Calcular uma data a partir de outra data, usando
um deslocamento em segundos.
addweeks
Calcular uma data a partir de outra data, usando
um deslocamento em semanas.
Portrait Miner 7.0A
Capítulo 16: Sintaxe FDL
Função
Objetivo
addyears, addyearscountbackwards
Calcular uma data a partir de outra data, usando
um deslocamento em anos.
countcenturies
Calcular o período entre duas datas em séculos.
countdays
Calcular o período entre duas datas em dias.
counthours
Calcular o período entre duas datas em horas.
countminutes
Calcular o período entre duas datas em minutos.
countseconds
Contar o número de segundos entre duas datas.
countweeks
Calcular o período entre duas datas em semanas.
countwholecenturies,
countwholecenturiesbackwards
Contar o número de séculos entre duas datas.
countwholedays
Contar o número de dias completos entre duas
datas.
countwholehours
Contar o número de horas completas entre duas
datas.
countwholeminutes
Contar o número de minutos completos entre duas
datas.
countwholemonths,
countwholemonthsbackwards
Contar o número de meses completos entre duas
datas.
countwholeseconds
Contar o número de segundos entre duas datas.
countwholeweeks
Contar o número de semanas completas entre
duas datas.
countwholeyears, countwholeyearsbackwards Contar o número de anos completos entre duas
datas.
countyears
Calcular o período entre duas datas em anos.
day
Obter o dia do mês de uma data.
dayofweek
Obter um número representante do dia da semana
de uma data.
gmt2edt
Converter uma data na Hora de Greenwhich (GMT)
para um Horário de Verão do Leste dos EUA
(EDT).
hour
Obter as horas de uma data.
minute
Obter os minutos de uma data.
month
Obter o mês de uma data.
now
Obter a data e a hora atuais.
Guia de referência de comando de compilação de dados e do TML
199
Funções internas
Função
Objetivo
second
Obter os segundos de uma data.
today
Obter a data atual.
weekofyear
Calcular a semana do ano de uma data,
relativamente a uma data inicial específica.
year
Obter o ano de uma data.
Funções para trabalhar com strings
Função
Objetivo
concat
Concatenar duas ou mais strings.
endswith
Testar se uma string termina com outra.
find
Testar se uma string está contida em outra.
left
Retornar uma substring de comprimento
especificado a partir do início de uma string.
mid
Retornar uma substring de comprimento
especificado a partir do meio de uma string.
right
Retornar uma substring de comprimento
especificado a partir do final de uma string.
soundex
Reduzir cada palavra a uma string de quatro
caracteres para fins de indexação.
startswith
Testar se uma string inicia com outra.
strlen
Obter o comprimento de uma string.
strmember
Determinar o conjunto de associação.
substitute
Substituir uma string por outra.
substr
Obter uma substring a partir de uma string.
tolower
Converter uma string para texto em letra minúscula.
toupper
Converter uma string para texto em letra maiúscula.
trim
Remover todos os espaços de uma string, exceto
os espaços vazios entre as palavras.
Expressões regulares e funções associadas
200
Função
Objetivo
match
Testar uma string para uma coincidência de
expressão regular [consulte Expressões regulares
na página 266].
Portrait Miner 7.0A
Capítulo 16: Sintaxe FDL
Função
Objetivo
replaceall
Substituir todas as substrings que coincidem com
uma expressão regular [consulte Expressões
regulares na página 266].
replacefirst
Substituir a primeira substring que coincidir com
uma expressão regular [consulte Expressões
regulares na página 266].
Funções matemáticas e estatísticas
Tipo
Descrição
abs
Calcular o valor absoluto de um número.
ceil
Arredondar um número para cima, para o número
inteiro mais próximo.
cos
Calcular o cosseno de um ângulo.
exp
Calcular o exponencial de um número.
floor
Arredondar um número para baixo, para o número
inteiro mais próximo.
log
Calcular o logaritmo natural (base "e") de um
número.
log10
Calcular o logaritmo de base 10 de um número.
logbase
Calcular o logaritmo de um número, para uma base
especificada.
max (dois ou mais argumentos), maxnonnull
Calcular o máximo de dois ou mais números, ou a
mais recente de duas ou mais datas ou a mais
recente de duas ou mais strings alfabeticamente.
mean (dois ou mais argumentos), meannonnull Calcular a média (média comum) de dois ou mais
números.
min (dois ou mais argumentos), minnonnull
Calcular o mínimo entre dois ou mais números, ou
a mais recente de duas ou mais datas ou a última
de duas ou mais strings alfabeticamente.
normalize
Normalizar valores de campo para ficarem no
intervalo [0,1].
pow
Calcular o resultado de elevar um número à
potência de outro.
product, productnonnull
Calcular o produto de dois ou mais números.
round
Arredondar um número para o número inteiro mais
próximo.
sgn
Calcular o signo (sinal) de um número.
Guia de referência de comando de compilação de dados e do TML
201
Funções internas
Tipo
Descrição
sin
Calcular o seno de um ângulo.
sqrt
Calcular a raiz quadrada de um número.
sum (dois ou mais argumentos), sumnonnull
Calcular a soma de dois ou mais números.
tan
Calcular a tangente de um ângulo.
Funções de amostragem de dados
Função
Objetivo
numericTestTrainSplit
Criar uma segmentação de teste/treinamento para
uso na validação de modelo.
numericTestTrainValidateSplit
Criar uma segmentação de
teste/treinamento/validação para uso na validação
de modelo.
sampleEqualSize
Criar, aleatoriamente, um índice de segmentação
para grupos de mesmo tamanho.
sampleExactNumber
Marcar, aleatoriamente, um número exato de
clientes de uma população selecionada.
sampleExactPercentage
Marcar, aleatoriamente, uma porcentagem exata
de clientes de uma população selecionada.
sampleStratified
Marcar, aleatoriamente, um número específico de
clientes de um segmento e o resto da população.
testTrainSplit
Criar uma segmentação de teste/treinamento para
uso na validação de modelo.
testTrainValidateSplit
Criar uma segmentação de
teste/treinamento/validação para uso na validação
de modelo.
Funções de número aleatório
202
Função
Objetivo
rndBinomial
Gerar um número inteiro aleatório baseado em
uma distribuição binomial.
rndBool
Gerar 0 ou 1 aleatoriamente (com probabilidades
iguais).
rndExp
Gerar um número positivo aleatório baseado em
uma distribuição exponencial.
rndGamma
Gerar um número positivo aleatório baseado em
uma distribuição gama.
Portrait Miner 7.0A
Capítulo 16: Sintaxe FDL
Função
Objetivo
rndNormal
Gerar um número aleatório baseado em uma
distribuição normal.
rndPoisson
Gerar um inteiro não negativo aleatório, baseado
em uma distribuição poissoniana discreta.
rndUniform
Gerar um número aleatório entre 0 e 1, baseado
em uma distribuição uniforme.
Funções de retorno de investimento
Função
Objetivo
ActionROI
Estimar a contribuição para o retorno de
investimento (dinheiro) por cliente por efetuar
ações projetadas para gerar uma resposta
definitiva.
ActionROIAnnualized
Estimar o múltiplo para o retorno de investimento
anual por cliente por efetuar ações projetadas para
gerar uma resposta definitiva de um cliente.
OfferROI
Estimar a contribuição para o retorno de
investimento por cliente por efetuar uma oferta
projetada para gerar uma resposta definitiva.
OfferROIAnnualized
Estimar o múltiplo para o retorno de investimento
anual por efetuar uma oferta projetada para gerar
uma resposta definitiva de um cliente.
RetentionActionROI
Estimar a contribuição para o retorno de
investimento (dinheiro) por cliente por efetuar
ações projetadas para evitar desgastes.
RetentionActionROIAnnualized
Estimar a contribuição para o retorno de
investimento anual por cliente por efetuar ações
projetadas para evitar desgastes.
RetentionOfferROI
Estimar o retorno de investimento por cliente por
fazer uma oferta projetada para evitar desgastes.
RetentionOfferROIAnnualized
Estimar o retorno de investimento anual por cliente
por fazer uma oferta projetada para evitar
desgastes.
Funções diversas
Função
Objetivo
dblookup
Pesquisar valores em uma tabela de referência
(armazenada como um focus).
Guia de referência de comando de compilação de dados e do TML
203
Palavras reservadas em FDL
Função
Objetivo
member
Determinar o conjunto de associação.
rankOrder, rankOrderApprox
Identificar a classificação de um valor em uma lista
de valores.
rankOrderMean, rankOrderApproxMean
Identificar a classificação de um valor em uma lista
de valores.
rownum
Gerar o número de cada linha na tabela.
Binnings
Função
Objetivo
bin
Obtém um índice do bin correspondente a um
valor.
Consulte também
Funções definidas pelo usuário na página 190
Palavras reservadas em FDL
Os seguintes tokens são palavras reservadas em FDL: accum, agg, aggregate, aggregation,
and, by, case, date, default, div, double, else, eq, false, field, float,
function, global, if, int, integer, long, mod, not, null, number, numeric,
or, real, short, state, string, then, true, wheredate, default, div, double,
else, eq, false, field, float, function, global, if, int, integer, long, mod,
not, null, number, numeric, or, real, short, state, string, then, true, where
e while
Para usar uma palavra reservada ou uma palavra que difere somente no uso de maiúsculas e minúsculas,
como um identificador [consulte Expressões na página 184] em FDL ou nome de campo ou estatística
em TML, é necessário colocá-lo entre aspas simples — por exemplo, 'Date'.
Observação: Apesar dos identificadores em FDL serem sensíveis a maiúsculas e minúsculas (fred
e Fred são distintos), as palavras reservadas não são sensíveis a maiúsculas e
minúsculas, por isso, estão reservadas em qualquer combinação: por exemplo, if,
If, iF, and IF são representações do mesmo token; todas essas combinações são
reservadas e não podem ser usadas como identificadores.
Consulte também
Sobre Linguagem de Campo Derivado (FDL) na página 180
Palavras reservadas em TML na página 147
204
Portrait Miner 7.0A
Capítulo
Funções condicionais
Nesta seção:
•
•
•
•
•
•
•
clamp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .206
cond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .206
iff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .207
ifnull, nvl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .208
isnull . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .209
isselected . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210
replace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .210
17
clamp
clamp
Objetivo: Restringir um número a um intervalo específico.
Sintaxe clamp(x, min, max)
Argumentos
Tipo
Nome
Descrição
numérico
x
O número a ser fixado
como x
min
O limite inferior do intervalo
como x
max
O limite superior do intervalo
Resultado
Tipo
Descrição
como entrada
x se
; min se x < min; max se x > max
Exemplos
Fixar valores em um intervalo entre 18 e 65 inclusive, substituindo valores fora do intervalo com os
limites de intervalo apropriados:
CustomerAge
clamp(CustomerAge,18,65)
9
18
18
18
66
65
43
43
Consulte também
replace na página 210
cond
Objetivo: Produzir um de dois resultados dependendo se uma expressão é zero ou diferente de zero.
Sintaxe cond(cond, trueExpr, falseExpr)
Argumentos
206
Portrait Miner 7.0A
Capítulo 17: Funções condicionais
Tipo
Nome
Descrição
inteiro
cond
A expressão a testar
inteiro, real, data ou string
trueExpr
Ramificação "true" (diferente de
zero)
como trueExpr
falseExpr
Ramificação "false" (zero)
Resultado
Tipo
Descrição
como trueExpr, falseExpr
trueExpr se cond 0; falseExpr se cond = 0
Observação: Ao contrário de uma expressão if [consulte A expressão if na página 186] ou expressão
case [consulte A expressão case na página 187], ambas as ramificações são avaliadas
pela função cond.
Mais significativamente, cond preserva a incerteza de um valor nulo [consulte O valor
nulo na página 182] na condição.
Se não precisar desse comportamento, use uma expressão if ou case para ser mais
rápido.
Exemplos
Apontar para clientes com um gasto zero no 2.º Trimestre para uma campanha de correspondência:
SpendQtr2
cond(SpendQtr2, "Não Enviar",
"Enviar")
100.39
Não Enviar
0
Enviar
-5.72
Enviar
null
null
Consulte também
clamp na página 206
iff na página 207
ifnull, nvl na página 208
replace na página 210
iff
Objetivo: Produzir um de dois resultados dependendo se uma expressão é zero ou diferente de zero.
Guia de referência de comando de compilação de dados e do TML
207
ifnull, nvl
Sintaxe iff(logical_text, value_if_true, value_if_false)
Argumentos
Tipo
Nome
Descrição
real
logical_text
A expressão a testar
inteiro, real, data ou string
value_if_true
Ramificação "true" (diferente de
zero)
como value_if_true
value_if_false
Ramificação "false" (zero ou nulo)
Resultado
Tipo
Descrição
como value_if_true, value_if_false
value_if_true se logical_text 0;
value_if_false se logical_text = 0 ou
logical_text é nulo
Exemplos iff(Score > 650, "Enviar", "Não Enviar")
Consulte também
cond na página 206
ifnull, nvl
Objetivo: Substituir o valor nulo. É possível usar nvl como alias para ifnull.
Sintaxe ifnull(testNull, replaceValue)
nvl(testNull, replaceValue)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
testNull
O valor a ser testado
como testNull
replaceValue
A substituição pelo valor nulo
Resultado
Tipo
Descrição
como entrada
Uma cópia do valor testNull com
replaceValue substituindo o valor nulo
Exemplos:
Para substituir valor em falta com um valor derivado de outro campo:
208
Portrait Miner 7.0A
Capítulo 17: Funções condicionais
GastoTrim1
GastoAnual
ifnull(GastoTrim1,
GastoAnual/4)
45.21
178.97
45.21
null
150.56
37.64
null
784.27
196.07
59.05
274.18
59.05
Consulte também
cond na página 206
isnull na página 209
isnull
Objetivo: Testar se um valor é nulo.
Sintaxe isnull(x)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
O valor a ser testado
Resultado
Tipo
Descrição
inteiro
1 se x é nulo; caso contrário, 0
Exemplos
Substituir entradas de valores nulos em um campo com o valor médio desse campo:
Age
if isnull(Age) then mean(Age) else Age
32
32
null
44
59
59
27
27
Consulte também
Dividir agregações: a cláusula by na página 154
Guia de referência de comando de compilação de dados e do TML
209
isselected
isselected
Objetivo: Marcar os registros selecionados atualmente.
Sintaxe isselected()
Argumentos Nenhum
Resultado
Tipo
Descrição
inteiro
1, se o registro estiver selecionado atualmente,
caso contrário, 0
Observação: O Visualizador de Dados tem um suporte especial para expansão imediata dessa função.
Exemplos if isselected() then "LowRisk" else "HighRisk"
replace
Objetivo: Substituir um número se não estiver dentro do intervalo fornecido.
Sintaxe replace(x, min, max, y)
Argumentos
Tipo
Nome
Descrição
numérico
x
O número a ser testado
como x
min
O limite inferior do intervalo
como x
max
O limite superior do intervalo
como x
y
O valor de substituição
Resultado
Tipo
Descrição
como entrada
x se
; y caso contrário
Exemplos
Fixar valores em um intervalo entre 18 e 65 inclusive, substituindo valores fora do intervalo com o valor
médio:
210
Portrait Miner 7.0A
Capítulo 17: Funções condicionais
CustomerAge
replace (CustomerAge, 18, 65,
mean(CustomerAge))
9
38
18
18
66
38
43
43
Consulte também
clamp na página 206
Guia de referência de comando de compilação de dados e do TML
211
Capítulo
Funções de conversão de
tipos de dados
Nesta seção:
•
•
•
•
todate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .214
tointeger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215
toreal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .215
tostring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .216
18
todate
todate
Objetivo: Converte um valor para uma data.
Sintaxe todate(x [, format] )
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
Um valor a converter
string
format
Um formato de data [consulte
Formatos de data na página 55]
para uso na conversão (opcional
e somente permitido se x for do
tipo string)
Resultado
Tipo
Descrição
data
x, como uma data
Observação: • Se o argumento é do tipo integer, assume-se que ele represente a data como
AAAAMMDD.
• Se o argumento é do tipo real, assume-se que ele represente a data como
AAAAMMDD. HHMMSS.
• Se o argumento é do tipo string, e não é fornecido um argumento de formato de data,
a string é convertida de acordo com a definição em sua preferência read .
Exemplos (Valores de data mostrados no formato de data european.)
todate(20040109) é igual a 09/01/2004:00:00:00.
todate(20040109.122853) é igual a 09/01/2004:12:08:52.
todate("09/01/2004") é igual a 09/01/2004:00:00:00.
todate("09-Jan-2004","%d-%b-%Y") é igual a 09/01/2004:00:00:00.
todate(#09/01/2004:12:28:53) é igual a 09/01/2004:12:28:53.
Consulte também
tointeger na página 215
toreal na página 215
tostring na página 216
Conversão de tipo na página 184
214
Portrait Miner 7.0A
Capítulo 18: Funções de conversão de tipos de dados
tointeger
Objetivo: Converte um valor para um número integer.
Sintaxe tointeger(x)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
Um valor a converter
Resultado
Tipo
Descrição
inteiro
x, como um valor inteiro
Observação: • Se o argumento é do tipo real, os dígitos após o ponto decimal são ignorados.
• Se o argumento é do tipo date, o resultado é no formato AAAAMMDD (o componente
de hora é ignorado).
• Se o argumento é do tipo string, quaisquer caracteres não numéricos à direita são
ignorados.
Exemplos
tointeger(100) é igual a 100.
tointeger(100,65) é igual a 100.
tointeger("100,65") é igual a 100.
tointeger(#09/01/2004:12:28:53) é igual a 20040109.
Consulte também
todate na página 214
toreal na página 215
tostring na página 216
Conversão de tipo na página 184
toreal
Objetivo: Converte um valor para um número real.
Sintaxe toreal(x)
Guia de referência de comando de compilação de dados e do TML
215
tostring
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
Um valor a converter
Resultado
Tipo
Descrição
real
x, como um número real
Observação: • Se o argumento é do tipo date, o resultado é no formato AAAAMMDD.HHMMSS.
• Se o argumento é do tipo string, quaisquer caracteres não numéricos à direita são
ignorados.
Exemplos
toreal(100) é igual a 100,0.
toreal(100,65) é igual a 100,65.
toreal("100.65") é igual a 100.65.
toreal(#09/01/2004:12:28:53) é igual a 20040109.122853.
Consulte também
todate na página 214
tointeger na página 215
tostring na página 216
Conversão de tipo na página 184
tostring
Objetivo: Converte um valor para uma string.
Sintaxe tostring(x)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
Um valor a converter
Resultado
216
Tipo
Descrição
string
x, como uma string
Portrait Miner 7.0A
Capítulo 18: Funções de conversão de tipos de dados
Observação: • Se o argumento é do tipo real, o resultado é um formato decimal comum (não cientifico).
• Se o argumento é do tipo data, o resultado é formatado de acordo com a definição de
sua preferência date write .
Exemplos
tostring(100) é igual a "100".
tostring(1.0065e2) é igual a "100.650000".
tostring("100.65") é igual a "100.65".
tostring(#09/01/2004:12:28:53) é igual a "09/01/2004:12:28:53".
Consulte também
todate na página 214
tointeger na página 215
toreal na página 215
Conversão de tipo na página 184
Guia de referência de comando de compilação de dados e do TML
217
Capítulo
Funções para trabalhar com
datas
Nesta seção:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
addcenturies, addcenturiescountbackwards . . . . . . . . .221
adddays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .222
addhours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .223
addminutes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .223
addmonths, addmonthscountbackwards . . . . . . . . . . . .224
addseconds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .226
addweeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .227
addyears, addyearscountbackwards . . . . . . . . . . . . . . .228
countcenturies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229
countdays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .229
counthours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .230
countminutes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .231
countseconds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .232
countweeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .233
countwholecenturies, countwholecenturiesbackwards .234
countwholedays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .235
countwholehours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .236
countwholeminutes . . . . . . . . . . . . . . . . . . . . . . . . . . . . .236
countwholemonths, countwholemonthsbackwards . . .237
countwholeseconds . . . . . . . . . . . . . . . . . . . . . . . . . . . . .239
countwholeweeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .240
countwholeyears, countwholeyearsbackwards . . . . . .241
countyears . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .242
day . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243
dayofweek . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .243
19
•
•
•
•
•
•
•
•
•
220
gmt2edt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244
hour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .244
minute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .245
month . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246
now . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .246
second . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247
today . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .247
weekofyear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .248
year . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .249
Portrait Miner 7.0A
Capítulo 19: Funções para trabalhar com datas
addcenturies, addcenturiescountbackwards
Objetivo: Calcular uma data a partir de outra data, usando um deslocamento em séculos.
Sintaxe addcenturies(date, n)
addcenturiescountbackwards(date, n)
Argumentos
Tipo
Nome
Descrição
data
date
A data inicial
inteiro
n
O número de séculos a adicionar
(que pode ser negativo)
Resultado
Tipo
Descrição
data
A data n séculos de calendário após a data date
(interpretada como |n| séculos antes de date se
n < 0).
A hora do resultado é igual à parte da hora de
date.
Consulte addmonths,
addmonthscountbackwards na página 224 para
uma explicação das duas variantes.
Observação: O resultado de adicionar n séculos usando a função addcenturies (respectivamente,
addcenturiescountbackwards) é definido como o resultado de adicionar 1200n meses
com a função addmonths (respectivamente, addmonthscountbackwards).
Exemplos
Para calcular uma data um século depois de d, mostrando a diferença entre as variantes addcenturies
e addcenturiescountbackwards (formato de data YMD):
d
addcenturies(d,1)
addcenturiescountbackwards(d,1)
1900/02/14
2000/02/14
2000/02/15
Consulte também
countcenturies na página 229
countwholecenturies, countwholecenturiesbackwards na página 234
Formatos de data na página 55
Guia de referência de comando de compilação de dados e do TML
221
adddays
adddays
Objetivo: Calcular uma data a partir de outra data, usando um deslocamento em dias.
Sintaxe adddays(date, n)
Argumentos
Tipo
Nome
Descrição
data
date
A data inicial
inteiro
n
O número de dias a adicionar
(que pode ser negativo).
Resultado
Tipo
Descrição
data
A data n dias após a data date (interpretada como
|n| dias antes da data date se n < 0).
A hora do resultado é igual à parte da hora de
date.
Exemplos
Formato de data european: adddays(#09/01/2004, 25) é igual a 03/02/2004.
Formato de data european: adddays(#09/01/2004:11:43:46, 25) é igual a
03/02/2004:11:43:46.
Formato de data american: adddays(#01/09/2004, 25) é igual a 02/03/2004.
Formato de data american: adddays(#01/09/2004:11:43:46, 25) é igual a
02/03/2004:11:43:46.
Formato de data YMD: adddays(#2004/01/09, 25) é igual a 2004/02/03.
Formato de data YMD: adddays(#2004/01/09:11:43:46, 25) é igual a 2004/02/03:11:43:46.
Consulte também
countdays na página 229
countwholedays na página 235
Formatos de data na página 55
222
Portrait Miner 7.0A
Capítulo 19: Funções para trabalhar com datas
addhours
Objetivo: Calcular uma data a partir de outra data, usando um deslocamento em horas.
Sintaxe addhours(date, n)
Argumentos
Tipo
Nome
Descrição
data
date
A data inicial
inteiro
n
O número de horas a adicionar
(que pode ser negativo)
Resultado
Tipo
Descrição
data
A data n horas após a data date (interpretada
como |n| horas antes da date, se n < 0)
Observação: Todas as datas em FDL incluem um componente de hora.
Exemplos
Formato de data european: addhours(#09/01/2004:12:28:53, 25) é igual a
10/01/2004:13:28:53.
Formato de data american: addhours(#01/09/2004:12:28:53, 25) é igual a
01/10/2004:13:28:53.
Formato de data YMD: addhours(#2004/01/09:12:28:53, 25) é igual a 2004/01/10:13:28:53.
Consulte também
counthours na página 230
countwholehours na página 236
Formatos de data na página 55
addminutes
Objetivo: Calcular uma data a partir de outra data, usando um deslocamento em minutos.
Sintaxe addminutes(date, n)
Argumentos
Guia de referência de comando de compilação de dados e do TML
223
addmonths, addmonthscountbackwards
Tipo
Nome
Descrição
data
date
A data inicial
inteiro
n
O número de minutos a adicionar
(que pode ser negativo)
Resultado
Tipo
Descrição
data
A data n minutos após a data date (interpretada
como |n| minutos antes da date, se n < 0)
Observação: Todas as datas em FDL incluem um componente de hora.
Exemplos
Formato de data european: addminutes(#09/01/2004:12:28:53, 25) é igual a
09/01/2004:12:53:53.
Formato de data american: addminutes(#01/09/2004:12:28:53, 25) é igual a
01/09/2004:12:53:53.
Formato de data YMD: addminutes(#2004/01/09:12:28:53, 25) é igual a
2004/01/09:12:53:53.
Consulte também
countminutes na página 231
countwholeminutes na página 236
Formatos de data na página 55
addmonths, addmonthscountbackwards
Objetivo: Calcular uma data a partir de outra data, usando um deslocamento em meses.
Sintaxe addmonths(date, n)
addmonthscountbackwards(date, n)
Argumentos
Tipo
Nome
Descrição
data
date
A data inicial
inteiro
n
O número de meses para
adicionar (que pode ser negativo)
Resultado
224
Portrait Miner 7.0A
Capítulo 19: Funções para trabalhar com datas
Tipo
Descrição
data
A data n meses de calendário após a data date
(interpretada como |n| meses antes de date se
n < 0).
O mês e o ano do resultado são determinados pelo
deslocamento n.
Em seguida, o dia do mês do resultado é
configurado para ser igual ao indicado na data
date (para addmonths) ou o mesmo número de
dias do final do mês indicado na data date (para
addmonthscountbackwards).
Se o dia do mês acabasse por ser antes do início
ou depois do final do mês (porque o mês do
resultado é um mês menor que o mês que contém
a date), o dia ficaria fixo no primeiro ou último dia
do mês, conforme apropriado.
A hora do resultado é igual à parte da hora de
date.
Observação: • Se forem adicionados n meses por meio do addmonths (ou
addmonthscountbackwards), o resultado não será o mesmo que seria obtido ao
adicionar um mês n vezes, uma vez que o dia do mês pode ser restringido por um
mês intermédio mais curto no último caso.
• Os resultados da adição de uma data com addmonths e
addmonthscountbackwards podem ser diferentes se o mês da data e o mês do
resultado tiverem diferentes números de dias.
Exemplos
Calcular a data um mês depois de d, mostrando a propagação da hora (formato de data YMD):
d
addmonths(d,1)
2007/08/14:00:00:00
2007/09/14:00:00:00
2007/08/14:12:34:56
2007/09/14:12:34:56
Calcular uma data um mês depois de d, mostrando a diferença entre as variantes addmonths e
addmonthscountbackwards (formato de data YMD):
d
addmonths(d,1)
addmonthscountbackwards(d,1)
2007/08/14
2007/09/14
2007/09/13
Calcular uma data um mês depois de d, mostrando o comportamento de fixação de addmonths no final
de um mês (formato de data YMD):
Guia de referência de comando de compilação de dados e do TML
225
addseconds
d
addmonths(d,1)
2007/08/31
2007/09/30
Calcular uma data um mês depois de d, mostrando o comportamento de fixação de
addmonthscountbackwards no início do mês (formato de data YMD):
d
addmonthscountbackwards(d,1)
2007/08/02
2007/09/01
2007/08/01
2007/09/01
Calcular o aniversário de seis meses de cada aquisição do cliente, usando o campo de data StartDate
da aquisição do cliente:
addmonths(StartDate, 6)
Consulte também
countwholemonths, countwholemonthsbackwards na página 237
Formatos de data na página 55
addseconds
Objetivo: Calcular uma data a partir de outra data, usando um deslocamento em segundos.
Sintaxe addseconds(date, n)
Argumentos
Tipo
Nome
Descrição
data
date
A data inicial
inteiro
n
O número de segundos a
adicionar (que pode ser negativo)
Resultado
Tipo
Descrição
data
A data n segundos após a data date (interpretada
como |n| segundos antes da date, se n < 0)
Observação: Todas as datas em FDL incluem um componente de hora.
Exemplos
Formato de data european: addseconds(#09/01/2004:12:28:53, 25)é igual a
09/01/2004:12:54:18.
226
Portrait Miner 7.0A
Capítulo 19: Funções para trabalhar com datas
Formato de data american: addseconds(#01/09/2004:12:28:53, 25) é igual a
01/09/2004:12:54:18.
Formato de data YMD: addseconds(#2004/01/09:12:28:53, 25) é igual a
2004/01/09:12:54:18.
Consulte também
countseconds na página 232
countwholeseconds na página 239
Formatos de data na página 55
addweeks
Objetivo: Calcular uma data a partir de outra data, usando um deslocamento em semanas.
Sintaxe addweeks(date, n)
Argumentos
Tipo
Nome
Descrição
data
date
A data inicial
inteiro
n
O número de semanas a
adicionar (que pode ser negativo)
Resultado
Tipo
Descrição
data
A data n semanas após a data date (interpretada
como |n| semanas antes da date, se n < 0).
A hora do resultado é igual à parte da hora de
date.
Exemplos
Formato de data european: addweeks(#09/01/2004, 8) é igual a 05/03/2004.
Formato de data american: addweeks(#01/09/2004, 8) é igual a 03/05/2004.
Formato de data YMD: addweeks(#2004/01/09, 8) é igual a 2004/03/05.
Consulte também
countweeks na página 233
countwholeweeks na página 240
Formatos de data na página 55
Guia de referência de comando de compilação de dados e do TML
227
addyears, addyearscountbackwards
addyears, addyearscountbackwards
Objetivo: Calcular uma data a partir de outra data, usando um deslocamento em anos.
Sintaxe addyears(date, n)
addyearscountbackwards(date, n)
Argumentos
Tipo
Nome
Descrição
data
date
A data inicial
inteiro
n
O número de anos a adicionar
(que pode ser negativo)
Resultado
Tipo
Descrição
data
A data n anos de calendário após a data date
(interpretada como |n| anos antes da date se n
< 0).
A hora do resultado é igual à parte da hora de
date.
Consulte addmonths,
addmonthscountbackwards na página 224 para
uma explicação das duas variantes.
Observação: O resultado de adicionar n anos usando a função addyears (respectivamente,
addyearscountbackwards) é definido como o resultado de adicionar 12n meses com a
função addmonths (respectivamente, addmonthscountbackwards).
Exemplos
Calcular uma data um ano depois de d, mostrando a diferença entre as variantes addyears e
addyearscountbackwards (formato de data YMD):
d
addyears(d,1)
addyearscountbackwards(d,1)
2007/02/14
2008/02/14
2008/02/15
Para calcular o aniversário de um ano de cada aquisição do cliente, usando o campo de data StartDate
da aquisição do cliente:
addyears(StartDate, 1)
Consulte também
228
Portrait Miner 7.0A
Capítulo 19: Funções para trabalhar com datas
countwholeyears, countwholeyearsbackwards na página 241
countyears na página 242
Formatos de data na página 55
countcenturies
Objetivo: Calcular o período entre duas datas em séculos.
Sintaxe countcenturies(date1, date2)
Argumentos
Tipo
Nome
Descrição
data
date1
a primeira data
data
date2
a segunda data
Resultado
Tipo
Descrição
real
O período entre date1 e date2 em séculos (um
número negativo se date1 for posterior a date2)
Observação: • Se o número não é um múltiplo exato de 100 anos (considerando as partes de hora
das datas), o resultado inclui uma parte fracional.
• O resultado da função countcenturies é definido como a função countyears, dividido
por 100.
Exemplos
Formato de data european: countcenturies(#09/01/2004, #09/01/2054) é igual a 0,5.
Formato de data american: countcenturies(#01/09/2004, #01/09/2054) é igual a 0,5.
Formato de data YMD: countcenturies(#2004/01/09, #2054/01/09) é igual a 0,5.
Consulte também
countwholecenturies, countwholecenturiesbackwards na página 234
Formatos de data na página 55
countdays
Objetivo: Calcular o período entre duas datas em dias.
Guia de referência de comando de compilação de dados e do TML
229
counthours
Sintaxe countdays(date1, date2)
Argumentos
Tipo
Nome
Descrição
data
date1
a primeira data
data
date2
a segunda data
Resultado
Tipo
Descrição
real
O período entre date1 e date2 em dias (um
número negativo se date1 for posterior a date2)
Observação: Se as partes da hora das duas datas são diferentes, o resultado inclui uma parte fracional.
Exemplos
Formato de data european:
countdays(#09/01/2004, #03/02/2004) é igual a 25.
countdays(#09/01/2004:10:00:00, #03/02/2004:11:00:00) é igual a 25,04.
countdays(#09/01/2004:11:00:00, #03/02/2004:10:00:00) é igual a 24,96.
Formato de data american:
countdays(#01/09/2004, #02/03/2004) é igual a 25.
countdays(#01/09/2004:10:00:00, #02/03/2004:11:00:00) é igual a 25,04.
countdays(#01/09/2004:11:00:00, #02/03/2004:10:00:00) é igual a 24,96.
Formato de data YMD:
countdays(#2004/01/09, #2004/02/03) é igual a 25.
countdays(#2004/01/09:10:00:00, #2004/02/03:11:00:00) é igual a 25,04.
countdays(#2004/01/09:11:00:00, #2004/02/03:10:00:00) é igual a 24,96.
Consulte também
adddays na página 222
countwholedays na página 235
Formatos de data na página 55
counthours
Objetivo: Calcular o período entre duas datas em horas.
230
Portrait Miner 7.0A
Capítulo 19: Funções para trabalhar com datas
Sintaxe counthours(time1, time2)
Argumentos
Tipo
Nome
Descrição
data
time1
a primeira data/hora
data
time2
a segunda data/hora
Resultado
Tipo
Descrição
real
O período entre time1 e time2 em horas (um
número negativo se time1 for posterior a time2)
Observação: Se as partes dos minutos ou dos segundos das duas datas são diferentes, o resultado
inclui uma parte fracional.
Exemplos
Formato de data european: counthours(#09/01/2004:12:28:53, #10/01/2004:13:28:53)
é igual a 25.
Formato de data american: counthours(#01/09/2004:12:28:53, #01/10/2004:13:28:53)
é igual a 25.
Formato de data YMD: counthours(#2004/01/09:12:28:53, #2004/01/10:13:28:53) é igual
a 25.
Consulte também
countwholehours na página 236
Formatos de data na página 55
countminutes
Objetivo: Calcular o período entre duas datas em minutos.
Sintaxe countminutes(time1, time2)
Argumentos
Tipo
Nome
Descrição
data
time1
a primeira data/hora
data
time2
a segunda data/hora
Resultado
Guia de referência de comando de compilação de dados e do TML
231
countseconds
Tipo
Descrição
real
O período entre time1 e time2 em minutos (um
número negativo se time1 for posterior a time2)
Observação: Se as partes dos segundos das duas datas são diferentes, o resultado inclui uma parte
fracional.
Exemplos
Formato de data european: countminutes(#09/01/2004:12:28:53, #09/01/2004:12:53:53)
é igual a 25.
Formato de data american: countminutes(#01/09/2004:12:28:53, #01/09/2004:12:53:53)
é igual a 25.
Formato de data YMD: countminutes(#2004/01/09:12:28:53, #2004/01/09:12:53:53) é
igual a 25.
Consulte também
countwholeminutes na página 236
Formatos de data na página 55
countseconds
Objetivo Contar o número de segundos entre duas datas.
Sintaxe countseconds(time1, time2)
Argumentos
Tipo
Nome
Descrição
data
time1
a primeira data/hora
data
time2
a segunda data/hora
Resultado
Tipo
Descrição
real
O número de segundos decorridos entre time1 e
time2 (um número negativo se time1 for posterior
a time2)
Observação: A única diferença entre essa função e a countwholeseconds é que o resultado da
última é do tipo integer.
Exemplos
232
Portrait Miner 7.0A
Capítulo 19: Funções para trabalhar com datas
Formato de data european: countseconds(#09/01/2004:12:28:53, #09/01/2004:12:29:18)
é igual a 25.
Formato de data american: countseconds(#01/09/2004:12:28:53, #01/09/2004:12:29:18)
é igual a 25.
Formato de data YMD: countseconds(#2004/01/09:12:28:53, #2004/01/09:12:29:18) é
igual a 25.
Consulte também
Formatos de data na página 55
countweeks
Objetivo: Calcular o período entre duas datas em semanas.
Sintaxe countweeks(date1, date2)
Argumentos
Tipo
Nome
Descrição
data
date1
a primeira data
data
date2
a segunda data
Resultado
Tipo
Descrição
real
O período entre date1 e date2 em semanas (um
número negativo se date1 é posterior a date2)
Observação: Se o número não é um múltiplo exato de sete dias (considerando as partes da hora das
datas), o resultado inclui uma parte fracional.
Exemplos
Formato de data european: countweeks(#09/01/2004, #05/03/2004) é igual a 8.
Formato de data american: countweeks(#01/09/2004, #03/05/2004) é igual a 8.
Formato de data YMD: countweeks(#2004/01/09, #2004/03/05) é igual a 8.
Consulte também
countwholeweeks na página 240
Formatos de data na página 55
Guia de referência de comando de compilação de dados e do TML
233
countwholecenturies, countwholecenturiesbackwards
countwholecenturies,
countwholecenturiesbackwards
Objetivo: Contar o número de séculos entre duas datas.
Sintaxe countwholecenturies(date1, date2) countwholecenturiesbackwards(date1,
date2)
Argumentos
Tipo
Nome
Descrição
data
date1
a primeira data
data
date2
a segunda data
Resultado
Tipo
Descrição
inteiro
O número de séculos completos decorridos entre
date1 e date2 (um número negativo se date1
for posterior a date2).
Consulte countwholemonths,
countwholemonthsbackwards na página 237 para
uma explicação das duas variantes.
Observação: • O resultado da função countwholecenturies (respectivamente,
countwholecenturiesbackwards)) é definido como o resultado da função
countwholemonths (respectivamente, countwholemonthsbackwards)) dividido
por 1200, ignorando qualquer resto da divisão.
• Os resultados de comparar duas datas com countwholecenturies e
countwholecenturiesbackwards podem ser diferentes, mas somente se ambas
as datas ocorrerem em fevereiro, uma data ocorrer em um ano divisível por 400 e a
outra ocorrer em um ano divisível por 100 mas não divisível por 400.
Exemplos
Para contar o número de séculos completos entre d1 e d2, mostrando a diferença entre as variantes
countwholecenturies e countwholecenturiesbackwards (formato de data YMD):
234
d1
d2
countwholecenturies(d1,d2)
countwholecenturiesbackwards(d1,d2)
1900/02/14
2000/02/13
0
0
1900/02/14
2000/02/14
1
0
1900/02/14
2000/02/15
1
1
Portrait Miner 7.0A
Capítulo 19: Funções para trabalhar com datas
Consulte também
addcenturies, addcenturiescountbackwards na página 221
countcenturies na página 229
Formatos de data na página 55
countwholedays
Objetivo: Contar o número de dias completos entre duas datas.
Sintaxe countwholedays(date1, date2)
Argumentos
Tipo
Nome
Descrição
data
date1
a primeira data
data
date2
a segunda data
Resultado
Tipo
Descrição
inteiro
O número de períodos de 24 horas completos
decorridos entre date1 e date2 (um número
negativo se date1 for posterior a date2)
Exemplos
Formato de data european:
countdays(#09/01/2004, #03/02/2004) é igual a 25.
countdays(#09/01/2004:10:00:00, #03/02/2004:11:00:00) é igual a 25.
countdays(#09/01/2004:11:00:00, #03/02/2004:10:00:00) é igual a 24.
Formato de data american:
countdays(#01/09/2004, #02/03/2004) é igual a 25.
countdays(#01/09/2004:10:00:00, #02/03/2004:11:00:00) é igual a 25.
countdays(#01/09/2004:11:00:00, #02/03/2004:10:00:00) é igual a 24.
Formato de data YMD:
countdays(#2004/01/09, #2004/02/03) é igual a 25.
countdays(#2004/01/09:10:00:00, #2004/02/03:11:00:00) é igual a 25.
countdays(#2004/01/09:11:00:00, #2004/02/03:10:00:00) é igual a 24.
Guia de referência de comando de compilação de dados e do TML
235
countwholehours
Consulte também
adddays na página 222
countdays na página 229
Formatos de data na página 55
countwholehours
Objetivo: Contar o número de horas completas entre duas datas.
Sintaxe countwholehours(time1, time2)
Argumentos
Tipo
Nome
Descrição
data
time1
a primeira data/hora
data
time2
a segunda data/hora
Resultado
Tipo
Descrição
inteiro
O número de horas completas decorridas entre
time1 e time2 (um número negativo se time1
for posterior a time2)
Exemplos
Formato de data european: countwholehours(#09/01/2004:12:28:53,
#10/01/2004:13:28:53) é igual a 24.
Formato de data american: countwholehours(#01/09/2004:12:28:53,
#01/10/2004:13:28:53) é igual a 24.
Formato de data YMD: countwholehours(#2004/01/09:12:28:53, #2004/01/10:13:28:53)
é igual a 24.
Consulte também
counthours na página 230
Formatos de data na página 55
countwholeminutes
Objetivo: Contar o número de minutos completos entre duas datas.
236
Portrait Miner 7.0A
Capítulo 19: Funções para trabalhar com datas
Sintaxe countwholeminutes(time1, time2)
Argumentos
Tipo
Nome
Descrição
data
time1
a primeira data/hora
data
time2
a segunda data/hora
Resultado
Tipo
Descrição
inteiro
O número de minutos completos decorridos entre
time1 e time2 (um número negativo se time1
for posterior a time2)
Exemplos
Formato de data european: countwholeminutes(#09/01/2004:12:28:53,
#09/01/2004:12:53:53) é igual a 24.
Formato de data american: countwholeminutes(#01/09/2004:12:28:53,
#01/09/2004:12:53:53) é igual a 24.
Formato de data YMD: countwholeminutes(#2004/01/09:12:28:53, #2004/01/09:12:53:53)
é igual a 24.
Consulte também
countminutes na página 231
Formatos de data na página 55
countwholemonths, countwholemonthsbackwards
Objetivo: Contar o número de meses completos entre duas datas.
Sintaxe countwholemonths(date1, date2) countwholemonthsbackwards(date1, date2)
Argumentos
Tipo
Nome
Descrição
data
date1
a primeira data
data
date2
a segunda data
Resultado
Guia de referência de comando de compilação de dados e do TML
237
countwholemonths, countwholemonthsbackwards
Tipo
Descrição
inteiro
O número de meses completos decorridos entre
date1 e date2 (um número negativo se date1
for posterior a date2)
Observação: • As partes da hora de date1 e de date2 são ignoradas.
• O número de meses completos entre duas datas é o maior número de meses que pode
ser adicionado à primeira data (truncando partes de hora e usando addmonths em
caso de countwholemonths e addmonthscountbackwards em caso de
countwholemonthsbackwards). Assim, se a segunda data for posterior à primeira
data, o resultado não é posterior à segunda data, e se a segunda data for anterior à
primeira data, o resultado não é anterior à segunda data.
• Os resultados de comparar duas data com countwholemonths e
countwholemonthsbackwards podem ser diferentes quando as datas ocorrem em
meses com duração diferente.
• Devido ao comportamento de fixação de addmonths (e addmonthscountbackwards),
o valor absoluto dos resultados de comparar duas datas com countwholemonths
(ou countwholemonthsbackwards) pode depender da ordem dos argumentos
quando as datas ocorrem em meses com duração diferente.
Exemplos
Contar o número de meses completos entre d1 e d2, mostrando o truncamento de partes de hora
(formato de data YMD):
d1
d2
countwholemonths(d1,d2)
2007/08/14:00:00:00
2007/09/14:00:00:00
1
2007/08/14:12:34:56
2007/09/14:00:00:00
1
Contar o número de meses completos entre d1 r d2, mostrando a diferença entre as variantes
countwholemonths e countwholemonthsbackwards (formato de data YMD):
d1
d2
countwholemonths(d1,d2)
countwholemonthsbackwards(d1,d2)
2007/08/14
2007/09/12
0
0
2007/08/14
2007/09/13
0
1
2007/08/14
2007/09/14
1
1
Contar o número de meses completos entre d1 e d2, mostrando o comportamento de fixação de
countwholemonths no final do mês (formato de data YMD):
238
d1
d2
countwholemonths(d1,d2)
countwholemonths(d2,d1)
2007/08/31
2007/09/30
1
0
Portrait Miner 7.0A
Capítulo 19: Funções para trabalhar com datas
Contar o número de meses completos entre d1 e d2, mostrando o comportamento de fixação de
countwholemonths no início do mês (formato de data YMD):
d1
d2
countwholemonthsbackwards(d1,d2) countwholemonthsbackwards(d2,d1)
2007/07/01
2007/06/01
-1
0
Contar o número de comunicações mensais por e-mail que cada cliente recebeu, onde as comunicações
são enviadas no dia cinco de cada mês (a última comunicação tendo sido enviada no dia 5 de março
de 2006) e usando o campo de data StartDate da aquisição do cliente:
-countwholemonths(#2006/03/05, StartDate)
Para contar o número de anúncios mensais que cada cliente recebeu, onde os anúncios são enviados
sete dias antes do final de cada mês (o último anúncio tendo sido enviado no dia 24 de março de 2006)
e usando o campo de data StartDate da aquisição do cliente:
-countwholemonthsbackwards(#2006/03/24, StartDate)
Consulte também
addmonths, addmonthscountbackwards na página 224
Formatos de data na página 55
countwholeseconds
Objetivo: Contar o número de segundos entre duas datas.
Sintaxe countwholeseconds(time1, time2)
Argumentos
Tipo
Nome
Descrição
data
time1
a primeira data/hora
data
time2
a segunda data/hora
Resultado
Tipo
Descrição
inteiro
O número de segundos decorridos entre time1 e
time2 (um número negativo se time1 for posterior
a time2)
Observação: A única diferença entre essa função e a countseconds é que o resultado da última é
do tipo real.
Exemplos
Guia de referência de comando de compilação de dados e do TML
239
countwholeweeks
Formato de data european: countwholeseconds(#09/01/2004:12:28:53,
#09/01/2004:12:29:18) é igual a 25.
Formato de data american: countwholeseconds(#01/09/2004:12:28:53,
#01/09/2004:12:29:18) é igual a 25.
Formato de data YMD: countwholeseconds(#2004/01/09:12:28:53, #2004/01/09:12:29:18)
é igual a 25.
Consulte também
Formatos de data na página 55
countwholeweeks
Objetivo: Contar o número de semanas completas entre duas datas.
Sintaxe countwholeweeks(date1, date2)
Argumentos
Tipo
Nome
Descrição
data
date1
a primeira data
data
date2
a segunda data
Resultado
Tipo
Descrição
inteiro
O número de semanas completas decorridas entre
date1 e date2 (um número negativo se date1
for posterior a date2)
Exemplos
Formato de data european: countwholeweeks(#09/01/2004, #09/03/2004) é igual a 8.
Formato de data american: countwholeweeks(#01/09/2004, #03/09/2004) é igual a 8.
Formato de data YMD: countwholeweeks(#2004/01/09, #2004/03/09) é igual a 8.
Consulte também
countweeks na página 233
Formatos de data na página 55
240
Portrait Miner 7.0A
Capítulo 19: Funções para trabalhar com datas
countwholeyears, countwholeyearsbackwards
Objetivo: Contar o número de anos completos entre duas datas.
Sintaxe countwholeyears(date1, date2)
countwholeyearsbackwards(date1, date2)
Argumentos
Tipo
Nome
Descrição
data
date1
a primeira data
data
date2
a segunda data
Resultado
Tipo
Descrição
inteiro
O número de anos completos decorridos entre
date1 e date2 (um número negativo se date1
for posterior a date2).
Consulte countwholemonths,
countwholemonthsbackwards na página 237 para
uma explicação das duas variantes.
Observação: • O resultado da função countwholeyears (respectivamente,
countwholeyearsbackwards) é definido como o resultado da função
countwholemonths (respectivamente, countwholemonthsbackwards) dividido
por 12, ignorando qualquer resto da divisão.
• Os resultados da comparação de duas datas com countwholeyears e
countwholeyearsbackwards podem ser diferentes, mas somente quando ambas
as datas ocorrem em fevereiro e uma data ocorre em um ano bissexto e a outra não.
Exemplos
Para contar o número de anos completos entre d1 e d2, mostrando a diferença entre as variantes
countwholeyears e countwholeyearsbackwards (formato de data YMD):
d1
d2
countwholeyears(d1,d2) countwholeyearsbackwards(d1,d2)
2007/02/14
2008/02/13
0
0
2007/02/14
2008/02/14
1
0
2007/02/14
2008/02/15
1
1
Para computar a idade de cada cliente no dia 1º de março de 2007 a partir de um campo de data de
nascimento DOB (formato de data YMD):
Guia de referência de comando de compilação de dados e do TML
241
countyears
countwholeyears(DOB, #2007/03/01)
Consulte também
addyears, addyearscountbackwards na página 228
countyears na página 242
Formatos de data na página 55
countyears
Objetivo: Calcular o período entre duas datas em anos.
Sintaxe countyears(date1, date2)
Argumentos
Tipo
Nome
Descrição
data
date1
a primeira data
data
date2
a segunda data
Resultado
Tipo
Descrição
real
O período entre date1 e date2 em anos (um
número negativo se date1 for posterior a date2)
Observação: • Se o mês, dia ou a hora de duas datas forem diferentes, o resultado inclui uma parte
fracional, contando o ano incompleto como uma fração do número de dias (365 ou
366) no ano da última das duas datas.
Exemplos
Formato de data european: countyears(#09/01/2004, #09/01/1994) é igual a -10.
Formato de data american: countyears(#01/09/2004, #01/09/1994) é igual a -10.
Formato de data YMD: countyears(#2004/01/09, #1994/01/09) é igual a -10.
Consulte também
countwholeyears, countwholeyearsbackwards na página 241
Formatos de data na página 55
242
Portrait Miner 7.0A
Capítulo 19: Funções para trabalhar com datas
day
Objetivo: Obter o dia do mês de uma data.
Sintaxe day(date)
Argumentos
Tipo
Nome
Descrição
data
date
Uma data
Resultado
Tipo
Descrição
inteiro
A parte do dia do mês de date
Exemplos
Formato de data european: day(#09/01/2004) é igual a 9.
Formato de data american: day(#01/09/2004) é igual a 9.
Formato de data YMD: day(#2004/01/09) é igual a 9.
Consulte também
Formatos de data na página 55
Dividir agregações: a cláusula by na página 154
dayofweek
Objetivo: Obter um número representante do dia da semana de uma data.
Sintaxe dayofweek(date)
Argumentos
Tipo
Nome
Descrição
data
date
Uma data
Resultado
Tipo
Descrição
inteiro
O dia da semana de date (um número entre 0 e
6, com 0 representando o domingo)
Guia de referência de comando de compilação de dados e do TML
243
gmt2edt
Exemplos
Formato de data european: dayofweek(#09/01/2004) é igual a 5 (ou seja, sexta-feira).
Formato de data american: dayofweek(#01/09/2004) é igual a 5 (ou seja, sexta-feira).
Formato de data YMD: dayofweek(#2004/01/09) é igual a 5 (ou seja, sexta-feira).
Consulte também
Formatos de data na página 55
Dividir agregações: a cláusula by na página 154
gmt2edt
Objetivo: Converter uma data na Hora de Greenwhich (GMT) para um Horário de Verão do Leste dos
EUA (EDT).
Sintaxe gmt2edt(datetimeGMT)
Argumentos
Tipo
Nome
Descrição
data
datetimeGMT
A data GMT para converter
Resultado
Tipo
Descrição
data
A data EDT, calculada para o horário de verão
Exemplos
Inverno: GMT2EDT(#09/01/2004:12:28:53) é igual a 09/01/2004:07:28:53.
Verão: GMT2EDT(#09/07/2004:12:28:53) é igual a 09/07/2004:08:28:53.
hour
Objetivo: Obter as horas de uma data.
Sintaxe hour(time)
Argumentos
244
Tipo
Nome
Descrição
data
time
Uma data/hora
Portrait Miner 7.0A
Capítulo 19: Funções para trabalhar com datas
Resultado
Tipo
Descrição
inteiro
A parte das horas de time
Exemplos
Formato de data european: hour(#09/01/2004:12:28:53) é igual a 12.
Formato de data american: hour(#01/09/2004:12:28:53) é igual a 12.
Formato de data YMD: hour(#2004/01/09:12:28:53) é igual a 12.
Consulte também
Formatos de data na página 55
Dividir agregações: a cláusula by na página 154
minute
Objetivo: Obter os minutos de uma data.
Sintaxe minute(time)
Argumentos
Tipo
Nome
Descrição
data
time
Uma data/hora
Resultado
Tipo
Descrição
inteiro
Os minutos de time
Exemplos
Formato de data european: hour(#09/01/2004:12:28:53) é igual a 28.
Formato de data american: hour(#01/09/2004:12:28:53) é igual a 28.
Formato de data YMD: hour(#2004/01/09:12:28:53) é igual a 28.
Consulte também
Formatos de data na página 55
Dividir agregações: a cláusula by na página 154
Guia de referência de comando de compilação de dados e do TML
245
month
month
Objetivo: Obter o mês de uma data.
Sintaxe month(date)
Argumentos
Tipo
Nome
Descrição
data
date
Uma data
Resultado
Tipo
Descrição
inteiro
A parte do mês de date
Exemplos
Formato de data european: month(#09/01/2004) é igual a 1.
Formato de data american: month(#01/09/2004) é igual a 1.
Formato de data YMD: month(#2004/01/09) é igual a 1.
Consulte também
Formatos de data na página 55
Dividir agregações: a cláusula by na página 154
now
Objetivo: Obter a data e a hora atuais.
Sintaxe now()
Argumentos Nenhum
Resultado
Tipo
Descrição
data
A data atual (incluindo hora), obtida a partir do
relógio do sistema
Exemplos
Formato de data european: now() é igual a 09/01/2004:12:28:53.
246
Portrait Miner 7.0A
Capítulo 19: Funções para trabalhar com datas
Formato de data american: now() é igual a 01/09/2004:12:28:53.
Formato de data YMD: now() é igual a 2004/01/09:12:28:53.
Consulte também
Formatos de data na página 55
today na página 247
second
Objetivo: Obter os segundos de uma data.
Sintaxe second(time)
Argumentos
Tipo
Nome
Descrição
data
time
Uma data/hora
Resultado
Tipo
Descrição
inteiro
A parte dos segundos de time
Exemplos
Formato de data european: second(#09/01/2004:12:28:53) é igual a 53.
Formato de data american: second(#01/09/2004:12:28:53) é igual a 53.
Formato de data YMD: second(#2004/01/09:12:28:53) é igual a 53.
Consulte também
Formatos de data na página 55
Dividir agregações: a cláusula by na página 154
today
Objetivo: Obter a data atual.
Sintaxe today()
Argumentos Nenhum
Resultado
Guia de referência de comando de compilação de dados e do TML
247
weekofyear
Tipo
Descrição
data
A data atual obtida a partir do relógio do sistema,
com a parte da hora configurada para 00:00:00
Exemplos
Formato de data european: today() é igual a 09/01/2004:00:00:00.
Formato de data american: today() é igual a 01/09/2004:00:00:00.
Formato de data YMD: today() é igual a 2004/01/09:00:00:00.
Consulte também
Formatos de data na página 55
now na página 246
weekofyear
Objetivo: Calcular a semana do ano de uma data, relativamente a uma data inicial específica.
Sintaxe weekofyear(date, yearStart)
Argumentos
Tipo
Nome
Descrição
data
date
A data cuja semana do ano deve
ser obtida
data
yearStart
A data inicial (por exemplo, de
um ano fiscal)
Resultado
Tipo
Descrição
inteiro
A semana do ano de date, relativamente a
yearStart
Observação: Somente são usadas as partes do mês e do dia da data inicial.
Exemplos
Formato de data european: weekofyear(#09/07/2004, #01/04/2004) é igual a 14.
Formato de data american: weekofyear(#07/09/2004, #04/01/2004) é igual a 14.
Formato de data YMD: weekofyear(#2004/07/09, #2004/04/01) é igual a 14.
Consulte também
248
Portrait Miner 7.0A
Capítulo 19: Funções para trabalhar com datas
Formatos de data na página 55
Dividir agregações: a cláusula by na página 154
year
Objetivo: Obter o ano de uma data.
Sintaxe year(date)
Argumentos
Tipo
Nome
Descrição
data
date
Uma data
Resultado
Tipo
Descrição
inteiro
A parte do ano de date
Exemplos
Formato de data european: year(#09/01/2004) é igual a 2004.
Formato de data american: year(#01/09/2004) é igual a 2004.
Formato de data YMD: year(#2004/01/09) é igual a 2004.
Consulte também
Formatos de data na página 55
Guia de referência de comando de compilação de dados e do TML
249
Capítulo
Funções para trabalhar com
strings
Nesta seção:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
concat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252
endswith . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .252
find . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .253
left . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .254
mid . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .255
right . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .256
soundex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .257
startswith . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .258
strlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259
strmember . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .259
substitute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .260
substr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .261
tolower . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .262
toupper . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263
trim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .263
20
concat
concat
Objetivo: Concatenar duas ou mais strings.
Sintaxe concat( , , ...)
Argumentos
Tipo
string
Nome
Descrição
, , ...
Strings para concatenar
Resultado
Tipo
Descrição
string
O string obtido ao escrever os caracteres de ,
seguido pelos caracteres de , etc.
Exemplos
Derivar o nome completo de um cliente a partir de dois campos FirstName e Surname:
FirstName
Surname
concat(FirstName,"
",Surname)
John
Brown
John Brown
David
Smith
David Smith
Derivar o nome completo de um cliente, usando somente sua inicial:
FirstName
Surname
concat(substr(FirstName,0,0),".
",Surname)
John
Brown
J. Brown
David
Smith
D. Smith
endswith
Objetivo: Testar se uma string termina com outra.
Sintaxe endswith(find_text, within_text)
Argumentos
252
Portrait Miner 7.0A
Capítulo 20: Funções para trabalhar com strings
Tipo
Nome
Descrição
string
find_text
A string a ser encontrada no final
string
within_text
A string a ser testada
Resultado
Tipo
Descrição
inteiro
1 ("true") se find_text for encontrada no final
de within_text; 0 ("false") caso contrário
Observação: A função endswith é baseada na função match. Ela anexa o caractere $ ao find_text
antes de tratar o resultado como uma expressão regular [consulte Expressões regulares
na página 266].
Exemplos
Derivar um campo que marca endereços de e-mail de domínios .net:
EmailAddress
endswith(".net", EmailAddress)
[email protected]
1
[email protected]
0
Consulte também
find na página 253
startswith na página 258
find
Objetivo Testar se uma string está contida em outra string.
Sintaxe find(find_text, within_text)
Argumentos
Tipo
Nome
Descrição
string
find_text
A string a ser encontrada
string
within_text
A string a ser testada
Resultado
Guia de referência de comando de compilação de dados e do TML
253
left
Tipo
Descrição
inteiro
1 ("true") se find_text for encontrado em
within_text; 0 ("false"), caso contrário
Observação: A função find é baseada na função match e trata find_text como uma expressão
regular [consulte Expressões regulares na página 266].
Exemplos
Marcar endereços de e-mail que incluam o texto "portraitsoftware" em letras maiúsculas, minúsculas
ou maiúsculas e minúsculas combinadas:
EmailAddress
find("portraitsoftware",
tolower(EndereçodeE-mail))
[email protected]
1
[email protected]
0
[email protected]
1
Consulte também
endswith na página 252
startswith na página 258
left
Objetivo: Retornar uma substring de comprimento especificado a partir do final de uma string.
Sintaxe left(text, num_chars)
Argumentos
Tipo
Nome
Descrição
string
text
A string da qual extrair
inteiro
num_chars
O número de caracteres
Resultado
Tipo
Descrição
string
A substring formada por num_chars caracteres
no início de text
Observação: A função left é baseada na função substr.
254
Portrait Miner 7.0A
Capítulo 20: Funções para trabalhar com strings
Exemplos
Usar os dois primeiros caracteres de um campo CostOfAction para identificar os clientes da Costa
Oeste:
StateCode
member (left (StateCode, 2), "CA",
"OR", WA")
OR009
1
CA043
1
UT005
0
WA027
1
Consulte também
mid na página 255
right na página 256
trim na página 263
mid
Objetivo: Retornar uma substring de comprimento especificado a partir do meio de uma string.
Sintaxe mid(text, start_num, num_chars)
Argumentos
Tipo
Nome
Descrição
string
text
A string da qual extrair
string
start_num
O primeiro índice
string
num_chars
O número de caracteres
Resultado
Tipo
Descrição
string
A substring formada por num_chars caracteres a
partir da posição de caractere start_num
(inclusive) do text, na qual as posições dos
caracteres são numeradas a partir de 1
Observação: A função mid é baseada na função substr.
Exemplos
Guia de referência de comando de compilação de dados e do TML
255
right
Derivar uma localização de cinco a sete caracteres a partir de um código de armazenamento:
StoreCode
mid(StoreCode, 5, 3)
0114EDI256
EDI
1863LON836
LON
9326EDI039
EDI
0387BOS041
BOS
Consulte também
left na página 254
right na página 256
trim na página 263
right
Objetivo: Retornar uma substring de comprimento especificado a partir do final de uma string.
Sintaxe right(text, num_chars)
Argumentos
Tipo
Nome
Descrição
string
text
A string da qual extrair
inteiro
num_chars
O número de caracteres
Resultado
Tipo
Descrição
string
A substring formada por num_chars caracteres
no final de text
Observação: A função right é baseada na função substr.
Exemplos
Para retornar o componente de casa/rua de um campo de código de endereçamento postal do Reino
Unido, ou seja, os últimos três caracteres:
256
PostalCode
right(PostalCode, 3)
NE25 0AY
0AY
EH3 7RA
7RA
Portrait Miner 7.0A
Capítulo 20: Funções para trabalhar com strings
PostalCode
right(PostalCode, 3)
SL4 1QX
1QX
EH9 0NJ
0NJ
Consulte também
left na página 254
mid na página 255
trim na página 263
soundex
Objetivo: Reduzir cada palavra a uma string de quatro caracteres para fins de indexação.
Sintaxe soundex(text)
Argumentos
Tipo
Nome
Descrição
string
text
O texto a reduzir
Resultado
Tipo
Descrição
string
Uma codificação de indexação reduzida a quatro
caracteres
Exemplos
Para derivar o código soundex para um sobrenome:
Surname
soundex(Surname)
Brown
B650
Smythe
S530
Smith
S530
Bruno
B650
Observação: A função Soundex não está definida para caracteres não ascii.
Guia de referência de comando de compilação de dados e do TML
257
startswith
startswith
Objetivo: Testar se uma string inicia com outra.
Sintaxe startswith(find_text, within_text)
Argumentos
Tipo
Nome
Descrição
string
find_text
A string a ser buscada
string
within_text
A string a ser testada
Resultado
Tipo
Descrição
inteiro
1 se find_text for encontrado no início de
within_text; 0 caso contrário
Observação: A função startswith é baseada na função match. Ela inclui um caractere ^ ao find_text
antes de tratar o resultado como uma expressão regular [consulte Expressões regulares
na página 266].
Exemplos
Para derivar o tipo de cartão de crédito usado em uma transação, como "Discover", "AmEx", "Visa" ou
MasterCard", com base nos números de prefixo do cartão:
case
startswith ("6011", CC_Number): "Discover";
startswith ("4", CC_Number): "Visa";
startswith ("5", CC_Number): "MasterCard";
startswith ("34", CC_Number) or startswith ("37", CC_Number): "AmEx";
default: null;
CC_Number
CC_Type
4111-1111-1111-1111
Visa
5431-1111-1111-1111
MasterCard
341-1111-1111-1111
AmEx
6011-6011-6011-6611
Discover
Consulte também
258
Portrait Miner 7.0A
Capítulo 20: Funções para trabalhar com strings
endswith na página 252
find na página 253
strlen
Objetivo: Obter o comprimento de uma string.
Sintaxe strlen(string)
Argumentos
Tipo
Nome
Descrição
string
string
A string cujo comprimento deve
ser determinado
Resultado
Tipo
Descrição
inteiro
O número de caracteres na string
Exemplos
Para derivar um campo de string com exatamente quatro caracteres, preenchendo uma string menor
com zeros à esquerda:
case
strlen(AccountID) = 1: concat("000", AccountID);
strlen(AccountID) = 2: concat("00", AccountID);
strlen(AccountID) = 3: concat("0", AccountID);
default: AccountID;
AccountID
Account
1
0001
22
0022
333
0333
4444
4444
strmember
Objetivo: Determinar o conjunto de associação.
Guia de referência de comando de compilação de dados e do TML
259
substitute
Sintaxe strmember(x, , , ...)
Argumentos
Tipo
Nome
Descrição
string
x
O valor a ser testado
como x
, , ...
Os elementos do conjunto
Resultado
Tipo
Descrição
inteiro
1 ("true") se x estiver no conjunto
("false") caso contrário
;0
Observação: • Só é possível usar os valores literais da string para a lista de elementos do conjunto.
• Os espaços em branco à direita não são ignorados.
• Essa função é preterida em favor da função geral member.
Consulte também
Dividir agregações: a cláusula by na página 154
substitute
Objetivo: Substituir uma string por outra.
Sintaxe substitute(text, old_text, new_text)
Argumentos
Tipo
Nome
Descrição
string
text
A string a ser pesquisada
string
old_text
A string a ser substituída
string
new_text
A string de substituição
Resultado
Tipo
Descrição
string
Uma cópia da string text com new_text
substituindo cada instância sem sobreposição de
old_text
Observação: A função substitute é baseada na função replaceall e trata old_text como uma
expressão regular [consulte Expressões regulares na página 266].
260
Portrait Miner 7.0A
Capítulo 20: Funções para trabalhar com strings
Exemplos
Para remover espaços em branco de um campo chamado PostalCode:
PostalCode
substitute(PostalCode, "[[:blank:]]",
"")
ND 069
ND069
IN 099
IN099
UT 0 0 5
UT005
O R 009
OR009
Consulte também
replacefirst na página 272
substr
Objetivo: Obter uma substring a partir de uma string.
Sintaxe substr(string, start, end)
Argumentos
Tipo
Nome
Descrição
string
string
A string inicial
inteiro
start
O primeiro índice
inteiro
end
O segundo índice
Resultado
Tipo
Descrição
string
A substring formada por caracteres start até end
(inclusive) da string, na qual os caracteres são
numerados a partir de 0. Os valores de índice
positivos contam a partir do início da string, e os
valores de índice negativos contam a partir do final
da string.
Exemplos
Para selecionar os primeiros dois e os últimos três caracteres de um campo PostalCode para oferecer
o código do estado:
Guia de referência de comando de compilação de dados e do TML
261
tolower
PostalCode
substr(PostalCode, 0, 1) substr(PostalCode, -3,
-1)
MA015
MA
015
WA055
WA
055
UT005
UT
005
MN119
MN
119
Para derivar o tipo de cartão de crédito usado em uma transação, como "Discover", "AmEx", "Visa" ou
MasterCard", com base nos números de prefixo do cartão:
case
substr(CC_Number, 0, 3) = "6011": "Discover";
substr(CC_Number, 0, 0) = "4": "Visa";
substr(CC_Number, 0, 0) = "5": "MasterCard";
substr(CC_Number_CC, 0, 1) = "34" or substr(CC_Number, 0, 1) = "37": "AmEx";
default: null;
CC_Number
CC_Type
4111-1111-1111-1111
Visa
5431-1111-1111-1111
MasterCard
341-1111-1111-1111
AmEx
6011-6011-6011-6611
Discover
tolower
Objetivo: Converter uma string para texto em letra minúscula.
Sintaxe tolower(string)
Argumentos
Tipo
Nome
Descrição
string
string
Uma string a ser convertida
Resultado
262
Portrait Miner 7.0A
Capítulo 20: Funções para trabalhar com strings
Tipo
Descrição
string
A string obtida a partir de string substituindo
todas as letras maiúsculas na string pela letra
minúscula correspondente
Exemplos tolower("ZYXWV") é igual a "zyxwv"
Consulte também
toupper na página 263
toupper
Objetivo: Converter uma string para texto em letra maiúscula.
Sintaxe toupper(string)
Argumentos
Tipo
Nome
Descrição
string
string
Uma string a ser convertida
Resultado
Tipo
Descrição
string
A string obtida a partir da string substituindo
todas as letras minúsculas na string pela letra
maiúscula correspondente
Exemplos toupper("abcde") é igual a "ABCDE"
Consulte também
tolower na página 262
trim
Objetivo: Remover todos os espaços de uma string, exceto os espaços vazios entre as palavras.
Sintaxe trim(text)
Argumentos
Guia de referência de comando de compilação de dados e do TML
263
trim
Tipo
Nome
Descrição
string
text
A string a ser cortada
Resultado
Tipo
Descrição
string
A string formada a partir de text removendo todos
os espaços, exceto os espaços vazios entre
palavras
Observação: A função trim é baseada na função replaceall.
Exemplos
Derivar um campo que substitui vários caracteres de espaços em branco por apenas um espaço:
264
CommentField
trim(CommentField)
Artigos defeituosos devolvidos
Artigos defeituosos devolvidos
Compromisso perdido
Compromisso perdido
Visita de engenheiro: Segunda-feira
Visita de engenheiro: Segunda-feira
Resolvido
Resolvido
Portrait Miner 7.0A
Capítulo
Expressões regulares e
funções associadas
Nesta seção:
•
•
•
•
•
•
Expressões regulares . . . . . . . . . . . . . . . . . . . . . . . . . . . .266
Componentes básicos de uma expressão regular . . . .266
Operadores de expressões regulares . . . . . . . . . . . . . .268
match . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .270
replaceall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .271
replacefirst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .272
21
Expressões regulares
Expressões regulares
Expressões regulares servem para coincidir padrões em strings [consulte Tipos de Dados na página
182]. Uma expressão regular é uma string especialmente formatada que representa um padrão de
caracteres. Por exemplo, a expressão regular "ar{1,2}y\?$" representa "a letra 'a', seguida de um ou
dois 'r', possivelmente seguidos de "y", seguido de o final de uma string." Esse padrão ocorre em strings
como "marry"e "jar" — mas não ocorre em "may" ou "jars.")
Uma expressão regular é composta por componentes básicos [consulte Componentes básicos de
uma expressão regular na página 266] combinados por meio de operadores [consulte Operadores de
expressões regulares na página 268].
Se uma expressão regular (que não seja uma subexpressão) coincidir com mais de uma porção de uma
string, essa coincide sempre com a porção candidata mais longa e mais à esquerda. Por exemplo, a
expressão regular "a[^ad]\+" (representando "a letra 'a', seguida de uma ou mais letras que não sejam
'a' ou 'd'") coincide com "adaptationally." A porção que coincide não é "ation", uma vez que existem
porções candidatas mais à esquerda. Nem é "ap" porque, apesar de não existirem candidatos mais à
esquerda, existe uma porção candidata mais longa que começa com o mesmo caractere.
• Para testar uma string quanto a coincidência com expressão regular, use a função match.
• Para substituir porções de uma string que coincidem com as de outra string, use a função replacefirst
ou replaceall.
Observação: • As expressões regulares são tipicamente (mas não necessariamente) literais e, nesse
caso, devem ser fechadas em aspas duplas, por exemplo, "ar{1,2}y\?$".
• Miner/FDL usa uma Expressão regular fornecida pela biblioteca ICU. (é possível vincular
a http://userguide.icu-project.org/strings/regexp)
• As expressões regulares ICU estão em conformidade com a Norma Técnica Unicode
nº 18 e as Expressões Regulares Unicode, nível 1, e também incluem Limites de
Palavra Padrão e Propriedades de Nome do nível 2.
Componentes básicos de uma expressão regular
Os componentes básicos de uma expressão regular [consulte Expressões regulares na página 266]
são átomos, âncoras e referências inversas.
Átomos
Um átomo coincide exatamente com um conjunto especificado de caracteres:
266
Átomo
Caractere coincidente
. (match-any)
Qualquer caractere
[...] (match-list)
Qualquer um dos caracteres especificados
Portrait Miner 7.0A
Capítulo 21: Expressões regulares e funções associadas
Átomo
Caractere coincidente
[^...] (non-match-list)
Qualquer caractere que não seja um dos
caracteres especificados
Um caractere que não seja ., ^, $, \, [, ], O próprio caractere
ou *, ocorrendo fora da lista de coincidências ou
da lista de não coincidências
., ^, $, \, [, ], ou *, ocorrendo fora da
O próprio caractere
lista de coincidências ou da lista de não
coincidências e precedido por uma barra invertida
(\)
É possível que uma lista de coincidências ou uma lista de não coincidências inclua caracteres simples,
intervalos de caracteres e classes de caracteres. Não é possível usar intervalos de caracteres ou classes
de caracteres, exceto em uma lista de coincidências ou lista de não coincidências.
Um intervalo de caracteres é um par de caracteres separado por um hífen e equivale a uma lista de
todos os caracteres nesse intervalo (no conjunto de caracteres). Por exemplo, "a-e" equivale a "abcde"
em uma lista de coincidências.
Uma classe de caracteres é um dos seguintes tokens predefinidos (em que os colchetes são adicionais
em relação aos colchetes circunscrevendo a lista de coincidências ou a lista de não coincidências):
Token
Coincidências
[:alnum:]
Um caractere alfanumérico, ou seja, um caractere
alfabético ou um dígito decimal
[:alpha:]
Um caractere alfabético, ou seja, "A" — "Z" e "a"
— "z"
[:blank:]
Uma tabulação ou um caractere de espaço
[:cntrl:]
Um caractere de controle
[:digit:]
Um dígito decimal, ou seja, "0" — "9"
[:graph:]
Um caractere imprimível, que não seja o espaço
[:lower:]
Uma letra minúscula
[:print:]
Um caractere imprimível ou espaço
[:punct:]
Um caractere de pontuação
[:space:]
Um caractere de espaço em branco
[:upper:]
Uma letra maiúscula
[:xdigit:]
Um dígito hexadecimal, ou seja, "0" — "9," "A" —
"F," e "a" — "f"
Observação: • É possível incluir uma combinação de caracteres simples, intervalos de caracteres e
classes de caracteres em apenas uma lista de coincidências ou de não coincidências.
Guia de referência de comando de compilação de dados e do TML
267
Referências inversas
Por exemplo, a lista de coincidências "[a-ex[:digit:]]" coincide com as letras
minúsculas "a" — "e" e "x", bem como com os dígitos decimais ("0" — "9").
• É possível colocar um hífen em uma lista de coincidências ou em uma lista de não
coincidências quando ela ocorre (a) no final de um intervalo, (b) no início de uma lista
de coincidências ou de uma lista de não coincidências (nesse caso, é possível também
servir como o início de um intervalo), ou (c) no final de uma lista de coincidências ou
de uma lista de não coincidências.
Âncoras
Os caracteres ^ e $ são âncoras; eles coincidem com o início e o final de uma string, respectivamente.
Por exemplo, para coincidir "The" que ocorre somente no início de uma string, é possível usar a expressão
regular "^The."
Referências inversas
Uma referência inversa é uma barra invertida seguida de apenas um dígito n (exceto 0). Coincide
exatamente com os mesmos caracteres que a nª subexpressão fechada em \(...\).
Por exemplo, para coincidir "yoyo," "dodo," etc. — mas não coincidir "dojo" — é possível usar a expressão
regular "\(.o\)\1."
Observação: • A nª subexpressão de referência inversa é sempre a subexpressão começando com
a nª barra invertida/parêntesis de abertura (mesmo se as subexpressões estiverem
aninhadas).
• É possível a subexpressão vazia "\(\)" ser útil para expressões regulares que
envolvem alternância [consulte O operador de alternância na página 270]. Por exemplo,
\(fish\(\)\|profit\(\)\)-e-\(chips\2\|loss\3\)
coincide "fish-and-chips" e "profit-and-loss," mas não coincide "fish-and-loss" ou
"profit-and-chips."
Operadores de expressões regulares
Um operador atua em uma ou duas expressões regulares [consulte Expressões regulares na página
266] para criar uma nova expressão regular. Os operadores, da maior à menor precedência, são os
operadores de repetição [consulte Operadores de repetição na página 269], o operador de concatenação
[consulte O operador de concatenação na página 269] e o operador de alternância [consulte O operador
de alternância na página 270].
Se há uma ligação de precedência, as operações são realizadas da esquerda para a direita.
As subexpressões fechadas em \(...\) são sempre avaliadas em primeiro lugar.
268
Portrait Miner 7.0A
Capítulo 21: Expressões regulares e funções associadas
Operadores de repetição
Os operadores de repetição são unários e escritos após seu único operando.
Operador
Descrição
* (zero-ou-mais)
Se uma expressão regular 'a' coincidir com uma
ou mais porções adjacentes de uma string, a
expressão regular a* coincidirá com a
concatenação dessas porções. Coincide também
com qualquer substring vazia.
\+ (um-ou-mais)
Se uma expressão regular 'a' coincidir com uma
ou mais porções adjacentes de uma string, a
expressão regular a\+ coincidirá com a
concatenação dessas porções.
{m,n} (0 m n)
Se uma expressão regular a coincidir com, pelo
menos, m e não mais do que n porções adjacentes
de uma string, a expressão regular a{m,n}
coincidirá com a concatenação dessas porções.
Se m=0, também coincidirá com qualquer substring
vazia.
\? (opcional)
Assim como a{0,1}, a expressão regular a\?
coincide com qualquer substring vazia ou com
qualquer porção de uma string com a qual a
expressão regular a coincida.
Observação: As "porções adjacentes" mencionadas nas definições de *, \+ e {...} não são
necessariamente strings idênticas. Se for necessário coincidir repetições exatas, use
as referências inversas [consulte Referências inversas na página 268].
O operador de concatenação
Na verdade, o operador de concatenação não é escrito, mas está implícito sempre que duas expressões
regulares são escritas uma ao lado da outra.
Se as expressões regulares a e b coincidirem com as porções adjacentes x e y de uma string z (com
x precedendo y), a concatenação de a e b (escrita como a seguida de b) coincide com a porção de z
contendo x e y.
Observação: Qualquer string com caracteres não especiais, ou seja, caracteres com nenhum significado
especial em uma expressão regular, funciona como uma expressão regular que coincide
com essa string devido ao operador de concatenação implícito.
Na prática, a maior parte das expressões regulares é composta por strings de caracteres
simples, intercalados com alguns caracteres especiais. Por exemplo, a expressão regular
"[SsDd]imple" coincide com as strings "Simple", "simple", "Dimple" e "dimple".
Guia de referência de comando de compilação de dados e do TML
269
O operador de alternância
O operador de alternância
O operador de alternância "\|" é um operador binário, escrito entre seus operandos.
Se a expressão regular a ou b coincidir com uma porção de uma string, a alternância a\|b também
coincide com essa porção.
match
Objetivo:Testar uma string para uma coincidência de expressão regular [consulte Expressões regulares
na página 266].
Sintaxe match(regexp, string)
Argumentos
Tipo
Nome
Descrição
string
regexp
A expressão regular
string
string
A string a ser testada
Resultado
Tipo
Descrição
inteiro
1 ("true") se regexp coincidir com a string; 0
("false") caso contrário
Exemplos
Para marcar clientes cujo código de endereçamento postal do domicílio e o código de endereçamento
da agência bancária coincidem nos primeiros dois caracteres (usando a função substr):
HomePostcode
BranchPostCode
match(substr(HomePostcode,
0, 1),
substr(BranchPostcode,0,1))
NE25 0AY
NE30 1QX
1
SW3
NG18 1HT
0
CF36
CF31 1HY
1
EH9 0NJ
E10 8AJ
0
Para buscar em um campo de nome da empresa pelos três primeiros caracteres de um campo de um
primeiro nome, seguido de qualquer texto e, em seguida, dos conteúdos do campo de um sobrenome
(ignorando maiúsculas):
270
Portrait Miner 7.0A
Capítulo 21: Expressões regulares e funções associadas
FirstName FamilyName CompanyName
rx := concat(
substr(toupper(FirstName),0,2),
"[[:print:]]*", toupper(FamilyName);
match(rx,toupper(CompanyName))
Patrick
Smith
1234 Pat Smith Ltd
1
Patrick
Smith
1234 Pat J Smith Ltd
1
Para fazer o mesmo, mas somente com algumas letras ou dígitos e apenas um espaço entre o primeiro
nome e o sobrenome:
FirstName FamilyName CompanyName
rx := concat(
substr(toupper(FirstName),0,2),
"[[:alnum:]]* ", toupper(FamilyName);
match(rx,toupper(CompanyName))
Patrick
Smith
1234 Pat Smith Ltd
1
Patrick
Smith
1234 Pat J Smith Ltd
0
Consulte também
replaceall na página 271
replacefirst na página 272
Dividir agregações: a cláusula by na página 154
replaceall
Objetivo: Substituir todas as substrings que coincidem com uma expressão regular [consulte Expressões
regulares na página 266].
Sintaxe replaceall(regexp, replacement, string)
Argumentos
Tipo
Nome
Descrição
string
regexp
A expressão regular
string
replacement
A string de substituição
string
string
A string a ser pesquisada
Resultado
Guia de referência de comando de compilação de dados e do TML
271
replacefirst
Tipo
Descrição
string
Uma cópia da string string com replacement
substituindo cada porção sem sobreposição que
coincida com regexp
Observação: A primeira porção de coincidência da string que vai ser pesquisada é a porção maior e
que ocorre mais à esquerda que coincide com a expressão regular. A pesquisa seguinte
aplica-se ao restante da string que vai ser pesquisada e assim por diante. Por exemplo,
replaceall("i..", "X", "initiation")
produz a string "XtXX" (em vez de, por exemplo, "inXatX"). E
replaceall("i.*i", "X", "initiation")
resulta em "Xon" (em vez de, por exemplo, "XtXon").
Exemplos
Para detectar e remover espaços em branco de um campo PostalCode usando uma coincidência de
expressão regular:
PostalCode
replaceall("[[:blank:]]","",PostalCode))
ND 069
ND069
IN 099
IN099
UT 0 0 5
UT005
O R 009
OR009
Consulte também
match na página 270
replacefirst na página 272
replacefirst
Objetivo:Substituir a primeira substring que coincidir com uma expressão regular [consulte Expressões
regulares na página 266].
Sintaxe replacefirst(regexp, replacement, string)
Argumentos
272
Tipo
Nome
Descrição
string
regexp
A expressão regular
string
replacement
A string de substituição
Portrait Miner 7.0A
Capítulo 21: Expressões regulares e funções associadas
Tipo
Nome
Descrição
string
string
A string a ser pesquisada
Resultado
Tipo
Descrição
string
Uma cópia da string string com replacement
substituindo a primeira porção que coincidir com
regexp (se existir alguma)
Exemplos
Para extrair o nome de um cliente de um campo de endereço de e-mail no formato
"[email protected]", removendo tudo de "@" em diante e substituindo o
"." por um espaço:
E-mail
replacefirst("@.*", "", (replacefirst
("\.", " ", E-mail)))
[email protected]
John Brown
[email protected]
Angela Smith
Consulte também
match na página 270
replaceall na página 271
Guia de referência de comando de compilação de dados e do TML
273
Capítulo
Funções matemáticas e
estatísticas
Nesta seção:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
abs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276
ceil . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .276
cos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277
exp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .277
floor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278
log . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .278
log10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279
logbase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .279
max (dois ou mais argumentos), maxnonnull . . . . . . . .280
mean (dois ou mais argumentos), meannonnull . . . . . .281
min (dois ou mais argumentos), minnonnull . . . . . . . . .281
normalize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .282
pow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .283
product, productnonnull . . . . . . . . . . . . . . . . . . . . . . . . .283
round . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .284
sgn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285
sin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .285
sqrt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .286
sum (dois ou mais argumentos), sumnonnull . . . . . . . .286
tan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .287
22
abs
abs
Objetivo: Calcular o valor absoluto de um número.
Sintaxe abs(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
Um número com sinal
Resultado
Tipo
Descrição
como entrada
, o valor absoluto, ou magnitude, de x
Exemplos
abs(-10000) é igual a 10000.
abs(-25000) é igual a 25000.
Para calcular o erro absoluto entre um valor previsto e um valor histórico: abs(Value PredictedValue)
Consulte também
sgn na página 285
ceil
Objetivo: Arredondar um número para cima, para o número inteiro mais próximo.
Sintaxe ceil(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
O número a ser arredondado
Resultado
Tipo
inteiro
Descrição
, o valor inteiro para que
Exemplos
276
Portrait Miner 7.0A
Capítulo 22: Funções matemáticas e estatísticas
ceil(-1,25) é igual a -2.
ceil(-1,25) é igual a -1.
Para gerar um número inteiro aleatório entre 1 e 10, inclusive: ceil(rndUniform()*10)
Consulte também
floor na página 278
round na página 284
cos
Objetivo: Calcular o cosseno de um ângulo.
Sintaxe cos(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
Um ângulo em radianos
Resultado
Tipo
Descrição
real
cos x, o cosseno de x
Exemplos cos(0) é igual a 1.
exp
Objetivo: Calcular o exponencial de um número.
Sintaxe exp(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
O número cujo exponencial deve
ser computado
Resultado
Guia de referência de comando de compilação de dados e do TML
277
floor
Tipo
Descrição
real
, o exponencial de x
Exemplos exp(0) é igual a 1.
floor
Objetivo: Arredondar um número para baixo, para o número inteiro mais próximo.
Sintaxe floor(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
O número a ser arredondado
Resultado
Tipo
Descrição
inteiro
, o valor inteiro para que
Exemplos
floor(-1,25) é igual a -1.
floor(-1,25) é igual a -2.
Para gerar um número inteiro aleatório entre 0 e 9, inclusive: floor(rndUniform()*10)
Consulte também
ceil na página 276
round na página 284
log
Objetivo: Calcular o logaritmo natural (base "e") de um número.
Sintaxe log(x)
Argumentos
278
Tipo
Nome
Descrição
numérico
x
Um número positivo
Portrait Miner 7.0A
Capítulo 22: Funções matemáticas e estatísticas
Resultado
Tipo
Descrição
real
, o logaritmo natural de x
Exemplos log(1) é igual a 0.
log10
Objetivo: Calcular o logaritmo de base 10 de um número.
Sintaxe log10(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
Um número positivo
Resultado
Tipo
Descrição
real
, o logaritmo de base 10 de x
Exemplos log10(100) é igual a 2.
logbase
Objetivo: Calcular o logaritmo de um número, para uma base especificada.
Sintaxe logbase(x, base)
Argumentos
Tipo
Nome
Descrição
numérico
x
O número positivo cujo logaritmo
deve ser computado
numérico
base
A base a ser usada
Resultado
Guia de referência de comando de compilação de dados e do TML
279
max (dois ou mais argumentos), maxnonnull
Tipo
Descrição
real
, o logaritmo de base base de x
Exemplos logbase(100,10) é igual a 2.
max (dois ou mais argumentos), maxnonnull
Objetivo: Calcular o máximo de dois ou mais números, ou a mais recente de duas ou mais datas ou a
mais recente de duas ou mais strings alfabeticamente. A variante max devolve o valor nulo se algum
de seus argumentos for nulo; a variante maxnonnull ignora argumentos nulos (mas devolve o valor nulo
se todos os argumentos forem nulos).
Sintaxe max( , , ...)
maxnonnull( , , ...)
Argumentos
Tipo
inteiro, real, data ou string (todos
do mesmo tipo)
Nome
Descrição
, , ...
Os valores a serem comparados
Resultado
Tipo
Descrição
como entrada
O máximo de , , ...
Observação: • Atenção para não confundir essa função max multiargumento com a função de
agregação [consulte max (um argumento) na página 169] de mesmo nome.
• Para as strings, "mais recente alfabeticamente" significa "último na representação de
caracteres subjacentes."
Exemplos
max(5,5, -3, 7, -8,5) é igual a 7.
max(5,5, -3, null, -8,5) é igual a null.
maxnonnull(5,5, -3, 7, -8,5) é igual a 7.
maxnonnull(5,5, -3, null, -8,5) é igual a 5,5.
Para determinar a próxima melhor ação para um cliente, de acordo com diferentes medições de ROI:
maxvalue := max (ROI1, ROI2, ROI3);
case
maxvalue = ROI1: "Produto1";
280
Portrait Miner 7.0A
Capítulo 22: Funções matemáticas e estatísticas
maxvalue = ROI2: "Produto2";
maxvalue = ROI3: "Produto3";
mean (dois ou mais argumentos), meannonnull
Objetivo: Calcular a média (média comum) de dois ou mais números. A variante mean devolve o valor
nulo se algum de seus argumentos for nulo; a variante meannonnull ignora os argumentos nulos (mas
devolve o valor nulo se todos os argumentos forem nulos).
Sintaxe mean( , , ...)
meannonnull( , , ...)
Argumentos
Tipo
numérico
Nome
Descrição
, , ...
Os números para calcular a
média
Resultado
Tipo
Descrição
real
A média de , , ...
Observação: Atenção para não confundir essa função mean multiargumento com a função de
agregação [consulte mean (um argumento) na página 170] de mesmo nome.
Exemplos
mean(5,5, -3, 7, -8,5) é igual a 0,25.
mean(5,5, -3, null, -8,5) é igual a null.
meannonnull(5,5, -3, 7, -8,5) é igual a 0,25.
meannonnull(5,5, -3, null, -8,5) é igual a 2.
Para calcular o gasto médio anual de quatro campos de gastos separados do trimestre:
mean(SpendQtr1, SpendQtr2, SpendQtr3, SpendQtr4)
min (dois ou mais argumentos), minnonnull
Objetivo: Calcular o mínimo entre dois ou mais números, ou a mais recente de duas ou mais datas ou
a última de duas ou mais strings alfabeticamente. A variante min devolve o valor nulo se algum de seus
Guia de referência de comando de compilação de dados e do TML
281
normalize
argumentos for nulo; a variante minnonnull ignora os argumentos nulos (mas devolve o valor nulo se
todos os argumentos forem nulos).
Sintaxe
min( , , ...)
minnonnull( , , ...)
Argumentos
Tipo
inteiro, real, data ou string (todos
do mesmo tipo)
Nome
Descrição
, , ...
Os valores a serem comparados
Resultado
Tipo
Descrição
como entrada
O mínimo , , ...
Observação: • Atenção para não confundir essa função min multiargumento com a função de
agregação [consulte min (um argumento) na página 171] de mesmo nome.
• Para as strings, "mais recente alfabeticamente" significa "as mais recentes na
representação de caracteres subjacentes."
Exemplos
min(5,5, -3, 7, -8,5) é igual a -8,5.
min(5,5, -3, null, -8,5) é igual a null.
minnonnull(5,5, -3, 7, -8,5) é igual a -8,5.
minnonnull(5,5, -3, null, -8,5) é igual a -8,5.
normalize
Objetivo: Normalizar valores de campo para ficarem no intervalo [0,1].
Sintaxe normalize(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
O número a ser normalizado
Resultado
282
Portrait Miner 7.0A
Capítulo 22: Funções matemáticas e estatísticas
Tipo
Descrição
real
Valor entre 0 e 1 dado por
Observação: Só é possível usar essa função em uma derivação do Decision Studio, no arquivo de
derivações para qsderive ou na janela Campos Derivados equivalente, no arquivo
de rastreamento para o qstrack ou em um arquivo de seleções para o qsselect.
pow
Objetivo: Calcular o resultado de elevar um número à potência de outro.
Sintaxe pow(x, exponent)
Argumentos
Tipo
Nome
Descrição
numérico
x
O número a ser elevado a uma
potência
numérico
exponent
O exponente
Resultado
Tipo
real
Descrição
, x elevado à potência exponent
Exemplos pow(10, 2) é igual a 100.
product, productnonnull
Objetivo: Calcular o produto de dois ou mais números. A variante do product retorna o valor nulo se
algum de seus argumentos é nulo; a variante productnonnull ignora os argumentos nulos (mas
ainda assim retorna o valor nulo se todos os seus argumentos são nulos).
Sintaxe product( , , ...)
productnonnull( , , ...)>
Argumentos
Guia de referência de comando de compilação de dados e do TML
283
round
Tipo
numérico
Nome
Descrição
, , ...
Os números a serem
multiplicados
Resultado
Tipo
Descrição
como entrada
O produto de , , ...
Exemplos
productnonnull(5,5, -3, 7, -8,5) é igual a 981,75.
product(5,5, -3, null, -8,5) é igual a nulo.
productnonnull(5,5, -3, 7, -8,5) é igual a 981,75.
productnonnull(5,5, -3, null, -8,5) é igual a 140,25.
round
Objetivo: Arredondar um número para o número inteiro mais próximo.
Sintaxe round(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
O número a ser arredondado
Resultado
Tipo
Descrição
inteiro
o inteiro mais próximo de x, ou, no caso de o valor
se encontrar exatamente no meio, o maior de dois
inteiros mais próximos (em valor absoluto)
Exemplos
round(-1,25) é igual a -1.
round(-1,25) é igual a -1.
round(1,5) é igual a 2.
round(-1,5) é igual a -2.
Consulte também
284
Portrait Miner 7.0A
Capítulo 22: Funções matemáticas e estatísticas
ceil na página 276
floor na página 278
sgn
Objetivo: Calcular o signo (sinal) de um número.
Sintaxe sgn(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
Um número com sinal
Resultado
Tipo
Descrição
como entrada
Um número representando o sinal de x:
Exemplos
sgn(-25) é igual a -1.
sgn(-25) é igual a -1.
Consulte também
abs na página 276
Dividir agregações: a cláusula by na página 154
sin
Objetivo: Calcular o seno de um ângulo.
Sintaxe sin(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
Um ângulo em radianos
Resultado
Guia de referência de comando de compilação de dados e do TML
285
sqrt
Tipo
Descrição
real
sin x, o seno de x
Exemplos sin(3,14159/2) é igual a 1.
sqrt
Objetivo: Calcular a raiz quadrada de um número.
Sintaxe sqrt(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
Um número não negativo
Resultado
Tipo
Descrição
real
, a raiz quadrada de x
Exemplos
sqrt(25) é igual a 5.
sqrt(-25) é igual a nulo.
sum (dois ou mais argumentos), sumnonnull
Objetivo: Calcular a soma de dois ou mais números. A variante de sum devolve o valor nulo se algum
de seus argumentos for nulo; a variante de sumnonnull ignora os argumentos nulos (mas devolve o
valor nulo se todos os argumentos forem nulos).
Sintaxe sum( , , ...)
sumnonnull( , , ...)
Argumentos
Tipo
numérico
Nome
, , ...
Descrição
Os números a serem somados
Resultado
286
Portrait Miner 7.0A
Capítulo 22: Funções matemáticas e estatísticas
Tipo
Descrição
como entrada
A soma de , , ...
Observação: Atenção para não confundir essa função sum multiargumento com a função de agregação
[consulte sum (um argumento) na página 177] de mesmo nome.
Exemplos
sum(5,5, -3, 7, -8,5) é igual a 1.
sum(5,5, -3, null, -8,5) é igual a null.
sumnonnull(5,5, -3, 7, -8,5) é igual a 1.
sumnonnull(5,5, -3, null, -8,5) é igual a -6.
Para derivar o gasto total de seis campos de gastos semanais:
sum(SpendWk1, SpendWk2, SpendWk3, SpendWk4, SpendWk5, SpendWk6)
tan
Objetivo: Calcular a tangente de um ângulo.
Sintaxe tan(x)
Argumentos
Tipo
Nome
Descrição
numérico
x
Um ângulo em radianos
Resultado
Tipo
Descrição
real
tan x, a tangente de x
Observação: Se x for da forma
FDL retorna nulo.
para algum inteiro n, tan x é indefinido. Nesse caso, a função
Exemplos tan(3,14159/4) é igual a 1.
Guia de referência de comando de compilação de dados e do TML
287
Capítulo
Funções de amostragem de
dados
Nesta seção:
•
•
•
•
•
•
•
•
numericTestTrainSplit . . . . . . . . . . . . . . . . . . . . . . . . . . .290
numericTestTrainValidateSplit . . . . . . . . . . . . . . . . . . . . .290
sampleEqualSize . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .291
sampleExactNumber . . . . . . . . . . . . . . . . . . . . . . . . . . . .292
sampleExactPercentage . . . . . . . . . . . . . . . . . . . . . . . . . .292
sampleStratified . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .293
testTrainSplit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .294
testTrainValidateSplit . . . . . . . . . . . . . . . . . . . . . . . . . . . .295
23
numericTestTrainSplit
numericTestTrainSplit
Objetivo: Criar uma segmentação de teste/treinamento para uso na validação de modelo.
Sintaxe numericTestTrainSplit(testFraction)
Argumentos
Tipo
Nome
Descrição
real
testFraction
A fração de dados que serão
usados como conjunto de teste.
Resultado
Tipo
Descrição
inteiro
Valores 0 para o conjunto de treinamento ou 1 para
o conjunto de teste
Exemplos
Para derivar um campo que aloca o valor 0 para aproximadamente 70% dos registros (selecionados
aleatoriamente) e o valor 1 para os demais: numericTestTrainSplit(0,3)
Consulte também
numericTestTrainValidateSplit na página 290
sampleEqualSize na página 291
testTrainSplit na página 294
testTrainValidateSplit na página 295
numericTestTrainValidateSplit
Objetivo: Criar uma segmentação de teste/treinamento/validação para uso na validação de modelo.
Sintaxe numericTestTrainValidateSplit(testFraction, validateFraction)
Argumentos
290
Tipo
Nome
Descrição
real
testFraction
A fração de dados que serão
usados como conjunto de teste.
real
validateFraction
A fração de dados que será
usada como conjunto retido.
Portrait Miner 7.0A
Capítulo 23: Funções de amostragem de dados
Resultado
Tipo
Descrição
inteiro
Valores 0 para o conjunto de treinamento, 1 para
o conjunto de teste ou 2 para o conjunto de
validação
Exemplos
Para derivar um campo que aloca o valor 0 para aproximadamente 50% dos registros (selecionados
aleatoriamente), o valor 1 para aproximadamente 30% dos registros (novamente selecionados
aleatoriamente) e o valor 2 para os demais: numericTestTrainValidateSplit(0,3; 0,2)
Consulte também
numericTestTrainSplit na página 290
sampleEqualSize na página 291
testTrainSplit na página 294
testTrainValidateSplit na página 295
sampleEqualSize
Objetivo: Criar um índice de segmentação que atribui aleatoriamente os registros para segmentos
aproximadamente de mesmo tamanho.
Sintaxe sampleEqualSize(NumberOfSegments)
Argumentos
Tipo
Nome
Descrição
inteiro
NumberOfSegments
O número de segmentos que
serão criados
Resultado
Tipo
Descrição
inteiro
Um número entre 1 e NumberOfSegments
(inclusive)
Exemplos
Para derivar um campo enumerando cinco populações (aproximadamente) de mesmo tamanho:
sampleEqualSize(5)
Consulte também
numericTestTrainSplit na página 290
Guia de referência de comando de compilação de dados e do TML
291
sampleExactNumber
numericTestTrainValidateSplit na página 290
testTrainSplit na página 294
testTrainValidateSplit na página 295
sampleExactNumber
Objetivo: Criar uma amostra aleatória de um tamanho exato, especificado como um número de registros.
Sintaxe sampleExactNumber(NumberToSelect)
Argumentos
Tipo
Nome
Descrição
inteiro
NumberToSelect
O tamanho da amostra a ser
criada, como um número de
registros
Resultado
Tipo
Descrição
inteiro
1 se um registro for selecionado para a amostra;
0 caso contrário
Observação: • Os registros que atualmente não estão selecionados no focus são assinalados como
valor nulo.
• É possível usar essa função somente em uma derivação do Decision Studio, no arquivo
de derivações para o qsderive ou na janela Derivar Campos equivalente, no arquivo
de rastreamento para o qstrack, ou em um arquivo de seleções para o qsselect.
Exemplos
Para selecionar 1.250 registros para uma amostra: sampleExactNumber(1250)
Consulte também
sampleExactPercentage na página 292
sampleStratified na página 293
sampleExactPercentage
Objetivo: Criar uma amostra aleatória de tamanho exato, especificado como uma porcentagem do
tamanho da população atualmente selecionada.
292
Portrait Miner 7.0A
Capítulo 23: Funções de amostragem de dados
Sintaxe sampleExactPercentage(PercentageToSelect)
Argumentos
Tipo
Nome
Descrição
inteiro
PercentageToSelect
O tamanho da amostra a ser
criada, como uma porcentagem
do tamanho da população atual
Resultado
Tipo
Descrição
inteiro
1 se um registro for selecionado para a amostra;
0 caso contrário
Observação: • Os registros que atualmente não estão selecionados no focus são assinalados como
valor nulo.
• Se a PercentageToSelect multiplicada pelo tamanho da população não for um
número inteiro, o número selecionado será o número inteiro mais próximo para cima
ou para baixo da PercentageToSelect, multiplicado pelo tamanho da população,
e fornecerá, em média, a porcentagem especificada.
• É possível usar essa função somente em uma derivação do Decision Studio, no arquivo
de derivações para o qsderive ou na janela Derivar Campos equivalente, no arquivo
de rastreamento para o qstrack, ou em um arquivo de seleções para o qsselect.
Exemplos Para selecionar 25% da população para uma amostra:
sampleExactPercentage(25)
Consulte também
sampleExactNumber na página 292
sampleStratified na página 293
sampleStratified
Objetivo: Criar uma amostra aleatória que contenha um número exato de registros de um segmento
especificado, juntamente com um número exato de registros da população atualmente selecionada
restante.
Sintaxe sampleStratified(NumberFromSegmentToSelect, SegmentTotalSize,
NumberOutsideSegmentToSelect, OutsideSegmentTotalSize, InSegmentExpression)
Argumentos
Guia de referência de comando de compilação de dados e do TML
293
testTrainSplit
Tipo
Nome
Descrição
inteiro
NumberFromSegmentToSelect O número de registros na
amostra a ser selecionada do
segmento especificado
inteiro
SegmentTotalSize
inteiro
NumberOutsideSegmentToSelect O número de registros na
amostra a selecionar da restante
população
inteiro
OutsideSegmentTotalSize
O número total de registros no
restante da população
inteiro
InSegmentExpression
A expressão (booleana) que
determina se um registro se
encontra ou não no segmento
especificado
O número total de registros no
segmento especificado
Resultado
Tipo
Descrição
inteiro
1 se um registro for selecionado para a amostra;
0 caso contrário
Observação: • Os registros que atualmente não estão selecionados no focus são assinalados como
valor nulo.
• É possível usar essa função somente em uma derivação do Decision Studio, no arquivo
de derivações para o qsderive ou na janela Derivar Campos equivalente, no arquivo
de rastreamento para o qstrack, ou em um arquivo de seleções para o qsselect.
Exemplos Para criar uma amostra contendo 2.500 registros de um total de 25.000 do sexo feminino e
5.000 registros de um total de 75.000 que não são do sexo feminino:
sampleStratified(2500, 25000, 5000, 75000, Gender = "F")
Consulte também
sampleExactNumber na página 292
sampleExactPercentage na página 292
testTrainSplit
Objetivo: Criar uma segmentação de teste/treinamento para uso na validação de modelo.
Sintaxe testTrainSplit(testFraction)
294
Portrait Miner 7.0A
Capítulo 23: Funções de amostragem de dados
Argumentos
Tipo
Nome
Descrição
real
testFraction
A fração de dados que serão
usados como conjunto de teste.
Resultado
Tipo
Descrição
string
Valores da string TestSet ou TrainingSet
Exemplos
Para derivar um campo que aloca o valor "TrainingSet" para aproximadamente 70% dos registros
(selecionados aleatoriamente) e o valor "TestSet" para os demais:
testTrainSplit(0,3)
Consulte também
numericTestTrainSplit na página 290
numericTestTrainValidateSplit na página 290
sampleEqualSize na página 291
testTrainValidateSplit na página 295
testTrainValidateSplit
Objetivo: Criar uma segmentação de teste/treinamento/validação para uso na validação de modelo.
Sintaxe testTrainValidateSplit(testFraction, validateFraction)
Argumentos
Tipo
Nome
Descrição
real
testFraction
A fração de dados que serão
usados como conjunto de teste.
real
validateFraction
A fração de dados que será
usada como conjunto retido.
Resultado
Tipo
Descrição
string
Valores da string TestSet, TrainingSet ou
ValidationSet
Guia de referência de comando de compilação de dados e do TML
295
testTrainValidateSplit
Exemplos
Para derivar um campo que aloca o valor "TrainingSet" para aproximadamente 50% dos registros
(selecionados aleatoriamente), o valor "TestSet" para aproximadamente 30% (novamente, selecionados
aleatoriamente) e o valor "ValidationSet" para os demais:
testTrainValidateSplit(0,3; 0,2)
Consulte também
numericTestTrainSplit na página 290
numericTestTrainValidateSplit na página 290
sampleEqualSize na página 291
testTrainSplit na página 294
296
Portrait Miner 7.0A
Capítulo
Funções de número
aleatório
Nesta seção:
•
•
•
•
•
•
•
•
Sobre funções de números aleatórios em FDL . . . . . . .298
rndBinomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .298
rndBool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299
rndExp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .299
rndGamma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300
rndNormal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .300
rndPoisson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .301
rndUniform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .302
24
Sobre funções de números aleatórios em FDL
Sobre funções de números aleatórios em FDL
Ao avaliar uma expressão FDL que envolva uma função de número aleatório (numericTestTrainSplit,
numericTestTrainValidateSplit, rndBinomial, rndBool, rndExp, rndGamma, rndNormal, rndPoisson,
ou rndUniform sampleEqualSize, sampleExactNumber, sampleExactPercentage, sampleStratified,
testTrainSplit, e testTrainValidateSplit), o Portrait Miner exige uma "semente" integer para inicializar
sua sequência de números aleatórios. Com a mesma semente, a mesma expressão sempre produzirá
a mesma sequência de resultados.
Observação: • A semente é armazenada como parte do campo informação.
• A geração de números (pseudo) aleatórios é baseada na geração de Marsaglia, Zaman
e Tsang (1990).
rndBinomial
Objetivo: Gerar um número inteiro aleatório baseado em uma distribuição binomial.
Sintaxe rndBinomial(N, p)
Argumentos
Tipo
Nome
Descrição
inteiro
N
O número (positivo) de
avaliações
numérico
p
A probabilidade de sucesso para
cada avaliação (entre 0 e 1)
Resultado
Tipo
Descrição
inteiro
Um inteiro não negativo aleatório, amostrado da
distribuição binomial, com probabilidade dada por
Observação: A expectativa e a variação da distribuição binomial são
e
respectivamente.
Exemplos rndBinomial (50; 0,05)
Consulte também
Sobre funções de números aleatórios em FDL na página 298
298
Portrait Miner 7.0A
Capítulo 24: Funções de número aleatório
rndBool
Objetivo: Gerar 0 ou 1 aleatoriamente (com probabilidades iguais).
Sintaxe rndBool()
Argumentos Nenhum
Resultado
Tipo
Descrição
inteiro
0 ou 1, com probabilidades
Exemplos
Derivar um campo que aloca o valor 0 para aproximadamente 50% dos registros (selecionados
aleatoriamente) e o valor 1 para os demais: rndBool()
Consulte também
Sobre funções de números aleatórios em FDL na página 298
rndExp
Objetivo: Gerar um número positivo aleatório baseado em uma distribuição exponencial.
Sintaxe rndExp(b)
Argumentos
Tipo
Nome
Descrição
numérico
b
O parâmetro de escala (positivo)
Resultado
Tipo
Descrição
real
Um número aleatório positivo, amostrado da
distribuição exponencial, com função de densidade
de probabilidade dada por
(x > 0)
Observação: A expectativa e a variação da distribuição exponencial são
e
respetivamente.
Exemplos rndExp(10)
Consulte também
Sobre funções de números aleatórios em FDL na página 298
Guia de referência de comando de compilação de dados e do TML
299
rndGamma
rndGamma
Objetivo: Gerar um número positivo aleatório baseado em uma distribuição gama.
Sintaxe rndGamma(a, b)
Argumentos
Tipo
Nome
Descrição
inteiro
a
O número (positivo) de eventos
independentes
numérico
b
A taxa (positiva) de eventos
Resultado
Tipo
Descrição
real
Um número aleatório positivo, amostrado da
distribuição gama
, com função de densidade
de probabilidade dada por
Observação: A expectativa e a variação da distribuição gama são
e
respetivamente.
Exemplos rndGamma (50; 0,05)
Consulte também
Sobre funções de números aleatórios em FDL na página 298
rndNormal
Objetivo: Gerar um número aleatório baseado em uma distribuição normal.
Sintaxe rndNormal( , )
Argumentos
Tipo
Nome
Descrição
numérico
A média da distribuição
numérico
O desvio padrão da distribuição
Resultado
300
Portrait Miner 7.0A
Capítulo 24: Funções de número aleatório
Tipo
Descrição
real
Um número aleatório positivo, amostrado da
distribuição normal
, com função de densidade
de probabilidade dada por
Observação: A expectativa e a variação da distribuição normal são e
respetivamente.
Exemplos
Derivar uma distribuição gaussiana, com média zero e desvio padrão da unidade: rndNormal(0,1)
Consulte também
Sobre funções de números aleatórios em FDL na página 298
rndPoisson
Objetivo: Gerar um inteiro não negativo aleatório, baseado em uma distribuição poissoniana discreta.
Sintaxe rndPoisson(mean)
Argumentos
Tipo
Nome
Descrição
numérico
A média (positiva) da distribuição
Resultado
Tipo
Descrição
inteiro
Um inteiro não negativo aleatório, amostrado da
distribuição poissoniana discreta, com
probabilidade dada por
(
)
Observação: A expectativa e a variação da distribuição poissoniana discreta são iguais à média, .
Exemplos rndPoisson(10)
Consulte também
Sobre funções de números aleatórios em FDL na página 298
Guia de referência de comando de compilação de dados e do TML
301
rndUniform
rndUniform
Objetivo: Gerar um número aleatório entre 0 e 1, baseado em uma distribuição uniforme.
Sintaxe rndUniform()
Argumentos Nenhum
Resultado
Tipo
Descrição
real
Um número aleatório, amostrado a partir de uma
distribuição uniforme superior a [0, 1)
Exemplos
Para gerar um número real aleatório no intervalo [0,10): rndUniform() * 10
Consulte também
Sobre funções de números aleatórios em FDL na página 298
302
Portrait Miner 7.0A
Capítulo
Funções de retorno de
investimento
Nesta seção:
•
•
•
•
•
•
•
•
ActionROI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .304
ActionROIAnnualized . . . . . . . . . . . . . . . . . . . . . . . . . . . .305
OfferROI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .306
OfferROIAnnualized . . . . . . . . . . . . . . . . . . . . . . . . . . . . .307
RetentionActionROI . . . . . . . . . . . . . . . . . . . . . . . . . . . . .308
RetentionActionROIAnnualized . . . . . . . . . . . . . . . . . . . .310
RetentionOfferROI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .311
RetentionOfferROIAnnualized . . . . . . . . . . . . . . . . . . . . .312
25
ActionROI
ActionROI
Objetivo: Objtivo Estimar a contribuição ao retorno de investimento (dinheiro) por cliente por efetuar
ações projetadas para gerar uma resposta definitiva. A ação ocorre, independente de o cliente responder
ou não. Por isso, existe somente o custo da ação, não o de execução.
Sintaxe ActionROI(ResponseProbability, ValueOfResponse, CostOfAction)
Argumentos
Tipo
Nome
Descrição
numérico
ResponseProbability
A probabilidade estimada de que
o cliente responderá à ação,
exibindo algum comportamento
de resposta.
numérico
ValueOfResponse
O valor estimado da resposta do
cliente à ação de marketing (se
ocorrer)
numérico
CostOfAction
O custo estimado da ação
(independente de o cliente
responder)
Resultado
Tipo
Descrição
numérico
A contribuição ao retorno de investimento (dinheiro)
estimada por cliente por efetuar as ações
Observação: • A probabilidade de resposta deve ser uma "elevação", ou seja, a probabilidade de os
clientes terem aquele comportamento quando eles, pelo contrário, não o teriam. Se
houver qualquer possibilidade de o cliente ter o comportamento desejado sem que a
ação seja efetuada, isso deve ser modelado usando um modelo de elevação ou, se
isso não funcionar, subtraindo a probabilidade de resposta devido à probabilidade do
comportamento sem a ação.
• O valor de resposta deve ser a receita líquida ignorando o custo da ação de marketing.
Consulte também
ActionROIAnnualized na página 305
OfferROI na página 306
OfferROIAnnualized na página 307
RetentionActionROI na página 308
RetentionActionROIAnnualized na página 310
304
Portrait Miner 7.0A
Capítulo 25: Funções de retorno de investimento
RetentionOfferROI na página 311
RetentionOfferROIAnnualized na página 312
ActionROIAnnualized
Objetivo: Estimar o múltiplo para o retorno de investimento anual por cliente por efetuar ações projetadas
para gerar uma resposta definitiva de um cliente. A ação ocorre, independente de o cliente responder
ou não. Por isso, existe somente o custo da ação, não o de execução.
Sintaxe ActionROIAnnualized(ResponseProbability, ValueOfResponse, CostOfAction,
DaysToROI)
Argumentos
Tipo
Nome
Descrição
numérico
ResponseProbability
A probabilidade estimada de que
o cliente responderá à ação,
exibindo algum comportamento
de resposta.
numérico
ValueOfResponse
O valor estimado da resposta do
cliente à ação de marketing (se
ocorrer)
numérico
CostOfAction
O custo estimado da ação
(independente de o cliente
responder)
numérico
DaysToROI
O número de dias que se espera
ser necessário para alcançar o
retorno de investimento fornecido
Resultado
Tipo
Descrição
numérico
O múltiplo do retorno de investimento anual
estimado por cliente por efetuar as ações
Observação: • A probabilidade de resposta deve ser uma "elevação", ou seja, a probabilidade de os
clientes terem aquele comportamento quando eles, pelo contrário, não o teriam. Se
houver qualquer possibilidade de o cliente ter o comportamento desejado sem que a
ação seja efetuada, isso deve ser modelado usando um modelo de elevação ou, se
isso não funcionar, subtraindo a probabilidade de resposta devido à probabilidade do
comportamento sem a ação.
• O valor de resposta deve ser a receita líquida ignorando o custo da ação de marketing.
Guia de referência de comando de compilação de dados e do TML
305
OfferROI
Consulte também
ActionROI na página 304
OfferROI na página 306
OfferROIAnnualized na página 307
RetentionActionROI na página 308
RetentionActionROIAnnualized na página 310
RetentionOfferROI na página 311
RetentionOfferROIAnnualized na página 312
OfferROI
Objetivo: Estimar a contribuição para o retorno de investimento por cliente por efetuar uma oferta
projetada para gerar uma resposta definitiva.
Sintaxe OfferROI(ResponseProbability, ValueOfResponse, CostOfOffer,
CostOfFulfilment)
Argumentos
Tipo
Nome
Descrição
numérico
ResponseProbability
A probabilidade estimada de que
o cliente responderá à ação,
exibindo algum comportamento
de resposta.
numérico
ValueOfResponse
O valor estimado da resposta do
cliente à ação de marketing (se
ocorrer)
numérico
CostOfOffer
O custo estimado da ação
(independente de o cliente
responder)
numérico
CostOfFulfilment
O custo estimado de uma
concretização de uma resposta
positiva (zero, se não existirem
custos (adicionais) de execução)
Resultado
306
Tipo
Descrição
numérico
O retorno de investimento estimado por cliente por
fazer uma proposta
Portrait Miner 7.0A
Capítulo 25: Funções de retorno de investimento
Observação: • A probabilidade de resposta deve ser uma "elevação", ou seja, a probabilidade de os
clientes terem aquele comportamento quando eles, pelo contrário, não o teriam. Se
houver qualquer possibilidade de o cliente ter o comportamento desejado sem que a
ação seja efetuada, isso deve ser modelado usando um modelo de elevação ou, se
isso não funcionar, subtraindo a probabilidade de resposta devido à probabilidade do
comportamento sem a ação.
• O valor de resposta deve ser uma receita líquida, ignorando o custo da ação de
marketing e o custo de execução da resposta do cliente.
Consulte também
ActionROI na página 304
ActionROIAnnualized na página 305
OfferROIAnnualized na página 307
RetentionActionROI na página 308
RetentionActionROIAnnualized na página 310
RetentionOfferROI na página 311
RetentionOfferROIAnnualized na página 312
OfferROIAnnualized
Objetivo: Estimar o múltiplo para o retorno de investimento anual por efetuar uma oferta projetada para
gerar uma resposta definitiva de um cliente.
Sintaxe OfferROIAnnualized(ResponseProbability, ValueOfResponse, CostOfOffer,
CostOfFulfilment, DaysToROI)
Argumentos
Tipo
Nome
Descrição
numérico
ResponseProbability
A probabilidade estimada de que
o cliente responderá à ação,
exibindo algum comportamento
de resposta.
numérico
ValueOfResponse
O valor estimado da resposta do
cliente à ação de marketing (se
ocorrer)
numérico
CostOfOffer
O custo estimado da ação
(independente de o cliente
responder)
numérico
CostOfFulfilment
O custo estimado de uma
concretização de uma resposta
Guia de referência de comando de compilação de dados e do TML
307
RetentionActionROI
Tipo
Nome
Descrição
positiva (zero, se não existirem
custos (adicionais) de execução)
numérico
O número de dias que se espera
ser necessário para alcançar o
retorno de investimento fornecido
DaysToROI
Resultado
Tipo
Descrição
numérico
O múltiplo do retorno de investimento anual
estimado por cliente por fazer uma oferta
Observação: • A probabilidade de resposta deve ser uma "elevação", ou seja, a probabilidade de os
clientes terem aquele comportamento quando eles, pelo contrário, não o teriam. Se
houver qualquer possibilidade de o cliente ter o comportamento desejado sem que a
ação seja efetuada, isso deve ser modelado usando um modelo de elevação ou, se
isso não funcionar, subtraindo a probabilidade de resposta devido à probabilidade do
comportamento sem a ação.
• O valor de resposta deve ser uma receita líquida, ignorando o custo da ação de
marketing e o custo de execução da resposta do cliente.
Consulte também
ActionROI na página 304
ActionROIAnnualized na página 305
OfferROI na página 306
RetentionActionROI na página 308
RetentionActionROIAnnualized na página 310
RetentionOfferROI na página 311
RetentionOfferROIAnnualized na página 312
RetentionActionROI
Objetivo: Estimar a contribuição para o retorno de investimento (dinheiro) por cliente por efetuar ações
projetadas para evitar desgastes. Presume-se que a ação apresente um custo fixo, independentemente
de o cliente ser salvo ou não, e de o cliente "aceitar" ou não a oferta.
Sintaxe RetentionActionROI(SaveProbability, NetRevenueAtRisk, CostOfAction)
Argumentos
308
Portrait Miner 7.0A
Capítulo 25: Funções de retorno de investimento
Tipo
Nome
Descrição
numérico
SaveProbability
A probabilidade estimada de que
o cliente será "salvo" (durante o
período em análise) como
resultado da ação efetuada
numérico
NetRevenueAtRisk
A receita líquida estimada que
será perdida se o cliente for
submetido a desgaste durante o
período em análise
numérico
CostOfAction
O custo estimado da ação
(independente de o cliente
responder)
Resultado
Tipo
Descrição
numérico
A contribuição ao retorno de investimento (dinheiro)
anual estimada por cliente por efetuar ações
projetadas para evitar desgastes
Observação: • Dizer que um cliente está "salvo" significa que "foi influenciado a não sair quando o
cliente, pelo contrário, o teria feito". Esse valor é o negativo da elevação na taxa de
desgaste produzido por um modelo de elevação. Se preferir, pode ser calculado como
P (desgaste|nenhuma ação) - P (desgaste|ação).
• A receita líquida em risco deve ser uma receita líquida que ignore o custo da ação
projetada para evitar desgastes.
Consulte também
ActionROI na página 304
ActionROIAnnualized na página 305
OfferROI na página 306
OfferROIAnnualized na página 307
RetentionActionROIAnnualized na página 310
RetentionOfferROI na página 311
RetentionOfferROIAnnualized na página 312
Guia de referência de comando de compilação de dados e do TML
309
RetentionActionROIAnnualized
RetentionActionROIAnnualized
Objetivo: Estimar a contribuição para o retorno de investimento anual por cliente por efetuar ações
projetadas para evitar desgastes. Presume-se que a ação apresente um custo fixo, independentemente
de o cliente ser salvo ou não, e de o cliente "aceitar" ou não a oferta.
Sintaxe RetentionActionROIAnnualized(SaveProbability, NetRevenueAtRisk,
CostOfAction, DaysToROI)
Argumentos
Tipo
Nome
Descrição
numérico
SaveProbability
A probabilidade estimada de que
o cliente será "salvo" (durante o
período em análise) como
resultado da ação efetuada
numérico
NetRevenueAtRisk
A receita líquida estimada que
será perdida se o cliente for
submetido a desgaste durante o
período em análise
numérico
CostOfAction
O custo estimado da ação
(independente de o cliente
responder)
numérico
DaysToROI
O número de dias que se espera
ser necessário para alcançar o
retorno de investimento fornecido
Resultado
Tipo
Descrição
numérico
A contribuição ao retorno de investimento anual
estimada por cliente por efetuar ações projetadas
para evitar desgastes
Observação: • Dizer que um cliente está "salvo" significa que "foi influenciado a não sair quando o
cliente, pelo contrário, o teria feito". Esse valor é o negativo da elevação na taxa de
desgaste produzido por um modelo de elevação. Se preferir, pode ser calculado como
P (desgaste|nenhuma ação) - P (desgaste|ação).
• A receita líquida em risco deve ser uma receita líquida que ignore o custo da ação
projetada para evitar desgastes.
Consulte também
ActionROI na página 304
310
Portrait Miner 7.0A
Capítulo 25: Funções de retorno de investimento
ActionROIAnnualized na página 305
OfferROI na página 306
OfferROIAnnualized na página 307
RetentionActionROI na página 308
RetentionOfferROI na página 311
RetentionOfferROIAnnualized na página 312
RetentionOfferROI
Objetivo: Estimar o retorno de investimento por cliente por fazer uma oferta projetada para evitar
desgastes. Uma oferta, diferente de uma ação, apresenta um custo diferente dependendo da aceitação
ou não por parte do cliente.
Sintaxe RetentionOfferROI(SaveProbability, ResponseProbability,
NetRevenueAtRisk, CostOfOffer, CostOfFulfilment)
Argumentos
Tipo
Nome
Descrição
numérico
SaveProbability
A probabilidade estimada de que
o cliente será "salvo" (durante o
período em análise) como
resultado da ação efetuada
numérico
ResponseProbability
A probabilidade estimada de o
cliente responder à oferta
numérico
NetRevenueAtRisk
A receita líquida estimada que
será perdida se o cliente for
submetido a desgaste durante o
período em análise
numérico
CostOfOffer
O custo estimado da oferta
(independente de o cliente
responder)
numérico
CostOfFulfilment
O custo estimado de
concretização de uma resposta
positiva à oferta
Resultado
Tipo
Descrição
numérico
O retorno de investimento estimado por cliente de
uma oferta projetada para evitar desgastes
Guia de referência de comando de compilação de dados e do TML
311
RetentionOfferROIAnnualized
Observação: • Dizer que um cliente está "salvo" significa que "foi influenciado a não sair quando o
cliente, pelo contrário, o teria feito". Esse valor é deduzido da elevação na taxa de
desgaste produzida por um modelo de elevação. Se preferir, pode ser calculado como
P (desgaste|nenhuma ação) - P (desgaste|ação).
• A receita líquida em risco deve ser uma receita líquida ignorando o custo da ação
projetada para evitar desgastes.
Consulte também
ActionROI na página 304
ActionROIAnnualized na página 305
OfferROI na página 306
OfferROIAnnualized na página 307
RetentionActionROI na página 308
RetentionActionROIAnnualized na página 310
RetentionOfferROIAnnualized na página 312
RetentionOfferROIAnnualized
Objetivo: Estimar o retorno de investimento anual por cliente por fazer uma oferta projetada para evitar
desgastes. Uma oferta, diferente de uma ação, apresenta um custo diferente dependendo da aceitação
ou não por parte do cliente.
Sintaxe RetentionOfferROIAnnualized(SaveProbability, ResponseProbability,
NetRevenueAtRisk, CostOfOffer, CostOfFulfilment, DaysToROI)
Argumentos
312
Tipo
Nome
Descrição
numérico
SaveProbability
A probabilidade estimada de que
o cliente será "salvo" (durante o
período em análise) como
resultado da ação efetuada
numérico
ResponseProbability
A probabilidade estimada de o
cliente responder à oferta
numérico
NetRevenueAtRisk
A receita líquida estimada que
será perdida se o cliente for
submetido a desgaste durante o
período em análise
numérico
CostOfOffer
O custo estimado da oferta
(independente de o cliente
responder)
Portrait Miner 7.0A
Capítulo 25: Funções de retorno de investimento
Tipo
Nome
Descrição
numérico
CostOfFulfilment
O custo estimado de
concretização de uma resposta
positiva à oferta
numérico
DaysToROI
O número de dias que se espera
ser necessário para alcançar o
retorno de investimento fornecido
Resultado
Tipo
Descrição
numérico
O retorno de investimento anual estimado por
cliente de uma oferta projetada para evitar
desgastes
Observação: • Dizer que um cliente está "salvo" significa que "foi influenciado a não sair quando o
cliente, pelo contrário, o teria feito". Esse valor é deduzido da elevação na taxa de
desgaste produzida por um modelo de elevação. Se preferir, pode ser calculado como
P (desgaste|nenhuma ação) - P (desgaste|ação).
• A receita líquida em risco deve ser uma receita líquida ignorando o custo da ação
projetada para evitar desgastes.
Consulte também
ActionROI na página 304
ActionROIAnnualized na página 305
OfferROI na página 306
OfferROIAnnualized na página 307
RetentionActionROI na página 308
RetentionActionROIAnnualized na página 310
RetentionOfferROI na página 311
Guia de referência de comando de compilação de dados e do TML
313
Capítulo
Funções diversas
Nesta seção:
•
•
•
•
•
dblookup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .316
member . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .317
rankOrder, rankOrderApprox . . . . . . . . . . . . . . . . . . . . . .319
rankOrderMean, rankOrderApproxMean . . . . . . . . . . . .320
rownum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .321
26
dblookup
dblookup
Objetivo: Pesquisar valores em uma tabela de referência (armazenada como um focus).
Sintaxe dblookup(d, k, f, x)
Argumentos
Tipo
Nome
Descrição
string
d
O nome do caminho da tabela de
pesquisa
string
k
O nome do campo-chave na
tabela de pesquisa
string
f
O nome de um outro campo na
tabela de pesquisa
como o campo k
x
O valor de pesquisa
Resultado
316
Tipo
Descrição
como o campo f
O valor y no campo f da tabela d, para o registro
indexado pelo valor x que ocorre no campo-chave
k
Portrait Miner 7.0A
Capítulo 26: Funções diversas
Observação: • Essa função deve ser usada somente para tabelas de pesquisa pequenas. Se a tabela
de pesquisa for comparável em tamanho a uma tabela de cliente ou de transação,
deve ser considerado efetuar uma junção.
• Se o valor de pesquisa não ocorrer no campo-chave, é retornado o valor nulo.
• Se o valor de pesquisa ocorrer mais de uma vez no campo-chave, é usado o primeiro
valor.
• O espaço em branco à direita é excluído do valor de pesquisa, mas não dos valores
do campo-chave na tabela de pesquisa. Isso pode provocar um comportamento
inesperado se o campo-chave na tabela de pesquisa apresentar valores com espaço
em branco à direita.
• Para compatibilidade com versões anteriores, é possível prefixar o nome do caminho
da tabela de pesquisa com o string focus:.
Exemplo
Em um focus, a loja na qual um cliente compra com mais frequência é registrada no PopularShop.
Um outro focus stores.ftr contém uma tabela que descreve as instalações em cada loja: Nesse
focus, StoreCode é o campo-chave, e o campo HasFuel indica se cada loja tem um posto de gasolina.
A loja 105 tem um posto de gasolina, as lojas 299 e 204 não, e assim por diante; a loja 189 não está
na tabela de pesquisa. Para derivar um campo que indique se a loja favorita de um cliente tem um posto
de gasolina:
PopularShop
dblookup("focus:stores.ftr",
"StoreCode", "HasFuel", PopularShop)
105
1
299
0
204
0
189
null
member
Objetivo: Determinar o conjunto de associação.
Sintaxe member(x, , , ...)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
O valor a ser testado
como x
, , ...
Os elementos do conjunto
Resultado
Guia de referência de comando de compilação de dados e do TML
317
member
Tipo
Descrição
inteiro
1 ("true") se x estiver no conjunto
("false") caso contrário
;0
Observação: • Só é possível usar valores literais (números, strings ou datas) na lista de elementos
do conjunto.
• Normalmente, é mais eficiente usar a função member que uma disjunção de testes de
igualdade. Por exemplo, a expressão strmember(F, "a", "b", "c") é mais
rápida para avaliar que F = "a" or F = "b" or F = "c".
• Para compatibilidade com versões anteriores, é possível usar a função strmember
em vez da member quando os argumentos são strings.
• Os espaços em branco à direita em valores de string não são ignorados.
Exemplos
Usar os dois primeiros caracteres de um campo StateCode para identificar os clientes da Costa Oeste:
StateCode
member (substr (StateCode, 0, 1),
"CA", "OR", WA")
OR009
1
CA043
1
UT005
0
WA027
1
Para marcar clientes cujo número de telefone de 10 dígitos apresente códigos de área de Edimburgo
(131) ou Glasgow (141) (determinando os primeiros três dígitos por meio do operador div [consulte
Operadores aritméticos na página 193]):
TelNo
if member (TelNo div 10000000, 131,
141) then "Edin/Glas" else null
1312204491
Edin/Glas
1753833999
null
1611234567
null
1417654321
Edin/Glas
Consulte também
Dividir agregações: a cláusula by na página 154
318
Portrait Miner 7.0A
Capítulo 26: Funções diversas
rankOrder, rankOrderApprox
Objetivo: Identificar a classificação de um valor em uma lista de valores.
Sintaxe
rankOrder (x, , , ...)
rankOrderApprox (x, , , ...)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
O valor a ser classificado
como x
, , ...
A lista de valores para
comparação
Resultado
Tipo
Descrição
inteiro
A posição da primeira ocorrência de x dentro da
lista de valores obtidos na classificação , , ... em
ordem descendente (do último para o primeiro no
caso de datas; ordem alfabética inversa no caso
de strings).
Se x não aparecer na lista, rankOrder devolve um
nulo, enquanto rankOrderApprox devolve a posição
de x na lista de valores obtida na classificação de
x, , , ... em ordem descendente.
Observação: • Quando o valor a ser classificado aparecer apenas uma vez na lista de valores,
rankOrder, rankOrderApprox, rankOrderMean e rankOrderApproxMean produzirão o
mesmo resultado.
• Quando o valor a ser classificado aparecer mais de uma vez na lista de valores,
rankOrderApprox produzirá o mesmo resultado que rankOrder.
• Quando o valor a ser classificado não aparecer na lista de valores, rankOrderApprox
produzirá o mesmo resultado que rankOrderApproxMean.
• Para as strings, "ordem alfabética" significa a ordem natural de representação dos
caracteres.
Exemplos
rankOrder(6,74, 6,74, 1,99, 0,00, 9,27) é igual a 2.
rankOrderApprox(6,74, 1,99, 0,00, 9,27) é igual a 2.
Verificar a classificação do número de chamadas telefônicas do cliente no 4º trimestre do ano:
Guia de referência de comando de compilação de dados e do TML
319
rankOrderMean, rankOrderApproxMean
rankOrder(CallsQ4, CallsQ1, CallsQ2, CallsQ3, CallsQ4)
Verificar a classificação do número de chamadas telefônicas do cliente no mês 5 com os 4 anteriores:
RankOrderApprox(CallsM5, CallsM1, CallsM2, CallsM3, CallsM4)
Consulte também
rankOrderMean, rankOrderApproxMean na página 320
rankOrderMean, rankOrderApproxMean
Objetivo: Identificar a classificação de um valor em uma lista de valores, ou sua classificação média,
se aparecer várias vezes.
Sintaxe rankOrderMean(x,
, , ...)
rankOrderApproxMean(x,
, , ...)
Argumentos
Tipo
Nome
Descrição
inteiro, real, data ou string
x
O valor a ser classificado
como x
, , ...
A lista de valores para
comparação
Resultado
Tipo
Descrição
real
A classificação média de x na lista de valores
obtidos na classificação , , ... em ordem
descendente (do último para o primeiro no caso
de datas; em ordem alfabética inversa no caso de
strings).
Se x não aparecer na lista,
rankOrderMeandevolve um nulo, enquanto
rankOrderApproxMeandevolve a posição de x
na lista de valores obtida na classificação de x, ,
, ... em ordem descendente.
Observação: • Quando o valor a ser classificado surge apenas uma vez na lista de valores,
rankOrder, rankOrderApprox, rankOrderMean e rankOrderApproxMean
produzem o mesmo resultado.
• Quando o valor a ser classificado aparecer mais de uma vez na lista de valores,
rankOrderApproxMean produzirá o mesmo resultado que rankOrderMean.
• Quando o valor a ser classificado não aparecer na lista de valores,
rankOrderApproxMean produzirá o mesmo resultado que rankOrderApprox.
320
Portrait Miner 7.0A
Capítulo 26: Funções diversas
• Para as strings, "ordem alfabética" significa a ordem natural de representação dos
caracteres.
Exemplos
rankOrderMean(6,74, 6,74, 1,99, 6,74, 9,27) é igual a 2,5.
rankOrderApproxMean(6,74, 1,99, 6,74, 9,27, 6,74) é igual a 2,5.
Consulte também
rankOrder, rankOrderApprox na página 319
rownum
Objetivo: Gerar o número de cada linha na tabela.
Sintaxe rownum()
Argumentos Nenhum
Resultado
Tipo
Descrição
inteiro
Um número de índice de 1 até o número de
registros na tabela
Observação: É possível usar essa função somente em uma derivação do Decision Studio, no arquivo
de derivações para o qsderive ou na janela Campos Derivados equivalente, no
arquivo de rastreamento para o qstrack ou em um arquivo de seleções para o
qsselect.
Exemplos Adicionar uma coluna de índice a um conjunto de dados de N-registros, com valores
ID
rownum()
AZ195
1
DI539
2
JD974
3
BY643
4
Guia de referência de comando de compilação de dados e do TML
:
321
Capítulo
Binnings
Nesta seção:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .324
Boolean . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .325
DayFrom, WeekFrom, MonthFrom, YearFrom . . . . . . . .326
DayMultipleFrom, WeekMultipleFrom, MonthMultipleFrom,
YearMultipleFrom . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .326
DayMultipleNumBins, WeekMultipleNumBins,
MonthMultipleNumBins, YearMultipleNumBins . . . . . . .327
DayMultiplePrePost, WeekMultiplePrePost,
MonthMultiplePrePost, YearMultiplePrePost . . . . . . . . .328
DayMultipleTo, WeekMultipleTo, MonthMultipleTo,
YearMultipleTo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .329
DayMultipleWidth, WeekMultipleWidth, MonthMultipleWidth,
YearMultipleWidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .330
DayPrePost, WeekPrePost, MonthPrePost, YearPrePost .331
DayRange, WeekRange, MonthRange, YearRange . . . .332
DayTo, WeekTo, MonthTo, YearTo . . . . . . . . . . . . . . . . . .333
EqualRange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334
EqualRangeWidth . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .334
NegativeNonNegative . . . . . . . . . . . . . . . . . . . . . . . . . . . .335
PreDuringPost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336
PrePost . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .336
Sign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .337
27
bin
bin
Objetivo: Obtém um índice do bin correspondente a um valor.
Sintaxe bin(binning, x)
Argumentos
Tipo
Nome
Descrição
binning
binning
Um binning nomeado, com
valores de parâmetros (é
necessário que sejam valores
literais) entre parênteses, se
necessário
inteiro, real, data ou string
x
Um valor compatível com o
binning
Resultado
Tipo
Descrição
inteiro
O índice do bin no qual x está situado
Observação: • Os índices de bin são inteiros positivos. Para um binning numérico com n bins nominais
(numerados como 2 para n + 1), os bins finais inferior e superior estão numeradas
como 1 e n + 2, respectivamente, enquanto os bins nulos e não classificados estão
enumerados como n + 3 e n + 4.
• Essa função não está disponível no Decision Studio. Porém, se x for um campo e b o
binning primário associado a x, é possível atingir o mesmo resultado usando segindex:
segindex() by x
Exemplos
Dividir agregações usando o binning de intervalo real EqualRange no campo Amount, resultando em
uma agregação segmentada de oito partes (quatro bins internos com valores entre 20 e 100 mais dois
bins finais, um bin nulo e um bin não classificado):
create totalPointsByAmountBands :=
sum(PointsRedeemed) by bin(EqualRange(20, 100, 4), Amount);
Dividir agregações em oito segmentos de acordo com o binning de campanha PrePost, a começar em
maio de 1999 e com agregados do mês anterior e posterior à campanha:
create totalSpendPrePostMayCampaign_ := sum(Amount) by
bin(PrePost(todate(19990401), todate(19990501),
todate(19990601)), PurchaseDate);
Consulte também
324
Portrait Miner 7.0A
Capítulo 27: Binnings
Boolean na página 325
DayFrom, WeekFrom, MonthFrom, YearFrom na página 326
DayMultipleFrom, WeekMultipleFrom, MonthMultipleFrom, YearMultipleFrom na página 326
DayMultipleNumBins, WeekMultipleNumBins, MonthMultipleNumBins, YearMultipleNumBins na
página 327
DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost na página
328
DayMultipleTo, WeekMultipleTo, MonthMultipleTo, YearMultipleTo na página 329
DayMultipleWidth, WeekMultipleWidth, MonthMultipleWidth, YearMultipleWidth na página 330
DayPrePost, WeekPrePost, MonthPrePost, YearPrePost na página 331
DayRange, WeekRange, MonthRange, YearRange na página 332
DayTo, WeekTo, MonthTo, YearTo na página 333
EqualRange na página 334
EqualRangeWidth na página 334
NegativeNonNegative na página 335
PreDuringPost na página 336
PrePost na página 336
Sign na página 337
Dividir agregações: a cláusula by na página 154
Boolean
Objetivo: Colocar valores booleanos em bins [consulte Dados booleanos na página 183].
Parâmetros Nenhum
Resultado
Índice do Bin
Valores
1
false
2
true
3
null [consulte O valor nulo na página 182]
4
não classificado
Guia de referência de comando de compilação de dados e do TML
325
DayFrom, WeekFrom, MonthFrom, YearFrom
DayFrom, WeekFrom, MonthFrom, YearFrom
Objetivo: Binar valores de data em um número específico de períodos (dias, semanas, meses ou anos)
após uma data.
Parâmetros
Tipo
Nome
Descrição
data
a ("start_date")
O início da porção periódica do
binning
inteiro
n ("num_bins")
O número de períodos (dias,
semanas, meses ou anos) na
porção periódica do binning
Resultado
Índice do Bin
Valores
1
datas que precedem a; bin final inferior
2, ..., n + 1
os n períodos consecutivos após a
n+2
datas n períodos após a e mais tarde; bin final
superior
n+3
null [consulte O valor nulo na página 182]
n+4
não classificado
Consulte também
DayRange, WeekRange, MonthRange, YearRange na página 332
DayTo, WeekTo, MonthTo, YearTo na página 333
DayMultipleFrom, WeekMultipleFrom,
MonthMultipleFrom, YearMultipleFrom
Objetivo: Colocar em bins valores de datas em um número específico de períodos após uma data,
onde um período é um número específico de dias, semanas, meses ou anos.
Parâmetros
326
Portrait Miner 7.0A
Capítulo 27: Binnings
Tipo
Nome
Descrição
data
a ("start_date")
O início da porção periódica do
binning
inteiro
m ("width")
O número de unidades (dias,
semanas, meses ou anos) em um
período
inteiro
n ("num_bins")
O número de bins na porção
periódica do binning
Resultado
Índice do Bin
Valores
1
datas que precedem a; bin final inferior
2, ..., n + 1
os n períodos consecutivos (cada um com m
unidades) após a
n+2
datas n x m unidades após a e posterior; o bin final
superior
n+3
null [consulte O valor nulo na página 182]
n+4
não classificado
Consulte também
DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost na página
328
DayMultipleTo, WeekMultipleTo, MonthMultipleTo, YearMultipleTo na página 329
DayMultipleNumBins, WeekMultipleNumBins,
MonthMultipleNumBins, YearMultipleNumBins
Objetivo: Colocar valores de data em bins em aproximadamente o número específico de períodos entre
duas datas fornecidas, onde o período é um múltiplo fixo da unidade (dia, semana, mês ou ano).
Parâmetros
Tipo
Nome
Descrição
data
a ("start_date")
O início da porção periódica do
binning
data
b ("end_date")
O final da porção periódica do
binning
Guia de referência de comando de compilação de dados e do TML
327
DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost
Tipo
Nome
Descrição
inteiro
n ("num_bins")
O número alvo dos períodos
(múltiplos de um dia, semana,
mês ou anos) na porção periódica
do binning
Resultado
Índice do Bin
Valores
1
datas que precedem a; bin final inferior
2, ..., N - 3
períodos entre a e b
N-2
datas b e após, bin final superior
N-1
null [consulte O valor nulo na página 182]
N
não classificado
Observação: • Esses binnings são como os binnings DayRange, WeekRange, MonthRange e
YearRange [consulteDayRange, WeekRange, MonthRange, YearRange na página
332], exceto que o período pode ser de duas ou mais unidades (dias, semanas, meses
ou anos), para produzir aproximadamente o número alvo de bins.
• Quando o período é de duas ou mais unidades, é possível ao bin N - 3 ser mais curto
que os bins 2 para N - 4.
Consulte também
DayMultipleWidth, WeekMultipleWidth, MonthMultipleWidth, YearMultipleWidth na página 330
DayMultiplePrePost, WeekMultiplePrePost,
MonthMultiplePrePost, YearMultiplePrePost
Objetivo: Colocar em bins valores de data em números específicos de bins, antes e depois de uma
data de referência fornecida, onde cada bin é um múltiplo da unidade (dia, semana, mês ou ano).
Parâmetros
328
Tipo
Nome
Descrição
data
a ("ref_date")
A data de referência para o
binning
inteiro
m ("width")
O número de bins antes e depois
da data de referência
Portrait Miner 7.0A
Capítulo 27: Binnings
Tipo
Nome
Descrição
inteiro
n ("num_bins")
O número de unidades (dias,
semanas, meses ou anos) em
cada bin
Resultado
Índice do Bin
Valores
1
datas anteriores a n x m unidades antes de a; o
bin final inferior
2, ..., n + 1
os n períodos consecutivos (cada um com m
unidades) precedendo a
n + 2, ..., 2n + 1
os n períodos consecutivos (cada um com m
unidades) após a
2n + 2
datas n x m unidades após a e posterior; o bin final
superior
2n + 3
null [consulte O valor nulo na página 182]
2n + 4
não classificado
Consulte também
DayMultipleFrom, WeekMultipleFrom, MonthMultipleFrom, YearMultipleFrom na página 326
DayMultipleTo, WeekMultipleTo, MonthMultipleTo, YearMultipleTo na página 329
DayPrePost, WeekPrePost, MonthPrePost, YearPrePost na página 331
PreDuringPost na página 336
PrePost na página 336
DayMultipleTo, WeekMultipleTo, MonthMultipleTo,
YearMultipleTo
Objetivo: Colocar em bins valores de datas em um número específico de períodos precedendo uma
data, onde um período é um número específico de dias, semanas, meses ou anos.
Parâmetros
Tipo
Nome
Descrição
data
b ("end_date")
O final da porção periódica do
binning
Guia de referência de comando de compilação de dados e do TML
329
DayMultipleWidth, WeekMultipleWidth, MonthMultipleWidth, YearMultipleWidth
Tipo
Nome
Descrição
inteiro
m ("width")
O número de unidades (dias,
semanas, meses ou anos) em um
período
inteiro
n ("num_bins")
O número de bins na porção
periódica do binning
Resultado
Índice do Bin
Valores
1
datas anteriores a n x m unidades antes de a; o
bin final inferior
2, ..., n + 1
os n períodos consecutivos (cada um com m
unidades) precedendo a
n+2
datas a e posteriores; bin final superior
n+3
null [consulte O valor nulo na página 182]
n+4
não classificado
Consulte também
DayMultipleFrom, WeekMultipleFrom, MonthMultipleFrom, YearMultipleFrom na página 326
DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost na página
328
DayMultipleWidth, WeekMultipleWidth,
MonthMultipleWidth, YearMultipleWidth
Objetivo: Colocar valores de data em bins em períodos entre duas datas fornecidas, onde o período é
um múltiplo especificado da unidade (dia, semana, mês ou ano).
Parâmetros
330
Tipo
Nome
Descrição
data
a ("start_date")
O início da porção periódica do
binning
data
b ("end_date")
O final da porção periódica do
binning
inteiro
m ("width")
O número de unidades (dias,
semanas, meses ou anos) em um
período
Portrait Miner 7.0A
Capítulo 27: Binnings
Resultado
Índice do Bin
Valores
1
datas que precedem a; bin final inferior
2, ..., N - 3
períodos entre a e b
N-2
datas b e após, bin final superior
N-1
null [consulte O valor nulo na página 182]
N
não classificado
Observação: • Esses binnings são como os binnings DayRange, WeekRange, MonthRange e
YearRange [consulteDayRange, WeekRange, MonthRange, YearRange na página
332], exceto que o período pode ser de duas ou mais unidades (dias, semanas, meses
ou anos).
• Quando o período é de duas ou mais unidades, é possível ao bin N - 3 ser mais curto
que os bins 2 para N - 4.
Consulte também
DayMultipleNumBins, WeekMultipleNumBins, MonthMultipleNumBins, YearMultipleNumBins na
página 327
DayPrePost, WeekPrePost, MonthPrePost,
YearPrePost
Objetivo: Binar valores de datas em números específicos de períodos (dias, semanas, meses ou anos)
precedendo e seguindo uma data de referência fornecida.
Parâmetros
Tipo
Nome
Descrição
data
a ("ref_date")
A data de referência para o
binning
inteiro
m ("before")
O número de períodos (dias,
semanas, meses ou anos) a binar
antes da data de referência
inteiro
n ("after")
O número de períodos a binar
antes da data de referência
Resultado
Guia de referência de comando de compilação de dados e do TML
331
DayRange, WeekRange, MonthRange, YearRange
Índice do Bin
Valores
1
datas anteriores aos períodos m antes de a; bin
final inferior
2, ..., m + 1
os m períodos consecutivos precedendo a
m + 2, ..., m + n + 1
os n períodos consecutivos após a
m+n+2
datas n períodos após a e mais tarde; bin final
superior
m+n+3
null [consulte O valor nulo na página 182]
m+n+4
não classificado
Consulte também
DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost na página
328
PreDuringPost na página 336
PrePost na página 336
DayRange, WeekRange, MonthRange, YearRange
Objetivo: Binar valores de data em períodos (dias, semanas, meses ou anos) entre duas datas
fornecidas.
Parâmetros
Tipo
Nome
Descrição
data
a ("start_date")
O início da porção periódica do
binning
data
b ("end_date")
O final da porção periódica do
binning
Resultado
332
Índice do Bin
Valores
1
datas que precedem a; bin final inferior
2, ..., N - 3
períodos (dias, semanas, meses ou anos) entre a
eb
N-2
datas b e após, bin final superior
N-1
null [consulte O valor nulo na página 182]
Portrait Miner 7.0A
Capítulo 27: Binnings
Índice do Bin
Valores
N
não classificado
Observação: • Se houver menos de um período completo entre a e b, o bin 2 contém datas entre a
(inclusive) e b (exclusive).
• Se não houver um número exato de períodos entre a e b (mas houver pelo menos
um período completo), o bin, imediatamente anterior a b, é ampliado para acomodar
o excesso.
Consulte também
DayFrom, WeekFrom, MonthFrom, YearFrom na página 326
DayTo, WeekTo, MonthTo, YearTo na página 333
DayTo, WeekTo, MonthTo, YearTo
Objetivo: Colocar valores de data em bins em um número específico de períodos (dias, semanas,
meses ou anos) após uma data.
Parâmetros
Tipo
Nome
Descrição
data
b ("end_date")
O final da porção periódica do
binning
inteiro
n ("num_bins")
O número de períodos (dias,
semanas, meses ou anos) na
porção periódica do binning
Resultado
Índice do Bin
Valores
1
datas anteriores a n períodos antes de b; bin final
inferior
2, ..., n + 1
Os n períodos consecutivos precedendo b
n+2
datas b e após, bin final superior
n+3
null [consulte O valor nulo na página 182]
n+4
não classificado
Consulte também
DayFrom, WeekFrom, MonthFrom, YearFrom na página 326
Guia de referência de comando de compilação de dados e do TML
333
EqualRange
DayRange, WeekRange, MonthRange, YearRange na página 332
EqualRange
Objetivo: Binar valores numéricos em um número específico de intervalos com largura igual.
Parâmetros
Tipo
Nome
Descrição
real
a ("from")
O limite inferior da porção de
intervalo igual do binning
real
b ("to")
O limite superior da porção de
intervalo igual do binning
inteiro
n ("num_bins")
O número de bins na porção de
intervalo igual do binning
Resultado
Índice do Bin
Valores
1
; o último bin inferior
2, ..., n + 1
[a, a + (b - a)/n), ..., [b - (b - a)/n, b)
n+2
; o último bin superior
n+3
null [consulte O valor nulo na página 182]
n+4
não classificado
Consulte também
EqualRangeWidth na página 334
EqualRangeWidth
Objetivo: Colocar em bins valores numéricos em intervalos de uma largura específica.
Parâmetros
334
Tipo
Nome
Descrição
real
a ("from")
O limite inferior da porção de
intervalo igual do binning
Portrait Miner 7.0A
Capítulo 27: Binnings
Tipo
Nome
Descrição
real
b ("to")
O limite superior da porção de
intervalo igual do binning
real
r ("width")
A largura dos bins na porção de
intervalo igual do binning
Resultado
Índice do Bin
1
Valores
; o último bin inferior
2, ..., N - 3
bins de largura igual, de largura aproximada r
N-2
o bin final superior.
N-1
null [consulte O valor nulo na página 182]
N
não classificado
Observação: Se a - b não for um múltiplo exato de r, é usada uma aproximação de r para que os bins
entre a e b sejam de largura igual.
Consulte também
EqualRange na página 334
NegativeNonNegative
Objetivo: Colocar valores numéricos em bins de acordo com o sinal, agrupamento 0 com valores
positivos.
Parâmetros Nenhum
Resultado
Índice do Bin
1
2
Valores
; ou seja, valores negativos
; ou seja, valores não negativos
3
null [consulte O valor nulo na página 182]
4
não classificado
Consulte também
Sign na página 337
Guia de referência de comando de compilação de dados e do TML
335
PreDuringPost
PreDuringPost
Objetivo: Binar valores de data em períodos de pré-campanha, durante a campanha e pós-campanha.
Parâmetros
Tipo
Nome
Descrição
data
a ("pre_date")
O início do período de
pré-campanha
data
b ("campaign_start_date")
O início da campanha
data
c ("campaign_end_date")
O final da campanha
data
d ("post_date")
O final do período pós-campanha
Resultado
Índice do Bin
Valores
1
datas que precedem a; bin final inferior
2
datas entre a (inclusive) e b (exclusive)
3
datas entre b (inclusive) e c (exclusive)
4
datas entre c (inclusive) e d (exclusive)
5
datas d e posteriores; bin final superior
6
null [consulte O valor nulo na página 182]
7
não classificado
Consulte também
DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost na página
328
DayPrePost, WeekPrePost, MonthPrePost, YearPrePost na página 331
PrePost na página 336
PrePost
Objetivo: Binar valores da data em períodos de pré-campanha e pós-campanha.
Parâmetros
336
Portrait Miner 7.0A
Capítulo 27: Binnings
Tipo
Nome
Descrição
data
a ("pre_date")
O início do período de
pré-campanha
data
b ("campaign_date")
A data da campanha
data
c ("post_date")
O final do período pós-campanha
Resultado
Índice do Bin
Valores
1
datas que precedem a; bin final inferior
2
datas entre a (inclusive) e b (exclusive)
3
datas entre b (inclusive) e c (exclusive)
4
datas c e posteriores; bin final superior
5
null [consulte O valor nulo na página 182]
6
não classificado
Consulte também
DayMultiplePrePost, WeekMultiplePrePost, MonthMultiplePrePost, YearMultiplePrePost na página
328
DayPrePost, WeekPrePost, MonthPrePost, YearPrePost na página 331
PreDuringPost na página 336
Sign
Objetivo: Colocar valores numéricos em bins de acordo com o sinal.
Parâmetros Nenhum
Resultado
Índice do Bin
Valores
1
2
3
; ou seja, valores negativos
0
; ou seja, valores positivos
4
null [consulte O valor nulo na página 182]
5
não classificado
Consulte também
Guia de referência de comando de compilação de dados e do TML
337
Sign
NegativeNonNegative na página 335
338
Portrait Miner 7.0A
Capítulo
XML no Portrait Miner
Nesta seção:
•
•
•
•
•
•
•
•
•
•
•
XML no Portrait Miner . . . . . . . . . . . . . . . . . . . . . . . . . . . .340
Especificações de metadados para qsimportmetadata .341
Especificação de agregação para qsmeasure . . . . . . . .347
Especificações de derivação para o qsderive . . . . . . . .349
Especificação de seleção para qsselect . . . . . . . . . . . .350
Especificações da tabela de referência cruzada para
qsxt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .351
Especificação de mapeamento do campo do nome para
qsrenamefields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .353
Especificação da compilação da árvore de decisão para
qsdecisiontree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .354
Especificação da compilação do scorecard parna árvore
de decisãoa qsscorecard . . . . . . . . . . . . . . . . . . . . . . . . .357
Especificações de binning . . . . . . . . . . . . . . . . . . . . . . . .358
Valores de atributos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .366
28
XML no Portrait Miner
XML no Portrait Miner
Para permitir um fácil intercâmbio dos resultados com outras aplicações, XML é usado no Portrait
Miner, de acordo com a definição do esquema XML do Portrait Miner, http://www.quadstone.com/xml
É necessário que todas as entradas XML para os comandos de compilação de dados do Portrait Miner
(e qualquer outra função do Portrait Miner implementada por meio do comando de compilação de
dados do Portrait Miner) sejam efetuadas no namespace do Portrait Miner,
http://support.portraitsoftware.com. A forma mais fácil de garantir isso é incluir o atributo
xmlns="http://support.portraitsoftware.com" no elemento raiz do documento XML.
Os arquivos XML criados pelo Portrait Miner incluem automaticamente um atributo schemaLocation
opcional que aponta para os esquemas em http://www.quadstone.com/xml/qs6.0A. Se for usado um
editor de reconhecimento de esquemas para criar arquivos XML, é possível acessar esses esquemas
diretamente de sua instalação do Portrait Miner em:
<pmhome>/server/qs6.0A/integration/schemas
(onde <pmhome> é o diretório de instalação do Portrait Miner). Também é possível encontrar exemplos
de como processar esses arquivos XML em:
<pmhome>/server/qs6.0A/etc/xslt
Consulte também
Especificação de agregação para qsmeasure na página 347
Especificações de binning na página 358
Especificações da tabela de referência cruzada para qsxt na página 351
Especificação da compilação da árvore de decisão para qsdecisiontree na página 354
Especificações de derivação para o qsderive na página 349
Especificação de mapeamento do campo do nome para qsrenamefields na página 353
Especificações de metadados para qsimportmetadata na página 341
Especificação da compilação do scorecard parna árvore de decisãoa qsscorecard na página 357
Especificação de seleção para qsselect na página 350
340
Portrait Miner 7.0A
Capítulo 28: XML no Portrait Miner
Especificações de metadados para
qsimportmetadata
metadada
Necessário
Valor
Descrição
focus
elemento
O focus raiz
Exemplos
Descrever os metadados a importar.
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.quadstone.com/xml">
<focus>
<comment>This focus was created for the Retail Analysis
project.</comment>
</focus>
</metadata>
focus
Opcional
Valor
Descrição
launch
atributo de nome do focus
O nome do subfocus, por padrão
name
atributo de nome do focus
O nome para um subfocus
objective
atributo de nome do campo
o nome do campo objetivo
partition
atributo de nome do campo
o nome do campo objetivo
comment
elemento
O comentário do focus
history
elemento
O histórico do focus
field
elemento
Os campos para onde importar
os metadados
focus
elemento
Definições de subfocus
Observação: O atributo launch só pode surgir no focus da raiz. Todos os outros subfocus precisão
ter um atributo name.
Exemplo Descrever o focus raiz.
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.quadstone.com/xml">
<focus>
<comment>This focus was created for the Retail Analysis
project.</comment>
Guia de referência de comando de compilação de dados e do TML
341
field nos metadados
</focus>
</metadata>
field nos metadados
Necessário
Valor
Descrição
name
atributo de nome do campo
O nome do campo sendo definido
ref
atributo de nome do campo
O nome do campo sendo
referenciado
Opcional
Valor
Descrição
type
Consulte field type
O tipo de dado que representa
esse campo
length
atributo integer
O comprimento da representação
da string
analysis
atributo binário
Se esse campo for um candidato
à análise
export
atributo binário
Se esse campo for um campo de
exportação
comment
elemento
O comentário do campo
binning
elemento
O binning do campo
fdl
elemento
A expressão FLD da derivação
do campo
recordselection
elemento
A seleção do registro do campo
Observação: • Quando um campo está sendo definido, como derivação, por exemplo, é necessário
um atributo name. Quando está sendo referenciado, para inclusão em um subfocus,
por exemplo, é necessário ter um atributo ref.
• lenght e type só podem ser usados para definir um campo (quando o atributo name
tiver sido fornecido).
Descrever um campo de string:
<field name="HomePostCode" type="string" length="8"/>
Descrever um candidato à análise:
<field name="TimeAtAddressMonths" type="integer" analysis="true"/>
Consulte também
Especificações de binning na página 358
342
Portrait Miner 7.0A
Capítulo 28: XML no Portrait Miner
fdl
Necessário
Valor
Descrição
content
text
A expressão FDL para descrever
a derivação do campo
Opcional
Valor
Descrição
seed
atributo integer
A semente numérica para o
gerador de número aleatório
Exemplos
<fdl>mode(Store)</fdl>
<fdl>if PaymentMethod = "CA" then Amount else 0
</fdl>
<fdl seed="123">rndUniform()</fdl>
comment
Necessário
Valor
Descrição
content
text
A descrição do texto para o
comentário
Necessário
Valor
Descrição
xhtml
atributo binário
Um comentário é formatado como
XHTML
div
elemento da string
A descrição do texto formatado
para o comentário, pode conter
qualquer marcação XHTML
permitida em um elemento <div>
ou
Observação: Quando o atributo xhtml é usado, assume sempre o valor true.
Exemplos
Adicionar um comentário a um focus:
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.quadstone.com/xml">
<focus>
<comment>This focus was created for the Retail Analysis
project.</comment>
</focus>
</metadata>
Guia de referência de comando de compilação de dados e do TML
343
history
Adicionar um comentário formatado a um focus:
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns="http://www.quadstone.com/xml">
<focus>
<comment xhtml="true">
<div>
This focus was created for the
Retail Analysis project.<br/>
An audit is available on the
<a href="http://intranet.company.com/audits">
intranet</a>.
</div>
</comment>
</focus>
</metadata>
history
O histórico do focus é um elemento histórico único que contém uma sequência não vazia de elementos
de operação. Cada elemento de operação é somente texto simples representando apenas um comando
de compilação de dados do Portrait Miner aplicado ao focus.
Necessário
Valor
Descrição
operation
elementos de string
Uma ação particular no histórico
Exemplo
Descrever o histórico de todas as ações no focus:
<history>
<operation>qsimportflat -input DB.fdd -output
DB.ftr</operation>
<operation>qsupdate -from template.ftr -to
DB.ftr</operation>
</history>
recordselection
Opcional
Valor
Descrição
numérico
elemento
A seleção de registro numérico
date
elemento
A seleção de registro de data
categorical
elemento
A seleção de registro categórico
Observação: O elemento recordselection leva um dos subelementos numeric, date ou
categorical
Exemplos
344
Portrait Miner 7.0A
Capítulo 28: XML no Portrait Miner
Selecionar intervalo integer entre -2677 (inclusivo) e 16808 (exclusivo), excluindo os nulos:
<field name="Income" type="integer">
<recordselection>
<numeric nullhandling="exclude">
<range min="-2677" minisincluded="true" max="16808"
maxisincluded="false"/>
</numeric>
</recordselection>
</field>
numeric
Necessário
Valor
Descrição
nullhandling
consulte nullhandling
Especifica como a seleção de
registro lida com valores nulos
Opcional
Valor
Descrição
range
elemento
Especifica a seleção do intervalo
numérico
Observação: O elemento numeric aceita vários subelementos range
Exemplo
Remover uma seleção de campo existente e qualquer seleção Nula:
<field name="Age">
<recordselection>
<numeric nullhandling="nomention"/>
</recordselection>
</field>
date
Necessário
Valor
Descrição
nullhandling
consulte nullhandling
Especifica como a seleção de
registro lida com valores nulos
Opcional
Valor
Descrição
range
elemento
Especifica a seleção de intervalo
de data
Observação: O elemento date aceita vários subelementos range
Exemplo
Guia de referência de comando de compilação de dados e do TML
345
categorical
Selecionar intervalo de data, somente disponível com pontos finais inclusivos e datas especificadas
num formato fixo:
<field name="DefaultDate">
<recordselection>
<date nullhandling="nomention">
<range min="1940-01-03T16:22:46Z"
max="1948-05-19T00:29:17Z"/>
<range min="1956-04-01T20:35:25Z"
max="1973-09-01T04:48:59Z"/>
<range min="1981-03-15T16:54:52Z"
max="2002-08-22T01:11:34Z"/>
<range min="2012-09-08T01:19:24Z"
max="2029-12-08T05:32:51Z"/>
</date>
</recordselection>
</field>
categorical
Necessário
Valor
Descrição
nullhandling
consulte nullhandling
Especifica como a seleção de
registro lida com valores nulos
otherstatus
consulte otherstatus
Especifica se outra categoria é
selecionada ou desmarcada.
Opcional
Valor
Descrição
select
elemento
Os valores de categoria na
seleção
Observação: O elemento categorical aceita vários subelementos select.
Exemplo
Seleção categórica que usa o otherstatus para desmarcar qualquer campo não mencionado
explicitamente, por exemplo, seleciona somente categorias D e E:
<field name="Lifestage">
<recordselection>
<categorical nullhandling="selected" otherstatus="deselected">
<select status="selected" value="D"/>
<select status="selected" value="E"/>
</categorical>
</recordselection>
</field>
Remover seleção de um campo categórico:
<field ref="Lifestage">
<recordselection>
<categorical nullhandling="selected"
otherstatus="selected">
</categorical>
346
Portrait Miner 7.0A
Capítulo 28: XML no Portrait Miner
</recordselection>
</field>
range
Opcional
Valor
Descrição
min
atributo numeric ou date
O intervalo mínimo da seleção do
registro
max
atributo numeric ou date
O intervalo máximo da seleção
do registro
minisincluded
atributo binário
Inclui esse valor no intervalo
mínimo
maxisincluded
atributo binário
Inclui esse valor no intervalo
máximo
Observação: O elemento range exige pelo menos um atributo min e um max.
select
Necessário
Valor
Descrição
value
atributo de string
O nome da categoria
status
consulte status
Inclui ou exclui da seleção
Especificação de agregação para qsmeasure
aggregations
Necessário
Valor
Descrição
field
elementos
As definições do campo
Exemplo
Descrever a criação de dois novos agregados:
<?xml version="1.0" encoding="UTF-8"?>
<aggregations xmlns="http://www.quadstone.com/xml">
<field name="mostCommonStore" context="aggregation">
<fdl>mode(Store)</fdl>
</field>
<field name="averageSpendInStore_" context="aggregation">
<fdl>mean(Amount)</fdl>
<by>StoreSplitFunction(Store)</by>
Guia de referência de comando de compilação de dados e do TML
347
field nas agregações
</field>
</aggregations>
field nas agregações
Necessário
Valor
Descrição
name
atributo de nome do campo
O nome do campo a ser criado
context
consulte measure context
Se esse campo deve ser usado
em uma agregação, estatística
ou arquivo de rastreio
fdl
elemento
A expressão FDL para descrever
a agregação
Opcional
Valor
Descrição
type
Consulte field type
O tipo de dados
do campo a ser
criado
length
atributo integer
O comprimento
de um campo
de string
temporary
atributo binário
Se esse campo
for criado no
focus de saída
by
elemento da string
A função de
divisão
where
elemento da string
O filtro de
registro da
expressão FDL
default
elemento da string
O valor padrão
da agregação
Exemplos
Descrever um campo com a agregação mode no campo Store:
<field name="mostCommonStore" context="aggregation">
<fdl>mode(Store)</fdl>
</field>
Descrever um campo com a agregação mean no campo Amount, dividido pela função
StoreSplitFunction:
<field name="averageSpendInStore_" context="aggregation">
<fdl>mean(Amount)</fdl>
<by>StoreSplitFunction(Store)</by>
</field>
348
Portrait Miner 7.0A
Capítulo 28: XML no Portrait Miner
Especificações de derivação para o qsderive
derivations
Necessário
Valor
Descrição
field
elementos
As definições do campo
Exemplo
Descrever um conjunto de três derivações:
<?xml version="1.0" encoding="UTF-8"?>
<derivations xmlns="http://www.quadstone.com/xml">
<field name="TransMonth">
<fdl>month(PurchaseDate)</fdl>
</field>
<field name="CashRecd">
<fdl>if PaymentMethod = "CA" then Amount else 0</fdl>
</field>
<field name="Random">
<fdl seed="123">rndUniform()</fdl>
</field>
</derivations>
field nas derivações
Necessário
Valor
Descrição
name
atributo de nome do campo
O nome do campo a ser criado
fdl
elemento
A expressão FDL para descrever
o campo a ser criado
Opcional
Valor
Descrição
type
Consulte field type
O tipo de dados do campo a ser
criado
length
atributo integer
O comprimento de um campo de
string
Exemplos
Descrever um campo usando uma função interna:
<field name="TransMonth">
<fdl>month(PurchaseDate)</fdl>
</field>
Guia de referência de comando de compilação de dados e do TML
349
Especificação de seleção para qsselect
Descrever um campo usando apenas uma instrução de controle:
<field name="CashRecd">
<fdl>if PaymentMethod = "CA" then Amount else 0</fdl>
</field>
Descrever um campo aleatório com uma semente específica:
<field name="Random">
<fdl seed="123">rndUniform()</fdl>
</field>
Especificação de seleção para qsselect
selections
Opcional
Valor
Descrição
field
elementos
Os campos a criar nessa seleção
Exemplo
Descrever uma seleção aleatória:
<xml version="1.0" encoding="UTF-8"?>
<selections xmlns="http://www.quadstone.com/xml"?>
<field name="random" context="selection">
<fdl seed="12345678">rndUniform() \< 0.1</fdl>
</field>
</selections>
field nas seleções
Necessário
Valor
Descrição
name
atributo de nome do campo
O nome do campo a ser criado
fdl
elemento
Expressão FDL para descrever a
seleção do registro.
Deve produzir um resultado de
valor integer zero ou um
context
seleção
Esse campo é para uso com o
qsselect
Exemplo
Descrever uma seleção aleatória:
<field name="random" context="selection">
<fdl seed="12345678">rndUniform() \< 0.1</fdl>
</field>
350
Portrait Miner 7.0A
Capítulo 28: XML no Portrait Miner
Especificações da tabela de referência cruzada para
qsxt
crosstabset
Necessário
Valor
Descrição
crosstab
elementos
As tabelas de referência cruzada
a serem avaliadas
Opcional
Valor
Descrição
profile
atributo binário
Se a crosstabset representa um
perfil em vez de uma tabela de
referência cruzada
description
elemento da string
A descrição do crosstabset
Exemplo
Descrever apenas uma tabela de referência cruzada crosstabset:
<?xml version="1.0" encoding="UTF-8"?>
<crosstabset xmlns="http://www.quadstone.com/xml">
<description>No Description</description>
<crosstab indexscheme="compact1">
<description>No Description</description>
<specification>
<field name="Age"/>
<field name="Gender"/>
<function name="count"/>
<function name="mode">
<parameter>MaritalStatus</parameter>
</function>
</specification>
</crosstab>
</crosstabset>
crosstab
Necessário
Valor
Descrição
indexscheme
compact1
O esquema de indexação usado
nessa tabela de referência
cruzada
specification
elemento
A especificação da tabela de
referência cruzada
Guia de referência de comando de compilação de dados e do TML
351
specification na tabela de referência cruzada
Opcional
Valor
Descrição
description
elementos de string
A descrição da tabela de
referência cruzada
Exemplo
Descrever apenas uma tabela de referência cruzada crosstabset:
<?xml version="1.0" encoding="UTF-8"?>
<crosstabset xmlns="http://www.quadstone.com/xml">
<description>No Description</description>
<crosstab indexscheme="compact1">
<description>No Description</description>
<specification>
<field name="Age"/>
<field name="Gender"/>
<function name="count"/>
<function name="mode">
<parameter>MaritalStatus</parameter>
</function>
</specification>
</crosstab>
</crosstabset>
specification na tabela de referência cruzada
Necessário
Valor
Descrição
function
elementos
As funções a serem usadas como
medidas da tabela de referência
cruzada
Opcional
Valor
Descrição
field
elementos
Os campos a serem usados
como divisões de segmentação
Exemplo
Descrever uma tabela de referência cruzada dos campos Age e Gender com as medidas count() e
mode(MaritalStatus):
<specification>
<field name="Age"/>
<field name="Gender"/>
<function name="count"/>
<function name="mode">
<parameter>MaritalStatus</parameter>
</function>
</specification>
352
Portrait Miner 7.0A
Capítulo 28: XML no Portrait Miner
function
Necessário
Valor
Descrição
name
atributo de nome do campo
Identificar o nome da medida
Opcional
Valor
Descrição
parameter
atributo de nome do campo
Identificar o parâmetro de campo
para a função
Exemplos
Descrever uma função sem parâmetros:
<function name="count"/>
Descrever uma função com apenas um parâmetro MaritalStatus:
<function name="mode">
<parameter>MaritalStatus</parameter>
</function>
field na tabela de referência cruzada
Necessário
Valor
Descrição
name
atributo de nome do campo
O nome do campo a ser usado
na tabela de referência cruzada
Exemplo
Especificar o campo Age para ser usado na tabela de referência cruzada:
<field name="Age"/>
Especificação de mapeamento do campo do nome
para qsrenamefields
mappingset
Necessário
Valor
Descrição
map
elementos
O mapeamento dos nomes dos
campos
Exemplo
Guia de referência de comando de compilação de dados e do TML
353
map
Descrever como renomear três campos:
<?xml version="1.0" encoding="UTF-8"?>
<mappingset xmlns="http://www.quadstone.com/xml">
<map>
<name>StartDate</name>
<alias>Initialized</alias>
</map>
<map>
<name>Age</name>
<alias>CurrentAge</alias>
</map>
<map>
<name>Gender</name>
<alias>Sex</alias>
</map>
</mappingset>
map
Necessário
Valor
Descrição
name
elemento de nome do campo
O nome do campo a renomear
alias
elemento de nome do campo
o novo nome do campo
Exemplo
Renomear campo StartDate para Initialized:
<map>
<name>StartDate</name>
<alias>Initialized</alias>
</map>
Especificação da compilação da árvore de decisão
para qsdecisiontree
decisiontree
Necessário
Valor
Descrição
specification
elemento
A especificação da compilação
da árvore de decisão
Exemplo
354
Portrait Miner 7.0A
Capítulo 28: XML no Portrait Miner
Descrever uma especificação da compilação da árvore de decisão com o campo de objetivo Age e três
candidatos à análise, criando o novo campo de resultado PredictedAge:
<?xml version="1.0" encoding="UTF-8"?>
<decisiontree xmlns="http://www.quadstone.com/xml">
<specification nlevels="3">
<objectivefield>
<field name="Age"/>
</objectivefield>
<analysiscandidates>
<field name="Gender"/>
<field name="MaritalStatus"/>
<field name="HomeOwner"/>
</analysiscandidates>
<resultfield>
<field name="PredictedAge"/>
</resultfield>
</specification>
</decisiontree>
specification na árvore de decisão
Necessário
Valor
Descrição
nlevels
atributo integer
A profundidade da árvore a ser
compilada
objectivefield
elemento de nome do campo
O campo de objetivo
analysiscandidates
elemento de nomes do campo
Os candidatos à análise
resultfield
elemento de nome do campo
O nome para o campo de
resultados criado
Opcional
Valor
Descrição
splitconstraints
elemento
As restrições na compilação da
árvore de decisão
kwaysplitfield
elemento de nome do campo
O campo dividido do modok
partitionfield
elemento de nome do campo
O campo de partição
testtrain
elemento
A metodologia de
teste/treinamento a ser usada
Exemplo
Descrever uma especificação da compilação da árvore de decisão com o campo de objetivo Age e três
candidatos à análise, criando o novo campo de resultado PredictedAge:
<specification nlevels="3">
<objectivefield>
<field name="Age"/>
</objectivefield>
<analysiscandidates>
<field name="Gender"/>
Guia de referência de comando de compilação de dados e do TML
355
splitconstraints
<field name="MaritalStatus"/>
<field name="HomeOwner"/>
</analysiscandidates>
<resultfield>
<field name="PredictedAge"/>
</resultfield>
</specification>
Observação: • Se o elemento <partitionfield> está vazio, o qsdecisiontree irá ignorar
qualquer partição existente anterior à compilação da árvore.
• Se o elemento <kwaysplitfield> estiver vazio, o qsdecisiontree irá ignorar
qualquer divisão modo k existente antes da compilação da árvore.
splitconstraints
Necessário
Valor
Descrição
minpopsize
atributo integer
O tamanho mínimo de uma
população de segmento
minpopsizetreated
atributo integer
O tamanho mínimo da população
do segmento tratada
minpopsizecontrol
atributo integer
O tamanho mínimo da população
do segmento de controle
Opcional
Valor
Descrição
combiningfunction
consulte combining function
A função de combinação usada
para selecionar como a divisão
final é escolhida
Observação: • Quando é fornecido um elemento partitionfield, o minpopsizetreated ou
minpopsizecontrol são atributos splitconstraint válidos. Caso contrário,
somente o atributo minpopsize deve ser definido.
• O atributo combiningfunction deve ser usado somente quando o elemento
kwaysplitfield for definido.
testtrain
356
Necessário
Valor
Descrição
threshold
atributo real
A proporção dos registros, como
um número entre zero e um, a
ser usada para o treinamento da
compilação da árvore de decisão
namefield
elemento de nome do campo
O campo aleatório para definir a
divisão do treinamento do teste
Portrait Miner 7.0A
Capítulo 28: XML no Portrait Miner
Exemplo
<testtrain threshold="0.5">
<field name="randomField"/>
</testtrain>
Especificação da compilação do scorecard parna
árvore de decisãoa qsscorecard
scorecard
Necessário
Valor
Descrição
specification
elemento
A especificação da compilação
do scorecard
Exemplo
Descrever uma especificação de compilação de um scorecard com o campo de objetivo Age e três
candidatos à análise, criando o novo campo de resultado PredictedAge:
<?xml version="1.0" encoding="UTF-8"?>
<scorecard xmlns="http://www.quadstone.com/xml">
<specification modeltype="value" nfields="2" iscontinuous="true">
<objectivefield>
<field name="Age"/>
</objectivefield>
<analysiscandidates>
<field name="Gender"/>
<field name="MaritalStatus"/>
<field name="HomeOwner"/>
</analysiscandidates>
<resultfield>
<field name="PredictedAge"/>
</resultfield>
</specification>
</scorecard>
specification no scorecard
Necessário
Valor
Descrição
iscontinuous
atributo binário
Compila um scorecard
contínuo-objetivo,
independentemente da definição
do modeltype
modeltype
consulte model types
Que tipo de modelo (binary) a
compilar (ignorado se
iscontinuous for verdadeiro);
Guia de referência de comando de compilação de dados e do TML
357
Especificações de binning
Necessário
Valor
Descrição
se esse não estiver definido,
compila um scorecard
contínuo-objetivo
nfields
atributo integer
O número de campos no
scorecard criado
objectivefield
elemento de nome do campo
O campo de objetivo
analysiscandidates
elemento de nomes do campo
Os candidatos à análise
resultfield
elemento de nome do campo
O nome para o campo do
resultado criado
Opcional
Valor
Descrição
correlationthreshold
atributo real
O limite acima do qual os
candidatos à análise são
excluídos por serem bastante
correlacionados com o objetivo
testtrain
elemento
A metodologia de
teste/treinamento a ser usada
Exemplo
<specification modeltype="value" nfields="2" iscontinuous="true">
<objectivefield>
<field name="Age"/>
</objectivefield>
<analysiscandidates>
<field name="Gender"/>
<field name="MaritalStatus"/>
<field name="HomeOwner"/>
</analysiscandidates>
<resultfield>
<field name="PredictedAge"/>
</resultfield>
</specification>
Especificações de binning
binning
358
Opcional
Valor
Descrição
name
atributo de string
O nome do binning
numeric
elemento
O binning numérico
Portrait Miner 7.0A
Capítulo 28: XML no Portrait Miner
Opcional
Valor
Descrição
date
elemento
O binning de data
geographic
elemento
O binning geográfico
categorical
elemento
O binning categórico
Observação: O elemento binning leva somente um subelemento numeric, date, geographical
ou categorical.
Exemplos
Adicionar um binning numérico a um campo LoanAmount:
<field name="LoanAmount">
<binning name="LoanAmount-1">
<numeric targetnbins="10" style="equalwidth"/>
</binning>
</field>
Adicionar um binning categórico ao campo Gender:
<field name="Gender">
<binning name="Gender-1">
<categorical>
<categories>
<category name="male" levelname="unnamed node">
<category name="1" levelname="base categories"
value="1"/>
</category>
<category name="female">
<category name="2" value="2"/>
</category>
</categories>
</categorical>
</binning>
</field>
Adicionar um binning de campo geográfico ao campo StateCode:
<field name="StateCode">
<binning>
<geographic>
<maplocation>/home/data/maps/us.mif</maplocation>
</geographic>
</binning>
</field>
numeric
Opcional
Valor
Descrição
targetnbins
atributo integer
O número necessário de bins
adjustnbins
atributo binário
Ajusta automaticamente o
número de bins para criar bons
limites de bin. Por padrão, é true
Guia de referência de comando de compilação de dados e do TML
359
date
Opcional
Valor
Descrição
forcewholenumbered
atributo binário
Se um binning ou um campo de
valor real deve ter limites de
números inteiros
style
consulte bin style
O tipo de binning aplicado
binning
consulte binning display
A exibição do binning
minendparam
elemento
A definição de limite inferior do
bin. Por padrão, binning de
largura igual usa bins finais auto,
enquanto a população igual usa
none
maxendparam
elemento
A definição de limite superior do
bin. Por padrão, binning de
largura igual usa bins finais auto,
enquanto a população igual usa
none
boundaries
elemento
Os limites do bin para o estilo de
binning definido pelo usuário
Exemplo
Adicionar um binning numérico de população igual com dez intervalos para um campo:
<binning name="LoanAmount-1">
<numeric targetnbins="10" style="equalwidth"/>
</binning>
date
360
Opcional
Efeito
targetnbins
atributo integer
O número necessário de bins
binby
consulte date period
O período de tempo do binning
reference
consulte date reference
A data a aplicar o bin por período
de tempo
binwidth
atributo integer
O número de períodos de tempo
para um bin
style
consulte bin style
O tipo de binning aplicado
binning
consulte binning display
Como o binning deve ser exibido
minendparam
elemento
A definição de limite inferior do
bin. Por padrão, binning de
largura igual usa bins finais auto,
Portrait Miner 7.0A
Capítulo 28: XML no Portrait Miner
Opcional
Efeito
enquanto a população igual usa
none
maxendparam
elemento
A definição de limite superior do
bin. Por padrão, binning de
largura igual usa bins finais auto,
enquanto a população igual usa
none
boundaries
elemento
Os limites do bin para o estilo de
binning definido pelo usuário
Exemplo
Criar um binning de data, por trimestres, a partir de 1º de Março de 1992.
<date display="equalwidth" binwidth="1" binby="quarter"
reference="auto" style="equalwidth">
<minendparam type="fixed">
<boundary>1992-03-01T00:00:00Z</boundary>
</minendparam>
<maxendparam type="none"/>
<boundaries endbins="low">
<boundary>1992-03-01T00:00:00Z</boundary>
<boundary>1992-04-01T00:00:00Z</boundary>
<boundary>1992-07-01T00:00:00Z</boundary>
<boundary>1992-10-01T00:00:00Z</boundary>
<boundary>1993-01-01T00:00:00Z</boundary>
<boundary>1993-04-01T00:00:00Z</boundary>
<boundary>1993-07-01T00:00:00Z</boundary>
<boundary>1993-10-01T00:00:00Z</boundary>
<boundary>1994-01-01T00:00:00Z</boundary>
<boundary>1994-04-01T00:00:00Z</boundary>
<boundary>1994-07-01T00:00:00Z</boundary>
<boundary>1994-10-01T00:00:00Z</boundary>
<boundary>1995-01-01T00:00:00Z</boundary>
<boundary>1995-04-01T00:00:00Z</boundary>
</boundaries>
</date>
categorical
Necessário
Valor
Descrição
categories
elemento
A descrição da
hierarquia
categórica
hierarchylocation
elemento de arquivo
A localização
do arquivo
contém a
descrição
Guia de referência de comando de compilação de dados e do TML
361
categories
Necessário
Valor
Descrição
hierárquica
categórica
elemento
selectn
O número de
categorias a
criar
Observação: Só é necessário um desses elementos para definir um binning categórico.
Exemplo Descrever um binning categórico:
<binning name="Gender-1">
<categorical>
<categories>
<category name="male" levelname="unnamed node">
<category name="1" levelname="base categories"
value="1"/>
</category>
<category name="female">
<category name="2" value="2"/>
</category>
</categories>
</categorical>
</binning>
categories
Necessário
Valor
Descrição
category
elementos
Uma categoria na hierarquia
Exemplo
Descrever a hierarquia categórica:
<binning name="Gender-1">
<categorical>
<categories>
<category name="male" levelname="unnamed node">
<category name="1" levelname="base categories"
value="1"/>
</category>
<category name="female">
<category name="2" value="2"/>
</category>
</categories>
</categorical>
</binning>
362
Portrait Miner 7.0A
Capítulo 28: XML no Portrait Miner
category
Necessário
Valor
Descrição
name
atributo de string
O nome da categoria
value
atributo numeric, date ou string
O valor para essa categoria
category
elementos
Uma descrição de subcategoria
Opcional
Valor
Descrição
levelname
atributo de string
O nome do nível da hierarquia
categórica, necessário somente
na primeira categoria em cada
definição
Observação: • Um elemento category tem um atributo value ou um elemento category.
• Todas as categorias devem recursar à mesma profundidade.
Exemplos
Descrever o mapeamento de categoria entre o valor do campo e a etiqueta:
<category name="female">
<category name="1" value="1"/>
</category>
Descrever o agrupamento categórico de muitos valores de campo para apenas uma etiqueta:
<category name="InArrears">
<category name="2" value="2"/>
<category name="6" value="6"/>
<category name="14" value="14"/>
<category name="15" value="15"/>
<category name="18" value="18"/>
<category name="25" value="25"/>
</category>
selectn
Necessário
Valor
Descrição
n
atributo integer
O número de categorias a criar
Opcional
Valor
Descrição
mincatsize
atributo integer
O número mínimo de registros
em cada categoria
Guia de referência de comando de compilação de dados e do TML
363
geographic
geographic
Necessário
Valor
Descrição
maplocation
elemento de arquivo
A localização do arquivo de mapa
Exemplo
Adicionar um binning de campo geográfico ao campo StateCode:
<geographic>
<maplocation>/home/data/maps/us.mif</maplocation>
</geographic>
minendparam
Opcional
Valor
Descrição
type
consulte end bin style
O tipo de bin final
boundary
elemento
O valor fixo do bin final
Exemplo
Descrever um binning com o bin final inferior fixado ao valor 18 :
<binning name="Age-1">
<numeric targetnbins="10" style="equalwidth">
<minendparam type="fixed">
<boundary falls="right">18.0</boundary>
</minendparam>
</numeric>
</binning>
maxendparam
Opcional
Valor
Descrição
type
consulte end bin style
O tipo de bin final
boundary
elemento
O valor fixo do bin final
Exemplo
Descrever um binning com o limite superior do configurado para ser automaticamente definido pelo
Portrait Miner:
<binning name="Age-1">
<numeric targetnbins="10" style="equalpopulation">
<maxendparam type="auto"/>
</numeric>
</binning>
364
Portrait Miner 7.0A
Capítulo 28: XML no Portrait Miner
boundaries
Opcional
Valor
Descrição
endbins
consulte end bins
Quais bins finais estão
disponíveis
boundary
elementos
A definição do limite do bin
Exemplo
Definir os limites de um binning definido pelo usuário:
<binning name="Age-1">
<numeric style="userdefined">
<boundaries endbins="both">
<boundary falls="right">20.0</boundary>
<boundary falls="right">30.0</boundary>
<boundary falls="right">40.0</boundary>
</boundaries>
</numeric>
</binning>
boundary
Necessário
Valor
Descrição
content
numérico ou data
O valor do limite
Opcional
Valor
Descrição
type
consulte end bin style
O tipo de limite
falls
consulte boundary inclusion
Se o limite é inclusivo ou
exclusivo
Observação: Os valores de data devem ser fornecidos no formato padrão AAAA-MM-DDTHH:MM:SSZ.
Exemplo
Definir o limite que inclui o valor 20:
<boundary falls="right">20.0</boundary>
Definir o limite que não inclui o valor 20:
<boundary falls="left">30.0</boundary>
Definir um limite de data:
<boundary>1992-03-01T00:00:00Z</boundary>
Guia de referência de comando de compilação de dados e do TML
365
Valores de atributos
Valores de atributos
366
Nome
Valores
nullhandling
nomention | include | include_only |
exclude | selected | deselected
status
selected | deselected
otherstatus
selected | deselected
field type
integer | real | string | date |
unknown | numeric
end bin style
none | auto | fixed
bin style
equalpopulation | equalwidth |
userdefined
end bins
none | both | high | low
boundary inclusion
left | right
binning display
equalwidth | compactends
date period
auto | hour | minute | second | day |
week | month | quarter | year | decade
| century
date reference
auto | minend | maxend
measure context
aggregation | statistic | tracker
combining function
unused | mean | meanlessstddev |
meanlesssqrtstddev | min
model types
risk | response | churn | satisfaction
| dissatisfaction
Portrait Miner 7.0A
Índice
* (operador FDL) 193
%, mod (operador FDL) 193
A
abs (função FDL) 276
ActionROI (função FDL) 304
ActionROIAnnualized (função FDL) 305
addcenturies, addcenturiescountbackwards (funções
FDL) 221
adddays (função FDL) 222
addhours (função FDL) 223
addminutes (função FDL) 223
addmonths, addmonthscountbackwards (funções FDL)
224
addseconds (função FDL) 226
addweeks (função FDL) 227
addyears, addyearscountbackwards (funções FDL)
228
adição 193
operador FDL 193
agregação 66
usando qsmeasure 66
agregação de registros 66
usando qsmeasure 66
agregar um campo 150
em um arquivo de agregações TML 150
alterar o nome de um arquivo de focus 93
usando qsmove 93
amostragem 290, 291, 292, 293, 294, 295
estratificada 293
particionamento 291
para subpopulações aproximadamente de
mesmo tamanho 291
selecionando uma porcentagem exata de
registros 292
selecionar um número exato de registros 292
teste/treinamento 290, 294
usando numericTestTrainSplit 290
usando testTrainSplit 294
amostragem (continuado)
teste/treinamento/validação 290, 295
usando numericTestTrainValidateSplit 290
usando testTrainValidateSplit 295
amostragem estratificada 293
analisar um documento QMML usando qsqmmledit
132
análise cesta-mercado!usando qsruleminer 127
âncora 268
em uma expressão regular FDL 268
and (operador FDL) 196
any (função de agregação) 160, 163
em medições e derivações 160
argumentos de função (FDL) 190
arquivar um arquivo focus 95
usando qsarchive 95
arquivo de descrição de dado simples 135
criar a partir de QMML usando qslt 135
arquivo de descrição de dados simples 40
criar a partir de um arquivo simples usando
qsgenfdd 40
arquivo de focus 92, 93, 94, 111
copiar usando qscopy (cópia independente) 92
copiar usando qslink (cópia associada) 93
excluir usando qsremove 94
mover/renomear usando qsmove 93
visualizar dependências e tamanhos de arquivos
usando qsinfo 111
arquivo de texto 40, 42
criar metadados usando qsgenfdd 40
importar usando qsimportflat 42
arquivo simple 44
criar a partir de um focus usando qsexportflat 44
arquivo simples 40, 42
criar metadados usando qsgenfdd 40
importar usando qsimportflat 42
arredondar para um inteiro 278, 284
arredondar para baixo 278
arredondar para o inteiro mais próximo 284
arredondar para um número inteiro 276
arredondar para cima 276
árvore de decisão 107
criar um Modelo Instantâneo usando
qsdtsnapshot 107
átomo 266
em uma expressão regular FDL 266
atribuição de variável (FDL) 188
atribuir um valor a uma variável 188
em FDL 188
auditoria de um focus 100
usando qsaudit 100
automatizar compilação de dados 28
usando qsbuild 28
avaliação condicional em FDL 185, 206, 207
usando a função cond 206
usando a função iff 207
usando expressões if e case 185
B
bin (função FDL) 324
binnings 154
para dividir agregações 154
Boolean (binning) 325
C
campo 63, 70, 74, 150
de agregação em um arquivo de agregações TML
150
derivar em derivações, rastreios e seleções TML
ou arquivo de agregações 150
derivar usado qstrack 70
derivar usando qsderive 63
renomear usando qsrenamefields 74
campo de marcação 210
criar a partir de uma seleção 210
ceil (função FDL) 276
clamp (função FDL) 206
classe de caractere 266
em uma expressão regular FDL 266
classificar registros em um focus 62
using qssort 62
cláusula by (TML) 154
cláusula padrão (TML) 152
cláusula where (TML) 152
coincidência de strings 266
em FDL 266
coincidir padrões 266
em FDL 266
comandos de compilação de dados 16, 21
opções padrão de linha de comando 21
sobre 16
368
comandos de compilação de dados do Portrait Miner
16, 21
opções padrão de linha de comando 21
sobre 16
comentários 77, 78, 184
em FDL 184
exportar a partir de um focus para um arquivo
XML 77
importar para um focus a partir de um arquivo
XML 78
compatibilidade 183
dos tipos de dados em FDL 183
compatibilidade do tipo de dado 183
em FDL 183
compilar um documento QMML usando qsqmmledit
132
compilar um scorecard 117
usando qsscorecardwizard (cópia associada) 117
comprimento de uma string 259
concat (função FDL) 252
cond (função FDL) 206
Conectividade do Banco de Dados Aberto (ODBC)
32
criar ou modificar usando qsdbaccess 32
conexão do banco de dados 32
criar e modificar usando qsdbaccess 32
Conexão do Banco de Dados do Usuário 32
criar ou modificar usando qsdbaccess 32
confintlower (função de agregação) 160, 163
em medições e derivações 160
confintupper (função de agregação) 160, 164
em medições e derivações 160
conjunto de dados Excel 48, 49, 105
criar a partir de um focus usando qsexportstat 49
descrever usando qsdescribestat 105
importar usando qsimportstat 48
conjunto de dados SAS 48, 49, 105
criar a partir de um focus usando qsexportstat 49
descrever usando qsdescribestat 105
importar usando qsimportstat 48
conjunto de dados SPSS 48, 105
descrever usando qsdescribestat 105
importar usando qsimportstat 48
conjunto de dados SPSS dataset 49
criar a partir de um focus usando qsexportstat 49
conjunto de regras 132
adicionar ou excluir um documento QMML usando
qsqmmledit 132
conversão de tipo de dado 184
em FDL 184
converter um arquivo de metadados 138
usando qsqsfmtosas 138
converter um arquivo QMML 137
usando qsqmml2sas 137
Portrait Miner 7.0A
converter um arquivo QMML (continuado)
usando qsqmml2sql 137
converter um campo 214, 215, 216
para um número integer 215
para um número real 215
para uma data 214
para uma string 216
cópia associada de um arquivo de focus 93
usando qslink 93
copiar metadados do focus 82
usando qsupdate 82
copiar um arquivo de focus 92, 93
usando qscopy (cópia independente) 92
usando qslink (cópia associada) 93
cos (função FDL) 277
count (aggregation function) 160
em medições e derivações 160
count (função de agregação) 165
countcenturies (função FDL) 229
countdays (função FDL) 229
counthours (função FDL) 230
countminutes (função FDL) 231
countnonnull/countnonnulls (função de agregação)
160, 165
em medições e derivações 160
countnull/countnulls (função de agregação) 160, 166
em medições e derivações 160
countseconds (função FDL) 232
countunique (função de agregação) 160, 167
em medições e derivações 160
countuniquenonnull (função de agregação) 160, 167
em medições e derivações 160
countweeks (função FDL) 233
countwholecenturies, countwholecenturiesbackwards
(funções FDL) 234
countwholedays (função FDL) 235
countwholehours (função FDL) 236
countwholeminutes (função FDL) 236
countwholemonths, countwholemonthsbackwards
(funções FDL) 237
countwholeseconds (função FDL) 239
countwholeweeks (função FDL) 240
countwholeyears, countwholeyearsbackwards (funções
FDL) 241
countyears (função FDL) 242
criação de perfil de um focus 100
usando qsaudit 100
criar instrução (TML) 150
D
dados booleanos 183
em FDL 183
dados de tempo 182
em FDL 182
dados de texto 182
em FDL 182
data 214
converter um campo para 214
day (função FDL) 243
DayFrom (binning) 326
DayMultipleFrom (binning) 326
DayMultipleNumBins (binning) 327
DayMultiplePrePost (binning) 328
DayMultipleTo (binning) 329
DayMultipleWidth (binning) 330
dayofweek (função FDL) 243
DayPrePost (binning) 331
DayRange (binning) 332
DayTo (binning) 333
dblookup (função FDL) 316
decis 175
em FDL 175
decision tree 123
compilando com qsdecisiontree 123
definição de função (FDL) 190
dependências entre focus 111
visualizar com qsinfo 111
derivar um campo 63, 70, 150
em derivações, rastreios e seleções TML ou
arquivo de agregação 150
usando qsderive 63
usando qstrack 70
desigualdade 194
operador FDL 194
desvio padrão de um campo 176
distribuição binomial 298
distribuição exponencial 299
distribuição gama 300
distribuição normal 300
Distribuição poissoniana 301
div (operador FDL) 193
divisão 193
operadores FDL 193
documento QMML 132, 135
editar ou compilar usando qsqmmledit 132
transformar usando qslt 135
visualizar por meio de qsqmmlview 132
duplicar registros 87
remover usando qsmerge 87
E
editar um documento QMML usando qsqmmledit 132
endswith (função FDL) 252
EqualRange (binning) 334
Guia de referência de comando de compilação de dados e do TML
369
EqualRangeWidth (binning) 334
estatística 156
avaliar em um arquivo de estatísticas TML 156
estatística de focus 156
avaliar um arquivo de estatísticas TML 156
excluir um arquivo de focus 94
usando qsremove 94
exp (função FDL) 277
exploração de sequência!usando qsruleminer 127
exportar dados 37, 38, 44, 49
para um arquivo SAS ou outro conjunto de dados
de terceiros usando qsexportstat 49
para um arquivo simples usando qsexportflat 44
para uma tabela de banco de dados usando
qsdbinsert 37
para uma tabela do banco de dados usando
qsdbupdate 38
exportar metadados a partir de um focus para um
arquivo XML 77
expressão aritmética 184
em FDL 184
expressão básica 184
em FDL 184
expressão case 187
em FDL 187
expressão case (FDL) 187
expressão if 186
em FDL 186
expressão if (FDL) 186
expressão lógica 184
em FDL 184
expressão regular 266, 270, 271, 272
composição 266
substituir a substring da primeira coincidência 272
substituir todas as substrings de coincidência 271
testar uma string para uma coincidência 270
expressões, lista de expressões 184
em FDL 184
extrair a partir de um arquivo compactado! usando
qsunzip 96
F
FDL 135, 180, 182, 184, 185, 188, 190, 193, 194,
196, 197, 204, 266
coincidência de strings 266
expressões if e case 185
expressões, lista de expressões 184
funções 190, 197
definidas pelo usuário 190
internas 197
operadores 193, 194, 196, 197
aritméticos 193
370
FDL (continuado)
operadores (continuado)
lógicos 196
precedência 197
relacionais 194
palavras reservadas 204
sobre 180
tipos de dados 182
transformar de ou para QMML usando qslt 135
variáveis 188
filtrar registros 152
em um arquivo de agregações TML 152
filtro de registro 152
em um arquivo de agregações TML 152
find (função FDL) 253
first (função de agregação) 160, 168
em medições e derivações 160
floor (função FDL) 278
focus 16, 33, 42, 44, 48, 49, 51, 62, 77, 78, 87, 100
classificar registros usando qssort 62
criação de um Perfil e Auditoria usando qsaudit
100
criar a partir de um arquivo SAS ou outro conjunto
de dados de terceiros usando qsimportstat 48
criar a partir de uma tabela do banco de dados
usando qsimportdb 33
criar a partir dos dados em outro focus usando
qsimportfocus 51
criar um arquivo simples usando qsimportflat 42
exportar metadados para um arquivo XML 77
exportar para um arquivo SAS ou outro conjunto
de dados de terceiros usando qsexportstat 49
exportar para um arquivo simples usando
qsexportflat 44
importar metadados a partir de um arquivo XML
78
remover registros duplicados usando qsmerge
87
somente de leitura 16
focus do modelo 82
em qsupdate 82
focus somente de leitura 16
focus!descrevendo o uso do qsdescribe 104
formatação de data 55
para arquivos simples e expressões FDL 55
função 184, 190
em FDL 184
aplicar 184
em FDL!definindo 190
funções 197
em FDL 197
internas 197
funções de agregação 160
para uso em medições e derivações 160
Portrait Miner 7.0A
funções de divisão 154
para dividir agregações 154
function attributes (FDL) 192
J
gmt2edt (funções FDL) 244
juntar campos 84
usando qsjoin 84
juntar focus 84
usando qsjoin 84
juntar strings 252
H
L
hierarquia binning categórica 140
criar um mapa categórico usando qsmapgen 140
hour (função FDL) 244
last (função de agregação) 160, 169
em medições e derivações 160
left (função FDL) 254
letra 262, 263
maiúscula 263
converter uma string para 263
minúscula 262
converter uma string para 262
letra maiúscula 263
converter uma string para 263
letra minúscula 262
converter uma string para 262
Linguagem de Campo Derivado 180
consulte 180
literal de data 184
em FDL 184
literal de string 184
em FDL 184
literal numérico 184
em FDL 184
log (função FDL) 278
log10 (função FDL) 279
logbase (função FDL) 279
G
I
identificador 184
em FDL 184
identificar estatístico 184
em FDL 184
iff (função FDL) 207
ifnull (função FDL) 208
igualdade 194
operador FDL 194
importar dados 33, 42, 48, 51
de um arquivo SAS ou outro conjunto de dados
de terceiros usando qsimportstat 48
de um arquivo simples usando qsimportflat 42
de um focus existente usando qsimportfocus 51
de uma tabela do banco de dados usando
qsimportdb 33
importar metadados a partir de um arquivo XML para
um focus 78
importar metadados a partir de um focus para outro
82
usando qsupdate 82
inicialização e atribuição da variável 188
em FDL 188
inicializar uma variável 188
em FDL 188
Instantâneo Modelo 106
descompactar usando qshtmlunpack 106
instrução calculate (TML) 156
instrução temporária (TML) 150
intervalo de caractere 266
em uma expressão regular FDL 266
isnull (função FDL) 209
isselected (função FDL) 210
M
magnitude de um número 276
maior que (ou igual a) 194
operadores FDL 194
mapa de categoria 140
criar a partir de uma hierarquia binning categórica
usando qsmapgen 140
mapa de categorias 140
criar a partir de uma hierarquia binning categórica
usando qsmapgen 140
match (função FDL) 270
max (função de agregação) 160, 169
em medições e derivações 160
max, maxnonnull (funções FDL de multiargumento)
280
mean (função de agregação) 160, 170
em medições e derivações 160
Guia de referência de comando de compilação de dados e do TML
371
mean, meannonnull (funções FDL de multiargumento)
281
média 281
de uma lista de número 281
Média 170
dos valores em um campo 170
median (função de agregação) 160, 171
em medições e derivações 160
medição 66
usando qsmeasure 66
medidas de transação 66
usando qsmeasure 66
member (função FDL) 317
menor que (ou igual a) 194
operadores FDL 194
menos 193
operador FDL 193
mesclar focus 87
usando qsmerge 87
mesclar registros 87
usando qsmerge 87
metadados 40, 78, 82
copiar a partir de um focus para outro usando
qsupdate 82
criar metadados de arquivo simples usando
qsgenfdd 40
importar para um focus a partir de um arquivo
XML 78
mid (função FDL) 255
min (função de agregação) 160, 171
em medições e derivações 160
min, minnonnull (funções FDL de multiargumento) 281
minute (função FDL) 245
mod, % (operador FDL) 193
mode (função de agregação) 160, 172
em medições e derivações 160
modelo 107
criar um Modelo Instantâneo usando
qsdtsnapshot ou qsscsnapshot 107
moderatio (função de agregação) 160, 173
em medições e derivações 160
month (função FDL) 246
MonthFrom (binning) 326
MonthMultipleFrom (binning) 326
MonthMultipleNumBins (binning) 327
MonthMultiplePrePost (binning) 328
MonthMultipleTo (binning) 329
MonthMultipleWidth (binning) 330
MonthPrePost (binning) 331
MonthRange (binning) 332
MonthTo (binning) 333
mover um arquivo de focus 93
usando qsmove 93
372
multiplicação 193
operador FDL 193
N
NegativeNonNegative (binning) 335
normalizar valores de campo 282
normalize (função FDL) 282
not (operador FDL) 196
now (função FDL) 246
numericTestTrainSplit (função FDL) 290
numericTestTrainValidateSplit (função FDL) 290
número aleatório 298, 299, 300, 301, 302
com distribuição binomial 298
com distribuição exponencial 299
com distribuição gama 300
com distribuição normal 300
com distribuição poissoniana 301
com distribuição uniforme em um intervalo 302
simular cara ou coroa 299
número de índice 175, 324
para um bin 324
para um segmento da tabela de referência
cruzada 175
número integer 215
converter um campo para 215
número real 215
converter um campo para 215
números aleatórios 298
em FDL 298
nvl (função FDL) 208
O
OfferROI (função FDL) 306
OfferROIAnnualized (função FDL) 307
operadores 193, 194, 196, 268
aritméticos 193
em FDL 193
em uma expressão regular FDL 268
lógicos 196
em FDL 196
relacionais 194
em FDL 194
operadores aritméticos 193
em FDL 193
operadores lógicos 196
em FDL 196
operadores relacionais 194
em FDL 194
or (operador FDL) 196
Portrait Miner 7.0A
P
palavras reservadas 147, 204
FDL 204
TML 147
parametrização da compilação de dados 28
usando qsbuild 28
percentage (função de agregação) 160, 173
em derivações 160
percentagerate (função de agregação) 160, 174
em derivações 160
Perfil e Auditoria 106
descompactar usando qshtmlunpack 106
pesquisa 316
de valores em uma tabela de referência 316
pesquisa de tabela de referência 316
plano de compilação 28
usando em qsbuild 28
pow (função FDL) 283
precedência de operadores 197
em FDL 197
precedência do operador 197
em FDL 197
PreDuringPost (binning) 336
PrePost (binning) 336
product, productnonnull (função FDL) 283
Q
qsarchive (comando de compilação de dados) 95, 96
qsaudit (comando de compilação de dados) 100
qsbuild (comando de compilação de dados) 28
qscopy (comando de compilação de dados) 92
qsdbaccess (comando de compilação de dados) 32
qsdbcreatetable 35
qsdbinsert 37
qsdbupdate 38
qsdecisiontree (comando de compilação de dados)
123
qsderive (comando de compilação de dados) 63
qsdescribe (comando de compilação de dados) 104
qsdescribelicense (comando de compilação de dados)
112
qsdescribestat (comando de compilação de dados)
105
qsdtsnapshot (comando de compilação de dados) 107
qsexportflat 44
qsexportmetadata (data-build command) 77
qsexportstat (comando de compilação de dados) 49
qsgenfdd 40
qshtmlunpack (comando de compilação de dados)
106
qsimportdb 33
qsimportflat 42
qsimportfocus 51
qsimportmetadata (comando de compilação de dados)
78
qsimportstat (comando de compilação de dados) 48
qsinfo (comando de compilação de dados) 111
qsjoin (comando de compilação de dados) 84
qslink (comando de compilação de dados) 93
qslt (comando de compilação de dados) 135
qsmapgen (comando de compilação de dados) 140
qsmeasure (comando de compilação de dados) 66
qsmerge (comando de compilação de dados) 87
qsmove (comando de compilação de dados) 93
qsqmml2sas (comando de compilação de dados) 137
qsqmmledit (comando de compilação de dados) 132
qsqmmltosql (comando de compilação de dados) 137
qsqmmlview (comando de compilação de dados) 132
qsqsfmtosas (comando de compilação de dados) 138
qsremove (comando de compilação de dados) 94
qsruleminer (comando de compilação de dados) 127
qsscorecard (comando de compilação de dados) 124
qsscorecardwizard (comando de compilação de
dados) 117
qsscsnapshot (comando de compilação de dados)
107
qsselect (comando de compilação de dados) 72
qssettings (comando de compilação de dados) 100
qssort (comando de compilação de dados) 62
qstrack (comando de compilação de dados) 70
qsupdate (comando de compilação de dados) 82
qsxt (comando de compilação de dados) 110
R
raiz quadrada de um número 286
rankOrder (função FDL) 319
rankOrderApprox (função FDL) 319
rankOrderApproxMean (função FDL) 320
rankOrderMean (função FDL) 320
rastreamento da dependência em compilação de
dados 28
usando qsbuild 28
rastrear alterações de estado 70
usando qstrack 70
referência inversa 268
em uma expressão regular FDL 268
regra 132
adicionar a um documento QMML usando
qsqmmledit 132
regras de associação de compilação!usando
qsruleminer 127
relação 184
em FDL 184
Guia de referência de comando de compilação de dados e do TML
373
remover um arquivo de focus 94
usando qsremove 94
renomear um arquivo de focus 93
usando qsmove 93
renomear um campo 74
usando qsrenamefields 74
replace (função FDL) 210
replaceall (função FDL) 271
replacefirst (função FDL) 272
resto 193
operador FDL 193
restringir um número a um intervalo 206
RetentionActionROI (função FDL) 308
RetentionActionROIAnnualized (função FDL) 310
RetentionOfferROI (função FDL) 311
RetentionOfferROIAnnualized (função FDL) 312
retorno de investimento 304, 305, 306, 307, 308,
310, 311, 312
usando ActionROI 304
usando ActionROIAnnualized 305
usando OfferROI 306
usando OfferROIAnnualized 307
usando RetentionActionROI 308
usando RetentionActionROIAnnualized 310
usando RetentionOfferROI 311
usando RetentionOfferROIAnnualized 312
right (função FDL) 256
rndBinomial (função FDL) 298
rndBool (função FDL) 299
rndExp (função FDL) 299
rndGamma (função FDL) 300
rndNormal (função FDL) 300
rndPoisson (função FDL) 301
rndUniform (função FDL) 302
round (função FDL) 284
rownum (função FDL) 321
S
sampleEqualSize (função FDL) 291
sampleExactNumber (função FDL) 292
sampleExactPercentage (função FDL) 292
sampleStratified (função FDL) 293
scorecard 107, 124
compilando com o qsscorecard 124
criar um Modelo Instantâneo usando
qsscsnapshot 107
second (função FDL) 247
segindex (função de agregação) 160, 175
em derivações 160
seleção 210
criar um campo de marcação 210
374
seleção de registros 72
usando qsselect 72
selecionar registros 72
usando qsselect 72
semente 298
para geração de números aleatórios em FDL
298
sobre 298
sgn (função FDL) 285
Sign (binning) 337
significance (função de agregação) 160, 175
em derivações 160
signo (sinal) de um número 285
sin (função FDL) 285
sobre diagramas de ferrovia 146
Sobre o Assistente do Scorecard 116
soundex (função FDL) 257
sqrt (função FDL) 286
startswith (função FDL) 258
stdev (função de agregação) 160, 176
em medições e derivações 160
string 216, 252, 253, 254, 255, 256, 257, 258, 259,
260, 261, 263
buscar uma string no final usando FDL 252
buscar uma string no início usando FDL 258
codificação soundex 257
comprimento 259
converter um campo para 216
extrair uma substring de uma posição inicial ou
final usando FDL 261
extrair uma substring final usando FDL 256
extrair uma substring inicial usando FDL 254
extrair uma substring por posição e comprimento
usando FDL 255
remover espaços em branco usandoFDL 263
substitute 260
testar uma substring usando FDL 253
strlen (função FDL) 259
strmember (função FDL) 259
substitute (função FDL) 260
substr (função FDL) 261
subtração 193
operador FDL 193
sum (função de agregação) 160, 177
em medições e derivações 160
sum, sumnonnull (funções FDL de multiargumento)
286
T
tabela de banco de dados 33, 37, 38
atualizar dados usando qsdbupdate 38
importar usando qsimportdb 33
Portrait Miner 7.0A
tabela de banco de dados (continuado)
inserir dados usando qsdbinsert 37
Tabela de banco de dados 35
criar e usar qsdbcreatetable 35
tabela de referência cruzada 110
criar aplicando uma especificação usando qsxt
110
tan (função FDL) 287
tempo real 182
em FDL 182
teste de conjunto de associação 317
teste/treinamento 290, 294, 295
usando numericTestTrainSplit 290
usando numericTestTrainValidateSplit 290
usando testTrainSplit 294
usando testTrainValidateSplit 295
testTrainSplit (função FDL) 294
testTrainValidateSplit (função FDL) 295
text 256
extrair uma substring final usando FDL 256
texto 252, 253, 254, 255, 258, 261, 263
buscar uma string no final usando FDL 252, 258
extrair uma substring de uma posição inicial ou
final usando FDL 261
extrair uma substring inicial usando FDL 254
extrair uma substring por posição e comprimento
usando FDL 255
remover espaços em branco usandoFDL 263
testar uma substring usando FDL 253
tipo de compatibilidade 183
em FDL 183
tipo de número integer curto 182
em FDL 182
tipo de string 182
em FDL 182
tipo integer 182
em FDL 182
tipos de dado 182
no FDL 182
tipos de dados 182
em FDL 182
tipos de dados numéricos 182
em FDL 182
TML 146, 147, 160
funções de agregação 160
palavras reservadas 147
sobre 146
todate (função FDL) 214
today (função FDL) 247
tointeger (função FDL) 215
tolower (função FDL) 262
toreal (função FDL) 215
tostring (função FDL) 216
toupper (função FDL) 263
Transaction Measurement Language 146
consulte TML 146
trim (função FDL) 263
V
valor absoluto de um número 276
valor literal 184
em FDL 184
valor nulo 182, 208, 209
no FDL 182
substituição usando ifnull ou nvl 208
teste 209
valores verdadeiros ou falsos 183
em FDL 183
no FDL 183
variance (função de agregação) 160, 177
em medições e derivações 160
variável de estado 188
em FDL 188
variável global 188
em FDL 188
variável local 188
em FDL 188
W
WeekFrom (binning) 326
WeekMultipleFrom (binning) 326
WeekMultipleNumBins (binning) 327
WeekMultiplePrePost (binning) 328
WeekMultipleTo (binning) 329
WeekMultipleWidth (binning) 330
weekofyear (função FDL) 248
WeekPrePost (binning) 331
WeekRange (binning) 332
WeekTo (binning) 333
whitespace 263
remover usando FDL 263
X
XML 135
formatar para legibilidade 135
XML no Portrait Miner 340
Y
year (função FDL) 249
YearFrom (binning) 326
YearMultipleFrom (binning) 326
YearMultipleNumBins (binning) 327
Guia de referência de comando de compilação de dados e do TML
375
YearMultiplePrePost (binning) 328
YearMultipleTo (binning) 329
YearMultipleWidth (binning) 330
376
YearPrePost (binning) 331
YearRange (binning) 332
YearTo (binning) 333
Portrait Miner 7.0A

Documentos relacionados