Advertisement
Guest User

RQ4

a guest
Jan 19th, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.78 KB | None | 0 0
  1. import sys
  2. import logging
  3. import rds_config
  4. import pymysql
  5. #rds settings
  6. rds_host  = rds_config.db_endpoint
  7. name = rds_config.db_username
  8. password = rds_config.db_password
  9. db_name = rds_config.db_name
  10. port = 3306
  11.  
  12. logger = logging.getLogger()
  13. logger.setLevel(logging.INFO)
  14.  
  15. try:
  16.     logger.info("muestra esto")
  17.     conn = pymysql.connect(rds_host, user=name, passwd=password, db=db_name, connect_timeout=120)
  18. except Exception as inst:
  19.     logger.error("ERROR : ")
  20.     logger.error(inst)
  21.     sys.exit()
  22.  
  23. logger.info("SUCCESS: Connection to RDS mysql instance succeeded")
  24.  
  25. def handler(event, context):
  26.     item_count = 0
  27.     sql = """
  28. CREATE INDEX AnswersIdx ON Answers(Id);
  29. CREATE INDEX PostsIdx ON Posts(Id);
  30.  
  31. CREATE INDEX AuthorAnswersIdx ON Answers(OwnerUserId);
  32. CREATE INDEX AuthorPostsIdx ON Posts(OwnerUserId);
  33.  
  34. SELECT
  35.    CASE WHEN (ua1 > up1) THEN up1 ELSE ua1 END AS Helper,
  36.    CASE WHEN (ua1 > up1) THEN ua1 ELSE up1 END AS Helpee
  37. FROM (
  38.    SELECT a1.OwnerUserId AS ua1, p1.OwnerUserId AS up1
  39.    FROM Answers AS a1
  40.    INNER JOIN Posts AS p1
  41.        ON p1.PostTypeId = 1
  42.        AND a1.ParentId = p1.Id
  43.        AND p1.OwnerUserId != a1.OwnerUserId
  44.    GROUP BY ua1, up1
  45.    ) AS r1
  46. JOIN (
  47.    SELECT a2.OwnerUserId AS ua2, p2.OwnerUserId AS up2
  48.    FROM Answers AS a2
  49.    INNER JOIN Posts AS p2
  50.        ON p2.PostTypeId = 1
  51.        AND a2.ParentId = p2.Id
  52.        AND p2.OwnerUserId != a2.OwnerUserId
  53.    GROUP BY ua2, up2
  54.    ) AS r2
  55.    ON r1.up1 = r2.ua2 AND r1.ua1 = r2.up2
  56. GROUP BY Helper, Helpee;
  57.        """
  58.     item_count = 0
  59.     with conn.cursor() as cur:
  60.         cur.execute(sql)  
  61.         conn.commit()
  62.         for row in cur:
  63.             item_count += 1
  64.             logger.info(row)
  65.     return "Filas generadas: %d" %(item_count)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement