Skip to content

Releases: whylabs/whylabs-snowflake-integration

Release 9f70cd64aeb92e5f0a41

27 Oct 20:57
Compare
Choose a tag to compare

Published S3 Paths

  • Latest UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/setup.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/version.sha
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/9f70cd64aeb92e5f0a41/setup.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/9f70cd64aeb92e5f0a41/version.sha
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/9f70cd64aeb92e5f0a41/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/9f70cd64aeb92e5f0a41/whylabs_upload_udf.py

Published HTTP paths

  • Latest UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/setup.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/version.sha
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/9f70cd64aeb92e5f0a41/setup.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/9f70cd64aeb92e5f0a41/version.sha
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/9f70cd64aeb92e5f0a41/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/9f70cd64aeb92e5f0a41/whylabs_upload_udf.py

Snowflake SQL

Create the latest functions in Snowflake like so. Make sure to see the official doc page for all of the instructions. This snippet doesn't cover creating the required secrets.

-- Set up network rules
CREATE OR REPLACE NETWORK RULE whylabs_profiling_rule
  MODE = EGRESS
  TYPE = HOST_PORT
  VALUE_LIST = ();

CREATE OR REPLACE NETWORK RULE whylabs_api_network_rule
  MODE = EGRESS
  TYPE = HOST_PORT
  VALUE_LIST = ('api.whylabsapp.com', 'log.whylabsapp.com', 'songbird-20201223060057342600000001.s3.us-west-2.amazonaws.com');

-- Set up integrations
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION whylabs_upload_integration
  ALLOWED_NETWORK_RULES = (whylabs_api_network_rule)
  ALLOWED_AUTHENTICATION_SECRETS = (whylabs_api_key, whylabs_org_id)
  ENABLED = true;

-- Set up storage integrations
CREATE OR REPLACE STORAGE INTEGRATION whylabs_s3_integration
  TYPE = EXTERNAL_STAGE
  STORAGE_PROVIDER = 'S3'
  ENABLED = TRUE
  STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::207285235248:role/public-snowflake-role'
  STORAGE_ALLOWED_LOCATIONS = ('s3://whylabs-snowflake-udfs/udfs/')
;

CREATE OR REPLACE STAGE whylabs_udf_stage
  STORAGE_INTEGRATION = whylabs_s3_integration
  URL = 's3://whylabs-snowflake-udfs/udfs/'
;

-- Create the UDFs
create or replace function whylogs(data object)
    returns table (
        profile_view varchar,
        dataset_timestamp int,
        segment_partition varchar,
        segment varchar,
        rows_processed int,
        debug_info varchar
    )
    language python
    runtime_version = '3.10'
    packages = ('snowflake-snowpark-python', 'whylogs', 'pandas')
    handler = 'whylogs_udf.handler'
    imports = ('@whylabs_udf_stage/v1/latest/whylogs_udf.py')
;


create or replace function whylabs_upload(data object)
    returns table (
        dataset_id varchar,
        result varchar,
        error varchar,
        dataset_timestamp int,
        segment varchar
    )
    language python
    runtime_version = '3.10'
    external_access_integrations = (whylabs_upload_integration)
    secrets = ('whylabs_api_key' = whylabs_api_key, 'whylabs_org_id' = whylabs_org_id)
    packages = ('snowflake-snowpark-python', 'requests', 'whylogs', 'whylabs-client')
    handler = 'whylabs_upload_udf.handler'
    imports = ('@whylabs_udf_stage/v1/latest/whylabs_upload_udf.py')
;

Release 57230b7fe171520b0a51

26 Oct 19:43
57230b7
Compare
Choose a tag to compare

Published S3 Paths

  • Latest UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/setup.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/version.sha
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/57230b7fe171520b0a51/setup.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/57230b7fe171520b0a51/version.sha
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/57230b7fe171520b0a51/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/57230b7fe171520b0a51/whylabs_upload_udf.py

Published HTTP paths

  • Latest UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/setup.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/version.sha
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/57230b7fe171520b0a51/setup.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/57230b7fe171520b0a51/version.sha
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/57230b7fe171520b0a51/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/57230b7fe171520b0a51/whylabs_upload_udf.py

Snowflake SQL

Create the latest functions in Snowflake like so. Make sure to see the official doc page for all of the instructions. This snippet doesn't cover creating the required secrets.

