当前位置: 首页 > 知识库问答 >
问题:

Nifi从ExecuteSQL输出中提取内容

冯阳成
2023-03-14

我正在尝试从Oracle获取DDL,然后将DDL转换为适合于Vertica数据库的语法。我的ExecuteSQL处理器SQL查询是:

select dbms_metadata.get_ddl('TABLE','${table_name}','${owner}') as t_ddl from dual

我得到以下AVRO格式的输出:

Objavro.schemaú{"type":"record","name":"NiFi_ExecuteSQL_Record","namespace":"any.data","fields":[{"name":"T_DDL","type":["null","string"]}]}avro.codecnull­¶½``¼�÷KGÙ‡LÞoCäÞ
  CREATE TABLE "VDBA"."CUSTOMERS" 
   (    "CUSTOMER_ID" NUMBER(10,0) NOT NULL ENABLE, 
    "CUSTOMER_NAME" VARCHAR2(50) NOT NULL ENABLE, 
    "CITY" VARCHAR2(50), 
    "ITEMS_CNT" NUMBER(5,0), 
    "TSTAMP" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP NOT NULL ENABLE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS" ­¶½``¼�÷KGÙ‡LÞoC
CREATE TABLE VDBA.CUSTOMERS 
   (CUSTOMER_ID NUMBER(10,0) NOT NULL, 
    CUSTOMER_NAME VARCHAR2(50) NOT NULL, 
    CITY VARCHAR2(50), 
    ITEMS_CNT NUMBER(5,0), 
    TSTAMP TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP NOT NULL
   )

我不明白下一步该如何进行。ReplaceText处理器在这里能工作吗?请给我一些指示,让我继续前进。

谢谢和问候,比沙尔

共有1个答案

郑锦
2023-03-14

尝试使用convertavrotoJSON处理器,然后操作或提取JSON。

 类似资料:
  • 我正在尝试使用ExecuteSQL处理器从oracle数据库中提取数据。我有一些查询,例如假设在我的oracle数据库中有15条记录。在这里,当我运行ExecuteSQL处理器时,它将作为一个流进程连续运行,并将整个记录作为一个文件存储在HDFS中,并且重复这样做。因此,在HDFS位置中会有许多文件,这些文件将从oracle db中提取已经提取的记录,并且这些文件包含相同的数据。我如何使该处理器以

  • 我将json数据流(从ConvertAvroToJSON处理器驱动)转义为: 我只需要“JSON”值,如下所示[unescapeJson之后]: $...*

  • 数据:“{\”数据\“:[\”124“,\”611“]}”,Lasteventid:“”} 是否可以只抓取,因为否则客户端在反序列化方面会出现问题。

  • 问题内容: 要获取有关媒体文件的大量信息,可以做 它会输出很多行,特别是一行 我只想输出,所以我尝试 但是它可以打印所有内容,而不仅仅是长度。 甚至输出所有内容。 如何获得持续时间长度? 问题答案: ffmpeg正在将该信息写入,而不是。尝试这个: 注意重定向到: 编辑: 您的陈述也不起作用。尝试这个:

  • 我有一个使用ExecuteStreamCommand处理器运行一些shell脚本的NiFi流,而ExecuteStreamCommand的输出是不正确的。 下面是一个如果流的演示: https://youtu.be/4e00rzerjsq

  • string fetch(string template [, string cache_id [, string compile_id]]) This returns the template output instead of displaying it. Supply a valid template resource type and path. As an optional second