def write_to_hdfs(rows: List[Tuple[str, str]]):
        conn: Connection = Connection.get_connection_from_secrets('local_hdfs')
        uri = conn.get_uri()
        pat = re.compile("http://(\w+(:\w+)?)?@")
        print(conn.get_uri())

        uri = pat.sub("http://", uri)
        print(uri)
        print(conn.login)
        client = InsecureClient(uri, user=conn.login)
        sch = avro.schema.make_avsc_object({
            'type':'record',
            'name':'Video',
            'fields': [
                {'type': {'type': 'string', 'avro.java.string': 'String'}, 'name': 'title'},
                {'type': ["null", {'type': 'string', 'avro.java.string': 'String'}], 'name': 'description'},
            ]
        })
        local_file_name = 'videos.avro'
        writer = DataFileWriter(open(local_file_name, "wb"), DatumWriter(), sch)
        for row in rows:
            print(row)
            writer.append({"title":row[0], "description":row[1]})
        writer.close()
        client.upload('/tmp/videos.avro', local_file_name)
Exemple #2
0
    def get(self, key: str, default_conn: Any = None) -> Any:
        from airflow.exceptions import AirflowNotFoundException
        from airflow.models.connection import Connection

        try:
            return Connection.get_connection_from_secrets(key)
        except AirflowNotFoundException:
            return default_conn
 def load_from_cassandra() -> List[Tuple[str, str]]:
     conn: Connection = Connection.get_connection_from_secrets('local_cassandra')
     auth_provider = PlainTextAuthProvider(username=conn.login, password=conn.password)
     cluster: Cluster = Cluster([conn.host], conn.port, auth_provider=auth_provider)
     session: Session = cluster.connect(conn.schema)
     rows: ResultSet = session.execute("SELECT title, description FROM videos")
     result = list(map(lambda row: (row[0], row[1]), rows))
     print(result)
     return result
Exemple #4
0
    def get_connection(cls, conn_id: str) -> "Connection":
        """
        Get connection, given connection id.

        :param conn_id: connection id
        :return: connection
        """
        from airflow.models.connection import Connection

        conn = Connection.get_connection_from_secrets(conn_id)
        log.info("Using connection ID '%s' for task execution.", conn.conn_id)
        return conn
Exemple #5
0
    def get_connection(cls, conn_id: str) -> Connection:
        """
        Get connection, given connection id.

        :param conn_id: connection id
        :return: connection
        """
        conn = Connection.get_connection_from_secrets(conn_id)
        if conn.host:
            log.info(
                "Using connection to: id: %s. Host: %s, Port: %s, Schema: %s, Login: %s, Password: %s, "
                "extra: %s",
                conn.conn_id,
                conn.host,
                conn.port,
                conn.schema,
                conn.login,
                "XXXXXXXX" if conn.password else None,
                "XXXXXXXX" if conn.extra_dejson else None,
            )
        return conn
Exemple #6
0
    def get_connection(cls, conn_id: str) -> "Connection":
        """
        Get connection, given connection id.

        :param conn_id: connection id
        :return: connection
        """
        from airflow.models.connection import Connection

        conn = Connection.get_connection_from_secrets(conn_id)
        if conn.host:
            log.info(
                "Using connection to: id: %s. Host: %s, Port: %s, Schema: %s, Login: %s, Password: %s, "
                "extra: %s",
                conn.conn_id,
                conn.host,
                conn.port,
                conn.schema,
                conn.login,
                conn.password,
                conn.extra_dejson,
            )
        return conn
Exemple #7
0
    def get_connection(cls, conn_id: str) -> "Connection":
        """
        Get connection, given connection id.

        :param conn_id: connection id
        :return: connection
        """
        from airflow.models.connection import Connection

        conn = Connection.get_connection_from_secrets(conn_id)
        log.info("Using connection ID '%s' for task execution.", conn.conn_id)
        log.debug(
            "Connection details for '%s':: Host: %s, Port: %s, Schema: %s, Login: %s, Password: %s, "
            "Extra: %s",
            conn.conn_id,
            conn.host,
            conn.port,
            conn.schema,
            conn.login,
            redact(conn.password),
            redact(conn.extra_dejson),
        )
        return conn
Exemple #8
0
    def __getattr__(self, key: str) -> Any:
        from airflow.models.connection import Connection

        self.var = Connection.get_connection_from_secrets(key)
        return self.var
Exemple #9
0
def does_connection_exist(conn_id: str) -> bool:
    try:
        Connection.get_connection_from_secrets(conn_id=conn_id)
        return True
    except AirflowNotFoundException:
        return False