-- Set up network rules
CREATE OR REPLACE NETWORK RULE whylabs_profiling_rule
  MODE = EGRESS
  TYPE = HOST_PORT
  VALUE_LIST = ();

CREATE OR REPLACE NETWORK RULE whylabs_api_network_rule
  MODE = EGRESS
  TYPE = HOST_PORT
  VALUE_LIST = ('api.whylabsapp.com', 'log.whylabsapp.com', 'songbird-20201223060057342600000001.s3.us-west-2.amazonaws.com');

-- Set up integrations
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION whylabs_upload_integration
  ALLOWED_NETWORK_RULES = (whylabs_api_network_rule)
  ALLOWED_AUTHENTICATION_SECRETS = (whylabs_api_key, whylabs_org_id)
  ENABLED = true;

-- Set up storage integrations
CREATE OR REPLACE STORAGE INTEGRATION whylabs_s3_integration
  TYPE = EXTERNAL_STAGE
  STORAGE_PROVIDER = 'S3'
  ENABLED = TRUE
  STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::207285235248:role/public-snowflake-role'
  STORAGE_ALLOWED_LOCATIONS = ('s3://whylabs-snowflake-udfs/udfs/')
;

CREATE OR REPLACE STAGE whylabs_udf_stage
  STORAGE_INTEGRATION = whylabs_s3_integration
  URL = 's3://whylabs-snowflake-udfs/udfs/'
;

-- Create the UDFs
create or replace function whylogs(data object)
    returns table (
        profile_view varchar,
        dataset_timestamp int,
        segment_partition varchar,
        segment varchar,
        rows_processed int,
        debug_info varchar
    )
    language python
    runtime_version = '3.10'
    packages = ('snowflake-snowpark-python', 'whylogs', 'pandas')
    handler = 'whylogs_udf.handler'
    imports = ('@whylabs_udf_stage/v1/latest/whylogs_udf.py')
;


create or replace function whylabs_upload(data object)
    returns table (
        dataset_id varchar,
        result varchar,
        error varchar,
        dataset_timestamp int,
        segment varchar
    )
    language python
    runtime_version = '3.10'
    external_access_integrations = (whylabs_upload_integration)
    secrets = ('whylabs_api_key' = whylabs_api_key, 'whylabs_org_id' = whylabs_org_id)
    packages = ('snowflake-snowpark-python', 'requests', 'whylogs', 'whylabs-client')
    handler = 'whylabs_upload_udf.handler'
    imports = ('@whylabs_udf_stage/v1/latest/whylabs_upload_udf.py')
;

Release df8314eb360e8eb56d96

10 Oct 16:45
df8314e
Compare
Choose a tag to compare

Published S3 Paths

  • Latest UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/setup.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/df8314eb360e8eb56d96/setup.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/df8314eb360e8eb56d96/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/df8314eb360e8eb56d96/whylabs_upload_udf.py

Published HTTP paths

  • Latest UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/setup.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/df8314eb360e8eb56d96/setup.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/df8314eb360e8eb56d96/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/df8314eb360e8eb56d96/whylabs_upload_udf.py

Snowflake SQL

Create the latest functions in Snowflake like so. Make sure to see the official doc page for all of the instructions. This snippet doesn't cover creating the required secrets and secret configuration.

-- Set up network rules
CREATE OR REPLACE NETWORK RULE whylabs_profiling_rule
  MODE = EGRESS
  TYPE = HOST_PORT
  VALUE_LIST = ();

CREATE OR REPLACE NETWORK RULE whylabs_api_network_rule
  MODE = EGRESS
  TYPE = HOST_PORT
  VALUE_LIST = ('api.whylabsapp.com', 'log.whylabsapp.com', 'songbird-20201223060057342600000001.s3.us-west-2.amazonaws.com');

-- Set up integrations
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION whylabs_integration
  ALLOWED_NETWORK_RULES = (whylabs_profiling_rule)
  ALLOWED_AUTHENTICATION_SECRETS = (segment_columns, data_grouper_freq)
  ENABLED = true;

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION whylabs_upload_integration
  ALLOWED_NETWORK_RULES = (whylabs_api_network_rule)
  ALLOWED_AUTHENTICATION_SECRETS = (whylabs_api_key, whylabs_org_id, whylabs_dataset_id)
  ENABLED = true;

-- Set up storage integrations
CREATE OR REPLACE STORAGE INTEGRATION whylabs_s3_integration
  TYPE = EXTERNAL_STAGE
  STORAGE_PROVIDER = 'S3'
  ENABLED = TRUE
  STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::207285235248:role/public-snowflake-role'
  STORAGE_ALLOWED_LOCATIONS = ('s3://whylabs-snowflake-udfs/udfs/')
;

CREATE OR REPLACE STAGE whylabs_udf_stage
  STORAGE_INTEGRATION = whylabs_s3_integration
  URL = 's3://whylabs-snowflake-udfs/udfs/'
;

-- Create the UDFs
create or replace function whylogs(data object)
    returns table (
        profile_view varchar,
        dataset_timestamp int,
        segment_partition varchar,
        segment varchar,
        rows_processed int,
        debug_info varchar
    )
    language python
    runtime_version = '3.10'
    external_access_integrations = (whylabs_integration)
    secrets = ('data_grouper_freq' = data_grouper_freq, 'segment_columns' = segment_columns)
    packages = ('snowflake-snowpark-python', 'whylogs', 'pandas')
    handler = 'whylogs_udf.handler'
    imports = ('@whylabs_udf_stage/v1/latest/whylogs_udf.py')
    ;


create or replace function whylabs_upload(profile_view varchar, segment_partition varchar, segment varchar)
    returns table (upload_result varchar)
    language python
    runtime_version = '3.10'
    external_access_integrations = (whylabs_upload_integration)
    secrets = ('whylabs_api_key' = whylabs_api_key, 'whylabs_org_id' = whylabs_org_id, 'whylabs_dataset_id' = whylabs_dataset_id)
    packages = ('snowflake-snowpark-python', 'requests', 'whylogs', 'whylabs-client')
    handler = 'whylabs_upload_udf.handler'
    imports = ('@whylabs_udf_stage/v1/latest/whylabs_upload_udf.py')
;

Release c9f12022c4caafbbb526

05 Oct 22:47
Compare
Choose a tag to compare

Published S3 Paths

  • Latest UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/setup.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/c9f12022c4caafbbb526/setup.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/c9f12022c4caafbbb526/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/c9f12022c4caafbbb526/whylabs_upload_udf.py

Published HTTP paths

  • Latest UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/setup.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/c9f12022c4caafbbb526/setup.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/c9f12022c4caafbbb526/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/c9f12022c4caafbbb526/whylabs_upload_udf.py

Snowflake SQL

Create the latest functions in Snowflake like so. Make sure to see the official doc page for all of the instructions. This snippet doesn't cover creating the required secrets and secret configuration.

-- Set up network rules
CREATE OR REPLACE NETWORK RULE whylabs_profiling_rule
  MODE = EGRESS
  TYPE = HOST_PORT
  VALUE_LIST = ();

CREATE OR REPLACE NETWORK RULE whylabs_api_network_rule
  MODE = EGRESS
  TYPE = HOST_PORT
  VALUE_LIST = ('api.whylabsapp.com', 'log.whylabsapp.com', 'songbird-20201223060057342600000001.s3.us-west-2.amazonaws.com');

-- Set up integrations
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION whylabs_integration
  ALLOWED_NETWORK_RULES = (whylabs_profiling_rule)
  ALLOWED_AUTHENTICATION_SECRETS = (segment_columns, data_grouper_freq)
  ENABLED = true;

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION whylabs_upload_integration
  ALLOWED_NETWORK_RULES = (whylabs_api_network_rule)
  ALLOWED_AUTHENTICATION_SECRETS = (whylabs_api_key, whylabs_org_id, whylabs_dataset_id)
  ENABLED = true;

-- Set up storage integrations
CREATE OR REPLACE STORAGE INTEGRATION whylabs_s3_integration
  TYPE = EXTERNAL_STAGE
  STORAGE_PROVIDER = 'S3'
  ENABLED = TRUE
  STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::207285235248:role/public-snowflake-role'
  STORAGE_ALLOWED_LOCATIONS = ('s3://whylabs-snowflake-udfs/udfs/')
;

