{"id":25528984,"url":"https://github.com/meltanolabs/target-snowflake","last_synced_at":"2026-03-10T23:09:54.006Z","repository":{"id":65437816,"uuid":"536160795","full_name":"MeltanoLabs/target-snowflake","owner":"MeltanoLabs","description":"Singer Target for the Snowflake cloud Data Warehouse","archived":false,"fork":false,"pushed_at":"2026-02-24T21:36:25.000Z","size":2002,"stargazers_count":11,"open_issues_count":45,"forks_count":32,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-25T00:32:17.497Z","etag":null,"topics":["elt","meltano","singer-sdk","singer-target","snowflake"],"latest_commit_sha":null,"homepage":"https://hub.meltano.com/loaders/target-snowflake--meltanolabs/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MeltanoLabs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2022-09-13T14:17:26.000Z","updated_at":"2026-02-24T21:35:43.000Z","dependencies_parsed_at":"2026-01-08T00:02:22.794Z","dependency_job_id":null,"html_url":"https://github.com/MeltanoLabs/target-snowflake","commit_stats":null,"previous_names":[],"tags_count":64,"template":false,"template_full_name":null,"purl":"pkg:github/MeltanoLabs/target-snowflake","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeltanoLabs%2Ftarget-snowflake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeltanoLabs%2Ftarget-snowflake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeltanoLabs%2Ftarget-snowflake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeltanoLabs%2Ftarget-snowflake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MeltanoLabs","download_url":"https://codeload.github.com/MeltanoLabs/target-snowflake/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MeltanoLabs%2Ftarget-snowflake/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30360975,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T21:41:54.280Z","status":"ssl_error","status_checked_at":"2026-03-10T21:40:59.357Z","response_time":106,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["elt","meltano","singer-sdk","singer-target","snowflake"],"created_at":"2025-02-19T23:29:44.297Z","updated_at":"2026-03-10T23:09:53.996Z","avatar_url":"https://github.com/MeltanoLabs.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# `target-snowflake`\n\nTarget for Snowflake.\n\nBuilt with the [Meltano Singer SDK](https://sdk.meltano.com).\n\n## Capabilities\n\n* `about`\n* `stream-maps`\n* `schema-flattening`\n* `target-schema`\n\n## Settings\n\n| Setting                    | Required | Default                       | Description                                                                                                                                                                                                                                                                                      |\n|:---------------------------|:---------|:------------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| user                       | True     | None                          | The login name for your Snowflake user.                                                                                                                                                                                                                                                          |\n| password                   | False    | None                          | The password for your Snowflake user.                                                                                                                                                                                                                                                            |\n| private_key                | False    | None                          | The private key contents. For KeyPair authentication either private_key or private_key_path must be provided.                                                                                                                                                                                    |\n| private_key_path           | False    | None                          | Path to file containing private key. For KeyPair authentication either private_key or private_key_path must be provided.                                                                                                                                                                         |\n| private_key_passphrase     | False    | None                          | Passphrase to decrypt private key if encrypted.                                                                                                                                                                                                                                                  |\n| oauth_access_token         | False    | None                          | OAuth2.0 access token for authentication. Token should be valid and not expired.                                                                                                                                                                                                                   |\n| account                    | True     | None                          | Your account identifier. See [Account Identifiers](https://docs.snowflake.com/en/user-guide/admin-account-identifier.html).                                                                                                                                                                      |\n| database                   | True     | None                          | The initial database for the Snowflake session.                                                                                                                                                                                                                                                  |\n| schema                     | False    | None                          | The initial schema for the Snowflake session.                                                                                                                                                                                                                                                    |\n| warehouse                  | False    | None                          | The initial warehouse for the session.                                                                                                                                                                                                                                                           |\n| role                       | False    | None                          | The initial role for the session.                                                                                                                                                                                                                                                                |\n| add_record_metadata        | False    | 1                             | Whether to add metadata columns.                                                                                                                                                                                                                                                                 |\n| clean_up_batch_files       | False    | 1                             | Whether to remove batch files after processing.                                                                                                                                                                                                                                                  |\n| default_target_schema      | False    | None                          | The default target database schema name to use for all streams.                                                                                                                                                                                                                                  |\n| hard_delete                | False    | 0                             | Hard delete records.                                                                                                                                                                                                                                                                             |\n| load_method                | False    | TargetLoadMethods.APPEND_ONLY | The method to use when loading data into the destination. `append-only` will always write all input records whether that records already exists or not. `upsert` will update existing records and insert new records. `overwrite` will delete all existing records and insert all input records. |\n| batch_size_rows            | False    | None                          | Maximum number of rows in each batch.                                                                                                                                                                                                                                                            |\n| validate_records           | False    | 1                             | Whether to validate the schema of the incoming streams.                                                                                                                                                                                                                                          |\n| stream_maps                | False    | None                          | Config object for stream maps capability. For more information check out [Stream Maps](https://sdk.meltano.com/en/latest/stream_maps.html).                                                                                                                                                      |\n| stream_map_config          | False    | None                          | User-defined config values to be used within map expressions.                                                                                                                                                                                                                                    |\n| faker_config               | False    | None                          | Config for the [`Faker`](https://faker.readthedocs.io/en/master/) instance variable `fake` used within map expressions. Only applicable if the plugin specifies `faker` as an additional dependency (through the `singer-sdk` `faker` extra or directly).                                         |\n| faker_config.seed          | False    | None                          | Value to seed the Faker generator for deterministic output: https://faker.readthedocs.io/en/master/#seeding-the-generator                                                                                                                                                                        |\n| faker_config.locale        | False    | None                          | One or more LCID locale strings to produce localized output for: https://faker.readthedocs.io/en/master/#localization                                                                                                                                                                            |\n| flattening_enabled         | False    | None                          | 'True' to enable schema flattening and automatically expand nested properties.                                                                                                                                                                                                                   |\n| flattening_max_depth       | False    | None                          | The max depth to flatten schemas.                                                                                                                                                                                                                                                                |\n| use_browser_authentication | False    | False                         | If authentication should be done using SSO (via external browser). See See [SSO browser authentication](https://docs.snowflake.com/en/developer-guide/node-js/nodejs-driver-authenticate#using-single-sign-on-sso-through-a-web-browser).                                                        |\n\nA full list of supported settings and capabilities is available by running: `target-snowflake --about`\n\n### Initializing a Snowflake Account\n\nThis target has an interactive feature that will help you get a Snowflake account initialized with everything needed to get started loading data.\n\n- User\n- Role\n- Warehouse\n- Database\n- Proper grants\n\nThe CLI will ask you to provide information about the new user/role/etc. you want to create but it will also need SYSADMIN credentials to execute the queries.\nYou should prepare the following inputs:\n\n- Account\n- User that has SYSADMIN and SECURITYADMIN access. These comes default with the user that created the Snowflake account.\n- The password for your SYSADMIN user.\n\nRun the following command to get started with the interactive CLI.\nNote - the CLI will print the SQL queries it is planning to run and confirm with you before it makes any changes.\n\n```bash\nuv run target-snowflake --initialize\n\n# Alternatively using Meltano CLI\nmeltano invoke target-snowflake --initialize\n```\n\nThe CLI also has a \"dry run\" mode that will print the queries without executing them.\n\nCheck out the demo of this [on YouTube](https://youtu.be/9vEFxw-0nxI).\n\n### Configure using environment variables\n\nThis Singer target will automatically import any environment variables within the working directory's\n`.env` if the `--config=ENV` is provided, such that config values will be considered if a matching\nenvironment variable is set either in the terminal context or in the `.env` file.\n\n## Usage\n\nYou can easily run `target-snowflake` by itself or in a pipeline using [Meltano](https://meltano.com/).\n\n### Executing the Target Directly\n\n```bash\ntarget-snowflake --version\ntarget-snowflake --help\n# Test using the \"Carbon Intensity\" sample:\ntap-carbon-intensity | target-snowflake --config /path/to/target-snowflake-config.json\n```\n\n## Developer Resources\n\n### Initialize your Development Environment\n\n```bash\ncurl -LsSf https://astral.sh/uv/install.sh | sh  # or see https://docs.astral.sh/uv/getting-started/installation/\nuv sync --all-extras --dev\n```\n\n### Create and Run Tests\n\nCreate tests within the `target_snowflake/tests` subfolder and\n  then run:\n\n```bash\nuv run pytest\n```\n\nYou can also test the `target-snowflake` CLI interface directly using `uv run`:\n\n```bash\nuv run target-snowflake --help\n```\n\n### Testing with [Meltano](https://meltano.com/)\n\n_**Note:** This target will work in any Singer environment and does not require Meltano.\nExamples here are for convenience and to streamline end-to-end orchestration scenarios._\n\nYour project comes with a custom `meltano.yml` project file already created.\n\nNext, install Meltano (if you haven't already) and any needed plugins:\n\n```bash\n# Initialize meltano within this directory\ncd target-snowflake\nuvx meltano install\n```\n\nNow you can test and orchestrate using Meltano:\n\n```bash\n# Test invocation:\nmeltano invoke target-snowflake --version\n# OR run a test `elt` pipeline with the Carbon Intensity sample tap:\nmeltano run tap-carbon-intensity target-snowflake\n```\n\n### SDK Dev Guide\n\nSee the [dev guide](https://sdk.meltano.com/en/latest/dev_guide.html) for more instructions on how to use the Meltano SDK to\ndevelop your own Singer taps and targets.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeltanolabs%2Ftarget-snowflake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmeltanolabs%2Ftarget-snowflake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmeltanolabs%2Ftarget-snowflake/lists"}