PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Nifi . में एवरो स्कीमा से एक Postgresql तालिका बनाएं

मैं सुझाव दे सकता हूं ExecuteGroovyScript nifi v1.5+ में प्रोसेसर

नई संपत्ति परिभाषित करें SQL.mydb - आपको इसके मान को डेटाबेस से लिंक करने के लिए प्रेरित किया जाएगा (DBCPConnectionPool )

वह डेटाबेस चुनें जहां आप टेबल बनाना चाहते हैं

और इस स्क्रिप्ट का उपयोग करें (मान लें कि एवरो स्कीमा प्रवाह फ़ाइल सामग्री में है)

import groovy.json.JsonSlurper

def ff = session.get()
if(!ff)return

//parse avro schema from flow file content
def schema = ff.read().withReader("UTF-8"){ new JsonSlurper().parse(it) }

//define type mapping
def typeMap = [
    "string"            : "varchar(255)",
    "long"              : "numeric(10)",
    [ "null", "string" ]: "varchar(255)",
    [ "null", "long" ]  : "numeric(10)",
]

assert schema.name && schema.name=~/^\w.*/

//build create table statement
def createTable = "create table ${schema.name} (" +
    schema.fields.collect{ "\n  ${it.name.padRight(39)} ${typeMap[it.type]}" }.join(',') +
    "\n)"

//execute statement through the custom defined property
//SQL.mydb references http://docs.groovy-lang.org/2.4.10/html/api/groovy/sql/Sql.html object
SQL.mydb.execute(createTable as String) //important to cast to String

//transfer flow file to success
REL_SUCCESS << ff



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में लेफ्ट जॉइन क्या है?

  2. टाइमस्टैम्प की तारीख को अनदेखा करते हुए समय सीमा पर क्वेरी

  3. अजगर का उपयोग करके उसकेोकू में पोस्टग्रेस्क्ल से कनेक्ट करते समय डीजे-डेटाबेस-यूआरएल का उपयोग कैसे करें

  4. RANGE PRECEDING केवल UNBOUNDED के साथ समर्थित है

  5. पूर्ण बाहरी जॉइन का उपयोग किए बिना कॉलम में सशर्त रूप से समूह कैसे करें