DataTutorial.xml 50 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
  3. "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
  4. <book lang="en_US" xml:base="../">
  5. <title>HPCC Data Tutorial</title>
  6. <bookinfo>
  7. <title>HPCC Data Tutorial</title>
  8. <mediaobject>
  9. <imageobject>
  10. <imagedata fileref="images/redswooshWithLogo3.jpg"/>
  11. </imageobject>
  12. </mediaobject>
  13. <author>
  14. <surname>Equipe de documentação de Boca Raton</surname>
  15. </author>
  16. <legalnotice>
  17. <para>Sua opinião e comentários sobre este documento são muito
  18. bem-vindos e podem ser enviados por e-mail para
  19. <email>docfeedback@hpccsystems.com</email></para>
  20. <para>Inclua a frase <emphasis role="bold">Feedback sobre
  21. documentação</emphasis> na linha de assunto e indique o nome do
  22. documento, o número das páginas e número da versão atual no corpo da
  23. mensagem.</para>
  24. <para>LexisNexis e o logotipo Knowledge Burst são marcas comerciais
  25. registradas da Reed Elsevier Properties Inc., usadas sob licença.</para>
  26. <para>HPCC Systems<superscript>®</superscript> é uma marca registrada da
  27. LexisNexis Risk Data Management Inc.</para>
  28. <para>Os demais produtos e serviços podem ser marcas comerciais ou
  29. registradas de suas respectivas empresas.</para>
  30. <para>Todos os nomes e dados de exemplo usados neste manual são
  31. fictícios. Qualquer semelhança com pessoas reais, vivas ou mortas, é
  32. mera coincidência.</para>
  33. <para/>
  34. </legalnotice>
  35. <xi:include href="common/Version.xml"
  36. xpointer="xpointer(//*[@id='FooterInfo'])"
  37. xmlns:xi="http://www.w3.org/2001/XInclude"/>
  38. <!--Release Info makes a running page footer: now an include! -->
  39. <!--The following include statement pulls in the date_ver from version.xml-->
  40. <xi:include href="common/Version.xml"
  41. xpointer="xpointer(//*[@id='DateVer'])"
  42. xmlns:xi="http://www.w3.org/2001/XInclude"/>
  43. <corpname>HPCC Systems<superscript>®</superscript></corpname>
  44. <!--corpname never prints-->
  45. <xi:include href="common/Version.xml"
  46. xpointer="xpointer(//*[@id='Copyright'])"
  47. xmlns:xi="http://www.w3.org/2001/XInclude"/>
  48. <!--Copyright tag inserts the symbol automatically: Now an Include!-->
  49. <mediaobject role="logo">
  50. <imageobject>
  51. <imagedata fileref="images/LN_Rightjustified.jpg"/>
  52. </imageobject>
  53. </mediaobject>
  54. </bookinfo>
  55. <chapter id="DataTutorialIntroduction">
  56. <title>Introdução</title>
  57. <sect1 id="Introduction_Case-Study-and-Tutorial" role="nobrk">
  58. <title>O processo de desenvolvimento do ECL</title>
  59. <para>Este tutorial oferece uma orientação sobre o processo de
  60. desenvolvimento, do início até o fim, e foi projetado para servir como
  61. uma introdução para trabalhar com dados em qualquer um dos HPCC
  62. Systems.<footnote>
  63. <para><emphasis role="bold">H</emphasis>igh <emphasis
  64. role="bold">P</emphasis>erformance <emphasis
  65. role="bold">C</emphasis>omputing <emphasis
  66. role="bold">C</emphasis>luster (HPCC) é uma plataforma de computação
  67. de processamento massivamente paralelo que soluciona problemas de
  68. big data. Acesse o link
  69. http://www.hpccsystems.com/Why-HPCC/How-it-works para obter mais
  70. detalhes</para>
  71. </footnote>. Vamos programar em ECL<footnote>
  72. <para><emphasis role="bold">E</emphasis>nterprise <emphasis
  73. role="bold">C</emphasis>ontrol <emphasis
  74. role="bold">L</emphasis>anguage (ECL) é uma linguagem de programação
  75. declarativa e centrada em dados usada para gerenciar todos os
  76. aspectos da junção, classificação e compilação de dados massivos que
  77. realmente diferenciam o HPCC das demais tecnologias na sua
  78. capacidade de fornecer análise de dados flexíveis em escala
  79. massiva</para>
  80. </footnote>para processar nossos dados e consultá-los.</para>
  81. <para>Este tutorial presume que:</para>
  82. <itemizedlist>
  83. <listitem>
  84. <para>Você tem um HPCC em execução. Ele pode ser a VM Edition ou uma
  85. plataforma HPCC com um ou mais nós</para>
  86. </listitem>
  87. </itemizedlist>
  88. <para>• Ter o ECL IDE<footnote>
  89. <para>O ECL IDE (Ambiente de desenvolvimento integrado) é uma
  90. ferramenta usada para criar consultas em seus dados e arquivos ECL
  91. com os quais suas consultas serão compiladas.</para>
  92. </footnote> instalado e configurado</para>
  93. <para>Neste tutorial, iremos:</para>
  94. <itemizedlist mark="bullet">
  95. <listitem>
  96. <para>Baixar um arquivo de dados bruto</para>
  97. <para>Há links para arquivos de dados disponíveis na página <ulink
  98. url="http://hpccsystems.com/community/docs/data-tutorial-guide">http://hpccsystems.com/community/docs/data-tutorial-guide</ulink></para>
  99. <para>O download tem cerca de 30 MB (compactado) e está disponível
  100. nos formatos ZIP ou .tar.gz. Selecione o link correto.</para>
  101. </listitem>
  102. <listitem>
  103. <para>Realizar o spray do arquivo para um cluster da Refinaria de
  104. dados. Os clusters do HPCC realizam o processo de spray dos dados
  105. para partes de arquivo em cada nó.</para>
  106. <para>Um <emphasis>spray</emphasis> , ou
  107. <emphasis>importação</emphasis> , é a transferência de um arquivo de
  108. dados de um local para um cluster do HPCC. O termo spray foi adotado
  109. devido à natureza da transferência dos arquivos – o arquivo é
  110. particionado entre todos os nós em um cluster.</para>
  111. </listitem>
  112. <listitem>
  113. <para>Examinar os dados e determinar o pré-processamento que
  114. precisamos realizar</para>
  115. </listitem>
  116. <listitem>
  117. <para>Realizar o pré-processamento dos dados para gerar um novo
  118. arquivo de dados</para>
  119. </listitem>
  120. <listitem>
  121. <para>Determinar os tipos de consultas desejadas</para>
  122. </listitem>
  123. <listitem>
  124. <para>Criar as consultas</para>
  125. </listitem>
  126. <listitem>
  127. <para>Testá-las</para>
  128. </listitem>
  129. <listitem>
  130. <para>Implementá-las para um cluster de motor de entrega rápida de
  131. dados (RDDE), também conhecido como um cluster Roxie.</para>
  132. </listitem>
  133. </itemizedlist>
  134. </sect1>
  135. </chapter>
  136. <chapter id="Working_with_Data">
  137. <title>Trabalhando com Dados</title>
  138. <sect1 id="The_Original_Data" role="nobrk">
  139. <title>Dados Originais</title>
  140. <para>Nesta situação, vamos receber um arquivo de dados estruturado que
  141. contenha registros com nomes e endereços de pessoas. O HPCC Sytems
  142. também oferece suporte para dados não estruturados, mas este exemplo é
  143. mais simples. Este arquivo é documentado na tabela a seguir:</para>
  144. <para/>
  145. <para><informaltable colsep="1" frame="all" rowsep="1">
  146. <tgroup cols="3">
  147. <colspec colwidth="147.60pt"/>
  148. <colspec colwidth="147.60pt"/>
  149. <colspec colwidth="147.60pt"/>
  150. <thead>
  151. <row>
  152. <entry align="left">Nome do Campo</entry>
  153. <entry align="left">Tipo</entry>
  154. <entry align="left">Descrição</entry>
  155. </row>
  156. </thead>
  157. <tbody>
  158. <row>
  159. <entry>FirstName</entry>
  160. <entry>Nome em string de 15 caracteres</entry>
  161. <entry>Primeiro Nome</entry>
  162. </row>
  163. <row>
  164. <entry>LastName</entry>
  165. <entry>Nome em string de 25 caracteres</entry>
  166. <entry>Sobrenome</entry>
  167. </row>
  168. <row>
  169. <entry>MiddleName</entry>
  170. <entry>Nome em string de 15 caracteres</entry>
  171. <entry>Nome do Meio</entry>
  172. </row>
  173. <row>
  174. <entry>ZIP</entry>
  175. <entry>String de 5 caracteres</entry>
  176. <entry>CEP</entry>
  177. </row>
  178. <row>
  179. <entry>Street</entry>
  180. <entry>String de 42 caracteres</entry>
  181. <entry>Endereço</entry>
  182. </row>
  183. <row>
  184. <entry>City</entry>
  185. <entry>String de 20 caracteres</entry>
  186. <entry>City</entry>
  187. </row>
  188. <row>
  189. <entry>State</entry>
  190. <entry>String de 2 caracteres</entry>
  191. <entry>Estado</entry>
  192. </row>
  193. </tbody>
  194. </tgroup>
  195. </informaltable></para>
  196. <para>Isso totaliza um tamanho de registro de 124 (o total do tamanho de
  197. todos os campos). É necessário conhecer esse comprimento para o processo
  198. de <emphasis role="bold">Spray do arquivo</emphasis> .</para>
  199. <para/>
  200. <sect2 id="Uploading_a_file">
  201. <title>Enviando os arquivos de dados de entrada para sua Zona de
  202. Entrada de Arquivos</title>
  203. <para>Uma Zona de entrada (ou Drop Zone) é um local de armazenamento
  204. físico definido no ambiente do seu HPCC. Um daemon (DaFileSrv) precisa
  205. estar em execução no servidor para possibilitar sprays e desprays do
  206. arquivo.</para>
  207. <para>Para arquivos de dados menores, é possível usar o utilitário de
  208. arquivos de envio/download no ECL Watch (uma interface baseada na Web
  209. para a sua plataforma HPCC). O arquivo de dados de amostra tem cerca
  210. de ~100 Mb.</para>
  211. <orderedlist>
  212. <listitem>
  213. <para>Faça o download o arquivo de dados de amostra no portal do
  214. HPCC Systems.<superscript>®</superscript> .</para>
  215. <para>O arquivo de dados está disponível nos links na página
  216. <ulink
  217. url="http://hpccsystems.com/community/docs/data-tutorial-guide">http://hpccsystems.com/community/docs/data-tutorial-guide</ulink>.
  218. O download tem cerca de 30 MB (compactado) e está disponível nos
  219. formatos ZIP ou .tar.gz.(<emphasis
  220. role="bold">OriginalPerson.tar.gz </emphasis> ou <emphasis
  221. role="bold"> OriginalPerson.zip</emphasis>)</para>
  222. </listitem>
  223. <listitem>
  224. <para>Extraia-o para uma pasta em sua máquina local.</para>
  225. </listitem>
  226. <listitem>
  227. <para>Em seu navegador, acesse o URL do <emphasis role="bold">ECL
  228. Watch</emphasis> . Por exemplo, http://nnn.nnn.nnn.nnn:8010, onde
  229. nnn.nnn.nnn.nnn é o ESP.<footnote>
  230. <para>O ESP (Enterprise Services Platform) Server é o servidor
  231. de camada de comunicação no seu ambiente HPCC.</para>
  232. </footnote> Endereço IP do servidor.</para>
  233. <para><informaltable colsep="1" frame="all" rowsep="1">
  234. <?dbfo keep-together="always"?>
  235. <tgroup cols="2">
  236. <colspec colwidth="49.50pt"/>
  237. <colspec/>
  238. <tbody>
  239. <row>
  240. <entry><inlinegraphic
  241. fileref="images/caution.png"/></entry>
  242. <entry>Seu endereço IP poderá ser diferente dos
  243. endereços fornecidos nas imagens de exemplo. Use o
  244. endereço IP fornecido pela <emphasis
  245. role="bold">sua</emphasis> instalação.</entry>
  246. </row>
  247. </tbody>
  248. </tgroup>
  249. </informaltable></para>
  250. </listitem>
  251. <listitem>
  252. <?dbfo keep-together="always"?>
  253. <para>Na página inicial do ECL Watch, clique no ícone <emphasis
  254. role="bold">Files</emphasis> e no link <emphasis
  255. role="bold">Landing Zone (Zona de entrada de arquivos)</emphasis>
  256. localizados no submenu de navegação.</para>
  257. <para>Pressione o botão de ação <emphasis role="bold">Upload
  258. </emphasis> na guia Landing Zone (Zona de entrada de
  259. arquivos).</para>
  260. <para><figure>
  261. <title>Upload/Download</title>
  262. <mediaobject>
  263. <imageobject>
  264. <imagedata fileref="images/LZimg03-1.jpg"
  265. vendor="eclwatchSS"/>
  266. </imageobject>
  267. </mediaobject>
  268. </figure></para>
  269. <para>Depois de pressionar o botão Upload, é mostrada uma caixa de
  270. diálogo onde é possível selecionar um arquivo para envio.</para>
  271. </listitem>
  272. <listitem>
  273. <para>Navegue pelos arquivos na máquina local, selecione o arquivo
  274. a ser enviado e pressione o botão <emphasis
  275. role="bold">Open</emphasis> .</para>
  276. <para>O arquivo selecionado é exibido na caixa de diálogo
  277. <emphasis role="bold">File Uploader</emphasis> .</para>
  278. <para><figure>
  279. <title>Enviador de Arquivo</title>
  280. <mediaobject>
  281. <imageobject>
  282. <imagedata fileref="images/LZimg04.jpg"
  283. vendor="eclwatchSS"/>
  284. </imageobject>
  285. </mediaobject>
  286. </figure></para>
  287. </listitem>
  288. <listitem>
  289. <para>Pressione o botão <emphasis role="bold">Start</emphasis>
  290. para concluir o envio do arquivo.<figure>
  291. <title>Progresso de envio</title>
  292. <mediaobject>
  293. <imageobject>
  294. <imagedata fileref="images/LZimg06.jpg"
  295. vendor="eclwatchSS"/>
  296. </imageobject>
  297. </mediaobject>
  298. </figure></para>
  299. </listitem>
  300. </orderedlist>
  301. </sect2>
  302. <sect2 id="Spray_the_Data_File_to_your_DR-THOR_Cluster">
  303. <title>Spray do Arquivo de Dados para seu Cluster Thor</title>
  304. <para>Para usar o arquivo de dados em nosso cluster HPCC System,
  305. precisamos primeiro realizar seu spray para um cluster Thor. Um
  306. <emphasis>spray</emphasis> ou <emphasis> importação</emphasis> , é a
  307. transferência de um arquivo de dados de um local para um cluster Thor.
  308. O termo spray foi adotado devido à natureza da transferência dos
  309. arquivos – o arquivo é particionado entre todos os nós em um
  310. cluster.</para>
  311. <para>Neste exemplo, o arquivo está em sua zona de entrada de arquivos
  312. e é denominado <emphasis role="bold">OriginalPerson.</emphasis></para>
  313. <para>Vamos realizar seu spray para nosso cluster Thor e dar a ele um
  314. nome lógico de <emphasis role="bold">tutorial::</emphasis><emphasis
  315. role="bold">YN</emphasis><emphasis
  316. role="bold">::OriginalPerson</emphasis><emphasis role="bold">
  317. </emphasis> onde <emphasis role="bold"> YN</emphasis> são as suas
  318. iniciais. O Utilitário de arquivo distribuído mantém uma lista de
  319. arquivos lógicos e seus locais de arquivos físicos
  320. correspondentes.</para>
  321. <orderedlist>
  322. <listitem>
  323. <para>Abra o ECL Watch em seu navegador usando o seguinte
  324. URL:</para>
  325. <para><emphasis role="bold">http://nnn.nnn.nnn.nnn:pppp
  326. </emphasis><emphasis role="bold">(onde nnn.nnn.nnn.nnn é o
  327. endereço IP do seu ESP Server e pppp é a porta. A porta padrão é
  328. 8010)</emphasis></para>
  329. </listitem>
  330. <listitem>
  331. <?dbfo keep-together="always"?>
  332. <para>Na página inicial do ECL Watch, clique no ícone <emphasis
  333. role="bold">Files</emphasis> e no link <emphasis
  334. role="bold">Landing Zones</emphasis> localizados no submenu de
  335. navegação.</para>
  336. <para>Na guia landing Zone, clique na seta ao lado do contêiner
  337. mydropzone para ampliar a lista de arquivos enviados. <figure>
  338. <title>mydropzone</title>
  339. <mediaobject>
  340. <imageobject>
  341. <imagedata fileref="images/LZimg000.jpg"
  342. vendor="eclwatchSS"/>
  343. </imageobject>
  344. </mediaobject>
  345. </figure></para>
  346. <para>Encontre o arquivo que você deseja fazer spray na lista
  347. (OriginalPerson) e marque a caixa ao lado do nome do arquivo para
  348. selecioná-lo.</para>
  349. <para>Depois de selecionar o arquivo na lista, os botões de ação
  350. <emphasis role="bold">Spray</emphasis> ficam ativados.</para>
  351. </listitem>
  352. <listitem>
  353. <para>Pressione o botão de ação <emphasis
  354. role="bold">Fixed</emphasis> . Isso indica que você está
  355. realizando o spray de um arquivo de largura fixa. <figure>
  356. <title>Spray: Botão de ação Fixed</title>
  357. <mediaobject>
  358. <imageobject>
  359. <imagedata fileref="images/LZimg001.jpg"
  360. vendor="eclwatchSS"/>
  361. </imageobject>
  362. </mediaobject>
  363. </figure></para>
  364. <para>A caixa de diálogo <emphasis role="bold">Fixed
  365. Spray</emphasis> é mostrada.</para>
  366. </listitem>
  367. <listitem>
  368. <para>O campo Target Name é preenchido automaticamente com o
  369. arquivo selecionado. <figure>
  370. <title>Caixa de diálogo Spray fixo</title>
  371. <mediaobject>
  372. <imageobject>
  373. <imagedata fileref="images/LZimg002.jpg"
  374. vendor="eclwatchSS"/>
  375. </imageobject>
  376. </mediaobject>
  377. </figure></para>
  378. </listitem>
  379. <listitem>
  380. <para>Selecione o cluster mythor na lista suspensa <emphasis
  381. role="bold">Group</emphasis> .</para>
  382. </listitem>
  383. <listitem>
  384. <para>Preencher o <emphasis role="bold">Tamanho do
  385. registro</emphasis> (124).</para>
  386. </listitem>
  387. <listitem>
  388. <para>Preencha o <emphasis role="bold">Target Scope</emphasis>
  389. usando a convenção de nomenclatura descrita anteriormente:
  390. <emphasis role="bold">tutorial::</emphasis><emphasis
  391. role="bold">YN</emphasis> (lembre-se de que <emphasis
  392. role="bold">YN</emphasis> são as suas iniciais).</para>
  393. </listitem>
  394. <listitem>
  395. <?dbfo keep-together="always"?>
  396. <para>Não se esqueça de marcar a caixa <emphasis
  397. role="bold">Replicate</emphasis><emphasis role="bold">
  398. </emphasis>.</para>
  399. <para><emphasis role="bold">Observação:</emphasis> Essa opção só
  400. está disponível em sistemas onde a replicação tiver sido
  401. ativada.</para>
  402. </listitem>
  403. <listitem>
  404. <para>Pressione o botão <emphasis role="bold">Spray<emphasis
  405. role="bold"> </emphasis></emphasis>.</para>
  406. </listitem>
  407. <listitem>
  408. <?dbfo keep-together="always"?>
  409. <para>A página de detalhes da workunit é exibida. É possível ver o
  410. progresso do spray.</para>
  411. <para><figure>
  412. <title>Visualizando Progresso</title>
  413. <mediaobject>
  414. <imageobject>
  415. <imagedata fileref="images/DTimg02.jpg"
  416. vendor="eclwatchSS"/>
  417. </imageobject>
  418. </mediaobject>
  419. </figure></para>
  420. <para>Depois de concluir o spray, podemos prosseguir.</para>
  421. </listitem>
  422. </orderedlist>
  423. </sect2>
  424. </sect1>
  425. <sect1 id="Begin_Coding">
  426. <title>Programando</title>
  427. <para>Nesta parte do tutorial, vamos programar o código ECL para definir
  428. o arquivo de dados e executar consultas ECL simples nele, para que
  429. possamos avaliá-lo e determinar qualquer pré-processamento
  430. necessário.</para>
  431. <orderedlist>
  432. <listitem>
  433. <para>Inicie o IDE ECL (Start &gt;&gt; All Programs &gt;&gt; HPCC
  434. Systems &gt;&gt; IDE ECL)</para>
  435. </listitem>
  436. <listitem>
  437. <para>Faça login em seu ambiente</para>
  438. </listitem>
  439. <listitem>
  440. <?dbfo keep-together="always"?>
  441. <para>Clique com o botão direito na pasta <emphasis role="bold">My
  442. Files</emphasis> na janela Repository e selecione <emphasis
  443. role="bold">Insert Folder</emphasis> no menu pop-up.</para>
  444. <para><figure>
  445. <title>Insert Folder</title>
  446. <mediaobject>
  447. <imageobject>
  448. <imagedata fileref="images/DTimg04.jpg"/>
  449. </imageobject>
  450. </mediaobject>
  451. </figure></para>
  452. <para>Para finalidades deste tutorial, vamos criar uma pasta chamada
  453. <emphasis role="bold">Tutorial</emphasis><emphasis role="bold">
  454. YourName</emphasis><emphasis> </emphasis> (onde
  455. <emphasis>YourName</emphasis> é o seu nome).</para>
  456. </listitem>
  457. <listitem>
  458. <?dbfo keep-together="always"?>
  459. <para>Insira <emphasis role="bold">Tutorial</emphasis><emphasis
  460. role="bold"> YourName</emphasis> (onde <emphasis>
  461. YourName</emphasis> é o seu nome)<emphasis> </emphasis> para o
  462. rótulo e depois pressione o botão OK.</para>
  463. <para><figure>
  464. <title>Inserir o rótulo da pasta</title>
  465. <mediaobject>
  466. <imageobject>
  467. <imagedata fileref="images/DTimg05.jpg"/>
  468. </imageobject>
  469. </mediaobject>
  470. </figure></para>
  471. </listitem>
  472. <listitem>
  473. <para>Clique com o botão direito na pasta <emphasis
  474. role="bold">Tutorial</emphasis><emphasis role="bold">
  475. YourName</emphasis> e selecione <emphasis role="bold"> Insert
  476. File</emphasis> no menu pop-up.</para>
  477. </listitem>
  478. <listitem>
  479. <?dbfo keep-together="always"?>
  480. <para>Insira <emphasis role="bold">Layout_People</emphasis> para o
  481. rótulo e depois pressione o botão OK.</para>
  482. <para><figure>
  483. <title>Inserir arquivo</title>
  484. <mediaobject>
  485. <imageobject>
  486. <imagedata fileref="images/DTimg06.jpg"/>
  487. </imageobject>
  488. </mediaobject>
  489. </figure></para>
  490. <para>Uma janela do compilador será aberta.</para>
  491. <para><figure>
  492. <title>Layout de pessoas no compilador</title>
  493. <mediaobject>
  494. <imageobject>
  495. <imagedata fileref="images/DTimg07.jpg"/>
  496. </imageobject>
  497. </mediaobject>
  498. </figure></para>
  499. <para>Observe que parte do texto já foi escrita para você na janela.
  500. Isso ajuda a lembrar que o nome do arquivo (Layout_People)
  501. <emphasis> sempre precisa corresponder exatamente</emphasis> ao nome
  502. da definição EXPORT única (Layout_People) contida no arquivo. Isso é
  503. obrigatório – uma definição de EXPORT por arquivo e seu nome precisa
  504. corresponder ao nome do arquivo.</para>
  505. </listitem>
  506. <listitem>
  507. <?dbfo keep-together="always"?>
  508. <para>Escreva o código a seguir no espaço de trabalho do
  509. Compilador:</para>
  510. <para><programlisting>EXPORT Layout_People := RECORD
  511. STRING15 FirstName;
  512. STRING25 LastName;
  513. STRING15 MiddleName;
  514. STRING5 Zip;
  515. STRING42 Street;
  516. STRING20 City;
  517. STRING2 State;
  518. END; </programlisting> <figure>
  519. <title>Programar na janela do Compilador</title>
  520. <mediaobject>
  521. <imageobject>
  522. <imagedata fileref="images/DTimg08.jpg"/>
  523. </imageobject>
  524. </mediaobject>
  525. </figure></para>
  526. </listitem>
  527. <listitem>
  528. <para>Pressione o botão de verificação de sintaxe localizado na
  529. barra de ferramentas principal (ou pressione F7).</para>
  530. <para>É sempre recomendado verificar a sintaxe antes do
  531. envio.</para>
  532. <para><figure>
  533. <title>Verificar a sintaxe</title>
  534. <mediaobject>
  535. <imageobject>
  536. <imagedata fileref="images/DTimg23.jpg"/>
  537. </imageobject>
  538. </mediaobject>
  539. </figure></para>
  540. <para>Esse arquivo define a estrutura de registro para o arquivo de
  541. dados. Em seguida, vamos examinar os dados.</para>
  542. </listitem>
  543. </orderedlist>
  544. <sect2 id="Examine_the_Data" role="brk">
  545. <title>Examinando os Dados</title>
  546. <para>Nesta seção, vamos analisar os dados e determinar se é
  547. recomendado realizar algum pré-processamento. Essa é a etapa no
  548. processo de desenvolvimento na qual convertemos dados brutos para um
  549. formato utilizável.</para>
  550. <orderedlist>
  551. <listitem>
  552. <para>Clique com o botão direito na pasta <emphasis
  553. role="bold">Tutorial</emphasis><emphasis role="bold"> YourName
  554. </emphasis> e selecione <emphasis role="bold">Insert
  555. File</emphasis> no menu pop-up.</para>
  556. </listitem>
  557. <listitem>
  558. <para>Insira <emphasis role="bold">File_OriginalPerson</emphasis>
  559. para o rótulo e depois pressione o botão OK.</para>
  560. <para><figure>
  561. <title>Inserir arquivo</title>
  562. <mediaobject>
  563. <imageobject>
  564. <imagedata fileref="images/DTimg09.jpg"/>
  565. </imageobject>
  566. </mediaobject>
  567. </figure>Uma janela do compilador será aberta.</para>
  568. </listitem>
  569. <listitem>
  570. <para>Escreva o código a seguir (lembre-se de substituir
  571. <emphasis>YN</emphasis> pelas suas iniciais):</para>
  572. <para><programlisting>IMPORT TutorialYourName;
  573. EXPORT File_OriginalPerson :=
  574. DATASET('~tutorial::YN::OriginalPerson',TutorialYourName.Layout_People,THOR);
  575. </programlisting></para>
  576. <para><figure>
  577. <title>File_OriginalPerson.ecl</title>
  578. <mediaobject>
  579. <imageobject>
  580. <imagedata fileref="images/DTimg10.jpg"/>
  581. </imageobject>
  582. </mediaobject>
  583. </figure></para>
  584. </listitem>
  585. <listitem>
  586. <para>Pressione o botão de verificação de sintaxe localizado na
  587. barra de ferramentas principal (ou pressione F7) para verificar a
  588. sintaxe.</para>
  589. <para>Isso define o dataset. Em seguida, vamos examinar os
  590. dados.</para>
  591. </listitem>
  592. <listitem>
  593. <para>Abra uma nova janela no Compilador (CTRL+N) e escreva o
  594. código a seguir (lembre-se de substituir <emphasis>YourName
  595. </emphasis> pelo seu nome)</para>
  596. <programlisting>IMPORT TutorialYourName;
  597. COUNT(TutorialYourName.File_OriginalPerson);
  598. </programlisting>
  599. </listitem>
  600. <listitem>
  601. <para>Pressione o botão de verificação de sintaxe localizado na
  602. barra de ferramentas principal (ou pressione F7) para verificar a
  603. sintaxe.</para>
  604. </listitem>
  605. <listitem>
  606. <?dbfo keep-together="always"?>
  607. <para>Verifique se o cluster selecionado é o Thor e pressione o
  608. botão <emphasis role="bold">Submit</emphasis> . Observe que o
  609. cluster de destino pode ter um nome diferente.</para>
  610. <para><figure>
  611. <title>Thor de destino</title>
  612. <mediaobject>
  613. <imageobject>
  614. <imagedata fileref="images/DTimg11.jpg"/>
  615. </imageobject>
  616. </mediaobject>
  617. </figure></para>
  618. </listitem>
  619. <listitem>
  620. <para>Quando a tarefa for concluída, ela aparece com uma marca de
  621. verificação verde <inlinegraphic
  622. fileref="images/DT173-15.jpg"/>.</para>
  623. </listitem>
  624. <listitem>
  625. <para>Selecione a aba Workunit (aquela com o número ao lado da
  626. marca de verificação) e selecione a guia <emphasis
  627. role="bold">Result 1</emphasis> (ela pode já ter sido
  628. selecionada)</para>
  629. <para><figure>
  630. <title>Aba Result</title>
  631. <mediaobject>
  632. <imageobject>
  633. <imagedata fileref="images/DT173-16.png"/>
  634. </imageobject>
  635. </mediaobject>
  636. </figure>Essa guia nos mostra que há 841.400 registros no
  637. arquivo de dados.</para>
  638. </listitem>
  639. <listitem>
  640. <para>Selecione a aba Compilador e altere COUNT para OUTPUT como
  641. mostrado abaixo:</para>
  642. <para><programlisting>IMPORT TutorialYourName;
  643. <emphasis role="bold">OUTPUT</emphasis>(TutorialYourName.File_OriginalPerson);</programlisting></para>
  644. <para><emphasis role="bold">Observação: </emphasis>A parte
  645. modificada é mostrada em <emphasis
  646. role="bold">negrito</emphasis>.</para>
  647. <para/>
  648. </listitem>
  649. <listitem>
  650. <para>Verifique a sintaxe e, se não houver erros, pressione o
  651. botão <emphasis role="bold">Submit</emphasis> .</para>
  652. </listitem>
  653. <listitem>
  654. <?dbfo keep-together="always"?>
  655. <para>Quando o envio estiver concluído, selecione a aba Workunit e
  656. em seguida a aba <emphasis role="bold">Result 1</emphasis>
  657. .</para>
  658. <para><figure>
  659. <title>Exibição dos Resultados</title>
  660. <mediaobject>
  661. <imageobject>
  662. <imagedata fileref="images/DT173-17.png"/>
  663. </imageobject>
  664. </mediaobject>
  665. </figure></para>
  666. <para>Observe que os nomes estão em caixa mista.</para>
  667. <para>Para nossas finalidades, será mais fácil ter todos os nomes
  668. em caixa alta. Isso demonstra uma das etapas no processo básico de
  669. preparação de dados (extrair, transformar e carregar – ETL) usando
  670. ECL.</para>
  671. </listitem>
  672. <listitem>
  673. <para>Feche a janela do Compilador.</para>
  674. </listitem>
  675. </orderedlist>
  676. </sect2>
  677. <sect2 id="Process_the_Data" role="brk">
  678. <title>Processando os Dados</title>
  679. <para>Nesta seção, vamos programar o código para converter os dados
  680. originais para que todos os nomes fiquem em caixa alta. Vamos então
  681. gravar esse novo arquivo em nosso cluster Thor.</para>
  682. <orderedlist>
  683. <listitem>
  684. <para>Clique com o botão direito na pasta <emphasis
  685. role="bold">Tutorial</emphasis><emphasis role="bold"> YourName
  686. </emphasis> e selecione Insert File no menu pop-up.</para>
  687. </listitem>
  688. <listitem>
  689. <para>Nomeie esse arquivo como <emphasis
  690. role="bold">BWR_ProcessRawData</emphasis> e escreva o seguinte
  691. código (alterando YN e YourName como antes):</para>
  692. <para><programlisting>IMPORT TutorialYourName, Std;
  693. TutorialYourName.Layout_People toUpperPlease(TutorialYourName.Layout_People pInput)
  694. := TRANSFORM
  695. SELF.FirstName := Std.Str.ToUpperCase(pInput.FirstName);
  696. SELF.LastName := Std.Str.ToUpperCase(pInput.LastName);
  697. SELF.MiddleName := Std.Str.ToUpperCase(pInput.MiddleName);
  698. SELF.Zip := pInput.Zip;
  699. SELF.Street := pInput.Street;
  700. SELF.City := pInput.City;
  701. SELF.State := pInput.State;
  702. END ;
  703. OrigDataset := TutorialYourName.File_OriginalPerson;
  704. UpperedDataset := PROJECT(OrigDataset,toUpperPlease(LEFT));
  705. OUTPUT(UpperedDataset,,'~tutorial::YN::TutorialPerson',OVERWRITE);
  706. </programlisting></para>
  707. </listitem>
  708. <listitem>
  709. <para>Verifique a sintaxe e, se não houver erros, pressione o
  710. botão <emphasis role="bold">Submit</emphasis> .</para>
  711. </listitem>
  712. <listitem>
  713. <para>Quando o envio estiver concluído, selecione a aba Workunit e
  714. em seguida a aba Results 1.</para>
  715. <para><figure>
  716. <title>Processar resultados</title>
  717. <mediaobject>
  718. <imageobject>
  719. <imagedata fileref="images/DT173-18.jpg"/>
  720. </imageobject>
  721. </mediaobject>
  722. </figure></para>
  723. <para>Os resultados mostram que o processo converteu corretamente
  724. os campos de nome para caixa alta.</para>
  725. </listitem>
  726. <listitem>
  727. <para>Depois de examinar os resultados, feche a janela do
  728. Compilador.</para>
  729. </listitem>
  730. </orderedlist>
  731. </sect2>
  732. <sect2 id="Using_our_Data">
  733. <title>Utilizando nossos Novos Dados</title>
  734. <para/>
  735. <para>Agora que temos nossos dados em um formato útil e o arquivo está
  736. salvo, podemos escrever mais códigos para usar o novo arquivo de
  737. dados. Vamos determinar os índices que precisamos e criá-los. Para
  738. esse tutorial, vamos supor que o campo que precisamos indexar é o do
  739. CEP.</para>
  740. <para/>
  741. <para>Na definição DATASET, vamos adicionar um campo virtual à
  742. estrutura RECORD para a posição de arquivo. Isso é necessário para os
  743. índices.</para>
  744. <para/>
  745. <orderedlist>
  746. <listitem>
  747. <para>Insira um arquivo na pasta <emphasis
  748. role="bold">Tutorial</emphasis><emphasis role="bold">
  749. YourName</emphasis><emphasis role="bold"> </emphasis>. Nomeie-o
  750. como <emphasis role="bold"> File_TutorialPerson </emphasis> e
  751. escreva esse código (alterando <emphasis>YN </emphasis> para as
  752. suas iniciais):</para>
  753. <para/>
  754. <para><programlisting>IMPORT TutorialYourName;
  755. EXPORT File_TutorialPerson :=
  756. DATASET('~tutorial::YN::TutorialPerson',
  757. {TutorialYourName.Layout_People,
  758. UNSIGNED8 fpos {virtual(fileposition)}},THOR);</programlisting></para>
  759. </listitem>
  760. <listitem>
  761. <para>Verifique a sintaxe e, se não houver erros, pressione o
  762. botão <emphasis role="bold">Submit</emphasis> .</para>
  763. </listitem>
  764. <listitem>
  765. <para>Depois de concluir, ela aparece com uma marca de verificação
  766. verde <inlinegraphic fileref="images/DT173-15.jpg"/>.</para>
  767. </listitem>
  768. </orderedlist>
  769. </sect2>
  770. <sect2 id="Index_the_Data">
  771. <title>Indexando os Dados</title>
  772. <para>Em seguida, vamos definir o INDEX.</para>
  773. <orderedlist>
  774. <listitem>
  775. <para>Insira um arquivo na pasta Tutorial. Nomeie-o como <emphasis
  776. role="bold">IDX_PeopleByZip</emphasis><emphasis role="bold">
  777. </emphasis>e escreva esse código (alterando o
  778. <emphasis>YN</emphasis> e <emphasis>YourName</emphasis> como
  779. antes):</para>
  780. <para><programlisting>IMPORT TutorialYourName;
  781. EXPORT IDX_PeopleByZIP :=
  782. INDEX(TutorialYourName.File_TutorialPerson,{zip,fpos},'~tutorial::YN::PeopleByZipINDEX');
  783. </programlisting></para>
  784. </listitem>
  785. <listitem>
  786. <para>Verifique a sintaxe.</para>
  787. <para>Em seguida, vamos compilar o arquivo de índice.</para>
  788. </listitem>
  789. <listitem>
  790. <para>Insira um arquivo na pasta <emphasis
  791. role="bold">Tutorial</emphasis><emphasis role="bold">
  792. YourName</emphasis><emphasis role="bold"> </emphasis>, nomeie-o
  793. como <emphasis role="bold">BWR_BuildPeopleByZip </emphasis> e
  794. escreva esse código (substituindo <emphasis> YourName</emphasis>
  795. pelo seu nome):</para>
  796. <para><programlisting>IMPORT TutorialYourName;
  797. BUILDINDEX(TutorialYourName.IDX_PeopleByZIP,OVERWRITE);
  798. </programlisting></para>
  799. </listitem>
  800. <listitem>
  801. <para>Verifique a sintaxe e, caso não haja erros, pressione o
  802. botão <emphasis role="bold">Submit</emphasis> .</para>
  803. </listitem>
  804. <listitem>
  805. <para>Aguarde a conclusão da tarefa e feche a janela do
  806. Compilador.</para>
  807. </listitem>
  808. </orderedlist>
  809. </sect2>
  810. <sect2 id="Query_the_Data">
  811. <title>Construa a Consulta</title>
  812. <para>Agora que temos um arquivo de índice, vamos escrever uma
  813. consulta que o utilize.</para>
  814. <orderedlist>
  815. <listitem>
  816. <para>Insira um arquivo na pasta Tutorial. Nomeie-o <emphasis
  817. role="bold">BWR_FetchPeopleByZip </emphasis> e escreva esse código
  818. (alterando <emphasis>YourName</emphasis> como antes):</para>
  819. <para><programlisting>IMPORT TutorialYourName;
  820. ZipFilter :='33024';
  821. FetchPeopleByZip :=
  822. FETCH(TutorialYourName.File_TutorialPerson,
  823. TutorialYourName.IDX_PeopleByZIP(zip=ZipFilter),
  824. RIGHT.fpos);
  825. OUTPUT(FetchPeopleByZip);
  826. </programlisting></para>
  827. </listitem>
  828. <listitem>
  829. <para>Verifique a sintaxe e, caso não haja erros, pressione o
  830. botão <emphasis role="bold">Submit</emphasis> .</para>
  831. </listitem>
  832. <listitem>
  833. <para>Quando o envio estiver concluído, selecione a aba
  834. Workunit<emphasis role="bold"> </emphasis> e em seguida a aba
  835. <emphasis role="bold">Results</emphasis> .</para>
  836. </listitem>
  837. <listitem>
  838. <para>Examine o resultado, feche a janela do Compilador e reenvie
  839. o código.</para>
  840. <para><emphasis role="bold">Observação</emphasis>: É possível
  841. alterar o valor do campo <emphasis role="bold">ZipValue</emphasis>
  842. para obter resultados de diferentes CEPs.</para>
  843. </listitem>
  844. </orderedlist>
  845. </sect2>
  846. </sect1>
  847. <sect1 id="Publishing_your_Query">
  848. <title>Publicando sua Consulta Thor</title>
  849. <para>Agora que criamos uma consulta indexada, a próxima etapa é
  850. possibilitar o acesso a ela através de uma interface da Web.</para>
  851. <para>Nossas variáveis STORED oferecem um meio para passar valores como
  852. parâmetros de consulta. Neste exemplo, o usuário pode fornecer o ZIP
  853. (CEP) para que os resultados sejam pessoas na região do ZIP
  854. (CEP).</para>
  855. <orderedlist>
  856. <listitem>
  857. <para>Insira um arquivo na pasta <emphasis
  858. role="bold">TutorialYourName </emphasis> e nomeie-o como <emphasis
  859. role="bold"> FetchPeopleByZipService</emphasis></para>
  860. </listitem>
  861. <listitem>
  862. <para>Escreva esse código (alterando <emphasis>YourName</emphasis>
  863. como antes):</para>
  864. <para><programlisting>IMPORT TutorialYourName;
  865. STRING10 ZipFilter := '' :STORED('ZIPValue');
  866. resultSet :=
  867. FETCH(TutorialYourName.File_TutorialPerson,
  868. TutorialYourName.IDX_PeopleByZIP(zip=ZipFilter),
  869. RIGHT.fpos);
  870. OUTPUT(resultset);
  871. </programlisting></para>
  872. </listitem>
  873. <listitem>
  874. <para>Verifique a sintaxe e salve o arquivo.</para>
  875. </listitem>
  876. <listitem>
  877. <para>Pressione o botão <emphasis
  878. role="bold">Submit</emphasis><emphasis role="bold">
  879. </emphasis>.</para>
  880. </listitem>
  881. <listitem>
  882. <para>Quando a tarefa estiver concluída, selecione a aba
  883. Workunit<emphasis role="bold"> </emphasis> e em seguida a aba ECL
  884. Watch.</para>
  885. </listitem>
  886. <listitem>
  887. <para>Pressione o botão <emphasis role="bold">Publish</emphasis> na
  888. guia ECL Watch.</para>
  889. <para><figure>
  890. <title>Publicar Workunit</title>
  891. <mediaobject>
  892. <imageobject>
  893. <imagedata fileref="images/DTimg12.jpg"/>
  894. </imageobject>
  895. </mediaobject>
  896. </figure></para>
  897. <para>A caixa de diálogo Publish é exibida, com o campo Job Name
  898. automaticamente preenchido Você pode adicionar um comentário no
  899. campo Comment se quiser, e depois pressione Submit. <figure>
  900. <title>Caixa de diálogo Publish</title>
  901. <mediaobject>
  902. <imageobject>
  903. <imagedata fileref="images/DTimg12b.jpg"/>
  904. </imageobject>
  905. </mediaobject>
  906. </figure></para>
  907. </listitem>
  908. <listitem>
  909. <para>Se não houver mensagens de erro, a workunit é publicada.
  910. Mantenha a janela do Compilador aberta – ela será necessária
  911. posteriormente.</para>
  912. </listitem>
  913. </orderedlist>
  914. <sect2 id="Execute-using-the-Data-Delivery-Engine">
  915. <title>Executar utilizando WsECL</title>
  916. <para>Agora que a consulta foi publicada, podemos executá-la usando o
  917. serviço da Web WsECL. O WsECL oferece uma interface baseada na Web
  918. para sua consulta publicada. Ele também cria automaticamente um
  919. formulário de entrada para executar a consulta.</para>
  920. <para>Use a seguinte URL:</para>
  921. <para><emphasis role="bold">http://nnn.nnn.nnn.nnn:pppp (onde
  922. nnn.nnn.nnn.nnn é o endereço IP do seu ESP Server e pppp é a porta.
  923. Porta padrão é 8002)</emphasis></para>
  924. <para><figure>
  925. <title>WsECL</title>
  926. <mediaobject>
  927. <imageobject>
  928. <imagedata fileref="images/DTimg13.jpg"/>
  929. </imageobject>
  930. </mediaobject>
  931. </figure></para>
  932. <para/>
  933. <orderedlist>
  934. <listitem>
  935. <para>Clique no sinal + ao lado de <emphasis
  936. role="bold">thor</emphasis> para expandir a árvore.</para>
  937. </listitem>
  938. <listitem>
  939. <?dbfo keep-together="always"?>
  940. <para>Clique no hiperlink <emphasis
  941. role="bold">fetchpeoplebyzipservice</emphasis> .</para>
  942. <para>O formulário de serviço será exibido.</para>
  943. <para><figure>
  944. <title>Formulário de serviço</title>
  945. <mediaobject>
  946. <imageobject>
  947. <imagedata fileref="images/DTimg14a.jpg"/>
  948. </imageobject>
  949. </mediaobject>
  950. </figure></para>
  951. </listitem>
  952. <listitem>
  953. <para>Informe um CEP (por exemplo, 33024) no campo <emphasis
  954. role="bold">zipvalue</emphasis> . Selecione <emphasis
  955. role="bold">Output Tables</emphasis> na lista suspensa e pressione
  956. o botão <emphasis role="bold">Submit</emphasis> .</para>
  957. <para>Os resultados serão exibidos.</para>
  958. <para><figure>
  959. <title>Resultados</title>
  960. <mediaobject>
  961. <imageobject>
  962. <imagedata fileref="images/DTimg15a.jpg"/>
  963. </imageobject>
  964. </mediaobject>
  965. </figure></para>
  966. </listitem>
  967. </orderedlist>
  968. </sect2>
  969. </sect1>
  970. <sect1 id="Deploy_the_Roxie_Query">
  971. <title>Compilar e Publicar uma Consulta Roxie</title>
  972. <para>A última etapa no processo é publicar a consulta indexada para um
  973. cluster de motor de entrega rápida de dados (Roxie).</para>
  974. <para>Vamos recompilar o código com o Roxie como cluster de destino e
  975. depois publicá-lo em um cluster Roxie. <orderedlist>
  976. <listitem>
  977. <para>No ECL IDE, selecione a guia Compilador na janela do
  978. compilador de arquivos FetchPeopleByZipService.</para>
  979. </listitem>
  980. <listitem>
  981. <para>Usando a lista suspensa <emphasis
  982. role="bold">Target</emphasis> , selecione Roxie como o cluster de
  983. destino.</para>
  984. <para><figure>
  985. <title>Roxie de destino</title>
  986. <mediaobject>
  987. <imageobject>
  988. <imagedata fileref="images/DTimg16.jpg"/>
  989. </imageobject>
  990. </mediaobject>
  991. </figure></para>
  992. </listitem>
  993. <listitem>
  994. <para>Na janela do compilador, no canto superior esquerdo, há uma
  995. seta suspensa ao lado do botão <emphasis
  996. role="bold">Submit</emphasis> . Selecione a seta para exibir a
  997. opção <emphasis role="bold">Compile </emphasis> (compilar.)</para>
  998. <figure>
  999. <title>Compilar</title>
  1000. <mediaobject>
  1001. <imageobject>
  1002. <imagedata fileref="images/DTimg17.jpg"/>
  1003. </imageobject>
  1004. </mediaobject>
  1005. </figure>
  1006. </listitem>
  1007. <listitem>
  1008. <para>Selecione <emphasis role="bold">Compile
  1009. (Compilar)</emphasis></para>
  1010. </listitem>
  1011. <listitem>
  1012. <?dbfo keep-together="always"?>
  1013. <para>Quando a workunit for concluída, ela exibirá um círculo
  1014. verde indicando que foi compilada.</para>
  1015. <para><figure>
  1016. <title>Compilada</title>
  1017. <mediaobject>
  1018. <imageobject>
  1019. <imagedata fileref="images/DTimg18.jpg"/>
  1020. </imageobject>
  1021. </mediaobject>
  1022. </figure></para>
  1023. </listitem>
  1024. </orderedlist></para>
  1025. <sect2 id="Deploy_the_Query_to_Roxie">
  1026. <title>Publicar uma consulta Roxie</title>
  1027. <para>Agora vamos publicar a consulta em um cluster Roxie.</para>
  1028. <orderedlist>
  1029. <listitem>
  1030. <para>Selecione a aba Workunit para a workunit
  1031. FetchPeopleByZipService que você acabou de compilar.</para>
  1032. <para>Isso abre a tarefa em uma aba no ECL Watch.</para>
  1033. </listitem>
  1034. <listitem>
  1035. <?dbfo keep-together="always"?>
  1036. <para>Pressione o botão de ação <emphasis
  1037. role="bold">Publish</emphasis> , e depois verifique as informações
  1038. na caixa de diálogo e pressione <emphasis
  1039. role="bold">Submit</emphasis>.</para>
  1040. <para><figure>
  1041. <title>Publicar consulta</title>
  1042. <mediaobject>
  1043. <imageobject>
  1044. <imagedata fileref="images/DTimg19.jpg"/>
  1045. </imageobject>
  1046. </mediaobject>
  1047. </figure>Isso publica a consulta.</para>
  1048. </listitem>
  1049. </orderedlist>
  1050. </sect2>
  1051. <sect2 id="Run_the_Roxie_Query" role="brk">
  1052. <title>Execute uma consulta Roxie Query no WsECL</title>
  1053. <para>Agora que a consulta foi implementada a um cluster Roxie,
  1054. podemos executá-la usando o serviço WS-ECL no URL a seguir:</para>
  1055. <para><emphasis role="bold">http://nnn.nnn.nnn.nnn:pppp (onde
  1056. nnn.nnn.nnn.nnn é o endereço IP do seu ESP Server e pppp é a porta. A
  1057. porta padrão é 8002)</emphasis></para>
  1058. <orderedlist>
  1059. <listitem>
  1060. <para>Clique no sinal + ao lado de <emphasis
  1061. role="bold">myroxie</emphasis> para expandir a árvore.</para>
  1062. </listitem>
  1063. <listitem>
  1064. <?dbfo keep-together="always"?>
  1065. <para>Clique no hiperlink <emphasis
  1066. role="bold">fetchpeoplebyzipservice</emphasis> .</para>
  1067. <para>O formulário de serviço será exibido.</para>
  1068. <para><figure>
  1069. <title>RoxieECL</title>
  1070. <mediaobject>
  1071. <imageobject>
  1072. <imagedata fileref="images/DTimg21.jpg"/>
  1073. </imageobject>
  1074. </mediaobject>
  1075. </figure></para>
  1076. </listitem>
  1077. <listitem>
  1078. <?dbfo keep-together="always"?>
  1079. <para>Informe um CEP (por exemplo, 33024), selecione <emphasis
  1080. role="bold">Output Tables</emphasis> na lista suspensa e pressione
  1081. o botão Submit.</para>
  1082. <para>Os resultados serão exibidos.</para>
  1083. <para><figure>
  1084. <title>RoxieResults</title>
  1085. <mediaobject>
  1086. <imageobject>
  1087. <imagedata fileref="images/DTimg22.jpg"/>
  1088. </imageobject>
  1089. </mediaobject>
  1090. </figure></para>
  1091. </listitem>
  1092. </orderedlist>
  1093. </sect2>
  1094. </sect1>
  1095. </chapter>
  1096. <chapter id="Summary">
  1097. <title>Resumo</title>
  1098. <para>Agora que os dados brutos foram processados corretamente, o spray
  1099. para um cluster foi feito e os dados foram implementados em um cluster
  1100. RDDE, qual é a próxima etapa?</para>
  1101. <!-- -->
  1102. <para>Aqui está uma pequena lista de sugestões do que você pode fazer a
  1103. seguir:</para>
  1104. <itemizedlist mark="bullet">
  1105. <listitem>
  1106. <para>Criar índices em outros campos e criar consultas usando esses
  1107. índices.</para>
  1108. </listitem>
  1109. </itemizedlist>
  1110. <itemizedlist mark="bullet">
  1111. <listitem>
  1112. <para>Programar aplicações client para acessar suas consultas usando
  1113. interfaces</para>
  1114. </listitem>
  1115. </itemizedlist>
  1116. <itemizedlist mark="bullet">
  1117. <listitem>
  1118. <para>Conferir os recursos disponíveis na aba Links</para>
  1119. <para><figure>
  1120. <title>Links</title>
  1121. <mediaobject>
  1122. <imageobject>
  1123. <imagedata fileref="images/DTimg24.jpg"/>
  1124. </imageobject>
  1125. </mediaobject>
  1126. </figure>A aba Links oferece fácil acesso a um formulário, uma
  1127. amostra da busca, uma amostra de resposta, o WSDL, o esquema XML (XSD)
  1128. e muito mais.</para>
  1129. </listitem>
  1130. </itemizedlist>
  1131. <itemizedlist mark="bullet">
  1132. <listitem>
  1133. <para>Siga os procedimentos neste tutorial usando seus próprios
  1134. dados!</para>
  1135. </listitem>
  1136. </itemizedlist>
  1137. </chapter>
  1138. </book>