snowflakemagic


Namesnowflakemagic JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://github.com/dtPaTh/snowflakemagic
SummaryIPython magic function for Snowflake Query Language (SQL)
upload_time2023-09-05 11:46:04
maintainer
docs_urlNone
authorPatrick Thurner
requires_python
licenseMIT
keywords notebook jupyter snowflake
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Snowflake Magic 

An ipython magic function to simplify usage of Snowflake SQL in your notebooks.

Example
```
import pandas as pd
result = %snowflake SELECT timestamp, value FROM mytable;
df = pd.DataFrame(result)
df.plot.line();
```

## Setup and Configuration

### Install the extension

```
pip install snowflakemagic
```

### Load extension
```
%reload_ext snowflakemagic
```

## Available magic functions

### %snowflake_auth
Inline function connecting to your snowflake account. Reads connection parameters from .env file:

You can either authenticate via SSO, which opens an external browser, or using credentials. 

Provide your snowflake account details:

```
snowflake_account="<YOUR-SNOWFLAKE-ACCOUNT>"
```

If you want to connect via sso, provide your sso username: 

```
snowflake_ssouser="<YOUR-SSO-USERNAME>"
```

If you want to connect via use-credentials, provide the password, otherwise SSO authentication is used.
```
snowflake_user="<YOUR-USERNAME>"
snowflake_password="<YOUR-PASSWORD>"
```