CREATE OR REPLACE STAGE whylabs_udf_stage
  STORAGE_INTEGRATION = whylabs_s3_integration
  URL = 's3://whylabs-snowflake-udfs/udfs/'
;

-- Create the UDFs
create or replace function whylogs(data object)
    returns table (
        profile_view varchar,
        dataset_timestamp int,
        segment_partition varchar,
        segment varchar,
        rows_processed int,
        debug_info varchar
    )
    language python
    runtime_version = '3.10'
    external_access_integrations = (whylabs_integration)
    secrets = ('data_grouper_freq' = data_grouper_freq, 'segment_columns' = segment_columns)
    packages = ('snowflake-snowpark-python', 'whylogs', 'pandas')
    handler = 'whylogs_udf.handler'
    imports = ('@whylabs_udf_stage/v1/latest/whylogs_udf.py')
    ;


create or replace function whylabs_upload(profile_view varchar, segment_partition varchar, segment varchar)
    returns table (upload_result varchar)
    language python
    runtime_version = '3.10'
    external_access_integrations = (whylabs_upload_integration)
    secrets = ('whylabs_api_key' = whylabs_api_key, 'whylabs_org_id' = whylabs_org_id, 'whylabs_dataset_id' = whylabs_dataset_id)
    packages = ('snowflake-snowpark-python', 'requests', 'whylogs', 'whylabs-client')
    handler = 'whylabs_upload_udf.handler'
    imports = ('@whylabs_udf_stage/v1/latest/whylabs_upload_udf.py')
;

Release a073b73c9fb82075e6cb

05 Oct 15:58
Compare
Choose a tag to compare

Published S3 Paths

  • Latest UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/setup.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/a073b73c9fb82075e6cb/setup.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/a073b73c9fb82075e6cb/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/a073b73c9fb82075e6cb/whylabs_upload_udf.py

Published HTTP paths

  • Latest UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/setup.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/a073b73c9fb82075e6cb/setup.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/a073b73c9fb82075e6cb/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/a073b73c9fb82075e6cb/whylabs_upload_udf.py

Snowflake SQL

Create the latest functions in Snowflake like so. Make sure to see the official doc page for all of the instructions. This snippet doesn't cover creating the required secrets and secret configuration.

-- Set up network rules

CREATE OR REPLACE NETWORK RULE whylabs_profiling_rule
  MODE = EGRESS
  TYPE = HOST_PORT
  VALUE_LIST = ();

CREATE OR REPLACE NETWORK RULE whylabs_api_network_rule
  MODE = EGRESS
  TYPE = HOST_PORT
  VALUE_LIST = ('api.whylabsapp.com', 'log.whylabsapp.com', 'songbird-20201223060057342600000001.s3.us-west-2.amazonaws.com');

-- Set up integrations
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION whylabs_integration
  ALLOWED_NETWORK_RULES = (whylabs_profiling_rule)
  ALLOWED_AUTHENTICATION_SECRETS = (segment_columns, data_grouper_freq)
  ENABLED = true;

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION whylabs_upload_integration
  ALLOWED_NETWORK_RULES = (whylabs_api_network_rule)
  ALLOWED_AUTHENTICATION_SECRETS = (whylabs_api_key, whylabs_org_id, whylabs_dataset_id)
  ENABLED = true;

-- Set up storage integrations
CREATE OR REPLACE STORAGE INTEGRATION whylabs_s3_integration
  TYPE = EXTERNAL_STAGE
  STORAGE_PROVIDER = 'S3'
  ENABLED = TRUE
  STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::207285235248:role/public-snowflake-role'
  STORAGE_ALLOWED_LOCATIONS = ('s3://whylabs-snowflake-udfs/udfs/')
;

CREATE OR REPLACE STAGE whylabs_udf_stage
  STORAGE_INTEGRATION = whylabs_s3_integration
  URL = 's3://whylabs-snowflake-udfs/udfs/'
;

-- Create the UDFs
create or replace function whylogs(data object)
    returns table (
        profile_view varchar,
        dataset_timestamp int,
        segment_partition varchar,
        segment varchar,
        rows_processed int,
        debug_info varchar
    )
    language python
    runtime_version = '3.10'
    external_access_integrations = (whylabs_integration)
    secrets = ('data_grouper_freq' = data_grouper_freq, 'segment_columns' = segment_columns)
    packages = ('snowflake-snowpark-python', 'whylogs', 'pandas')
    handler = 'whylogs_udf.handler'
    imports = ('@whylabs_udf_stage/v1/latest/whylogs_udf.py')
    ;


