本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
第 3 步:创建 Lake Formation 数据库
在此步骤中,您将创建两个数据库,并将 LF-Tag 附加到数据库和特定列以进行测试。
创建用于数据库级别访问的数据库和表
-
首先,创建数据库
tag_database
、表source_data
,并附加相应的 LF 标签。在 Lake Formation 控制台 (https://console.aws.amazon.com/lakeformation/
) 的 “数据目录” 下,选择 “数据库”。 选择创建数据库。
在名称中,输入
tag_database
。对于位置,输入通过 Amazon CloudFormation 模板
(s3://lf-tagbased-demo-
创建的 Amazon S3 位置。Account-ID
/tag_database/)取消选中仅对此数据库中的新表使用 IAM 访问控制。
选择创建数据库。
-
接下来,在
tag_database
中创建一个新表。在数据库页面上,选择数据库
tag_database
。选择查看表,然后单击创建表。
在名称中,输入
source_data
。对于 Database (数据库),选择
tag_database
数据库。对于表格格式,请选择标准Amazon Glue表格。
对于数据位置,选择我的账户中的指定路径。
在“包含路径”中,输入要通过 Amazon CloudFormation 模板
(s3://lf-tagbased-demo
创建的Account-ID
/tag_database/)tag_database
的路径。对于数据格式,选择 CSV。
在上传架构下,输入以下 JSON 列结构数组以创建架构:
[ { "Name": "vendorid", "Type": "string" }, { "Name": "lpep_pickup_datetime", "Type": "string" }, { "Name": "lpep_dropoff_datetime", "Type": "string" }, { "Name": "store_and_fwd_flag", "Type": "string" }, { "Name": "ratecodeid", "Type": "string" }, { "Name": "pulocationid", "Type": "string" }, { "Name": "dolocationid", "Type": "string" }, { "Name": "passenger_count", "Type": "string" }, { "Name": "trip_distance", "Type": "string" }, { "Name": "fare_amount", "Type": "string" }, { "Name": "extra", "Type": "string" }, { "Name": "mta_tax", "Type": "string" }, { "Name": "tip_amount", "Type": "string" }, { "Name": "tolls_amount", "Type": "string" }, { "Name": "ehail_fee", "Type": "string" }, { "Name": "improvement_surcharge", "Type": "string" }, { "Name": "total_amount", "Type": "string" }, { "Name": "payment_type", "Type": "string" } ]
选择上传。上传架构后,表架构看上去应如以下屏幕截图所示:
选择提交。
-
接下来,在数据库级别附加 LF 标签。
在数据库页面上,找到并选择
tag_database
。在 “操作” 菜单上,选择 “编辑 LF 标签”。
选择分配新的 LF 标签。
对于分配的密钥,请选择您之前创建的
Confidential
LF-Tag。对于值,选择
True
。选择保存。
这样就完成了对 tag_database 数据库的 LF-Tag 赋值。
创建用于列级别访问的数据库和表
重复以下步骤创建数据库col_tag_database
和表source_data_col_lvl
,并在列级别附加 LF-Tag。
在数据库页面上,选择创建数据库。
-
在名称中,输入
col_tag_database
。 -
对于位置,输入通过 Amazon CloudFormation 模板
(s3://lf-tagbased-demo-
创建的 Amazon S3 位置。Account-ID
/col_tag_database/) -
取消选中仅对此数据库中的新表使用 IAM 访问控制。
-
选择创建数据库。
在数据库页面上,选择您的新数据库
(col_tag_database)
。选择 “查看表”,然后单击 “创建表”。
在名称中,输入
source_data_col_lvl
。对于数据库,选择您的新数据库
(col_tag_database)
。对于表格格式,请选择标准Amazon Glue表格。
对于数据位置,选择我的账户中的指定路径。
输入
col_tag_database
(s3://lf-tagbased-demo-
的 Amazon S3 路径。Account-ID
/col_tag_database/)对于数据格式,选择
CSV
。在
Upload schema
下方,输入以下架构 JSON:[ { "Name": "vendorid", "Type": "string" }, { "Name": "lpep_pickup_datetime", "Type": "string" }, { "Name": "lpep_dropoff_datetime", "Type": "string" }, { "Name": "store_and_fwd_flag", "Type": "string" }, { "Name": "ratecodeid", "Type": "string" }, { "Name": "pulocationid", "Type": "string" }, { "Name": "dolocationid", "Type": "string" }, { "Name": "passenger_count", "Type": "string" }, { "Name": "trip_distance", "Type": "string" }, { "Name": "fare_amount", "Type": "string" }, { "Name": "extra", "Type": "string" }, { "Name": "mta_tax", "Type": "string" }, { "Name": "tip_amount", "Type": "string" }, { "Name": "tolls_amount", "Type": "string" }, { "Name": "ehail_fee", "Type": "string" }, { "Name": "improvement_surcharge", "Type": "string" }, { "Name": "total_amount", "Type": "string" }, { "Name": "payment_type", "Type": "string" } ]
选择
Upload
。上传架构后,表架构看上去应如以下屏幕截图所示:选择提交以完成表的创建。
-
现在,将
Sensitive=True
LF-Tag 关联到列和vendorid
。fare_amount
在表页面上,选择您创建的表
(source_data_col_lvl)
。在 “操作” 菜单上,选择 “架构”。
选择该列
vendorid
并选择 “编辑 LF-Tags”。对于已分配的键,选择区分大小写。
对于值,选择 True。
选择保存。
-
接下来,将
Confidential=False
LF-Tag 关联到。col_tag_database
这是在登录col_tag_database
时lf-data-analyst
能够描述数据库所必需的Amazon Athena。在数据库页面上,找到并选择
col_tag_database
。在 “操作” 菜单上,选择 “编辑 LF 标签”。
选择分配新的 LF 标签。
对于分配的密钥,请选择您之前创建的
Confidential
LF-Tag。对于值,选择
False
。选择保存。