Package: target-snowflake
Target SnowflakeASingerSnowflake target, for use with Singer streams generated by Singer taps.Snowflake ConnectorDocsInstallpipinstalltarget-snowflakeUsageFollow theSinger.io Best Practicesfor setting up separatetapandtargetvirtualenvs to avoid version
conflicts.Create aconfig fileat~/singer.io/target_snowflake_config.jsonwith Snowflake connection
information and target Snowflake schema and warehouse.{"snowflake_account":"https://XXXXX.snowflakecomputing.com","snowflake_username":"myuser","snowflake_role":"myrole","snowflake_password":"1234","snowflake_database":"my_analytics","snowflake_schema":"mytapname","snowflake_warehouse":"dw"}1. Run `target-snowfkajke` against a [Singer](https://singer.io) tap.

 ```bash
 ~/.virtualenvs/tap-something/bin/tap-something \
   | ~/.virtualenvs/target-snowflake/bin/target-snowflake \
     --config ~/singer.io/target_snowflake_config.json >> state.jsonIf you are running windows, the following is equivalent:venvs\tap-exchangeratesapi\Scripts\tap-exchangeratesapi.exe | ^
venvs\target-snowflake\Scripts\target-snowlfake.exe ^
--config target_snowflake_config.jsonConfig.jsonThe fields available to be specified in the config file are specified
here.FieldTypeDefaultDetailssnowflake_account["string"]N/AACCOUNTmight require theregionandcloudplatform where your account is located, in the form of:<your_account_name>.<region_id>.<cloud>(e.g.xy12345.east-us-2.azure)Refer to Snowflake's documentation about Accountsnowflake_username["string"]N/Asnowflake_password["string", "null"]nullsnowflake_role["string"]nullIf not specified, Snowflake will use the user's default role.snowflake_database["string"]N/Asnowflake_authenticator["string"]"snowflake"Speifies the authentication provider for snowflake to use. Valud options are the internal one ("snowflake"), a browser session ("externalbrowser"), or Okta ("https://<your_okta_account_name>.okta.com"). See the snowflake docs for more details.snowflake_schema["string", "null"]"PUBLIC"snowflake_warehouse["string"]N/Ainvalid_records_detect["boolean", "null"]trueIncludefalsein your config to disable crashing on invalid recordsinvalid_records_threshold["integer", "null"]0Include a positive valuenin your config to allow at mostninvalid records per stream before giving up.disable_collection["string", "null"]falseIncludetruein your config to disableSinger Usage Logging.logging_level["string", "null"]"INFO"The level for logging. Set toDEBUGto get things like queries executed, timing of those queries, etc. SeePython's Logger Levelsfor information about valid values.persist_empty_tables["boolean", "null"]FalseWhether the Target should create tables which have no records present in Remote.state_support["boolean", "null"]TrueWhether the Target should emitSTATEmessages to stdout for further consumption. In this mode, which is on by default, STATE messages are buffered in memory until all the records that occurred before them are flushed according to the batch flushing schedule the target is configured with.target_s3["object", "null"]N/AWhen included, useS3to stage files. SeeS3belowS3 Config.jsonFieldTypeDefaultDetailsaws_access_key_id["string"]N/Aaws_secret_access_key["string"]N/Abucket["string"]N/ABucket where staging files should be uploaded to.key_prefix["string", "null"]""Prefix for staging file uploads to allow for better delineation of tmp filesLimitationsSnowflake SQL Identifiers:Although Snowflake supports quoted identifiers to have non-alphanumeric values,target-snowflakelimits
identifiers to uppercase alphanumerics, and underscoresThis is done to make querability/useability in Snowflake simpler, so as to not require users tohaveto use
sometimes cumbersome quotes to query their dataRequires aJSON Schemafor every stream.Only string, string with date-time format, integer, number, boolean,
object, and array types with or without null are supported. Arrays can
have any of the other types listed, including objects as types within
items.Example of JSON Schema types that work['number']['string']['string', 'null']['string', 'integer']['integer', 'number']Exmaple of JSON Schema types thatDO NOTwork['any']['null']JSON Schema combinations such asanyOfandallOfare not supported.JSON Schema $ref is partially supported:NOTE:The following limitations are known toNOTfail gracefullyPresently you cannot have any circular or recursive$refs$refs must be present within the schema:URI's do not workif the$refis broken, the behaviour is considered unexpectedAny values which are thestring\\Nwill be streamed to Snowflake as the literalnullSponsorshipTarget Snowflake is sponsored by Data Mill (Data Mill Services, LLC)datamill.co.Data Mill helps organizations utilize modern data infrastructure and data science to power analytics, products, and services.Copyright Data Mill Services, LLC 2018