create or replace function whylabs_upload(profile_view varchar, segment_partition varchar, segment varchar)
    returns table (upload_result varchar)
    language python
    runtime_version = '3.10'
    external_access_integrations = (whylabs_upload_integration)
    secrets = ('whylabs_api_key' = whylabs_api_key, 'whylabs_org_id' = whylabs_org_id, 'whylabs_dataset_id' = whylabs_dataset_id)
    packages = ('snowflake-snowpark-python', 'requests', 'whylogs', 'whylabs-client')
    handler = 'whylabs_upload_udf.handler'
    imports = ('@whylabs_udf_stage/v1/latest/whylabs_upload_udf.py')
;

Release 5bfadd12a5aa33da73c2

05 Oct 03:04
Compare
Choose a tag to compare

Publshed S3 Paths

  • Latest UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/setup.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/5bfadd12a5aa33da73c2/setup.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/5bfadd12a5aa33da73c2/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/5bfadd12a5aa33da73c2/whylabs_upload_udf.py

Publishd HTTP paths

  • Latest UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/setup.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/5bfadd12a5aa33da73c2/setup.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/5bfadd12a5aa33da73c2/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/5bfadd12a5aa33da73c2/whylabs_upload_udf.py

Create the latest functions in Snowflake like so. Make sure to see the official doc page
for all of the instructions. This snippet doesn't cover creating the function integrations, network rules and secrets.

CREATE OR REPLACE NETWORK RULE whylabs_profiling_rule
  MODE = EGRESS
  TYPE = HOST_PORT
  VALUE_LIST = ();

CREATE OR REPLACE NETWORK RULE whylabs_api_network_rule
  MODE = EGRESS
  TYPE = HOST_PORT
  VALUE_LIST = ('api.whylabsapp.com', 'log.whylabsapp.com', 'songbird-20201223060057342600000001.s3.us-west-2.amazonaws.com');
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION whylabs_integration
  ALLOWED_NETWORK_RULES = (whylabs_profiling_rule)
  ALLOWED_AUTHENTICATION_SECRETS = (segment_columns, data_grouper_freq)
  ENABLED = true;

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION whylabs_upload_integration
  ALLOWED_NETWORK_RULES = (whylabs_api_network_rule)
  ALLOWED_AUTHENTICATION_SECRETS = (whylabs_api_key, whylabs_org_id, whylabs_dataset_id)
  ENABLED = true;

CREATE OR REPLACE STORAGE INTEGRATION whylabs_s3_integration
  TYPE = EXTERNAL_STAGE
  STORAGE_PROVIDER = 'S3'
  ENABLED = TRUE
  STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::207285235248:role/public-snowflake-role'
  STORAGE_ALLOWED_LOCATIONS = ('s3://whylabs-snowflake-udfs/udfs/')
;


CREATE OR REPLACE STAGE whylabs_udf_stage
  STORAGE_INTEGRATION = whylabs_s3_integration
  URL = 's3://whylabs-snowflake-udfs/udfs/'
;
create or replace function whylogs(data object)
    returns table (
        profile_view varchar,
        dataset_timestamp int,
        segment_partition varchar,
        segment varchar,
        rows_processed int,
        debug_info varchar
    )
    language python
    runtime_version = '3.10'
    external_access_integrations = (whylabs_integration)
    secrets = ('data_grouper_freq' = data_grouper_freq, 'segment_columns' = segment_columns)
    packages = ('snowflake-snowpark-python', 'whylogs', 'pandas')
    handler = 'whylogs_udf.handler'
    imports = ('@whylabs_udf_stage/v1/latest/whylogs_udf.py')
    ;


create or replace function whylabs_upload(profile_view varchar, segment_partition varchar, segment varchar)
    returns table (upload_result varchar)
    language python
    runtime_version = '3.10'
    external_access_integrations = (whylabs_upload_integration)
    secrets = ('whylabs_api_key' = whylabs_api_key, 'whylabs_org_id' = whylabs_org_id, 'whylabs_dataset_id' = whylabs_dataset_id)
    packages = ('snowflake-snowpark-python', 'requests', 'whylogs', 'whylabs-client')
    handler = 'whylabs_upload_udf.handler'
    imports = ('@whylabs_udf_stage/v1/latest/whylabs_upload_udf.py')
