Re:Re: Re: Re: 公司数据密文,实现group by和join

2021-11-10 文章 liuyehan
您好!


 不可以,因为这种加密算法有点特别,
比如id是密文的话,相同id的密文也不一样的,不管你这个密文的明文是不是一样,它的密文形成的字符串肯定不一样;
谢谢.

















在 2021-11-11 12:43:48,"yidan zhao"  写道:
>如果是group by id,不论id是明文还是密文,相同id的密文肯定也一样,直接group by 密文id不可以吗?
>
>godfrey he  于2021年11月1日周一 下午3:22写道:
>
>> 上传的图片没法显示,通过图床工具或纯文本方式重新发一遍
>>
>> lyh1067341434  于2021年11月1日周一 上午10:42写道:
>>
>> > 您好!
>> >
>> > 这样好像还是不行,因为group by id ,id还是密文字符串,还是会把id当成字符串处理,所以还是不能正确分组;
>> > 为了更清楚表达,下面为图示:
>> >
>> > 谢谢您!
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > 在 2021-10-29 10:49:35,"Caizhi Weng"  写道:
>> > >Hi!
>> > >
>> > >你是不是想写这样的 SQL:
>> > >
>> > >SELECT id, sum(price) AS total_price FROM (
>> > >  SELECT T1.id AS id, T2.price AS price FROM T AS T1 INNER JOIN T AS T2
>> ON
>> > >decrypt_udf(T1.id, T2.id) = 1
>> > >) GROUP BY id
>> > >
>> > >这个 sql 会输出每个 id 和该 id 属于的分组的总价格。
>> > >
>> > >lyh1067341434  于2021年10月29日周五 上午9:41写道:
>> > >
>> > >> 您好!
>> > >>
>> > >>
>> > >>   感谢您在百忙之中抽空回复我的邮件,我已经按照您的建议,自定义join函数实现了密文的join,但密文的group by 还是实现不了;
>> > >>
>> > >>
>> > >> 比如 有一张表 a, 表a有
>> > >> id,price列,数据都是密文,类似这样("MBwEELdR0JDC0OSryuQskeulP8YCCAyJLH7RwmAA");
>> > >>
>> > >>
>> > >> 如果我想求 不同id组的price之和:
>> > >> 直接使用flink 计算:会把id的分组当成字符串处理,从而导致分组的不正确;
>> > >> 如果调用密文计算的接口的话,把两个比较的key的密文传进入,会得到1或者0,来判断这两个密文key是否相等,从而分组可以正确;
>> > >>
>> > >>
>> > >>
>> > >>
>> > >> 问题:
>> > >>
>> > >>
>> > >> 目前group by分组,不知道在哪里实现调用密文计算的接口,从而传入两个key,来进行分组正确;
>> > >>我看到api只能指定分组的key是哪一个;
>> > >>
>> > >>
>> > >> 谢谢您!
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>
>> > >>
>> > >> 在 2021-10-28 11:09:26,"Caizhi Weng"  写道:
>> > >> >Hi!
>> > >> >
>> > >> >没太明白你的需求。你的需求是不是
>> > >> >
>> > >> >1. 调用一个自定义函数,用某一列密文算出一个值 k,用这个 k 作为 join key 或者 group key。
>> > >> >
>> > >> >如果是这个需求,只要实现一个 udf 即可。详见 [1]。
>> > >> >
>> > >> >2. 调用一个自定义函数,用某两列密文算出一个 true 或 false,如果是 true 说明 join key 匹配。
>> > >> >
>> > >> >如果是这个需求,仍然只需要实现一个 udf。join 条件中调用这个 udf 即可。但如果是这个需求,不太明白你期望中的 group by
>> > >> >是什么样的,因为不能仅通过 true false 就判断哪些数据属于同一个 group。
>> > >> >
>> > >> >[1]
>> > >> >
>> > >>
>> https://nightlies.apache.org/flink/flink-docs-release-1.14/zh/docs/dev/table/functions/udfs/
>> > >> >
>> > >> >lyh1067341...@163.com  于2021年10月27日周三
>> 下午5:20写道:
>> > >> >
>> > >> >> 您好:
>> > >> >>
>> > >>
>> 目前公司数据都是密文,要进行密文数据的比较或者计算的话,只能调用公司密文计算的接口,去看了下flink的分组和join算子,都只能指定分组的key或者join的key,不知道怎么改写比较的规则,我用mapreduce实现了重写shuffle的比较规则,可以实现密文下的join和group
>> > >> >> by,对于使用spark和flink算子不知道如何实现。
>> > >> >>
>> > >> >> 问题:
>> > >> >> 请问有啥办法,实现密文下的join和group by操作吗?(在不能解密,只能调用公司密文计算的接口)
>> > >> >>
>> > >> >> 谢谢您。
>> > >> >>
>> > >> >>
>> > >> >>
>> > >> >> 发自 网易邮箱大师
>> > >>
>> >
>> >
>> >
>> >
>> >
>>


Re: Re: Re: 公司数据密文,实现group by和join

2021-11-10 文章 yidan zhao
如果是group by id,不论id是明文还是密文,相同id的密文肯定也一样,直接group by 密文id不可以吗?

godfrey he  于2021年11月1日周一 下午3:22写道:

> 上传的图片没法显示,通过图床工具或纯文本方式重新发一遍
>
> lyh1067341434  于2021年11月1日周一 上午10:42写道:
>
> > 您好!
> >
> > 这样好像还是不行,因为group by id ,id还是密文字符串,还是会把id当成字符串处理,所以还是不能正确分组;
> > 为了更清楚表达,下面为图示:
> >
> > 谢谢您!
> >
> >
> >
> >
> >
> >
> >
> > 在 2021-10-29 10:49:35,"Caizhi Weng"  写道:
> > >Hi!
> > >
> > >你是不是想写这样的 SQL:
> > >
> > >SELECT id, sum(price) AS total_price FROM (
> > >  SELECT T1.id AS id, T2.price AS price FROM T AS T1 INNER JOIN T AS T2
> ON
> > >decrypt_udf(T1.id, T2.id) = 1
> > >) GROUP BY id
> > >
> > >这个 sql 会输出每个 id 和该 id 属于的分组的总价格。
> > >
> > >lyh1067341434  于2021年10月29日周五 上午9:41写道:
> > >
> > >> 您好!
> > >>
> > >>
> > >>   感谢您在百忙之中抽空回复我的邮件,我已经按照您的建议,自定义join函数实现了密文的join,但密文的group by 还是实现不了;
> > >>
> > >>
> > >> 比如 有一张表 a, 表a有
> > >> id,price列,数据都是密文,类似这样("MBwEELdR0JDC0OSryuQskeulP8YCCAyJLH7RwmAA");
> > >>
> > >>
> > >> 如果我想求 不同id组的price之和:
> > >> 直接使用flink 计算:会把id的分组当成字符串处理,从而导致分组的不正确;
> > >> 如果调用密文计算的接口的话,把两个比较的key的密文传进入,会得到1或者0,来判断这两个密文key是否相等,从而分组可以正确;
> > >>
> > >>
> > >>
> > >>
> > >> 问题:
> > >>
> > >>
> > >> 目前group by分组,不知道在哪里实现调用密文计算的接口,从而传入两个key,来进行分组正确;
> > >>我看到api只能指定分组的key是哪一个;
> > >>
> > >>
> > >> 谢谢您!
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >>
> > >> 在 2021-10-28 11:09:26,"Caizhi Weng"  写道:
> > >> >Hi!
> > >> >
> > >> >没太明白你的需求。你的需求是不是
> > >> >
> > >> >1. 调用一个自定义函数,用某一列密文算出一个值 k,用这个 k 作为 join key 或者 group key。
> > >> >
> > >> >如果是这个需求,只要实现一个 udf 即可。详见 [1]。
> > >> >
> > >> >2. 调用一个自定义函数,用某两列密文算出一个 true 或 false,如果是 true 说明 join key 匹配。
> > >> >
> > >> >如果是这个需求,仍然只需要实现一个 udf。join 条件中调用这个 udf 即可。但如果是这个需求,不太明白你期望中的 group by
> > >> >是什么样的,因为不能仅通过 true false 就判断哪些数据属于同一个 group。
> > >> >
> > >> >[1]
> > >> >
> > >>
> https://nightlies.apache.org/flink/flink-docs-release-1.14/zh/docs/dev/table/functions/udfs/
> > >> >
> > >> >lyh1067341...@163.com  于2021年10月27日周三
> 下午5:20写道:
> > >> >
> > >> >> 您好:
> > >> >>
> > >>
> 目前公司数据都是密文,要进行密文数据的比较或者计算的话,只能调用公司密文计算的接口,去看了下flink的分组和join算子,都只能指定分组的key或者join的key,不知道怎么改写比较的规则,我用mapreduce实现了重写shuffle的比较规则,可以实现密文下的join和group
> > >> >> by,对于使用spark和flink算子不知道如何实现。
> > >> >>
> > >> >> 问题:
> > >> >> 请问有啥办法,实现密文下的join和group by操作吗?(在不能解密,只能调用公司密文计算的接口)
> > >> >>
> > >> >> 谢谢您。
> > >> >>
> > >> >>
> > >> >>
> > >> >> 发自 网易邮箱大师
> > >>
> >
> >
> >
> >
> >
>


