Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL-Ziele im Luigi-Workflow

Das vorhandene MySqlTarget in luigi verwendet eine separate Markierungstabelle, um anzuzeigen, wann die Aufgabe abgeschlossen ist. Hier ist der grobe Ansatz, den ich wählen würde ... aber Ihre Frage ist sehr abstrakt, daher ist sie in Wirklichkeit wahrscheinlich komplizierter.

import luigi
from datetime import datetime
from luigi.contrib.mysqldb import MySqlTarget


class TaskA(luigi.Task):
    rundate = luigi.DateParameter(default=datetime.now().date())
    target_table = "table_to_update"
    host = "localhost:3306"
    db = "db_to_use"
    user = "user_to_use"
    pw = "pw_to_use"

    def get_target(self):
        return MySqlTarget(host=self.host, database=self.db, user=self.user, password=self.pw, table=self.target_table,
                           update_id=str(self.rundate))

    def requires(self):
        return []

    def output(self):
        return self.get_target()

    def run(self):
        #update table
        self.get_target().touch()


class TaskB(luigi.Task):
    def requires(self):
        return [TaskA()]

    def run(self):
        # reading from target_table