;

Release 4caa11f687926c6d5f89

05 Oct 00:28
Compare
Choose a tag to compare

Publshed S3 Paths

  • Latest UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/create.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/4caa11f687926c6d5f89/create.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/4caa11f687926c6d5f89/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/4caa11f687926c6d5f89/whylabs_upload_udf.py

Publishd HTTP paths

  • Latest UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/create.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/4caa11f687926c6d5f89/create.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/4caa11f687926c6d5f89/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/4caa11f687926c6d5f89/whylabs_upload_udf.py

Create the latest functions in Snowflake like so. Make sure to see the official doc page
for all of the instructions. This snippet doesn't cover creating the function integrations, network rules and secrets.

Release 14a1b61c295805865f59

05 Oct 03:09
Compare
Choose a tag to compare

Published S3 Paths

  • Latest UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/setup.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/14a1b61c295805865f59/setup.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/14a1b61c295805865f59/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/14a1b61c295805865f59/whylabs_upload_udf.py

Published HTTP paths

  • Latest UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/setup.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/14a1b61c295805865f59/setup.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/14a1b61c295805865f59/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/14a1b61c295805865f59/whylabs_upload_udf.py

Snowflake SQL

Create the latest functions in Snowflake like so. Make sure to see
the official doc page for all
of the instructions. This snippet doesn't cover creating the
required secrets and secret configuration.

CREATE OR REPLACE NETWORK RULE whylabs_profiling_rule
  MODE = EGRESS
  TYPE = HOST_PORT
  VALUE_LIST = ();

CREATE OR REPLACE NETWORK RULE whylabs_api_network_rule
  MODE = EGRESS
  TYPE = HOST_PORT
  VALUE_LIST = ('api.whylabsapp.com', 'log.whylabsapp.com', 'songbird-20201223060057342600000001.s3.us-west-2.amazonaws.com');
CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION whylabs_integration
  ALLOWED_NETWORK_RULES = (whylabs_profiling_rule)
  ALLOWED_AUTHENTICATION_SECRETS = (segment_columns, data_grouper_freq)
  ENABLED = true;

CREATE OR REPLACE EXTERNAL ACCESS INTEGRATION whylabs_upload_integration
  ALLOWED_NETWORK_RULES = (whylabs_api_network_rule)
  ALLOWED_AUTHENTICATION_SECRETS = (whylabs_api_key, whylabs_org_id, whylabs_dataset_id)
  ENABLED = true;

CREATE OR REPLACE STORAGE INTEGRATION whylabs_s3_integration
  TYPE = EXTERNAL_STAGE
  STORAGE_PROVIDER = 'S3'
  ENABLED = TRUE
  STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::207285235248:role/public-snowflake-role'
  STORAGE_ALLOWED_LOCATIONS = ('s3://whylabs-snowflake-udfs/udfs/')
;


CREATE OR REPLACE STAGE whylabs_udf_stage
  STORAGE_INTEGRATION = whylabs_s3_integration
  URL = 's3://whylabs-snowflake-udfs/udfs/'
;
create or replace function whylogs(data object)
    returns table (
        profile_view varchar,
        dataset_timestamp int,
        segment_partition varchar,
        segment varchar,
        rows_processed int,
        debug_info varchar
    )
    language python
    runtime_version = '3.10'
    external_access_integrations = (whylabs_integration)
    secrets = ('data_grouper_freq' = data_grouper_freq, 'segment_columns' = segment_columns)
    packages = ('snowflake-snowpark-python', 'whylogs', 'pandas')
    handler = 'whylogs_udf.handler'
    imports = ('@whylabs_udf_stage/v1/latest/whylogs_udf.py')
    ;


create or replace function whylabs_upload(profile_view varchar, segment_partition varchar, segment varchar)
    returns table (upload_result varchar)
    language python
    runtime_version = '3.10'
    external_access_integrations = (whylabs_upload_integration)
    secrets = ('whylabs_api_key' = whylabs_api_key, 'whylabs_org_id' = whylabs_org_id, 'whylabs_dataset_id' = whylabs_dataset_id)
    packages = ('snowflake-snowpark-python', 'requests', 'whylogs', 'whylabs-client')
    handler = 'whylabs_upload_udf.handler'
    imports = ('@whylabs_udf_stage/v1/latest/whylabs_upload_udf.py')
