Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.97 KB | None | 0 0
  1. #import snowflake connector module
  2. import snowflake.connector
  3. from snowflake.connector.converter_null import SnowflakeNoConverterToPython
  4. from snowflake.connector import DictCursor
  5. from datetime import datetime
  6. import sys
  7. import os
  8. from cryptography.hazmat.backends import default_backend
  9. from cryptography.hazmat.primitives.asymmetric import rsa
  10. from cryptography.hazmat.primitives.asymmetric import dsa
  11. from cryptography.hazmat.primitives import serialization
  12.  
  13. # 確定輸入的參數是否給定正確
  14. # Sample: python data_binding.py <account> <user> <role>
  15. if len(sys.argv) < 4 :
  16. print("ERROR: Please pass the following command-line parameters in order:",end='\n')
  17. print("account,user,role.")
  18. sys.exit(-1)
  19. else:
  20. ACCOUNT = sys.argv[1]
  21. USER = sys.argv[2]
  22. ROLE = sys.argv[3]
  23.  
  24. with open("/Users/abehsu/Documents/Snowflake/Snowpipe_poc/rsa_key.p8", "rb") as key:
  25. p_key = serialization.load_pem_private_key(
  26. key.read(),
  27. password = os.environ['PRIVATE_KEY_PASSPHRASE'].encode(),
  28. backend=default_backend()
  29. )
  30.  
  31. pkb = p_key.private_bytes(
  32. encoding=serialization.Encoding.DER,
  33. format=serialization.PrivateFormat.PKCS8,
  34. encryption_algorithm=serialization.NoEncryption()
  35. )
  36.  
  37.  
  38. con = snowflake.connector.connect(
  39. account=ACCOUNT,
  40. user=USER,
  41. role=ROLE,
  42. private_key=pkb,
  43. )
  44.  
  45. con.cursor().execute("USE WAREHOUSE SF_TUTS_WH")
  46. con.cursor().execute("USE SCHEMA TESTDB_MG.TESTSCHEMA_MG")
  47.  
  48.  
  49. # #Using %(name)s as the placeholder
  50. # con.cursor().execute("""
  51. # INSERT INTO TEST_TABLE(COL1, COL2)
  52. # VALUES (%(COL1)s, %(COL2)s)""",{'COL1':789,"COL2":'test string3'})
  53.  
  54. # #Using %s as the placeholder
  55. # con.cursor().execute("""
  56. # INSERT INTO TEST_TABLE(COL1, COL2)
  57. # VALUES(%s,%s)
  58. # """,(789,'TEST STRING3'))
  59.  
  60. # # Use a list object to bind data for the IN operator
  61. # con.cursor().execute("""
  62. # SELECT COL1,COL2 FROM TEST_TABLE
  63. # WHERE COL2 IN (%s)
  64. # """,(
  65. # """['test string1', 'test string3']"""
  66. # ))
  67.  
  68. # Using ? as the placeholder(Bind data in the server side)
  69. # con = snowflake.connector.connect(
  70. # account=ACCOUNT,
  71. # user=USER,
  72. # role=ROLE,
  73. # private_key=pkb,
  74. # paramstyle="qmark"
  75. # )
  76.  
  77. # con.cursor().execute("USE WAREHOUSE SF_TUTS_WH")
  78. # con.cursor().execute("USE SCHEMA TESTDB_MG.TESTSCHEMA_MG")
  79.  
  80. # con.cursor().execute("""
  81. # INSERT INTO test_table(col1, col2)
  82. # VALUES(?, ?)""", (000,'test string-qmark')
  83. # )
  84.  
  85. # # Using :N as the placeholder (Binding data in the server side)
  86. # con = snowflake.connector.connect(
  87. # account=ACCOUNT,
  88. # user=USER,
  89. # role=ROLE,
  90. # private_key=pkb,
  91. # paramstyle="numeric"
  92. # )
  93.  
  94. # con.cursor().execute("USE WAREHOUSE SF_TUTS_WH")
  95. # con.cursor().execute("USE SCHEMA TESTDB_MG.TESTSCHEMA_MG")
  96.  
  97. # con.cursor().execute("""
  98. # INSERT INTO test_table(col1, col2)
  99. # VALUES(:1, :2)""", (789,'test string-numeric')
  100. # )
  101.  
  102. # Binding datetime with TIMESTAMP (Binding data in the server side)
  103.  
  104. con = snowflake.connector.connect(
  105. account=ACCOUNT,
  106. user=USER,
  107. role=ROLE,
  108. private_key=pkb,
  109. paramstyle="qmark"
  110. )
  111.  
  112. con.cursor().execute("USE WAREHOUSE SF_TUTS_WH")
  113. con.cursor().execute("USE SCHEMA TESTDB_MG.TESTSCHEMA_MG")
  114.  
  115. con.cursor().execute("""
  116. CREATE OR REPLACE TABLE TESTTABLE2(
  117. COL1 int,
  118. COL2 string,
  119. COL3 timestamp_ltz
  120. )
  121. """)
  122.  
  123. # con.cursor().execute("""
  124. # INSERT INTO TESTTABLE2(COL1, COL2, COL3)
  125. # VALUES(?,?,?)
  126. # """,(987,"test string4",("TIMESTAMP_LTZ",datetime.now())))
  127.  
  128. # con.cursor().execute("""
  129. # INSERT INTO TESTTABLE2(COL1, COL2, COL3)
  130. # VALUES(?,?,?)
  131. # """,(999,"test string5",datetime.now()))
  132.  
  133.  
  134. # con = snowflake.connector.connect(
  135. # account=ACCOUNT,
  136. # user=USER,
  137. # role=ROLE,
  138. # private_key=pkb,
  139. # )
  140.  
  141. # con.cursor().execute("USE WAREHOUSE SF_TUTS_WH")
  142. # con.cursor().execute("USE SCHEMA TESTDB_MG.TESTSCHEMA_MG")
  143.  
  144. # con.cursor().execute("""
  145. # INSERT INTO TESTTABLE2(COL1, COL2, COL3)
  146. # VALUES (%(COL1)s, %(COL2)s, %(COL3)s )""",{'COL1':1000,"COL2":'test string6',"COL3":datetime.now()})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement