如何去识别大查询表中已经存在的数据,然后重新识别相同的数据并加载到其他 BQ 表中。
谢谢
我创建了一个示例,使用“去识别敏感数据”通过以下属于数据丢失防护 (DLP) API 的转换来去识别数据,然后将它们插入 BigQuery,但是需要重新识别数据加密令牌。为此,您可以使用Cloud DLP中支持的加密方法:
在这篇文章中,提到了使用确定性加密实现转换的一些密钥和步骤,但是您可以使用您喜欢的那个。
正如回答的那样,执行此操作的简单方法是遵循 Dataflow 管道教程
最后但并非最不重要的一点是,我与您分享了一个示例,说明如何通过替换由我用来模拟您的 BigQuery 数据的伪造库生成的数据来进行去标识化。
from faker import Faker
from google.cloud import dlp_v2
fake = Faker()
dlp = dlp_v2.DlpServiceClient()
def create_fake_data(data_length=5):
data = []
headers = [
{"name": "name"}, {"name": "email"},
{"name": "credit_card"}, {"name": "credit_card_provider"},
{"name": "phone"}]
for i in range(data_length):
data.append({"values":
[
{"string_value": fake.unique.first_name()},
{"string_value": fake.free_email()},
{"string_value": fake.unique.credit_card_number()},
{"string_value": fake.credit_card_provider()},
{"string_value": fake.phone_number()},
]
}
)
return {"table": {"headers": headers, "rows": data}}
def deidentify_with_replace(item):
parent = "projects/julio-castor-mx"
inspect_config = {"info_types": [
{"name": "EMAIL_ADDRESS"},
{"name": "CREDIT_CARD_NUMBER"},
{"name": "PHONE_NUMBER"}]}
deidentify_config = {
"info_type_transformations": {
"transformations": [
{
"primitive_transformation": {
"replace_config": {
"new_value": {"string_value": "[IDENTIFIED]"},
}
}
}
]
}
}
response = dlp.deidentify_content(
request={
"parent": parent,
"deidentify_config": deidentify_config,
"inspect_config": inspect_config,
"item": item
}
)
return response.item
if __name__ == "__main__":
data = create_fake_data()
deidentify_data = deidentify_with_replace(data)
请考虑该参数定义创建去识别InfoType
的 DLP检测器。这些检测器在此处列出,并使用Table
object取消识别表。
您可以在此存储库中查看更多示例
最简单的方法是使用数据流管道调用 deidentifyContent。