Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 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 retrieving_column_meta.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. # Retrieving Column Metadata
  50. # method 1
  51. cur = con.cursor()
  52.  
  53. cur.execute("""
  54. SELECT * FROM TEST_TABLE;
  55. """)
  56.  
  57. """
  58. # Columns information in a tuple:
  59. # - name
  60. # - type_code
  61. # - display_size
  62. # - internal_size
  63. # - precision
  64. # - scale
  65. # - null_ok
  66. # """
  67.  
  68. print(','.join([col[0] for col in cur.description]))
  69.  
  70. # method2
  71. print(','.join(
  72. [col[0] for col in con.cursor().execute("SELECT * FROM TEST_TABLE;").description]
  73. )
  74. )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement