Como trabalhar com domínios de privacidade como analista

Um domínio de privacidade define os valores possíveis em uma coluna, semelhante a um domínio matemático. O Snowflake usa um domínio de privacidade para determinar a quantidade de ruído a ser introduzida nos resultados.

Para obter uma compreensão completa dos domínios de privacidade antes de concluir as tarefas nesta seção, consulte Sobre domínios de privacidade.

Se o provedor de dados seguir as práticas recomendadas, a maioria das colunas numéricas e categóricas em uma tabela protegida por privacidade terá um domínio de privacidade. Se o provedor de dados não definiu um domínio de privacidade em uma coluna que você deseja agregar ou usar em uma cláusula GROUP BY, você precisará moldar sua consulta para que ela inclua técnicas que especifiquem implicitamente um domínio de privacidade para essa coluna. Os domínios de privacidade que o provedor de dados definiu na tabela também podem ser perdidos com base nas operações feitas na tabela. Por exemplo, se você agregar um campo em uma subconsulta com GROUP BY, o sistema pode não conseguir derivar um domínio de privacidade devido a restrições de privacidade.

Você também pode escrever sua consulta para restringir um domínio de privacidade definido pelo provedor de dados. Essa substituição pode ajudar a melhorar os resultados da sua agregação.

Nota

Para atender aos requisitos de junção com uma tabela protegida por privacidade, um analista pode precisar definir um domínio de privacidade para uma coluna de sua própria tabela, mesmo que ela não seja protegida por privacidade. Esses domínios de privacidade são definidos no nível da tabela e se aplicam a todas as consultas na tabela. Se você for um administrador do analista e precisar especificar um domínio de privacidade para a coluna de uma de suas tabelas, consulte Definição de um domínio de privacidade.

Visualização de domínios de privacidade

É útil visualizar os domínios de privacidade de uma tabela protegida por privacidade antes de consultar a tabela. A verificação dos domínios de privacidade de cada coluna pode ajudar das seguintes maneiras:

  • Determine se o provedor de dados definiu um domínio de privacidade para uma coluna.

  • Determine os possíveis valores encontrados na coluna, o que pode ajudá-lo a melhorar sua análise. Por exemplo, se o domínio de privacidade for um intervalo de valores possíveis encontrados na coluna, você poderá determinar o mínimo e o máximo do intervalo.

  • Investigue por que você está obtendo mais ruído em seus resultados do que o esperado. Você pode identificar se há valores discrepantes que não são importantes para sua análise e removê-los da sua agregação para melhorar os resultados.

Para ver se uma coluna tem um domínio de privacidade e, em caso afirmativo, determinar o tipo e os valores possíveis do domínio, consulte Exibição de um domínio de privacidade.

Especificação de um domínio de privacidade

Esta seção descreve as técnicas que um analista pode usar para definir um domínio de privacidade durante a duração de uma consulta. Ele resume como a estrutura de uma consulta especifica um domínio de privacidade para uma coluna.

Especifique um domínio de privacidade para colunas de cadeia de caracteres

Filtrar uma coluna de cadeia de caracteres usando uma cláusula WHERE especifica um domínio de privacidade para ela. O domínio de privacidade consiste nos valores que correspondem ao filtro. Por exemplo, as consultas especificam um domínio de privacidade para a coluna product se incluírem as seguintes cláusulas:

WHERE product = 'hackeysack' OR product = 'frisbee'
Copy
WHERE product IN ('hackeysack', 'frisbee')
Copy

O domínio de privacidade é uma lista enumerada que consiste em hackeysack e frisbee.

Se o provedor de dados já definir um domínio de privacidade na coluna product, o Snowflake usará a interseção dos dois domínios de privacidade durante a consulta. Para obter mais informações, consulte Interação entre domínios de privacidade especificados pelo administrador e pelo analista.

Valores fora do domínio de privacidade para colunas de cadeia de caracteres são tratados como NULL.

Especifique um domínio de privacidade para colunas numéricas, de data e de hora

Você pode usar cláusulas de filtragem ou transformações de coluna para especificar um domínio de privacidade para uma coluna numérica, de data ou de hora. Essas técnicas de consulta especificam um domínio de privacidade que é um intervalo de valores possíveis.

Você pode usar as seguintes técnicas para especificar um domínio de privacidade para uma coluna numérica, de data ou de hora:

Cláusula WHERE

Por exemplo:

WHERE a < 10 AND a >= 0
Copy

O domínio de privacidade especificado da coluna a está entre 0 e 10.

Se o provedor de dados já definir um domínio de privacidade na coluna a, o Snowflake usará a interseção dos dois domínios de privacidade durante a consulta. Para obter mais informações, consulte Interação entre domínios de privacidade especificados pelo administrador e pelo analista.

O uso de um filtro remove os valores que estão fora do domínio de privacidade, o que significa que esses valores são ignorados no cálculo das agregações. Para obter mais informações, consulte Numérico, data e hora.

Transformações de colunas GREATEST e LEAST

Por exemplo:

GREATEST(LEAST(a, 100), 0) AS clamped_a
Copy

O intervalo especificado do domínio de privacidade está entre 0 e 100.

Se o provedor de dados já definir um domínio de privacidade na coluna a, o Snowflake usará a interseção dos dois domínios de privacidade durante a consulta. Para obter mais informações, consulte Interação entre domínios de privacidade especificados pelo administrador e pelo analista.

Se você estiver restringindo um domínio de privacidade definir pelo provedor de dados, poderá usar apenas uma das transformações GREATEST ou LEAST para diminuir o máximo ou aumentar o mínimo, mantendo a outra extremidade do intervalo igual ao domínio de privacidade definido pelo provedor de dados.

Os valores na coluna que estão fora do domínio de privacidade são fixados, o que significa que são tratados como se fossem o valor mais próximo no domínio (o valor mínimo ou máximo).

Como restringir um domínio de privacidade para melhorar os resultados

O Snowflake deve introduzir ruído suficiente para ocultar valores exatos dentro de um domínio de privacidade. Se o domínio de privacidade incluir valores que sejam discrepantes em relação à maioria dos dados na coluna, o Snowflake deverá aumentar o ruído para obscurecer a presença desses valores. Substituir um domínio de privacidade para restringir seu alcance pode reduzir o ruído porque o Snowflake não precisa mais obscurecer a presença de valores que não são importantes para sua análise.

A técnica que você usa para restringir um domínio de privacidade afeta como suas agregações são calculadas. Sua escolha depende do que é importante para sua análise.

  • Se você usar um filtro (cláusula WHERE) para restringir o domínio de privacidade, os valores fora do domínio serão ignorados ao calcular agregações.

    O uso de um filtro é a técnica preferida quando você acha que os valores discrepantes de um domínio de privacidade se devem a problemas de qualidade dos dados ou se esses valores não são relevantes para sua consulta. A exclusão dos valores discrepantes do domínio de privacidade pode manter a integridade de sua análise e, ao mesmo tempo, reduzir significativamente o ruído introduzido em seus resultados.

  • Se você usar uma transformação de coluna, os valores na coluna que estão fora do domínio serão fixados, o que significa que eles serão tratados como se fossem o valor mais próximo no domínio (o valor mínimo ou máximo).

    O uso de uma transformação de coluna pode melhorar sua análise, mesmo se você achar que os valores discrepantes não são problemas de qualidade de dados. Por exemplo, se você estiver calculando a média de valores, restringir valores discrepantes usando uma transformação de coluna pode melhorar sua análise.

Nota

Se a sua consulta incluir filtros altamente seletivos que visam um número limitado de registros em um conjunto de dados, a quantidade relativa de ruído na verdade aumentará porque o Snowflake deve garantir que você não possa usar seus resultados para identificar um indivíduo.