示例#1
0
    def __init__(self,dateTime,conf,log,dataset=None,cfg='NZ',delim=None):
        """
        :param dateTime: DateTiem object
        :type dateTime: py datatime
        """
        self.dateTime = dateTime
        ## internal counter
        self.choked  = 0
        self.failure = 0

        self.__nzconf__    =cfg
        self.__SQL__       =''
        self.__delim__     = '\\'
        self.__batchsize__ =int(200)
        self.log = log
        self.conf= conf

        try:
            for key in conf.m_dictionary[dataset].keys():
                if key == 'NZConnect':
                   self.__nzconf__ = conf.m_dictionary[dataset][key]
                elif key == 'SQL':
                   self.__SQL__ = conf.m_dictionary[dataset][key]
                elif key == 'SQLFile':
                   self.__SQL__ = fileToStr(conf.m_dictionary[dataset][key])
                elif key == 'batchsize':
                   self.__batchsize__ = int(conf.m_dictionary[dataset][key])
                elif key == 'delimiter':
                   self.__delim__ = conf.m_dictionary[dataset][key]
                   self.__delim__ = re.sub('"','',self.__delim__)

        except:
            log.error("{} not defined in config file".format(dataset))
            sys.exit(1)

        if self.__nzconf__ == '' or self.__SQL__ == '':
            log.error("{} keys not defined in config file".format(dataset))
            sys.exit(1)

        if delim is not None:
            self.__delim__ = delim

        self.__myNZ__ = Netezza(datetime,self.__nzconf__)
        self.__myNZ__.configread(log,conf)
        self.__myNZ__.connect(log)
示例#2
0
class NZExtract():
    def __init__(self,dateTime,conf,log,dataset=None,cfg='NZ',delim=None):
        """
        :param dateTime: DateTiem object
        :type dateTime: py datatime
        """
        self.dateTime = dateTime
        ## internal counter
        self.choked  = 0
        self.failure = 0

        self.__nzconf__    =cfg
        self.__SQL__       =''
        self.__delim__     = '\\'
        self.__batchsize__ =int(200)
        self.log = log
        self.conf= conf

        try:
            for key in conf.m_dictionary[dataset].keys():
                if key == 'NZConnect':
                   self.__nzconf__ = conf.m_dictionary[dataset][key]
                elif key == 'SQL':
                   self.__SQL__ = conf.m_dictionary[dataset][key]
                elif key == 'SQLFile':
                   self.__SQL__ = fileToStr(conf.m_dictionary[dataset][key])
                elif key == 'batchsize':
                   self.__batchsize__ = int(conf.m_dictionary[dataset][key])
                elif key == 'delimiter':
                   self.__delim__ = conf.m_dictionary[dataset][key]
                   self.__delim__ = re.sub('"','',self.__delim__)

        except:
            log.error("{} not defined in config file".format(dataset))
            sys.exit(1)

        if self.__nzconf__ == '' or self.__SQL__ == '':
            log.error("{} keys not defined in config file".format(dataset))
            sys.exit(1)

        if delim is not None:
            self.__delim__ = delim

        self.__myNZ__ = Netezza(datetime,self.__nzconf__)
        self.__myNZ__.configread(log,conf)
        self.__myNZ__.connect(log)

    def execute(self,conf,dataset,log,param=None):
        self.__myNZ__.executeWoResult(log,self.__SQL__,param)

    def extractdata(self):
        self.__myNZ__.writeResult(delim=self.__delim__,arraysize=self.__batchsize__)

    def extractbz2(self,filename=None):
        if filename is not None:
            self.__myNZ__.writeResult(delim=self.__delim__,arraysize=self.__batchsize__,type='bz2',file=filename)
        else:
            self.log.error("Invalid File Handle")
            sys.exit(1)

    def extractgz(self,filename=None):
        if filename is not None:
            self.__myNZ__.writeResult(delim=self.__delim__,arraysize=self.__batchsize__,type='gz',file=filename)
        else:
            self.log.error("Invalid File Handle")
            sys.exit(1)

    def extracttxt(self,filename=None):
        if filename is not None:
            self.__myNZ__.writeResult(delim=self.__delim__,arraysize=self.__batchsize__,type='txt',file=filename)
        else:
            self.log.error("Invalid File Handle")
            sys.exit(1)

    def cleanup(self,log):
        """ Purpose: Cleans up logger

        :param self:  class object itself

        """
        self.__myNZ__.cleanup(log)