Oracle LiveLabs实验:Self-service Tools for Everyone Using Oracle Autonomous Database
Posted dingdingfish
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle LiveLabs实验:Self-service Tools for Everyone Using Oracle Autonomous Database相关的知识,希望对你有一定的参考价值。
概述
本次研讨会的目的是向您介绍 Oracle 自治数据仓库中内置的数据工具套件。
此实验申请地址在这里。
实验帮助在这里。
本实验的作者为Patrick Wheeler等,贡献者为Nilay Panchal, Rick Green, Keith Laker, Marty Gubar, Bud Endress, Jayant Mahto, Mike Matthews, Ashish Jain。
预计研讨会持续时间:1 小时 40 分钟
简介
谁应该使用这个研讨会?
每个人都可以从本研讨会的实验室练习中受益:技术专家(数据仓库架构师到数据库管理员)、想要专注于从自己的数据中提取意义和洞察力的业务用户,以及想要在数据仓库项目的上下文中构建机器学习模型的数据科学家。
业务场景
Oracle MovieStream 是一家虚构的在线电影流媒体公司。 客户使用他们的计算机、平板电脑和手机登录 Oracle MovieStream,在那里他们会看到基于他们过去的观看行为的有针对性的电影列表。 该公司现在正在寻找更好、更智能的方法来跟踪绩效,通过活动确定目标客户,以推广新服务、新电影和新观看平台。
本研讨会其余部分中的许多场景很可能与您在业务中遇到的挑战相匹配,我们希望以下示例能让您深入了解 Oracle 如何帮助您解决这些常见的日常挑战。
实验 1:配置 ADB 实例
介绍
本实验将引导您完成开始使用 Oracle 云上的 Oracle 自治数据库(自治数据仓库 [ADW] 和自治事务处理 [ATP])的步骤。 在本实验中,您将预配一个新的 ADW 实例。
创建一个ADW实例,参数如下:
- Display Name: ADW_Finance_Mart
- Database Name: ADWFINANCE
- workload type: Data Warehouse
- deployment type: Shared Infrastructure
- OCPU count: 1
- Storage (TB): 1
- Auto Scaling: 启用
- New Database Preview:不启用,不过我也没看见此选项
- network access: Secure access from everywhere,此选项要求mutual TLS (mTLS) 认证
- license type:BYOL
如果你希望实验性能快些,也可以配置4 OCPU。
学到更多
转到有关使用自治数据仓库的典型工作流程的文档。
实验 2:创建数据库用户
介绍
在本实验中,您将:
- 创建您将在下一个实验中使用的数据库用户
- 更新用户的个人资料以授予加载和存储数据的访问权限
- 以用户身份登录
任务 1:创建新的数据库用户
创建新数据仓库时,您会自动获得一个名为 ADMIN 的帐户,该帐户是您的超级管理员用户。 在现实世界中,您肯定希望将数据仓库数据与管理流程完全分开。 因此,您需要知道如何创建单独的新用户并授予他们访问您的数据仓库的权限。 本节将指导您使用 SQL 工作表(自治数据仓库中的内置工具之一)中的“新用户”向导完成此过程。
进入自治数据库的Database Actions>Administration>DATABASE USERS
菜单。单击Create User
。
以下为user部分的设置,其它均保持默认:
- Username:QTEAM
- Web Access:ON
- Quota on tablespace DATA:unlimited
在Granted Roles部分,保证以下角色在Granted列和Default列都选中:
- ADPBETA
- DATA_TRANSFORM_USER
- DWROLE
-- USER SQL
CREATE USER QTEAM IDENTIFIED BY Abcdef_123456;
-- ADD ROLES
GRANT ADP$IMPL TO QTEAM;
GRANT ADPADMIN TO QTEAM;
GRANT ADPUSER TO QTEAM;
GRANT CONNECT TO QTEAM;
GRANT DATA_TRANSFORM_USER TO QTEAM;
GRANT DWROLE TO QTEAM;
GRANT RESOURCE TO QTEAM;
ALTER USER QTEAM DEFAULT ROLE ADP$IMPL,ADPADMIN,ADPUSER,CONNECT,DATA_TRANSFORM_USER,DWROLE,RESOURCE;
-- ENABLE REST
BEGIN
ORDS.ENABLE_SCHEMA(
p_enabled => TRUE,
p_schema => 'QTEAM',
p_url_mapping_type => 'BASE_PATH',
p_url_mapping_pattern => 'qteam',
p_auto_rest_auth=> TRUE
);
commit;
END;
/
-- QUOTA
ALTER USER QTEAM QUOTA UNLIMITED ON DATA;
请注意,已经自动分配了两个附加角色:CONNECT 和 RESOURCE。
任务 2:以 QTEAM 用户身份登录
从ADMIN用户logout,再选择login即可。
学到更多
请参阅有关在自治数据库上管理用户的文档。 本主题描述了在自治数据库上管理用户的管理任务。
致谢
作者为Keith Laker,贡献者Nilay Panchal, Rick Green, Patrick Wheeler, Marty Gubar, Bud Endress, Jayant Mahto, Mike Matthews, Ashish Jain。
实验 3:使用自治数据库工具
介绍
本实验介绍了 Oracle 自治数据仓库中内置的数据工具套件。
预计时间:1小时15分钟
目标
在本实验中,您将:
- 熟悉 Oracle 自治数据仓库的内置数据库工具套件
- 加载数据
- 了解如何使用数据转换工具来纠正数据错误
- 创建分析视图
- 生成数据洞察
- 使用目录工具
任务 1:内置数据工具套件概述
自治数据仓库附带一套内置工具,可以帮助您完成许多典型的数据仓库任务。该工具套件是对可通过 SQL 命令行访问的各种功能的补充,这些功能本身已被其他研讨会所涵盖。为了探索这些新的内置工具如何让您更智能、更快速地工作,您将担任 MovieStream 的部门分析师。作为部门分析师,您的任务是审查 2020 财年第二季度的销售数据,并根据此分析为营销活动提出建议。
注意:MovieStream 的财政年度与日历年一致,因此 FYQ2 为 4 月至 6 月。
在研讨会的这一部分,您将了解一些常见的数据仓库需求和场景,您在自己的项目中经常会遇到这些需求和场景:
- 加载并检查数据以查看是否有任何明显的错误
- 转换数据以纠正原始数据集中的错误
- 在数据集上创建分析视图(也称为语义模型)
- 运行 Data Insights 工具以识别数据集中的异常和异常值
- 使用内置目录了解数据仓库中数据的来源(这称为数据沿袭或数据血缘)
- 使用内置目录了解对数据模型进行更改的影响(这称为影响分析)
进入用户qteam的Database Actions页面,此页面针对数据仓库用户希望执行的每个最常见任务都有一张卡片。 卡片按主题分组。 有开发组、数据工具组、管理组和监控组。 每张卡片都有一个标题和描述。
右上角的?为在线帮助。
任务 2:加载数据
在分析中,就像在流媒体电影业务中一样,良好的开端是必不可少的。 MovieStream 的分析师密切关注客户在几分钟后放弃电影的普遍情况,可能是因为开局不佳。 同样,我们 Oracle 自治数据库知道数据加载是您分析工作的开始,我们的数据加载工具旨在确保您有一个良好的开端。
概述
在本节中,您将探索如何加载存储在本地计算机上的电子表格,并将该数据与存储在 Oracle 对象存储中的另一个数据集结合起来。 当您加载这些不同的数据文件时,您会发现某些数据的格式不正确。 有时很难发现隐藏在数据集中的问题,但正如您将看到的,自治数据仓库具有独特的工具来帮助您发现在大多数数据仓库项目中发现的典型数据错误。
单击“Database Actions”页面上的DATA LOAD(位于Data Studio主题下)。
卡片的布局分为三行:
- 第 1 行 - 确定您将如何获取源数据:加载、链接到源数据或使用涓流馈送数据
- 第 2 行 - 数据的存储位置:本地文件、另一个数据库或云对象存储
- 第 3 行 - 允许您探索数据并管理与各种云对象存储的连接,例如 Oracle 对象存储、亚马逊的 S3、微软的 Azure Blob 存储和谷歌的对象存储。
数据分析的第一步是加载可能来自多种来源的数据。自治数据仓库支持来自非常广泛的来源的数据加载。在本次研讨会中,您将探索从两个主要数据源加载数据——本地磁盘上的文件和对象存储中的文件。所有要加载到 ADW 中的文件都在 OCI 云存储中。下一部分,从本地文件加载数据,首先让您将其中一些文件下载到本地磁盘。当然,这模拟了现实世界的情况,您必须分析的一些数据可能是从网站下载的,或者可能作为附件通过电子邮件到达。但是,您用于运行研讨会的环境可能不允许您将文件下载到本地计算机。因此,这些研讨会笔记包括加载所需数据的另一种方法,即使用存储在 Oracle 对象存储中的数据文件。当您完成本研讨会的下一系列步骤时,这一切都会变得清晰。
注意:本次研讨会只关注两种加载数据的方法。 在本次研讨会中,包含来自所有受支持来源的数据加载场景是不切实际和不切实际的。 自治数据仓库都支持从应用程序和数据库加载数据,但不在本次研讨会的范围内。 有关数据加载的更多信息,请参阅文档,单击此处。
从本地文件加载数据
如果希望加快实验进度,可以直接跳到从对象存储加载数据
出于这些目的,您的 IT 团队已向您提供了一份数据摘录,并将其作为 .CSV 文件提供。 该文件已放置在 Oracle 对象存储中的存储桶中。 作为该项目的一部分,您还将重用您过去为营销部门的同一团队完成的先前任务中的一些数据文件。 这些额外的数据文件需要移动到您的计算机上,以便您可以将它们加载到您的数据仓库中。
以下是您将在本部分研讨会期间使用的四个文件。 在开始之前,您需要将三个文件下载到本地计算机并记下它们的存储位置,因为您将需要在本节后面使用它们。 单击以下三个链接中的每一个以下载两个电子表格文件和 csv 文本文件。
- Movie_Sales_2020.csv 此 CSV 文件存储在 Object Storage 公共存储桶中。 这将在单独的步骤中加载。
- 单击此处将 Days_Months.xlsx Excel 文件下载到您的本地计算机。
- 单击此处将 Devices.xlsx Excel 文件下载到您的本地计算机。
- 单击此处将 Country.csv CSV 文件下载到您的本地计算机。
在LOAD DATA - LOCAL FILE中,将下载的3个文件拖拽到面板。
为什么数据加载屏幕上列出了四张卡片? 这是因为您的电子表格文件 Days_Months.xlsx 包含两个工作表:一个用于 Days,一个用于 Months。 数据加载向导会自动解析您的电子表格并为每个工作表创建单独的数据加载卡。
铅笔图标是设置、文件、表格和错误日志的链接。 此屏幕截图显示“设置”页面。 请注意,这显示了数据向导通过简单查看文件创建的结构信息和智能默认值。
我们可以看到列名源自表头,表明源自文件名。
该向导会在数据加载过程中为您创建表格! 另请注意,向导已自动映射列。 就列名和数据类型而言,列映射看起来很明智。
加载每个文件所需的时间取决于文件大小和网络速度等因素。 可以从状态栏和每个作业卡左侧的圆环监控作业的进度。 响铃完成后,文件已成功上传。
在Catalog中可以看到刚加载的表的信息:
点击右上角的省略号图标,可以查看详情。
这里可以看到数据预览,数据血缘和DDL语句等。可以看到,统计信息加载后并没有搜集。搜集完统计信息后的视图如下:
回顾:从本地文件加载数据
在研讨会的这一部分中,您使用了新的数据加载工具,只需将三个本地数据文件拖放到数据加载画布上,即可将数据快速加载到您的数据仓库中。 一个文件是 CSV 格式,另外两个是 Excel 电子表格。 其中一个电子表格包含两个工作表,每个工作表都加载到自己的表格中。 数据加载过程会根据每个文件中的数据自动创建一个包含适当列结构的目标表。
只需单击几下,您就可以定义数据并将其加载到四个新表中,而无需编写任何 SQL 代码。 这一切都是通过点击几下鼠标完成的。
从对象存储加载数据
在实验的这一部分,您将加载更多数据,但这次使用的是 Oracle 对象存储中的文件。 这个过程有两个部分,第一个部分只需要执行一次。 这两部分是:
- 设置到 Oracle 对象存储的连接。
- 加载文件。
在CLOUD LOCATIONS中设置:
单击右上角Add Cloud Store Location:
按下表填写,URI我选择的Japan,数据文件在这几个Region都已经预先放好了:
实际的过程如下:
Cloud Store Location创建好后,我们就可以从其中加载数据了。
我们只需要拖拽一个文件 MOVIE_SALES_2020.csv,即事实表,约40MB:
双击可以看到加载的详情:
其中File是文件的数据预览;Table是自治数据库中表的预览;SQL是建表和加载的语句,如下:
CREATE TABLE "QTEAM"."MOVIE_SALES_2020"
(
"COUNTRY" VARCHAR2(32767)
,"DAY" VARCHAR2(32767)
,"MONTH" VARCHAR2(32767)
,"GENRE" VARCHAR2(32767)
,"CUSTOMER_SEGMENT" VARCHAR2(32767)
,"DEVICE" VARCHAR2(32767)
,"SALES" NUMBER
,"PURCHASES" NUMBER
);
DECLARE
l_TABLE_NAME DBMS_QUOTED_ID := '"MOVIE_SALES_2020"';
l_CREDENTIAL_NAME DBMS_QUOTED_ID := null;
l_FILE_URI_LIST CLOB :=
q'['https://objectstorage.ap-tokyo-1.oraclecloud.com/n/dwcsprod/b/MovieStream/o/Movie_Sales_2020.csv']';
l_FIELD_LIST CLOB :=
'"COUNTRY" CHAR(32767)
,"DAY" CHAR(32767)
,"MONTH" CHAR(32767)
,"GENRE" CHAR(32767)
,"CUSTOMER_SEGMENT" CHAR(32767)
,"DEVICE" CHAR(32767)
,"SALES" CHAR
,"PURCHASES" CHAR';
l_FORMAT CLOB :=
'
"delimiter" : ",",
"ignoremissingcolumns" : true,
"ignoreblanklines" : true,
"blankasnull" : true,
"trimspaces" : "lrtrim",
"quote" : "\\"",
"characterset" : "AL32UTF8",
"skipheaders" : 1,
"logprefix" : "MOVIE_SALES_2020",
"rejectlimit" : 10000000,
"recorddelimiter" : "X''0A''"
';
l_OPERATION_ID NUMBER ; /* OUT */
BEGIN
"C##CLOUD$SERVICE"."DBMS_CLOUD"."COPY_DATA"
( TABLE_NAME => l_TABLE_NAME
,CREDENTIAL_NAME => l_CREDENTIAL_NAME
,FILE_URI_LIST => l_FILE_URI_LIST
,FIELD_LIST => l_FIELD_LIST
,FORMAT => l_FORMAT
,OPERATION_ID => l_OPERATION_ID
);
END;
/
DECLARE
l_ACTIONS CLOB :=
'
"tableName" : "MOVIE_SALES_2020",
"postIngestActions" :
[
"type" : "columnTrim"
]
';
BEGIN
"C##ADP$SERVICE"."DBMS_INGEST_ACTIONS"."RUN_POST"(l_ACTIONS);
END;
/
Data Definition是DDL:
CREATE TABLE "QTEAM"."MOVIE_SALES_2020"
( "COUNTRY" VARCHAR2(64) COLLATE "USING_NLS_COMP",
"DAY" VARCHAR2(64) COLLATE "USING_NLS_COMP",
"MONTH" VARCHAR2(64) COLLATE "USING_NLS_COMP",
"GENRE" VARCHAR2(64) COLLATE "USING_NLS_COMP",
"CUSTOMER_SEGMENT" VARCHAR2(64) COLLATE "USING_NLS_COMP",
"DEVICE" VARCHAR2(64) COLLATE "USING_NLS_COMP",
"SALES" NUMBER,
"PURCHASES" NUMBER
) DEFAULT COLLATION "USING_NLS_COMP" SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
COLUMN STORE COMPRESS FOR QUERY HIGH ROW LEVEL LOCKING LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DATA" ;
在Catalog中预览数据:
展开DAY和MONTH,可以看到数据详情。
您可以看到有 14 个不同的值 - 这看起来很奇怪。 低值是 FRIDAY(即全部大写),高值是周三,即标题大小写。 这些值的分布显示在表格底部的条形图中(见上图)。 当您在这些条上移动鼠标时,您可以看到每天有两个单独的条:一个为大写,另一个为标题。
您还可以看到您有十二个月的数据。 这应该不足为奇,因为您在上一步中加载的数据提取是针对 2020 年的。但是,对于您的季度报告项目,显然您有太多月份:您的任务是仅分析第二季度的数据。
现在,只需记下这些问题。 您将在研讨会的后期阶段解决这些问题。
虽然对象存储中也有维度表或参考表,但由于它们已经从本地磁盘中加载,所以我们可以略过这一步骤。
注意:
- 自治数据库支持从本地磁盘上传 .xlsx 文件,但不支持从对象存储上传。 当前仅支持 .csv 文件。
- 自治数据库当前不支持从对象存储中的子文件夹加载文件。
在从对象存储加载数据期间,自治数据仓库会创建许多辅助表用于记录目的。
可以用SQL语句删除这些辅助表:
drop table CLOUD_INGEST_LOG purge;
回顾
在本节中,您将数据从本地计算机和对象存储中的文件加载到 ADB 中。 在这两种情况下,这只是一个拖放的问题。 检查表 MOVIE_SALES_2020 中的数据发现了两个问题:
- 你有太多数据:2020 年全年的电影消费,而你只需要第二季度的数据。
- 列 DAY 包含大写和标题大小写的值。
您将在研讨会的下一个任务中纠正这些数据问题。
任务 3:使用数据转换
正如 MovieStream 的优秀员工为 SciFi 阵容感到非常自豪一样,我们自治数据库团队也为我们的数据转换工具感到非常自豪。 在科幻类型中有一个同名的电影系列,其粉丝将真正体会到可以将第三范式应用程序模式转换为适合分析的星型模式的工具的价值。 即使只是对源数据的快速清理,您也会很高兴拥有触手可及的数据转换工具。
概述
在本实验部分中,您将更正本实验上一部分中确定的数据错误。 在本实验的未来版本中,我们将向您展示如何通过数据转换工具使用拖放技术来做到这一点。
作为使用数据转换工具的替代方法,您可以使用 SQL 对数据集执行必要的修复。 这在此处进行了介绍。
create table MOVIE_SALES_2020Q2 as
select COUNTRY
, initcap(DAY) as DAY -- Use title case for days
, MONTH
, GENRE
, CUSTOMER_SEGMENT
, DEVICE
, SALES
, PURCHASES
FROM MOVIE_SALES_2020
where month in ('April','May','June'); -- only want data from Q2
exec dbms_stats.gather_table_stats(user, 'MOVIE_SALES_2020Q2');
Table MOVIE_SALES_2020Q2 created.
Elapsed: 00:00:01.912
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.441
任务 4:分析数据
MovieStream 评论角:分析视图
你知道和朋友和家人在一起从电影的中途看起的的那种令人沮丧的感觉吗?错过了介绍,您看到的大部分内容对您来说毫无意义。通常这就是查看一堆没有良好语义模型的数据的感觉。这就是自治数据库的数据分析工具的用武之地。自动检测层次结构、维度和度量,让您领先一步。分析视图内置在数据库本身中,因此数据库的所有用户都可以访问它,而不管他们使用哪种工具来访问数据。分析视图允许用户在数据库表之上对业务维度、层次结构和度量进行建模。
概述
您只能查看原始数据。不久之后,您就需要一个语义模型。这就是我们的数据分析工具的用武之地。通过识别维度、层次结构和度量,我们可以轻松地在您的数据上构建复杂的模型 - 用一种很好的简洁方式来说明如何聚合 - 总和、平均值或其他任何东西。但是等等,还有更多。我们也做得很快!针对分析视图编写的简单 SQL 被重写以确保最佳数据访问,并且由于我们了解数据的层次结构,我们可以在您告诉我们之前预先汇总您想要的总计和小计你想要他们!此外,我们还提供了使用数据透视表和图表等可视化工具轻松分析数据的工具。
确保事实表选择的是MOVIE_SALES_2020Q2_AV,而不是全年的数据。
单击Generate Hierarchies and Measures,开始自动Analytic View过程。
从屏幕左侧的面板中选择数据源。 您将看到已根据您在本实验的前面步骤中加载的表确定了星型模式。 事实表 MOVIE_SALES_2020Q2 的所有列均已显示。
按 DAYS 表右侧的三个点,然后选择展开。 对其他三个维度表重复此操作。 此外,该工具已经确定了开箱即用的层次结构和度量,然后可以根据您的需要进行修改。 您应该看到星型模式的布局如下:
从屏幕左侧的层次结构列表中选择 COUNTRIES 层次结构。 请注意,数据分析工具已根据自治数据仓库中表的结构和内容检测到大陆内的国家层次结构。 另请注意,此层次结构是从与我们选择的事实表相关的 COUNTRIES 表创建的,即。 MOVIE_SALES_2020Q2。
这是一个很好的开端,但用于此层次结构的更好术语是地理。 用 GEOGRAPHY 覆盖默认的层次结构名称。
清理层次结构 DAYS,在 Hierarchies 下的左侧导航栏上选择 Days 层次结构。将层次结构名称更改为 DAY。
这只是一个星期几层次结构,但现在您将看到销售分析师在之前的分析中设置的表的值。 按字母顺序排列日期并不是特别有用。 更可取的是按星期几排序。 世界各地的天数惯例各不相同,DAYS 表同时支持欧洲和北美惯例。 您将在本练习中使用北美惯例。
同样,按如下方式更改 MONTHS 维度:
现在从屏幕左侧的列表中展开度量。 请注意,Auto-AV 工具已将 SALES 和 PURCHASES 识别为事实表中的候选度量(因为它们是数字列)。
- 衡量 SALES 是一个美元金额。
- Measure PURCHASES 是对购买次数的统计。
目前为止,Create Analytic View的SQL如下(单击左下方的Show DDL):
CREATE OR REPLACE ATTRIBUTE DIMENSION "QTEAM"."MOVIE_SALES_2020Q2_AV_DAY_AD"
DIMENSION TYPE STANDARD
CLASSIFICATION "CAPTION" VALUE 'DAY'
CLASSIFICATION "DESCRIPTION" VALUE 'DAY'
CLASSIFICATION "MODEL" VALUE 'MOVIE_SALES_2020Q2_AV'
USING "DAYS" AS "DAYS"
ATTRIBUTES (
"DAYS"."DAY" AS "DAY_ATTR"
CLASSIFICATION "CAPTION" VALUE ''
CLASSIFICATION "DESCRIPTION" VALUE '',
"DAYS"."DAY_NUM_USA" AS "DAY_NUM_USA_ATTR"
CLASSIFICATION "CAPTION" VALUE ''
CLASSIFICATION "DESCRIPTION" VALUE '')
LEVEL "DAY"
KEY ("DAY_ATTR")
MEMBER NAME to_char("DAY_ATTR")
MEMBER CAPTION to_char("DAY_ATTR")
MEMBER DESCRIPTION to_char("DAY_ATTR")
ORDER BY MIN "DAY_NUM_USA_ATTR" ASC NULLS FIRST
DETERMINES ("DAY_ATTR", "DAY_NUM_USA_ATTR")
ALL
MEMBER NAME 'ALL'
MEMBER CAPTION 'ALL'
MEMBER DESCRIPTION 'ALL';
CREATE OR REPLACE ATTRIBUTE DIMENSION "QTEAM"."MOVIE_SALES_2020Q2_AV_GENRE_AD"
DIMENSION TYPE STANDARD
CLASSIFICATION "CAPTION" VALUE 'GENRE'
CLASSIFICATION "DESCRIPTION" VALUE 'GENRE'
CLASSIFICATION "MODEL" VALUE 'MOVIE_SALES_2020Q2_AV'
USING "MOVIE_SALES_2020Q2" AS "MOVIE_SALES_2020Q2"
ATTRIBUTES (
"MOVIE_SALES_2020Q2"."GENRE" AS "GENRE_ATTR"
CLASSIFICATION "CAPTION" VALUE 'GENRE_ATTR'
CLASSIFICATION "DESCRIPTION" VALUE 'GENRE_ATTR')
LEVEL "GENRE"
KEY ("GENRE_ATTR")
MEMBER NAME to_char("GENRE_ATTR")
MEMBER CAPTION to_char("GENRE_ATTR")
MEMBER DESCRIPTION to_char("GENRE_ATTR")
ORDER BY MIN "GENRE_ATTR" ASC NULLS FIRST
DETERMINES ("GENRE_ATTR")
ALL
MEMBER NAME 'ALL'
MEMBER CAPTION 'ALL'
MEMBER DESCRIPTION 'ALL';
CREATE OR REPLACE ATTRIBUTE DIMENSION "QTEAM"."MOVIE_SALES_2020Q2_AV_MONTHS_AD"
DIMENSION TYPE STANDARD
CLASSIFICATION "CAPTION" VALUE 'MONTHS'
CLASSIFICATION "DESCRIPTION" VALUE 'MONTHS'
CLASSIFICATION "MODEL" VALUE 'MOVIE_SALES_2020Q2_AV'
USING "MONTHS" AS "MONTHS"
ATTRIBUTES (
"MONTHS"."MONTH" AS "MONTH_ATTR"
CLASSIFICATION "CAPTION" VALUE ''
CLASSIFICATION "DESCRIPTION" VALUE '',
"MONTHS"."MONTH_NUM" AS "MONTH_NUM_ATTR"
CLASSIFICATION "CAPTION" VALUE ''
CLASSIFICATION "DESCRIPTION" VALUE '')
LEVEL "MONTH"
KEY ("MONTH_ATTR")
MEMBER NAME to_char("MONTH_ATTR")
MEMBER CAPTION to_char("MONTH_ATTR")
MEMBER DESCRIPTION to_char("MONTH_ATTR")
ORDER BY MIN "MONTH_NUM_ATTR" ASC NULLS FIRST
DETERMINES ("MONTH_ATTR", "MONTH_NUM_ATTR")
ALL
MEMBER NAME 'ALL'
MEMBER CAPTION 'ALL'
MEMBER DESCRIPTION 'ALL';
CREATE OR REPLACE ATTRIBUTE DIMENSION "QTEAM"."MOVIE_SALES_2020Q2_AV_DEVICES_AD"
DIMENSION TYPE STANDARD
CLASSIFICATION "CAPTION" VALUE 'DEVICES'
CLASSIFICATION "DESCRIPTION" VALUE 'DEVICES'
CLASSIFICATION "MODEL" VALUE 'MOVIE_SALES_2020Q2_AV'
USING "DEVICES" AS "DEVICES"
ATTRIBUTES (
"DEVICES"."FORM_FACTOR" AS "FORM_FACTOR_ATTR"
CLASSIFICATION "CAPTION" VALUE 'FORM_FACTOR_ATTR'
CLASSIFICATION "DESCRIPTION" VALUE 'FORM_FACTOR_ATTR',
"DEVICES"."DEVICE" AS "DEVICE_ATTR"
CLASSIFICATION "CAPTION" VALUE 'DEVICE_ATTR'
CLASSIFICATION "DESCRIPTION" VALUE 'DEVICE_ATTR')
LEVEL "FORM_FACTOR"
KEY ("FORM_FACTOR_ATTR")
MEMBER NAME to_char("FORM_FACTOR_ATTR")
MEMBER CAPTION to_char("FORM_FACTOR_ATTR")
MEMBER DESCRIPTION to_char("FORM_FACTOR_ATTR")
ORDER BY MIN "FORM_FACTOR_ATTR" ASC NULLS FIRST
DETERMINES ("FORM_FACTOR_ATTR")
LEVEL "DEVICE"
KEY ("DEVICE_ATTR")
MEMBER NAME to_char("DEVICE_ATTR")
MEMBER CAPTION to_char("DEVICE_ATTR")
MEMBER DESCRIPTION to_char("DEVICE_ATTR")
ORDER BY MIN "DEVICE_ATTR" ASC NULLS FIRST
DETERMINES ("FORM_FACTOR_ATTR", "DEVICE_ATTR")
ALL
MEMBER NAME 'ALL'
MEMBER CAPTION 'ALL'
MEMBER DESCRIPTION 'ALL';
CREATE OR REPLACE ATTRIBUTE DIMENSION "QTEAM"."MOVIE_SALES_2020Q2_AV_GEOGRAPHY_AD"
DIMENSION TYPE STANDARD
CLASSIFICATION "CAPTION" VALUE 'GEOGRAPHY'
CLASSIFICATION "DESCRIPTION" VALUE 'GEOGRAPHY'
CLASSIFICATION "MODEL" VALUE 'MOVIE_SALES_2020Q2_AV'
USING "COUNTRIES" AS "COUNTRIES"
ATTRIBUTES (
"COUNTRIES"."CONTINENT" AS "CONTINENT_ATTR"
CLASSIFICATION "CAPTION" VALUE 'CONTINENT_ATTR'
CLASSIFICATION "DESCRIPTION" VALUE 'CONTINENT_ATTR',
"COUNTRIES"."COUNTRY" AS "COUNTRY_ATTR"
CLASSIFICATION "CAPTION" VALUE 'COUNTRY_ATTR'
CLASSIFICATION "DESCRIPTION" VALUE 'COUNTRY_ATTR')
LEVEL "CONTINENT"
KEY ("CONTINENT_ATTR")
MEMBER NAME to_char("CONTINENT_ATTR")
MEMBER CAPTION to_char("CONTINENT_ATTR")
MEMBER DESCRIPTION to_char("CONTINENT_ATTR")
ORDER BY MIN "CONTINENT_ATTR" ASC NULLS FIRST
DETERMINES ("CONTINENT_ATTR")
LEVEL "COUNTRY"
KEY ("COUNTRY_ATTR")
MEMBER NAME to_char("COUNTRY_ATTR")
MEMBER CAPTION to_char("COUNTRY_ATTR")
MEMBER DESCRIPTION to_char("COUNTRY_ATTR")
ORDER BY MIN "COUNTRY_ATTR" ASC NULLS FIRST
DETERMINES ("CONTINENT_ATTR", "COUNTRY_ATTR")
ALL
MEMBER NAME 'ALL'
MEMBER CAPTION 'ALL'
MEMBER DESCRIPTION 'ALL';
CREATE OR REPLACE ATTRIBUTE DIMENSION "QTEAM"."MOVIE_SALES_2020Q2_AV_CUSTOMER_SEGMENT_AD"
DIMENSION TYPE STANDARD
CLASSIFICATION "CAPTION" VALUE 'CUSTOMER_SEGMENT'
CLASSIFICATION "DESCRIPTION" VALUE 'CUSTOMER_SEGMENT'
CLASSIFICATION "MODEL" VALUE 'MOVIE_SALES_2020Q2_AV'
USING "MOVIE_SALES_2020Q2" AS "MOVIE_SALES_2020Q2"
ATTRIBUTES (
"MOVIE_SALES_2020Q2"."CUSTOMER_SEGMENT" AS "CUSTOMER_SEGMENT_ATTR"
CLASSIFICATION "CAPTION" VALUE 'CUSTOMER_SEGMENT_ATTR'
CLASSIFICATION "DESCRIPTION" VALUE 'CUSTOMER_SEGMENT_ATTR')
LEVEL "CUSTOMER_SEGMENT"
KEY ("CUSTOMER_SEGMENT_ATTR")
MEMBER NAME to_char("CUSTOMER_SEGMENT_ATTR")
MEMBER CAPTION to_char("CUSTOMER_SEGMENT_ATTR")
MEMBER DESCRIPTION to_char("CUSTO以上是关于Oracle LiveLabs实验:Self-service Tools for Everyone Using Oracle Autonomous Database的主要内容,如果未能解决你的问题,请参考以下文章
Oracle LiveLabs实验:Oracle RAC Fundamentals
Oracle LiveLabs实验:Install Oracle Database 21c
Oracle LiveLabs实验:DB Security - Oracle Label Security (OLS)
Oracle LiveLabs实验:Oracle Label Security (OLS)