;

Release 13f809c1f10108babe89

05 Oct 00:23
Compare
Choose a tag to compare

Publshed S3 Paths

  • Latest UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/create.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/13f809c1f10108babe89/create.sql
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/13f809c1f10108babe89/whylogs_udf.py
    • s3://whylabs-snowflake-udfs/udfs/v1/archive/13f809c1f10108babe89/whylabs_upload_udf.py

Publishd HTTP paths

  • Latest UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/create.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/latest/whylabs_upload_udf.py
  • Version tagged UDFs
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/13f809c1f10108babe89/create.sql
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/13f809c1f10108babe89/whylogs_udf.py
    • https://whylabs-snowflake-udfs.s3.us-west-2.amazonaws.com/udfs/v1/archive/13f809c1f10108babe89/whylabs_upload_udf.py

Create the latest functions in Snowflake like so. Make sure to see the official doc page
for all of the instructions. This snippet doesn't cover creating the function integrations, network rules and secrets.

Release ce0c02b114ec3dbc5ea1

04 Oct 21:54
Compare
Choose a tag to compare

Latest UDF s3 paths

  • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylogs_udf.py
  • s3://whylabs-snowflake-udfs/udfs/v1/latest/whylabs_upload_udf.py

Version tagged UDF s3 paths

  • s3://whylabs-snowflake-udfs/udfs/v1/archive/ce0c02b114ec3dbc5ea1/whylogs_udf.py
  • s3://whylabs-snowflake-udfs/udfs/v1/archive/ce0c02b114ec3dbc5ea1/whylabs_upload_udf.py

Create the latest functions in Snowflake like so. Make sure to see the official doc page
for all of the instructions. This snippet doesn't cover creating the function integrations, network rules and secrets.

CREATE OR REPLACE STORAGE INTEGRATION whylabs_s3_integration
  TYPE = EXTERNAL_STAGE
  STORAGE_PROVIDER = 'S3'
  ENABLED = TRUE
  STORAGE_AWS_ROLE_ARN = 'arn:aws:iam::207285235248:role/public-snowflake-role'
  STORAGE_ALLOWED_LOCATIONS = ('s3://whylabs-snowflake-udfs/udfs/')
;

CREATE OR REPLACE STAGE whylabs_udf_stage
  STORAGE_INTEGRATION = whylabs_s3_integration
  URL = 's3://whylabs-snowflake-udfs/udfs/'
;

CREATE OR REPLACE FUNCTION whylogs(data object)
    RETURNS TABLE (
        profile_view varchar,
        dataset_timestamp int,
        segment_partition varchar,
        segment varchar,
        rows_processed int,
        debug_info varchar
    )
    LANGUAGE python
    RUNTIME_VERSION = '3.10'
    EXTERNAL_ACCESS_INTEGRATIONS = (whylabs_integration)
    SECRETS = ('data_grouper_freq' = data_grouper_freq, 'segment_columns' = segment_columns)
    PACKAGES = ('snowflake-snowpark-python', 'whylogs', 'pandas')
    HANDLER = 'whylogs_udf.handler'
    IMPORTS = ('@whylabs_udf_stage/v1/latest/whylogs_udf.py')
;

CREATE OR REPLACE FUNCTION whylabs_upload(profile_view varchar, segment_partition varchar, segment varchar)
    RETURNS TABLE (upload_result varchar)
    LANGUAGE python
    RUNTIME_VERSION = '3.10'
    EXTERNAL_ACCESS_INTEGRATIONS = (whylabs_upload_integration)
    SECRETS = ('whylabs_api_key' = whylabs_api_key, 'whylabs_org_id' = whylabs_org_id, 'whylabs_dataset_id' = whylabs_dataset_id)
    PACKAGES = ('snowflake-snowpark-python', 'requests', 'whylogs', 'whylabs-client')
    HANDLER = 'whylabs_upload_udf.handler'
    IMPORTS = ('@whylabs_udf_stage/v1/latest/whylabs_upload_udf.py')
;