#couchbasescript. py #!/usr/bin/python #-*-CODING:GBK-*-#程序功能 Verify that the key in Couchbase corresponds to the value of the MySQL table from couchbase.bucket import Bucket Import configparser Import mysqldb import time import os #couchbase配置 cp= configparser.configparser () cp.read ("My. Conf ') couchbaseip=cp.get (' Couchbase ', ' IP ') couchbaseport=cp.get (' couchbase ', ' Port ') bucketname=cp.get (' Couchbase ', ' Buckname ') bucketpasswd=cp.get (' Couchbase ', ' buckpasswd ') #print Couchbaseip, BUCKNAME,BUCKPASSWD, Couchbaseport #mysql配置 mysqlip=cp.get (' MySQL ', ' IP ') mysqlport=cp.get (' MySQL ', ' Port ') mysqlusername=cp.get (' MySQL '), ' username ') mysqldbname_tatrade=cp.get (' MySQL ', ' Dbname_tatrade ') mysqlpasswd=cp.get (' MySQL ', ' passwd ') mysqlip1= Cp.get (' MySQL ', ' ip1 ') mysqlport1=cp.get (' MySQL ', ' port1 ') mysqlusername1=cp.get (' MySQL ', ' username1 ') mysqldbname_ Tatrade1=cp.get (' MySQL ', ' dbname_tatrade1 ') mysqlpasswd1=cp.get (' MySQL ', ' passwd1 ') #print mysqlip, Mysqlport, Mysqlusername, Mysqldbname_tatrade, mysqlpasswd # open Couchbase couchbaseconnect= 'couchbase://' +couchbaseip+ ': ' + couchbaseport + '/' + buckname #print couchbaseconnect #c = Bucket ("couchbase:// 10.2.130.78:8091/assign ", password= ' assign ') Try:c = Bucket (Couchbaseconnect, password=buckpasswd) except:print
"Couchbase Connection failed with the following connection information:" Print couchbaseconnect print buchket password is:%s% buckpasswd exit () # Open database connection try: DB1 = MySQLdb.connect (mysqlip,mysqlusername,mysqlpasswd,mysqldbname_tatrade) DB2 = MySQLdb.connect (mysqlip1,mysqlus ERNAME1,MYSQLPASSWD1,MYSQLDBNAME_TATRADE1) Except:print "database connection failed!" The connection information is as follows: "Print" ip=%s, port=%s, username=%s, DBN ame=%s, password=%s "% (Mysqlip, Mysqlport, Mysqlusername, Mysqldbname_tatrade, mysqlpasswd) exit () # using the cursor () method to obtain Fetch action Cursor Cursor1 = db1.cursor () Cursor2 = db2.cursor () print query begins! "sql=" select D_sysdate from Ta_ttainfo t where t.c_t Acode= ' and t.c_tenantid= ' * ' Cursor1.execute (SQL) Dcdate=cursor1.fetchone () #目录是否存在 s=os.path.exists ("result") if (s = = False): Os.mkdir ("result")
# Open File filename= "result/result_%d.txt"% dcdate f=open (filename, ' W ') f.write ("\ n") F.write (" Account class Check data audit form \ n ") f.write ("--------------------------------------------------- -----------------------------------------------") f.write (" \ n ") f.write (" Database connection information follows: \ n ") f.write (" Database ip=%s, Port =%s, Username =%s, database =%s, database password =%s \ n "% (Mysqlip, Mysqlport, Mysqlusername, Mysqldbname_tatrade, mysqlpasswd)) f.write (" Database ip=%s, Port =%s, username =%s, database =%s, database password =%s \ n "% (Mysqlip1, Mysqlport1, mysqlusername1, Mysqldbname_tatrade1, mysqlpasswd1)) F.writ E ("Couchbase connection information:%s\n"% couchbaseconnect) f.write ("------------------------------------------------------------ --------------------------------------") f.write (" \ n ") f.write (Check point: Check the Fund account in the confirmation form for couchbase) ############# ############################################## #账户申请couchbase查询 ################################################# #33 # SQL query Statement sql = ' SELECT C_fundacco from Ta_taccoconFirm where d_cdate= (select D_sysdate from Ta_ttainfo t where t.c_tacode= ' a ' and t.c_tenantid= ' * ')
and c_businflag= ' c_tacode= ' and c_tenantid= ' and c_status= ' 1 ' f.write ("\ n") f.write ("SQL statement for query:%s \ n"% sql) F.write ("--------------------------- -----------------------------------------------------------------------") f.write (" \ n ") f.write (" \ n ") f.write Start time: "+ time.strftime ("%y-%m-%d%h:%m:%s ") +" \ n ") f.write (" Check Results for library%s: \ n "% Mysqldbname_tatrade) f.write (" \ n ") Try: #
Execute SQL statement cursor1.execute (SQL) # get all records list results = Cursor1.fetchall () #print results for row in results:
C_fundacco = row[0] # Print results #print "Data fundacco=%s in Account Application Form" (C_fundacco) #获取couchbase中的基金账号 try: res = C.get ("*_" +c_fundacco) #print res.value[' Custkey '] res=c.get (res.value[' Custkey ']) COUCHBASE_FUNDACco=res.value[' Fundacco ' if (Couchbase_fundacco <> C_fundacco): #print "Different fund accounts (Confirmation form account Number = %s, couchbase=%s) "% (Couchbase_fundacco, C_fundacco) f.write (" Different fund accounts (confirmation form account =%s, couchbase=%s) \ n "% (co Uchbase_fundacco, C_fundacco) except: #print "account number%s not found in Couchbase"% (C_fundacco) F.writ E ("Account ID not found in couchbase:%s \ n"% (C_fundacco)) except Exception,e:print Exception, ":", e f.write ("\ n") f.write ("Sub-Library Check result for%s: \ n "% mysqldbname_tatrade1" try: # Execute SQL statement cursor2.execute (SQL) # get all records list results = Cursor2.fetchall () #print results for row in Results:c_fundacco = row[0] # Print results #print "Data from the account application fundacco=%s"% (c_ Fundacco) #获取couchbase中的基金账号 try:res = C.get ("*_" +c_fundacco) #print res.value[' Cust Key '] res=c.get (res.value[' Custkey ']) couchbase_fundacco=res.value[' Fundacco ' if (cou Chbase_fundacco <> C_fundacco): #print "different fund account (confirmation form account =%s, couchbase=%s)"% (Couchbase_fundacco, C_fundacco) F.write ("Different fund accounts (confirmation form account =%s, couchbase=%s) \ n"% (Couchbase_fundacco, C_fundacco)) except: #print "in
Account number not found in couchbase%s "% (C_fundacco) f.write (" Account ID not found in couchbase:%s \ n "% (C_fundacco)) except Exception,e: Print Exception, ":", e Db1.close () db2.close () f.close f.write ("\ n") f.write ("End time:" + time.strftime ("%y-%m-%d%H:
%m:%s ") +" \ n ") print" Query complete! "
Os.system ("Pause")
#my. CFG
#目录配置文件中可以支持两个分库的设置
[couchbase]
ip=10.2.130.78
port=8091
bucketname=assign
Bucketpasswd=assign
[MySQL]
ip=10.2.130.78
port=3306
username=root
dbname_tatrade=hs_ Tatrade
passwd=hstest@1
ip1=10.2.130.78
port1=3306
username1=root
dbname_tatrade1=hs_ Tatrade1
passwd1=hstest@1
The following software checklist needs to be installed:
1.pyhton-2.7.12
2.mysql-python-1.2.5.win32-py2.7
3.couchbase-2.1.2.win32-py2.7
Add the Python/bin installation directory to the environment variable.
Note:
All software download addresses