Re: Re: Re: 公司数据密文,实现group by和join

2021-11-01 文章 godfrey he
上传的图片没法显示,通过图床工具或纯文本方式重新发一遍

lyh1067341434  于2021年11月1日周一 上午10:42写道:

> 您好!
>
> 这样好像还是不行,因为group by id ,id还是密文字符串,还是会把id当成字符串处理,所以还是不能正确分组;
> 为了更清楚表达,下面为图示:
>
> 谢谢您!
>
>
>
>
>
>
>
> 在 2021-10-29 10:49:35,"Caizhi Weng"  写道:
> >Hi!
> >
> >你是不是想写这样的 SQL:
> >
> >SELECT id, sum(price) AS total_price FROM (
> >  SELECT T1.id AS id, T2.price AS price FROM T AS T1 INNER JOIN T AS T2 ON
> >decrypt_udf(T1.id, T2.id) = 1
> >) GROUP BY id
> >
> >这个 sql 会输出每个 id 和该 id 属于的分组的总价格。
> >
> >lyh1067341434  于2021年10月29日周五 上午9:41写道:
> >
> >> 您好!
> >>
> >>
> >>   感谢您在百忙之中抽空回复我的邮件,我已经按照您的建议,自定义join函数实现了密文的join,但密文的group by 还是实现不了;
> >>
> >>
> >> 比如 有一张表 a, 表a有
> >> id,price列,数据都是密文,类似这样("MBwEELdR0JDC0OSryuQskeulP8YCCAyJLH7RwmAA");
> >>
> >>
> >> 如果我想求 不同id组的price之和:
> >> 直接使用flink 计算:会把id的分组当成字符串处理,从而导致分组的不正确;
> >> 如果调用密文计算的接口的话,把两个比较的key的密文传进入,会得到1或者0,来判断这两个密文key是否相等,从而分组可以正确;
> >>
> >>
> >>
> >>
> >> 问题:
> >>
> >>
> >> 目前group by分组,不知道在哪里实现调用密文计算的接口,从而传入两个key,来进行分组正确;
> >>我看到api只能指定分组的key是哪一个;
> >>
> >>
> >> 谢谢您!
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >>
> >> 在 2021-10-28 11:09:26,"Caizhi Weng"  写道:
> >> >Hi!
> >> >
> >> >没太明白你的需求。你的需求是不是
> >> >
> >> >1. 调用一个自定义函数,用某一列密文算出一个值 k,用这个 k 作为 join key 或者 group key。
> >> >
> >> >如果是这个需求,只要实现一个 udf 即可。详见 [1]。
> >> >
> >> >2. 调用一个自定义函数,用某两列密文算出一个 true 或 false,如果是 true 说明 join key 匹配。
> >> >
> >> >如果是这个需求,仍然只需要实现一个 udf。join 条件中调用这个 udf 即可。但如果是这个需求,不太明白你期望中的 group by
> >> >是什么样的,因为不能仅通过 true false 就判断哪些数据属于同一个 group。
> >> >
> >> >[1]
> >> >
> >> https://nightlies.apache.org/flink/flink-docs-release-1.14/zh/docs/dev/table/functions/udfs/
> >> >
> >> >lyh1067341...@163.com  于2021年10月27日周三 下午5:20写道:
> >> >
> >> >> 您好:
> >> >>
> >> 目前公司数据都是密文,要进行密文数据的比较或者计算的话,只能调用公司密文计算的接口,去看了下flink的分组和join算子,都只能指定分组的key或者join的key,不知道怎么改写比较的规则,我用mapreduce实现了重写shuffle的比较规则,可以实现密文下的join和group
> >> >> by,对于使用spark和flink算子不知道如何实现。
> >> >>
> >> >> 问题:
> >> >> 请问有啥办法,实现密文下的join和group by操作吗?(在不能解密,只能调用公司密文计算的接口)
> >> >>
> >> >> 谢谢您。
> >> >>
> >> >>
> >> >>
> >> >> 发自 网易邮箱大师
> >>
>
>
>
>
>


