weixin_40455124
这个作者很懒,什么都没留下…
展开
-
deequ data-column profile 代码分析
Deequ的profile 包括对Column 类型的detection,前面也提到了predefinedTypes可以避免String Column Detection,以下是实现逻辑。参考以下代码可以指定,通过输入column name Seq 可以指定分析column范围。这个侦测是通过class StatefulDataType 来实现的。原创 2022-11-20 23:32:11 · 321 阅读 · 0 评论 -
deequ 2.0.1 VerificationSuite 检测项执行过程简要分析
deequ的执行过程 check、constraint 的入口差不多都是要生成一个 Constraint 并使用addFilterableConstraint 进行添加。注意 case class Size 有一个where,代表可以输入where条件 ,hasSize的生成类似如下计算。注意取值是有valuePicker 类实现,判断是由 assertion负责。前面讲了执行,再看AnalysisBasedConstraint的定义。注意这个NumMatchesAndCount。原创 2022-11-20 16:58:13 · 415 阅读 · 0 评论 -
aws deequ 2.0.1 编译
编译的时候会遇到 类重复:KLLBenchmark,这个原因是java 文件放置的路径不对,参考。aws deequ 是使用scala maven plugin 进行编译的,非sbt。使用的scala 版本为2.12.10,可以从pom.xml中看到。之后就是漫长的maven 文件获取,多次尝试后成功编译。先在idea中安装scala 插件及scala。重新放置 java 文件如下即可。原创 2022-11-20 16:17:11 · 122 阅读 · 0 评论 -
deequ 2.0.1 anomaly的代码简单分析
BatchNormalStrategy :正太分布检测,所有数据在 mean - lowerDeviationFactor * stdDev 和 mean + upperDeviationFactor * stdDev之间。repository 目前只有文件及内存两种,文件其实就是json格式的结果保存(带timestamp 及tag:即key)实际比较在detect 或者diff 函数内,不同strategy 类代码稍有不同。checkConfig 类。默认Constraint。原创 2022-11-22 23:00:30 · 364 阅读 · 0 评论 -
griffin 数据预处理
【代码】griffin 数据预处理。原创 2022-11-25 09:24:36 · 79 阅读 · 0 评论 -
griffin batch模式代码简单分析
AccuracyExpr2DQSteps 里面的基本逻辑就是生产各种select 和write table的step,如先生成missRecordsSql。然后是各种DQStepBuilder ,其中最重要的,也是可以理解各种rule实际dsl-spark sql转换的是 Expr2DQSteps。json里面的 “dq.type”: “accuracy” 决定了rule类型,其实也对应了使用那些step进行计算。除了UniquenessExpr2DQSteps的sql,参考url基本列出了相关sql。原创 2022-11-25 09:02:50 · 278 阅读 · 0 评论 -
windows idea 调试griffin measure
本文记录下griffin 0.6 版本载win10 下使用idea 运行org.apache.griffin.measure.job.BatchDQAppTest 下的accuracy batch job should work 测试方法。原创 2022-11-25 08:45:33 · 92 阅读 · 0 评论 -
JanusGraph 自定义 Serializer
JanusGraph 自定义 Serializer 可以参考atlas的例子,注意以下几点。原创 2022-11-08 20:32:45 · 123 阅读 · 0 评论 -
使用janusgraph 查看atlas 数据
这个标题可能难理解,atlas 本身embed 了janusgraph,但出于运维的需要,可能需要去看数据(包括数据结构),单独启动一个janusgraph,使用底层germlin 进行操作。默认janusgraph是打不开atlas的graph的,需要将相关jar引入,如果在开发环境,在janusserver 的pom.xml增加以下内容即可。由于atlas通过下面语句自定义了serializer。原创 2022-11-05 21:10:16 · 752 阅读 · 0 评论 -
atlas [__AtlasAuditEntry.startTime] is not indexed in the targeted index解决
的情况下出现:java.lang.IllegalArgumentException: The used key [__AtlasAuditEntry.startTime] is not indexed in the targeted index [vertex_index]。可以看到都是REGISTERED 状态,使用。查看atlas定义的index,有如下信息。虽然不影响使用,但还是分析了一下。将其改为ENABLED后,解决!原创 2022-11-05 00:01:41 · 214 阅读 · 0 评论 -
Atlas 2.2.0 集成janusgraph 0.6.2
altas 升级到使用janus graph 0.6.2原创 2022-11-04 23:56:47 · 340 阅读 · 0 评论 -
atlas 编译慎用maven.aliyun.com及cnpm
使用maven.aliyun.com 遇到jms 1.1等jar 不存在,使用cnpm 也存在package不存在的事情,改了半天,最后web出现js不存在等问题。把这两个去掉,找个网络畅顺的时间进行编译,一把就过了,什么都不用调整。atlas 2.2.0 编译过程中开始使用。原创 2022-11-02 20:39:22 · 80 阅读 · 0 评论 -
atlas 使用Berkeley 作为janusgraph backend 测试
atlas 文档说需要使用hbase或者Cassandra 作为backend,但实际只要janusgraph支持的backend都是可以的。比如在开发环境可以使用Berkeley 作为backend,以降低部署需要的资源等。以下为配置文件,重点为按 janusgraph的backend 要求进行配置即可。原创 2022-11-02 20:30:52 · 480 阅读 · 0 评论 -
JanusGraph 自定义 Mysql backend小结
2、自定义KeyColumnValueStore ,这个是getSlice ,keyrang等查找的入口 public class MysqlKeyColumnValueStore implements KeyColumnValueStore {注意使用janusgraph 带有的test类进行测试,最重要的两个测试类。1、 自定义StoreManager,这个是backend的入口。除了8个生产用表,还有2个测试需要的,结构体都一样。mutateXXX,比如。这个是数据修改的入口。原创 2022-10-30 20:26:28 · 168 阅读 · 0 评论 -
aws graph notebook 连接janusgraph 简单笔记
只有带来了vertex 及edge才会有graph 显示,其它情况只有console及Query MetaData。可以在%%gremlin 加参数 指导如何图形化(参考。使用 %%graph_notebook_config。图形显示的属性来自by 函数,这点很关键。原创 2022-10-30 14:33:12 · 109 阅读 · 0 评论 -
居于ubuntu focal 的aws graph notebook Dockerfile
【代码】居于ubuntu focal 的aws graph notebook Dockerfile。原创 2022-10-30 11:47:50 · 56 阅读 · 0 评论 -
janusgraph-server.sh 0.6.2 分析及java.lang.StackOverflowError处理
janusgraph-server 默认支持1.8 及11 ,使用conf文件下不同options 来处理,可以参考如下janusgraph-server.sh 里面的代码。config里面可以看到有PID_FILE,如果非正常退出,要清除PID_FILE后才能重新启动,可以参考以下代码。可以通过config查看配置,注意可以加上yaml文件路径查看使用指定yaml文件后配置。调大 options文件里面的 -Xss256k,如改为-Xss2048k即可。可以通过usage查看使用方法。原创 2022-10-30 11:41:55 · 73 阅读 · 0 评论 -
janusgraph PropertyKey 创建相关代码分析
janusgraph 创建属性关键代码如下背后的逻辑其实有很多。包括index 及property 创建、修改等原创 2022-10-27 21:22:10 · 196 阅读 · 0 评论 -
gremlin janusgraph 获取active 的事务并进行操作
基于graph 获取并进行rollback,注意多graph下不影响启动graph。原创 2022-10-23 12:28:33 · 106 阅读 · 0 评论 -
JanusGraph key column value 存储相关代码解析
注意serializer.validDataType(value.getClass() 这句,graph 要求所有的object 先在StandardSerializer 有登记。然后在db内采用 key - column -column value 模式,即一个key下还有多个了column(也可以认为是sub key)。JanusGraph 的存储是先分db,如果是BerkeleyJE debug模式,可以在日志看到大量如下输出。写入value的时候,注意先写了DataType。原创 2022-10-23 11:27:59 · 232 阅读 · 0 评论 -
JanusGraph idea运行出现The traversal source [g] for alias [g] is not configured on the server
修改后janusgraph-server的resource目录如下(ext是否需要未测试,直接复制了full里面的ext及scripts目录)注意gremlin.remote.driver.sourceName 和globals原创 2022-10-20 21:56:25 · 313 阅读 · 0 评论 -
atlas 类型定义(typedef)装载过程分析
AtlasTypeDefStoreInitializer是typedef装载核心及入口/** * Class that handles initial loading of models and patches into typedef store */@Service@Order(2)public class AtlasTypeDefStoreInitializer implements ActiveStateChangeHandler { 从类定义可以看到是一个springfram原创 2021-09-11 00:08:24 · 234 阅读 · 0 评论 -
windows eclipse下运行atlas server-webapp
记录下windows 下如何运行atlas serverwebapp准备windows下编译dashboard3使用node-sass需要VC,本机没有安装vc,从linux运行环境下copy 一份web下的文件到本机。把整个webapp下atlas复制即可。D:\temp\webapp\atlas>dir 驱动器 D 中的卷是 新加卷 卷的序列号是 7671-366C D:\temp\webapp\atlas 的目录2021/09/10 14:21 <DIR>原创 2021-09-10 20:25:31 · 154 阅读 · 0 评论 -
atlas java 客户端测试代码
atlas提供一个java 客户端可以访问atlas server,可以使用atlas-properties来初始化客户端并通过rest 接口进行访问,以下为测试代码: package com.atlas.example.clientexample; import org.apache.atlas.ApplicationProperties;import org.apache.atlas.AtlasClientV2;import org.apache.atlas.model.SearchFil原创 2021-09-09 21:06:56 · 491 阅读 · 0 评论 -
atlas hook Consumer代码分析
当一个hook 发送消息到kafka后,atlas web会有一个对应的consumer来处理消息,主要牵涉到以下几个类NotificationHookConsumer 创建consumer线程并处理消息KafkaNotification 被NotificationHookConsumer 调用,负责调用AtlasKafkaConsumer创建kafka consumer clientAtlasEntityStoreV2 负责与底层图数据库交互,完成数据保存NotificationHookCon原创 2021-09-09 06:39:50 · 359 阅读 · 0 评论 -
atlas hook 发送失败日志FailedMessagesLogger
atlas hook 发送失败可以写到一个日志文件中,需要满足只有一个,log4j的root输出中必须有一个文件类型,比如:<root> <priority value="debug" /> <appender-ref ref="console" /> <appender-ref ref="FILE" /> </root>这个log 输出是在代码自动生成的,无需在log4j中配置。首先是在 public abstract cl原创 2021-09-07 22:58:08 · 222 阅读 · 0 评论 -
Atlas hive Hook代码分析
基类及配置atlas所有hook都(应该)基于public abstract class AtlasHook ,这个类在notifications 子项目下。这个类首先需要关注的是下面这些可以在atlas-application.properties里面定义的配置项:public static final String ATLAS_NOTIFICATION_ASYNCHRONOUS = "atlas.notification.hook.asynchronous";原创 2021-09-05 22:58:09 · 1339 阅读 · 1 评论 -
如何对hive hook进行单元测试
atlas 提供了hive hook,但并没有提供hook的单元测试,源代码里面带的testng的测试,其实是要求部署hook到hive后进行测试。写了一个简单hook,以json模式输出hookContextpublic void run(HookContext hookContext) throws Exception { SessionState session = SessionState.get(); ObjectMapper mapper =原创 2021-08-31 08:20:13 · 341 阅读 · 0 评论 -
atlas支持高版本hadoop及es
atlas支持高版本hadoop及es只需要修改pom.xml并自己编译即可<hadoop.version>3.1.1</hadoop.version><hbase.version>2.0.2</hbase.version><solr.version>7.5.0</solr.version><hive.version>3.1.0</hive.version><kafka.version>2.原创 2021-08-24 05:41:29 · 545 阅读 · 0 评论 -
在windows 下运行atlas hive import
最近想分析下HiveMeta,准备借助atlas的hive import进行分析, HiveMetaStoreBridge类是hive import的入口类,在windows 无法直接运行,需要做如下调整。POM内容修改需要增加tools及jackson-core <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <原创 2021-08-24 04:53:30 · 305 阅读 · 0 评论 -
griffin measure persist 保存内容简介
griffin measure在env.json配置了hdfs sink的,那么在每次执行后再hdfs 目录下(默认为persist)下会保存3个或者4个文件_FINISH: 完整标志_METRICS: 指标_START:保存开始运行时间及yarn application id__missRecords: 只有accuracy模式有,和source不匹配的记录以一次运行结果为例。目录列表:[root@140 opt]# hdfs dfs -ls /griffin/persist/error原创 2021-07-03 03:03:29 · 147 阅读 · 3 评论 -
griffin 进行跨数据库质量比对
griffin 0.6.0 支持跨数据库进行多种类型数据库之间的数据质量比对,以下为mysql-hive的比对示意:{ "name": "mysql-hive_batch", "process.type": "batch", "owner" : "test", "description" : "mysql-hive_batch", "data.sources": [ { "name": "target", "baseline": true,原创 2021-07-03 02:49:35 · 470 阅读 · 0 评论 -
atlas openldap 集成
集成过程atlas openldap 集成不能仅仅依靠官网文档,首先需要注意需要设置如下属性:### groups from UGIatlas.authentication.method.ldap.ugi-groups=false如果不设置,atlas 的ldap 会使用hadoop security 去判断操作系统是否有对应用户,用户不存在,就会有如下错误:2021-07-01 15:43:13,275 ERROR - [pool-2-thread-2:] ~ Exception while原创 2021-07-03 01:47:17 · 250 阅读 · 0 评论 -
atlas 启动报JanusGraph graph with the same instance already open
atlas 重新启动后,有时候有如下错误java.lang.RuntimeException: org.janusgraph.core.JanusGraphException: A JanusGraph graph with the same instance id [c0a89d8c1-namenode3] is already open. Might required forced shutdown. at org.apache.atlas.repository.graphdb.jan原创 2021-07-03 01:17:38 · 541 阅读 · 0 评论 -
dolphinscheduler 通过spark调用griffin measure总结
关键点yarn队列可能需要指定dolphinscheduler spark默认只上传主程序jar包,资源不上传,资源默认只会下载到worker上的运行目录下资源使用可以:上传需要使用–files,注意如果资源带目录,上传后也会带目录如果dolphinscheduler资源是保存在hdfs上,也可以通过hdfs直接使用,无需再次上传如果要在griffin里面显示,需要创建一个对应的job才可以遇到的错误Exception in thread "main" org.apache.had原创 2021-06-22 22:01:32 · 752 阅读 · 2 评论 -
Griffin 缺少 DATACONNECTOR
Griffin 出现如下错误:Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table 'quartz.DATACONNECTOR' doesn't existError Code: 1146Call: INSERT INTO DATACONNECTOR (ID, CONFIG, CREATEDDATE, DATAFRAMENAME, DATATIMEZONE, DATAUNIT, MODI原创 2021-06-16 00:42:26 · 257 阅读 · 0 评论 -
atlas metadata的属性
用一个图来记录下http://atlas.apache.org/ 中一个metabase可以拥有很多的属性,如下图:这些属性的用途和来源,以hive table 为例使用一个脑图来记录如下:原创 2021-06-01 01:53:05 · 200 阅读 · 0 评论 -
dolphinscheduler 集成atlas sqoop hook
dolphinscheduler 集成atlas sqoop hook 主要需要注意如下事情Dolphscheduler 里面的租户id 必须是hive/hdfs 对应的用户,如果不是需要,同时properties 文件里面的HDFS_ROOT_USER=也需要注意修改如果租户id不是hdfs对应用户HIVE-SITE里面metastore.event.db.notification.api.authCORE-CONF里面hadoop.proxyuser.xxuser.hosts及hadoop.pr原创 2021-06-19 23:53:54 · 1503 阅读 · 2 评论 -
Griffin 匹配 Spark 3.1.1 measure
不考虑stream kafka 支持,修改pom.xml 即可。<?xml version="1.0" encoding="UTF-8"?><!-- Licensed to the Apache Software Foundation (ASF) under oneor more contributor license agreements. See the NOTICE filedistributed with this work for additional inform原创 2021-06-09 22:47:53 · 252 阅读 · 0 评论 -
Livy 错误java.lang.NoClassDefFoundError: com/sun/jersey/core/util/FeaturesAndProperties
当livy出现如下错误Exception in thread "yarnAppMonitorThread-org.apache.livy.utils.SparkYarnApp@75e66c6" java.lang.NoClassDefFoundError: com/sun/jersey/core/util/FeaturesAndProperties at java.lang.ClassLoader.defineClass1(Native Method) at java.la原创 2021-06-16 00:46:44 · 1129 阅读 · 0 评论