B
    8T¹cw  ã               @   s   d dl Z G dd„ dƒZdS )é    Nc               @   s   e Zd Zdd„ Zddd„ZdS )ÚDataExtractorc             C   s   || _ || _d S )N)Úspark_sessionÚcred_manager)Úselfr   r   © r   úG/home/glue_user/workspace/jupyter_workspace/dev/helper/dataextractor.pyÚ__init__   s    zDataExtractor.__init__Nc             C   sü  |r|nd}|rd| nd}d|kr\d|› d|d › d|d	 › d
|› �  ¡ }| j |¡}�nœd|krì| j |¡}|d d |d |d |d |d |d dœ}d|› d|d › d|d	 › d
|› �  ¡ }| jj d¡jf |Ž d|¡ 	¡ }�nd|k�rø| j |¡}|d	 }	|d }
y|d }W n   |d }Y nX y|d }W n   d}Y nX y|d }W n   d}Y nX y|d }W n   t
dƒ‚Y nX d|› d|› d|
› �}d|› d|d	 › d
|› �  ¡ }| jj d¡ d |¡ d|¡ d|¡ d|¡ 	¡ }|S )!NÚ*zwhere Ú ZgluezSELECT z FROM ÚdatabaseÚ.Útableú Z	snowflakeÚaccountz.snowflakecomputing.comÚuserÚpasswordZschemaZ	warehouse)ZsfURLZsfUserZ
sfPasswordZ
sfDatabaseZsfSchemaZsfWarehouseznet.snowflake.spark.snowflakeÚqueryZauroraÚhostÚbase_urlÚportZ5432ÚpostgreszPassword Not Defined in secretzjdbc:postgresql://ú:ú/ZjdbcÚurl)Ústripr   Úsqlr   Úget_credentialsÚreadÚformatÚoptionsÚoptionÚloadÚ
ValueError)r   Úsourcer   Zpushdown_predicateÚcolumnsr   ZdfÚcredsZ	sfOptionsr   r   r   r   r   r   r   r   r   r   Úextract_data
   sV    (
(


zDataExtractor.extract_data)NN)Ú__name__Ú
__module__Ú__qualname__r   r&   r   r   r   r   r      s   r   )Úboto3r   r   r   r   r   Ú<module>   s   