Re: Re: 公司数据密文,实现group by和join

2021-10-28 文章 Caizhi Weng
Hi!

你是不是想写这样的 SQL:

SELECT id, sum(price) AS total_price FROM (
  SELECT T1.id AS id, T2.price AS price FROM T AS T1 INNER JOIN T AS T2 ON
decrypt_udf(T1.id, T2.id) = 1
) GROUP BY id

这个 sql 会输出每个 id 和该 id 属于的分组的总价格。

lyh1067341434  于2021年10月29日周五 上午9:41写道:

> 您好!
>
>
>   感谢您在百忙之中抽空回复我的邮件,我已经按照您的建议,自定义join函数实现了密文的join,但密文的group by 还是实现不了;
>
>
> 比如 有一张表 a, 表a有
> id,price列,数据都是密文,类似这样("MBwEELdR0JDC0OSryuQskeulP8YCCAyJLH7RwmAA");
>
>
> 如果我想求 不同id组的price之和:
> 直接使用flink 计算:会把id的分组当成字符串处理,从而导致分组的不正确;
> 如果调用密文计算的接口的话,把两个比较的key的密文传进入,会得到1或者0,来判断这两个密文key是否相等,从而分组可以正确;
>
>
>
>
> 问题:
>
>
> 目前group by分组,不知道在哪里实现调用密文计算的接口,从而传入两个key,来进行分组正确;
>我看到api只能指定分组的key是哪一个;
>
>
> 谢谢您!
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> 在 2021-10-28 11:09:26,"Caizhi Weng"  写道:
> >Hi!
> >
> >没太明白你的需求。你的需求是不是
> >
> >1. 调用一个自定义函数,用某一列密文算出一个值 k,用这个 k 作为 join key 或者 group key。
> >
> >如果是这个需求,只要实现一个 udf 即可。详见 [1]。
> >
> >2. 调用一个自定义函数,用某两列密文算出一个 true 或 false,如果是 true 说明 join key 匹配。
> >
> >如果是这个需求,仍然只需要实现一个 udf。join 条件中调用这个 udf 即可。但如果是这个需求,不太明白你期望中的 group by
> >是什么样的,因为不能仅通过 true false 就判断哪些数据属于同一个 group。
> >
> >[1]
> >
> https://nightlies.apache.org/flink/flink-docs-release-1.14/zh/docs/dev/table/functions/udfs/
> >
> >lyh1067341...@163.com  于2021年10月27日周三 下午5:20写道:
> >
> >> 您好:
> >>
> 目前公司数据都是密文,要进行密文数据的比较或者计算的话,只能调用公司密文计算的接口,去看了下flink的分组和join算子,都只能指定分组的key或者join的key,不知道怎么改写比较的规则,我用mapreduce实现了重写shuffle的比较规则,可以实现密文下的join和group
> >> by,对于使用spark和flink算子不知道如何实现。
> >>
> >> 问题:
> >> 请问有啥办法,实现密文下的join和group by操作吗?(在不能解密,只能调用公司密文计算的接口)
> >>
> >> 谢谢您。
> >>
> >>
> >>
> >> 发自 网易邮箱大师
>