For more details on .env file see [How to NOT embedded credential in Jupyter notebook](https://yuthakarn.medium.com/how-to-not-show-credential-in-jupyter-notebook-c349f9278466) or [python-dotenv](https://pypi.org/project/python-dotenv/)


### %%snowflake, %snowflake or %snowflake_script
* Executes a snowflake query/script and returns the result as a json object. 
* Multiple queries/statements separated by ; can be exceuted, but only last result will be returned. 
* A query MUST end with a semi-colon (;)

### Example 1 
Query in code-cell
```
%%snowflake my_result
SELECT * 
    FROM xyz;
```

.. use result in another code cell:
```
import pandas as pd

#put result into a dataframe
df = pd.DataFrame(my_result)

#...
```

### Example 2 - Inline query
```
import pandas as pd

my_result = %snowflake SELECT * FROM xyz;
df = pd.DataFrame(my_result)

#...
```

### Example 3 - From script
Query using external query script files e.g. myscript.snowql
```
SELECT * FROM xyz;
```

Then in your code-cell, pass the script name 
```
import pandas as pd

my_result = %snowflake_script myscript.snowql
df = pd.DataFrame(my_result)

#...
```

### Example 4 - Parameterized script
Query using external query script files e.g. myscript.snowql which can be parameterized
```
SELECT * FROM xyz WHERE mycolumn=@MYVALUE@@;
```

Then in your code-cell, pass the script name 
```
import pandas as pd

my_result = %snowflake_script myscript.snowql @@MYVALUE@@=test
df = pd.DataFrame(my_result)

#...
```

### Example 5 - Chaining multiple scripts
You can also chain multiple scripts

mycte.snowql
```
WITH
    my_cte AS (
        SELECT col_1, col_2
            FROM xyz
    )
```

myscript.snowql
```
SELECT * FROM my_cte WHERE col_1=@MYVALUE@@;
```

Then in your code-cell, you can append the various script files
```
import pandas as pd

my_result = %snowflake_script mycte.snowql<<myscript.snowql @@MYVALUE@@=test
df = pd.DataFrame(my_result)

#...
```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/dtPaTh/snowflakemagic",
    "name": "snowflakemagic",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "Notebook,Jupyter,Snowflake",
    "author": "Patrick Thurner",
    "author_email": "patrick.thurner@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/73/52/26694d613612aef0c2fbb7ce9a4ed5695eead95fcb5d5884cfdef4ed71b9/snowflakemagic-1.0.0.tar.gz",
    "platform": null,
    "description": "# Snowflake Magic \r\n\r\nAn ipython magic function to simplify usage of Snowflake SQL in your notebooks.\r\n\r\nExample\r\n```\r\nimport pandas as pd\r\nresult = %snowflake SELECT timestamp, value FROM mytable;\r\ndf = pd.DataFrame(result)\r\ndf.plot.line();\r\n```\r\n\r\n## Setup and Configuration\r\n\r\n### Install the extension\r\n\r\n```\r\npip install snowflakemagic\r\n```\r\n\r\n### Load extension\r\n```\r\n%reload_ext snowflakemagic\r\n```\r\n\r\n## Available magic functions\r\n\r\n### %snowflake_auth\r\nInline function connecting to your snowflake account. Reads connection parameters from .env file:\r\n\r\nYou can either authenticate via SSO, which opens an external browser, or using credentials. \r\n\r\nProvide your snowflake account details:\r\n\r\n```\r\nsnowflake_account=\"<YOUR-SNOWFLAKE-ACCOUNT>\"\r\n```\r\n\r\nIf you want to connect via sso, provide your sso username: \r\n\r\n```\r\nsnowflake_ssouser=\"<YOUR-SSO-USERNAME>\"\r\n```\r\n\r\nIf you want to connect via use-credentials, provide the password, otherwise SSO authentication is used.\r\n```\r\nsnowflake_user=\"<YOUR-USERNAME>\"\r\nsnowflake_password=\"<YOUR-PASSWORD>\"\r\n```\r\n\r\nFor more details on .env file see [How to NOT embedded credential in Jupyter notebook](https://yuthakarn.medium.com/how-to-not-show-credential-in-jupyter-notebook-c349f9278466) or [python-dotenv](https://pypi.org/project/python-dotenv/)\r\n\r\n\r\n### %%snowflake, %snowflake or %snowflake_script\r\n* Executes a snowflake query/script and returns the result as a json object. \r\n* Multiple queries/statements separated by ; can be exceuted, but only last result will be returned. \r\n* A query MUST end with a semi-colon (;)\r\n\r\n### Example 1 \r\nQuery in code-cell\r\n```\r\n%%snowflake my_result\r\nSELECT * \r\n    FROM xyz;\r\n```\r\n\r\n.. use result in another code cell:\r\n```\r\nimport pandas as pd\r\n\r\n#put result into a dataframe\r\ndf = pd.DataFrame(my_result)\r\n\r\n#...\r\n```\r\n\r\n### Example 2 - Inline query\r\n```\r\nimport pandas as pd\r\n\r\nmy_result = %snowflake SELECT * FROM xyz;\r\ndf = pd.DataFrame(my_result)\r\n\r\n#...\r\n```\r\n\r\n### Example 3 - From script\r\nQuery using external query script files e.g. myscript.snowql\r\n```\r\nSELECT * FROM xyz;\r\n```\r\n\r\nThen in your code-cell, pass the script name \r\n```\r\nimport pandas as pd\r\n\r\nmy_result = %snowflake_script myscript.snowql\r\ndf = pd.DataFrame(my_result)\r\n\r\n#...\r\n```\r\n\r\n### Example 4 - Parameterized script\r\nQuery using external query script files e.g. myscript.snowql which can be parameterized\r\n```\r\nSELECT * FROM xyz WHERE mycolumn=@MYVALUE@@;\r\n```\r\n\r\nThen in your code-cell, pass the script name \r\n```\r\nimport pandas as pd\r\n\r\nmy_result = %snowflake_script myscript.snowql @@MYVALUE@@=test\r\ndf = pd.DataFrame(my_result)\r\n\r\n#...\r\n```\r\n\r\n### Example 5 - Chaining multiple scripts\r\nYou can also chain multiple scripts\r\n\r\nmycte.snowql\r\n```\r\nWITH\r\n    my_cte AS (\r\n        SELECT col_1, col_2\r\n            FROM xyz\r\n    )\r\n```\r\n\r\nmyscript.snowql\r\n```\r\nSELECT * FROM my_cte WHERE col_1=@MYVALUE@@;\r\n```\r\n\r\nThen in your code-cell, you can append the various script files\r\n```\r\nimport pandas as pd\r\n\r\nmy_result = %snowflake_script mycte.snowql<<myscript.snowql @@MYVALUE@@=test\r\ndf = pd.DataFrame(my_result)\r\n\r\n#...\r\n```\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "IPython magic function for Snowflake Query Language (SQL)",
    "version": "1.0.0",
    "project_urls": {
        "Homepage": "https://github.com/dtPaTh/snowflakemagic"
    },
    "split_keywords": [
        "notebook",
        "jupyter",
        "snowflake"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "9632b716733c799d304e5705f89c7c1a459436b160e862b43fbd33743dd4a9bd",
                "md5": "10bf3a039a71386cd21eafaeccdcd9da",
                "sha256": "ec0c6995e104290d0786126a8d1a1802bee0012f3cbf979c3cc92c63e5d4e1e7"
            },
            "downloads": -1,
            "filename": "snowflakemagic-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "10bf3a039a71386cd21eafaeccdcd9da",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 4014,
            "upload_time": "2023-09-05T11:46:02",
            "upload_time_iso_8601": "2023-09-05T11:46:02.614005Z",
            "url": "https://files.pythonhosted.org/packages/96/32/b716733c799d304e5705f89c7c1a459436b160e862b43fbd33743dd4a9bd/snowflakemagic-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "735226694d613612aef0c2fbb7ce9a4ed5695eead95fcb5d5884cfdef4ed71b9",
                "md5": "a0fb4e926e7a61c5393451125f9595bb",
                "sha256": "e5a4b9129363fc15cd6b14458f036197d6594c778385c55d287987779b885c09"
            },
            "downloads": -1,
            "filename": "snowflakemagic-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "a0fb4e926e7a61c5393451125f9595bb",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 3692,
            "upload_time": "2023-09-05T11:46:04",
            "upload_time_iso_8601": "2023-09-05T11:46:04.963238Z",
            "url": "https://files.pythonhosted.org/packages/73/52/26694d613612aef0c2fbb7ce9a4ed5695eead95fcb5d5884cfdef4ed71b9/snowflakemagic-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-09-05 11:46:04",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "dtPaTh",
    "github_project": "snowflakemagic",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "snowflakemagic"
}
        
Elapsed time: 0.11128s