Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.29 KB | None | 0 0
  1. #import snowflake connector module
  2. import snowflake.connector
  3. import sys
  4. import os
  5. from cryptography.hazmat.backends import default_backend
  6. from cryptography.hazmat.primitives.asymmetric import rsa
  7. from cryptography.hazmat.primitives.asymmetric import dsa
  8. from cryptography.hazmat.primitives import serialization
  9.  
  10. # 確定輸入的參數是否給定正確
  11. # Sample: python select_data.py <account> <user> <role>
  12. if len(sys.argv) < 4 :
  13. print("ERROR: Please pass the following command-line parameters in order:",end='\n')
  14. print("account,user,role.")
  15. sys.exit(-1)
  16. else:
  17. ACCOUNT = sys.argv[1]
  18. USER = sys.argv[2]
  19. ROLE = sys.argv[3]
  20.  
  21. with open("/Users/abehsu/Documents/Snowflake/Snowpipe_poc/rsa_key.p8", "rb") as key:
  22. p_key = serialization.load_pem_private_key(
  23. key.read(),
  24. password = os.environ['PRIVATE_KEY_PASSPHRASE'].encode(),
  25. backend=default_backend()
  26. )
  27.  
  28. pkb = p_key.private_bytes(
  29. encoding=serialization.Encoding.DER,
  30. format=serialization.PrivateFormat.PKCS8,
  31. encryption_algorithm=serialization.NoEncryption()
  32. )
  33.  
  34.  
  35. con = snowflake.connector.connect(
  36. account=ACCOUNT,
  37. user=USER,
  38. role=ROLE,
  39. private_key=pkb
  40. )
  41.  
  42. con.cursor().execute("""
  43. USE WAREHOUSE tiny_warehouse_mg;
  44. """)
  45.  
  46. con.cursor().execute("""
  47. USE SCHEMA testdb_mg.testschema_mg;
  48. """)
  49.  
  50. # # 傳統方式
  51. # cur = con.cursor()
  52. # try:
  53. # cur.execute("""
  54. # SELECT COL1,COL2 FROM test_table ORDER BY COL1
  55. # """)
  56. # for (col1,col2) in cur:
  57. # print('%s,%s' %(col1,col2))
  58. # finally:
  59. # cur.close()
  60.  
  61. # # 比較便利的語法
  62. # for (col1,col2) in con.cursor().execute("SELECT COL1,COL2 FROM test_table ORDER BY COL1"):
  63. # print('%s,%s' %(col1,col2))
  64.  
  65. # # 如果只想得到一筆結果的話,可以使用fetchone()
  66. # col1, col2 = con.cursor().execute("SELECT COL1, COL2 FROM TEST_TABLE ORDER BY COL1").fetchone()
  67. # print('%s,%s' %(col1,col2))
  68.  
  69. # # 如果想要一次取得特定的筆數,可以使用fetchmany()
  70. # cur = con.cursor().execute("SELECT COL1, COL2 FROM TEST_TABLE ORDER BY COL1")
  71. # ret = cur.fetchmany(3)
  72. # print(ret)
  73. # while len(ret) > 0 :
  74. # ret = cur.fetchmany(3)
  75. # print(ret)
  76.  
  77. # 如果想要一次拿到所有結果
  78. results = con.cursor().execute("SELECT col1, col2 FROM test_table").fetchall()
  79. for rec in results:
  80. print('%s, %s' % (rec[0], rec[1]))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement