干+砖

了解如何创建在砖笔记本干工作。
我们感动!改善客户体验,Collibra数据质量用户指南已经搬到新万博移动客户端 新万博移动客户端Collibra文档中心 作为Collibra数据质量2新万博移动客户端022.11发行版的一部分。为了确保无缝过渡, dq-docs.新万博移动客户端collibra.com 将继续访问,但DQ用户指南现在维护只在文档中心。

介绍

本文档提供了如何指导来帮助你上传和干jar添加到砖集群和运行干工作干api调用(又名活动)。

设计

干工作运行Scala和Pyspark笔记本。

干环境设置

在本节中,我们解释所涉及的步骤设置环境干砖。这是第一步在砖干api调用。

第一步:上传干核心jar砖

1。从owl中提取核心jar包压缩文件。

第一步是让干jar文件。一旦你干的jar包文件,你可以把jar通过运行以下命令:
焦油-xvf package.tar.gz' '例子:焦油-xvf owl - 2022.04 - rc1 - -包base.tar.gz违约
运行这个命令指示焦油中提取文件的压缩文件。从文件列表中,您需要上传owl-core-xxxx-jar-with-dependancies。jar文件系统对我们的砖将在下一节中解释。
从owl中提取猫头鹰jar文件包压缩文件。

步骤2。上传文件到文件系统数据砖使用UI

砖的罐子应该手动上传文件系统。下面是步骤的快速摘要。你可以找到更多的细节关于砖页面中上传文件: https://docs.databricks.com/data/databricks-file-system.html https://docs.databricks.com/data/databricks-file-system.html access-dbfs
  1. 1。
    登录到你的砖。
  2. 2。
    点击
    数据图标”负载ing=
    数据在侧边栏。
  3. 3所示。
    单击DBFS按钮在页面的顶部。
  4. 4所示。
    上传owl-core-xxxx-jar-with-dependancies。jar到你想要的路径。
\
上传owl-core-xxxx-jar-with-dependancies。DBFS jar。

步骤3。干库安装在你的砖集群

安装owl-core-xxxx-jar-with-dependancies。在集群jar。
一旦完成这一步,您可以创建一个工作区和开始使用干api。第四。(可选)更新数据源的池的大小* * * *这一步只如果你需要PoolExhaustedException当你叫干api。解决这个问题可以简单地更新连接池大小的火花的环境。SPRING_DATASOURCE_POOL_MAX_WAIT = 500SPRING_DATASOURCE_POOL_MAX_SIZE = 30SPRING_DATASOURCE_POOL_INITIAL_SIZE = 5\这是砖的文档关于如何设置环境变量: https://docs.databricks.com/clusters/configure.html环境变量
干环境变量添加到砖的集群

在砖干工作示例

进口Colli新万博移动客户端bra DQ图书馆

进口orgapache火花sqlSparkSession
进口orgapache火花sql功能_
进口orgapache火花sql类型_
进口scala集合JavaConverters_
进口java跑龙套日期
进口java时间LocalDate
进口java文本SimpleDateFormat
进口火花值得一提的_
进口java跑龙套{ArrayList,列表,UUID}
/ /干进口
进口com猫头鹰核心猫头鹰
进口com猫头鹰常见的选项_
进口com猫头鹰常见的domain2_
进口com猫头鹰核心跑龙套OwlUtils
火花目录clearCache

将客户数据从另一个数据库

/ /选项1:将客户数据从一个文件中
瓦尔df=(火花
格式(“csv”)。选项(“头”,真正的)。选项(“分隔符”,”、“)
负载(“dbfs: / FileStore / nyse.csv”)
)
/ /选项2:将客户数据从一个数据库
瓦尔connProps=地图(
“司机”- >“org.postgresql.Driver”,
“用户”- >“? ? ? ?”,
“密码”- >“? ? ? ?”,
“url”- >" jdbc: postgresql: / / xxx: 0000 / postgres”,
“数据表”- >“public.example_data”)
/ / - - - - - -负载火花DataFrame——/ /
瓦尔df=火花格式(“jdbc”)。选项(connProps)。加载显示(df)
显示(df)/ /查看数据

干metastore变量设置数据库的位置

瓦尔pgHost=“xxxx.amazonaws.com”
瓦尔pgDatabase=“postgres”
瓦尔pgSchema=“公共”
瓦尔pgUser=“? ? ? ? ? ? ?”
瓦尔pgPass=“? ? ? ?”
瓦尔pgPort=“0000”

创建Colli新万博移动客户端bra DQ测试(规则)和检测

注意:如果规则已经从UI创建并分配给一个数据集,叫owlcheck()将自动执行所有与给定数据集相关的规则和不需要重新创建规则从笔记本。
瓦尔数据集=“cdq_notebook_db_rules”
var日期=“2018-01-11”
/ /选项
瓦尔选择=OwlOptions()
选择数据集=数据集
选择runId=日期
选择主机=pgHost
选择港口=pgPort
选择pgUser=pgUser
选择pgPassword=pgPass
选择setDatasetSafeOff()/ /启用历史数据集的覆盖
/ /创建一个简单的规则,并将其分配给数据集
瓦尔simpleRule=OwlUtilscreateRule(选择数据集)
simpleRulesetRuleNm(“nyse-stocks-symbol”)
simpleRulesetRuleValue(”符号= =博鸿泰”)
simpleRulesetRuleType(“SQLG”)
simpleRulesetPerc(1.0)
simpleRule定位点(1)
simpleRulesetIsActive(1)
simpleRulesetUserNm(“admin”)
simpleRulesetPreviewLimit(8)
/ /创建一个规则从通用规则创建的界面:
瓦尔genericRule=OwlUtilscreateRule(选择数据集)
genericRulesetRuleNm(“exchangeRule”)/ /可以是任何名字
genericRulesetRuleType(“自定义”)
genericRule定位点(1)
genericRulesetIsActive(1)
genericRulesetUserNm(“admin”)
genericRulesetRuleRepo(“exchangeCheckRule”);/ /验证通用规则名称
/ /从UI
genericRulesetRuleValue(“EXCH”)/ /列assosicate规则
/ /前常规
瓦尔=com猫头鹰核心跑龙套OwlUtilsOwlContext(df,选择)
removeAllRules(选择数据集)
注册(选择)
addRule(simpleRule)
/ /扫描
owlCheck()
瓦尔结果=呵斥()/ /返回对象呵斥,不是DataFrame
/ /看到Json结果(选择下游处理)
println(”- - - - - - - - - - - - - - -结果:- - - - - - - - - - - - - - - - - \ n”)
println(结果)/ /可选
/ /程序,看到DataFrame结果(选择下游处理)
瓦尔休息时间=getRuleBreakRows(“nyse-stocks-symbol”)
println(”- - - - - - - - - - - - - - -休息:- - - - - - - - - - - - - - - - - \ n”)
显示(休息时间)
/ /不同的选项来处理不良记录
瓦尔badRecords=休息时间下降(“_dataset”,“_run_id”,“_rule_name”,“owl_id”)
显示(badRecords)
瓦尔goodRecords=df除了(badRecords)
显示(goodRecords)

写了(不良记录)DataFrame铺文件

/ /删除文件是否存在
dbutilsfsrm(“/ tmp / databricks-df-example.parquet”,真正的)
休息时间拼花(“/ tmp / databricks-df-example.parquet”)
下面的图像显示的代码片段,结果在砖:
在砖创建干测试规则
优惠和规则可以在干web。

创建Colli新万博移动客户端bra DQ测试(概要)

瓦尔数据集=“cdq_notebook_nyse_profile”
瓦尔runList=列表(“2018-01-01”,“2018-01-02”,“2018-01-03”,“2018-01-04”,“2018-01-05”,“2018-01-08”,“2018-01-09”,“2018-01-10”)
(runId< -runList){
/ /选项
瓦尔选择=OwlOptions()
选择数据集=数据集
选择主机=pgHost
选择港口=pgPort
选择pgUser=pgUser
选择pgPassword=pgPass
瓦尔profileOpt=ProfileOpt
profileOpt=真正的
profileOptsetShape(真正的)
profileOptsetShapeSensitivity(5.0)
profileOptsetShapeMaxPerCol(10)
profileOptsetShapeMaxColSize(10)
profileOptsetShapeGranular(真正的)
profileOptbehaviorEmptyCheck=真正的
profileOptbehaviorMaxValueCheck=真正的
profileOptbehaviorMinValueCheck=真正的
profileOptbehaviorNullCheck=真正的
profileOptbehaviorRowCheck=真正的
profileOptbehaviorMeanValueCheck=真正的
profileOptbehaviorUniqueCheck=真正的
profileOptbehaviorMinSupport=5/ /默认是4
profileOptbehaviorLookback=5
选项配置文件=profileOpt
var日期=runId
vardf_1=df在哪里(美元“TRADE_DATE”= = =年代美元日期)
/ /扫描
瓦尔=OwlUtilsOwlContext(df_1,选项)
注册(选择)
owlCheck()
瓦尔配置文件=profileDF()
配置文件显示()
}
运行在砖干概要文件
分析结果可以在干。

创建Colli新万博移动客户端bra DQ测试(欺骗)

瓦尔数据集=“cdq_notebook_db_dupe”
var日期=“2018-01-11”
/ /选项
瓦尔选择=OwlOptions()
选择数据集=数据集
选择runId=日期
选择主机=pgHost
选择港口=pgPort
选择pgUser=pgUser
选择pgPassword=pgPass
选择易受骗的人ignoreCase=真正的
选择易受骗的人=真正的
选择易受骗的人下界=99年
选择易受骗的人包括=数组(“象征”,“TRADE_DATE”)
/ /扫描
瓦尔=OwlUtilsOwlContext(df,选择)
注册(选择)
owlCheck()
瓦尔dupesDf=getDupeRecords
dupesDf显示()
干欺骗在砖中运行
可以在干网络欺骗的结果。

创建Colli新万博移动客户端bra DQ测试(例外)

进口scala集合JavaConverters_
进口java跑龙套
进口java跑龙套{ArrayList,列表,UUID}
瓦尔数据集=“cdq_notebook_db_outlier”
var日期=“2018-01-11”
/ /选项
瓦尔选择=OwlOptions()
选择数据集=数据集
选择runId=日期
选择主机=pgHost
选择港口=pgPort
选择pgUser=pgUser
选择pgPassword=pgPass
选择易受骗的人=
瓦尔dlMulti:跑龙套列表(OutlierOpt]=跑龙套ArrayList(OutlierOpt]
瓦尔outlierOpt=OutlierOpt()
outlierOpt结合=真正的
outlierOptdateColumn=“trade_date”
outlierOptlookback=4
outlierOpt关键=数组(“象征”)
outlierOpt包括=数组(“高”)
outlierOpthistoryLimit=10
dlMulti添加(outlierOpt)
选择setOutliers(dlMulti)
瓦尔=OwlUtilsOwlContext(df,选择)
注册(选择)
owlCheck
瓦尔离群值=getOutliers()
离群值显示
离群值选择(“价值”)

已知的API的限制

干活动不能独立的呼吁。owlCheck()函数调用的任何活动之前应该被称为。例如让概要DataFrame应该调用下面的代码片段:
cdq.owlCheck ()
cdq.getProfileDF ()