Hi guys,

I understand chunjin's solution is this:

- variable code is placeholder
- variable name is an introduction
- Description is a detailed introduction

I think introduction and detail are redundant.

For example: there are two kafka clusters, the Beijing kafka
cluster and the Hangzhou kafka cluster.

If placeholder is `beijing_kafka`, `hangzhou_kafka`. Why
does the introduction still need `北京 kafka 集群` and
`杭州 kafka 集群`? placeholder is already clear.

If dev may forget the placeholder, then dev may also
forget the introduction.

Of course, if the placeholder is kafka1 kafka2, an
introduction is required. Why do we need an introduction
at this point, because the placeholder name is unreasonable.

Just like variable naming in Java code, there is no need to
introduce an introduction with a clear name. If the meaning of
the variable is complicated, we also need to write a detailed
description.

Finally, I want to say: less is more. If we want to make
something complicated, please give everyone a strong reason.

Best
fanrui

On Fri, Oct 14, 2022 at 8:42 PM Huajie Wang <[email protected]> wrote:

> Hi guys,
>
> I agree with Chunjin, I think variable name is useful, Chunjin also
> explained the reason.
>
>
> Best,
> Huajie Wang
>
>
>
> Chunjin Mu <[email protected]> 于2022年10月14日周五 20:22写道:
>
> > Hi, Rui Fan
> >     I'll start a discussion later.
> >
> > Best
> > Chunjin Mu
> >
> > Rui Fan <[email protected]> 于2022年10月14日周五 19:42写道:
> >
> > > Hi guys,
> > >
> > > I agree with monster. And I suggest use variable name, variable value
> and
> > > description.
> > >
> > > By the way, there are some problems still need to confirm. What’s the
> > > placeholder? And how to use them when edit sql or datastream job? It’s
> > > better to discuss these asap.
> > >
> > > Best
> > > fanrui
> > >
> > > On Fri, Oct 14, 2022 at 17:44 Chunjin Mu <[email protected]> wrote:
> > >
> > > > hi, huajie, fan rui, monster
> > > >
> > > > Thank you for your suggestions.
> > > >
> > > > Now please Huajie to confirm how to do it. If remove the variable
> > name, I
> > > > can also accept it here. I will do small secondary development on our
> > > > production system based on the community to meet internal needs.
> > > >
> > > > 陈卓宇 <[email protected]> 于2022年10月14日周五 15:58写道:
> > > >
> > > > > "外部采集整合kafka" is the Chinese description of variable, so it makes
> > sense
> > > > to
> > > > > put it under `Description`.
> > > > >
> > > > > Chunjin Mu <[email protected]> 于2022年10月14日周五 12:01写道:
> > > > >
> > > > > > The variable management module has three properties, including
> > > variable
> > > > > > code, variable name, and description, For example, the variable
> > code
> > > is
> > > > > > "external.kafka.collect.brokers", and the variable name is
> > > > "外部采集整合kafka".
> > > > > > When we created the application, I forgot what the variable code
> > was,
> > > > > but I
> > > > > > knew it was called "采集整合", so I can search Enter the "采集整合"
> > keywords
> > > in
> > > > > the
> > > > > > box, and of course you can also search for kafka keywords.
> > > > > >
> > > > > > At the same time, I want to know more detailed information about
> > this
> > > > > > kafka, such as who the operator is, what is the data retention
> > > period,
> > > > > and
> > > > > > how big is the cluster size, but I can't use the description to
> > > search,
> > > > > so
> > > > > > I can only search or variable code or variable name, and the
> > variable
> > > > > name
> > > > > > is also for a simple display.
> > > > > >
> > > > > > Although external.kafka.collect.brokers already contains a lot of
> > > > > > information, I think this is just a naming convention. When we
> > > discuss
> > > > > this
> > > > > > variable, we will discuss it by using the "采集整合 kafka"
> > > > > >
> > > > > > We can discuss whether there is a problem with this design, what
> do
> > > you
> > > > > > think?
> > > > > >
> > > > > > Rui Fan <[email protected]> 于2022年10月10日周一 11:45写道:
> > > > > >
> > > > > > > Hi huajie:
> > > > > > >
> > > > > > > > If it is manually entered, it will always be treated as
> > ordinary
> > > > > text.
> > > > > > >
> > > > > > > Users always copy some code from an old job to a new job.
> > > > > > > I'm afraid it might not meet the user's expectations.
> > > > > > >
> > > > > > > Best,
> > > > > > > fanrui
> > > > > > >
> > > > > > > On Sat, Oct 8, 2022 at 3:12 PM Huajie Wang <[email protected]>
> > > > wrote:
> > > > > > >
> > > > > > > > hi 田向阳:
> > > > > > > >
> > > > > > > > The current discussion is about variable management, which
> is a
> > > > > > > relatively
> > > > > > > > independent function, No other modules involved, you can
> check
> > > the
> > > > > > thread
> > > > > > > > [1]
> > > > > > > >
> > > > > > > >
> > > > > > > > [1] thread:
> > > > > > > >
> > https://lists.apache.org/thread/s9sjpkjn6spvq07bk34cfd3vln7rjo0m
> > > > > > > >
> > > > > > > >
> > > > > > > > Best,
> > > > > > > > Huajie Wang
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > 田向阳 <[email protected]> 于2022年10月8日周六 13:13写道:
> > > > > > > >
> > > > > > > > > is this module include a resource management cente r where
> > jars
> > > > can
> > > > > > be
> > > > > > > > > chosen to provide to create a job
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > ---- 回复的原邮件 ----
> > > > > > > > > | 发件人 | Huajie Wang<[email protected]> |
> > > > > > > > > | 日期 | 2022年10月08日 12:07 |
> > > > > > > > > | 收件人 | [email protected]<
> [email protected]>
> > |
> > > > > > > > > | 抄送至 | |
> > > > > > > > > | 主题 | Re: [DISCUSS][issue-1477] Add variable management
> > > module |
> > > > > > > > > hi 阿穆:
> > > > > > > > > Thank you for the clarification, My question is answered,
> but
> > > > now I
> > > > > > > have
> > > > > > > > > one more concern,
> > > > > > > > > I'm currently using {var} for variables, and I'm worried
> that
> > > one
> > > > > of
> > > > > > > the
> > > > > > > > > user's parameters includes "{" and "}", e.g :
> > > > > > > > >
> > > > > > > > > --password 'mypass{123}abc'
> > > > > > > > >
> > > > > > > > > So how do we parse parse this?  How about ${var}
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > Best,
> > > > > > > > > Huajie Wang
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > 阿穆 <[email protected]> 于2022年10月8日周六 11:36写道:
> > > > > > > > >
> > > > > > > > > > Hi, monster, Huajie Wang, Rui Fan:
> > > > > > > > > >
> > > > > > > > > > Thanks for your reply.
> > > > > > > > > >
> > > > > > > > > > I have integrated your replies. I really don't pay much
> > > > attention
> > > > > > to
> > > > > > > > SQL,
> > > > > > > > > > so I will do the following.
> > > > > > > > > >
> > > > > > > > > > 1.Each team has independent variables that do not affect
> > each
> > > > > other
> > > > > > > and
> > > > > > > > > > are isolated from each other, but the same variable is
> > unique
> > > > > under
> > > > > > > the
> > > > > > > > > > same team, so you need to specify the team when creating
> > > > > variables
> > > > > > > > (users
> > > > > > > > > > may belong to multiple teams, and the teams of the
> current
> > > user
> > > > > > will
> > > > > > > be
> > > > > > > > > > displayed here for users to choose)
> > > > > > > > > > 2.For Flink jar jobs, there are two ways to pass
> variables
> > > > > > > > > > - By using placeholders, such as adding --kafka {mykafka}
> > to
> > > > the
> > > > > > args
> > > > > > > > of
> > > > > > > > > > the application, 'mykafka' is the variable code of a
> > variable
> > > > > > > > > > - Search by variable code or variable name. After a
> > variable
> > > is
> > > > > > > > selected,
> > > > > > > > > > the parameter transfer method is displayed
> > > > > > > > > > 3.Flink sql will use variables as placeholders, E.g:
> > > > > > > > > >
> > > > > > > > > > CREATE TABLE KafkaTableA (
> > > > > > > > > > &nbsp;&nbsp; `user_id` BIGINT,
> > > > > > > > > > &nbsp;&nbsp; `item_id` BIGINT,
> > > > > > > > > > &nbsp;&nbsp; `type` STRING
> > > > > > > > > > ) WITH (
> > > > > > > > > > &nbsp;&nbsp; 'connector' = 'kafka',
> > > > > > > > > > &nbsp;&nbsp; 'topic' = 'user_behaviorA',
> > > > > > > > > > &nbsp;&nbsp; 'properties.bootstrap.servers' =
> > > > > > > '{kafka_clusterA}',&nbsp;
> > > > > > > > > --
> > > > > > > > > > 'kafka_ ClusterA' is the variable code
> > > > > > > > > > &nbsp;&nbsp; 'properties.group.id' = 'testGroupA',
> > > > > > > > > > &nbsp;&nbsp; 'scan.startup.mode' = 'earliest-offset',
> > > > > > > > > > &nbsp; &nbsp;
> > > > > > > > > > CREATE TABLE KafkaTableB (
> > > > > > > > > > &nbsp;&nbsp; `user_id` BIGINT,
> > > > > > > > > > &nbsp;&nbsp; `item_id` BIGINT
> > > > > > > > > > ) WITH (
> > > > > > > > > > &nbsp;&nbsp; 'connector' = 'kafka',
> > > > > > > > > > &nbsp;&nbsp; 'topic' = 'user_behaviorB',
> > > > > > > > > > &nbsp;&nbsp; 'properties.bootstrap.servers' =
> > > > > > > '{kafka_clusterB}',&nbsp;
> > > > > > > > > --
> > > > > > > > > > 'kafka_ ClusterB' is the variable code
> > > > > > > > > > &nbsp;&nbsp; 'properties.group.id' = 'testGroupB',
> > > > > > > > > > &nbsp;&nbsp; 'scan.startup.mode' = 'earliest-offset',
> > > > > > > > > >
> > > > > > > > > > INSERT INTO KafkaTableA SELECT user_id, item_id, '{type}'
> > > FROM
> > > > > > > > > > KafkaTableB&nbsp;&nbsp; -- 'type' is the variable code
> > > > > > > > > >
> > > > > > > > > > 4.In the future, we can consider setting some system
> > built-in
> > > > > > > variables
> > > > > > > > > >
> > > > > > > > > > Best,
> > > > > > > > > > ChunJin Mu
> > > > > > > > > >
> > > > > > > > > > On Fri, Oct 7, 2022 at 8:27 PM Rui Fan <
> > [email protected]
> > > > &gt;
> > > > > > > > wrote:
> > > > > > > > > >
> > > > > > > > > > &gt; Hi 阿穆:
> > > > > > > > > > &gt;
> > > > > > > > > > &gt; It's a great proposal.
> > > > > > > > > > &gt;
> > > > > > > > > > &gt; For usage scenarios, I strongly recommend support
> for
> > > > > > replacing
> > > > > > > > > > variables
> > > > > > > > > > &gt; in sql. E.g:
> > > > > > > > > > &gt;
> > > > > > > > > > &gt; CREATE TABLE KafkaTable (
> > > > > > > > > > &gt;&nbsp;&nbsp;&nbsp; `user_id` BIGINT,
> > > > > > > > > > &gt;&nbsp;&nbsp;&nbsp; `item_id` BIGINT
> > > > > > > > > > &gt; ) WITH (
> > > > > > > > > > &gt;&nbsp;&nbsp;&nbsp; 'connector' = 'kafka',
> > > > > > > > > > &gt;&nbsp;&nbsp;&nbsp; 'topic' = 'user_behavior',
> > > > > > > > > > &gt;&nbsp;&nbsp;&nbsp; 'properties.bootstrap.servers' =
> > > > > > > > > '{kafka_clusterA}',
> > > > > > > > > > &gt;&nbsp;&nbsp;&nbsp; 'properties.group.id' =
> > 'testGroup',
> > > > > > > > > > &gt;&nbsp;&nbsp;&nbsp; 'scan.startup.mode' =
> > > 'earliest-offset',
> > > > > > > > > > &gt;&nbsp;&nbsp;&nbsp; 'format' = 'csv'
> > > > > > > > > > &gt; )
> > > > > > > > > > &gt;
> > > > > > > > > > &gt; Note: 'properties.bootstrap.servers' =
> > > '{kafka_clusterA}',
> > > > > > > > > > &gt;
> > > > > > > > > > &gt; For variable management, I have some question:
> > > > > > > > > > &gt;
> > > > > > > > > > &gt; 1. Is the parameter used within the team? If all
> teams
> > > > use a
> > > > > > > > common
> > > > > > > > > > &gt; parameter, it
> > > > > > > > > > &gt; needs to be defined for each team, right?
> > > > > > > > > > &gt; 2. Which users can modify variables? Can all users
> > > modify
> > > > > all
> > > > > > > > > > variables of
> > > > > > > > > > &gt; their team?
> > > > > > > > > > &gt; After the variable is modified incorrectly, many
> jobs
> > > may
> > > > be
> > > > > > > > > > affected. So I
> > > > > > > > > > &gt; suggest that
> > > > > > > > > > &gt; only team admin or system admin have permission to
> > > modify,
> > > > > add
> > > > > > > and
> > > > > > > > > > delete
> > > > > > > > > > &gt; variables.
> > > > > > > > > > &gt;
> > > > > > > > > > &gt; Best
> > > > > > > > > > &gt; fanrui
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > On Fri, Oct 7, 2022 at 7:01 PM Huajie Wang <
> > > [email protected]
> > > > > &gt;
> > > > > > > > wrote:
> > > > > > > > > >
> > > > > > > > > > &gt; hi 阿穆:
> > > > > > > > > > &gt;
> > > > > > > > > > &gt;
> > > > > > > > > > &gt; Thanks for starting a very useful discussion, I
> have a
> > > > some
> > > > > > > > > questions:
> > > > > > > > > > &gt;
> > > > > > > > > > &gt;
> > > > > > > > > > &gt; 1. The access boundary problem of variable
> management,
> > > is
> > > > > this
> > > > > > > all
> > > > > > > > > > &gt; people in the platform can access these variables(
> no
> > > > matter
> > > > > > who
> > > > > > > > > > &gt; defines) or that only team members can be access
> these
> > > > > > > variables.
> > > > > > > > > > &gt;
> > > > > > > > > > &gt; 2. There are two usage scenarios for variables that
> I
> > > know
> > > > > of,
> > > > > > > one
> > > > > > > > > is
> > > > > > > > > > &gt; in the entry parameter of main, and the other is in
> > > > > flinksql.
> > > > > > > Are
> > > > > > > > > both
> > > > > > > > > > &gt; supported, or only supported main entry ?
> > > > > > > > > > &gt;
> > > > > > > > > > &gt; about first question, my opinion:
> > > > > > > > > > &gt;
> > > > > > > > > > &gt; 1. The variable management is associated with the
> > team.
> > > > > After
> > > > > > > the
> > > > > > > > > user
> > > > > > > > > > &gt; logs in to the system, he must select a team (a user
> > can
> > > > > > belong
> > > > > > > to
> > > > > > > > > one
> > > > > > > > > > &gt; or more teams), The variable belongs to a team
> > > > > > > > > > &gt;
> > > > > > > > > > &gt; 2. All resources between teams are isolated, which
> > means
> > > > > that
> > > > > > > > > > &gt; variables are also isolated. In short, members of a
> > team
> > > > can
> > > > > > use
> > > > > > > > and
> > > > > > > > > > &gt; define these variables, which are invisible to other
> > > > > members,
> > > > > > > and
> > > > > > > > > > &gt; other members cannot use these variables.
> > > > > > > > > > &gt;
> > > > > > > > > > &gt;
> > > > > > > > > > &gt;
> > > > > > > > > > &gt; Welcome to your views
> > > > > > > > > > &gt;
> > > > > > > > > > &gt;
> > > > > > > > > > &gt; Best,
> > > > > > > > > > &gt; Huajie Wang
> > > > > > > > > > &gt;
> > > > > > > > > > &gt;
> > > > > > > > > > &gt;
> > > > > > > > > > &gt;
> > > > > > > > > > &gt; 陈卓宇 <[email protected]&gt; 于2022年10月7日周五
> > > > > 14:18写道:
> > > > > > > > > >
> > > > > > > > > > &gt; &gt; Is it possible to do this variable support in
> sql
> > > as
> > > > > well
> > > > > > > > > > &gt; &gt;
> > > > > > > > > > &gt; &gt; 阿穆 <[email protected]&gt; 于2022年10月7日周五
> > > > > 13:54写道:
> > > > > > > > > > &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt; Hi guys,
> > > > > > > > > > &gt; &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt; I want to start a discussion about the
> > > variable
> > > > > > > > management
> > > > > > > > > > module. Please
> > > > > > > > > > &gt; &gt; &gt; see this issue issue-1477.
> > > > > > > > > > &gt; &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt; Background:
> > > > > > > > > > &gt; &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt; In the actual production environment,
> Flink
> > > jobs
> > > > > are
> > > > > > > > > > generally complex,
> > > > > > > > > > &gt; &gt; &gt; and usually require multiple external
> > > > components.
> > > > > > For
> > > > > > > > > > example, Flink jobs
> > > > > > > > > > &gt; &gt; &gt; consume data from Kafka, then connect
> > external
> > > > > > > > components
> > > > > > > > > > such as HBase
> > > > > > > > > > &gt; &gt; or
> > > > > > > > > > &gt; &gt; &gt; Redis to obtain additional business
> > > information,
> > > > > and
> > > > > > > > then
> > > > > > > > > > write it to the
> > > > > > > > > > &gt; &gt; &gt; downstream external components. There are
> > the
> > > > > > > following
> > > > > > > > > > problems:
> > > > > > > > > > &gt; &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt; 1. The connection information of external
> > > > > > components,
> > > > > > > > such
> > > > > > > > > > as IP, port
> > > > > > > > > > &gt; &gt; and
> > > > > > > > > > &gt; &gt; &gt; user password, needs to be configured in
> the
> > > > > > > application
> > > > > > > > > > args and
> > > > > > > > > > &gt; &gt; &gt; transferred to the Flink job, so that the
> > > > > connection
> > > > > > > > > > information of
> > > > > > > > > > &gt; &gt; &gt; external components is distributed in
> > multiple
> > > > > > > > > > applications. Once the
> > > > > > > > > > &gt; &gt; &gt; connection information of external
> > components
> > > > > > changes,
> > > > > > > > > many
> > > > > > > > > > application
> > > > > > > > > > &gt; &gt; &gt; args parameters need to be modified, which
> > > will
> > > > > lead
> > > > > > > to
> > > > > > > > > > high operation
> > > > > > > > > > &gt; &gt; and
> > > > > > > > > > &gt; &gt; &gt; maintenance costs.
> > > > > > > > > > &gt; &gt; &gt; 2. There are many people in the team
> > > developing
> > > > > > > > real-time
> > > > > > > > > > computing jobs.
> > > > > > > > > > &gt; &gt; &gt; There is no uniform specification for the
> > > > > connection
> > > > > > > > > > information of the
> > > > > > > > > > &gt; &gt; &gt; external components passed to the job,
> > > resulting
> > > > > in
> > > > > > > > > > different parameter
> > > > > > > > > > &gt; &gt; &gt; names of the same component. This is
> > difficult
> > > > to
> > > > > > > count
> > > > > > > > > > which external
> > > > > > > > > > &gt; &gt; &gt; components are dependent.
> > > > > > > > > > &gt; &gt; &gt; 3. In production practice, there are
> usually
> > > > > > multiple
> > > > > > > > sets
> > > > > > > > > > of
> > > > > > > > > > &gt; &gt; &gt; environments, such as test environment and
> > > > > > production
> > > > > > > > > > environment. It is
> > > > > > > > > > &gt; &gt; &gt; not intuitive to judge whether a component
> > > > belongs
> > > > > > to
> > > > > > > a
> > > > > > > > > > test environment
> > > > > > > > > > &gt; &gt; or
> > > > > > > > > > &gt; &gt; &gt; a production environment simply through IP
> > and
> > > > > > ports.
> > > > > > > > Even
> > > > > > > > > > if it can be
> > > > > > > > > > &gt; &gt; &gt; judged, there are some omissions. In this
> > way,
> > > > the
> > > > > > > > > > connection information
> > > > > > > > > > &gt; &gt; &gt; online to the production environment may
> be
> > > > > external
> > > > > > > > > > components of the
> > > > > > > > > > &gt; &gt; test
> > > > > > > > > > &gt; &gt; &gt; environment, or components of the
> production
> > > > > > > environment
> > > > > > > > > are
> > > > > > > > > > &gt; &gt; inadvertently
> > > > > > > > > > &gt; &gt; &gt; configured during testing, leading to
> > > production
> > > > > > > > failures.
> > > > > > > > > > &gt; &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt; Proposal:
> > > > > > > > > > &gt; &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt; 1. Create a unified module to manage
> > > variables.
> > > > > > Users
> > > > > > > > can
> > > > > > > > > > define their
> > > > > > > > > > &gt; &gt; own
> > > > > > > > > > &gt; &gt; &gt; variables in this module. Variable
> > information
> > > > > > > includes
> > > > > > > > > > variable code
> > > > > > > > > > &gt; &gt; &gt; (passed to Flink program as parameter
> name),
> > > > > > variable
> > > > > > > > > > value, variable
> > > > > > > > > > &gt; name,
> > > > > > > > > > &gt; &gt; &gt; variable description, and which
> applications
> > > > > depend
> > > > > > on
> > > > > > > > > > &gt; &gt; &gt; 2. In the same Team module, the variable
> > code
> > > or
> > > > > > > > variable
> > > > > > > > > > name is unique
> > > > > > > > > > &gt; &gt; &gt; - By using placeholders, such as adding --
> > > kafka
> > > > > > > > {mykafka}
> > > > > > > > > > to the args of
> > > > > > > > > > &gt; &gt; &gt; the application, mykafka is the variable
> > code
> > > > of a
> > > > > > > > > variable
> > > > > > > > > > &gt; &gt; &gt; - Search by variable code or variable
> name.
> > > > After
> > > > > a
> > > > > > > > > > variable is selected,
> > > > > > > > > > &gt; &gt; &gt; the parameter transfer method is displayed
> > > > > > > > > > &gt; &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt; If you have any suggestions, welcome to
> > > > > participate
> > > > > > in
> > > > > > > > the
> > > > > > > > > > discussion on
> > > > > > > > > > &gt; &gt; &gt; the mail list or issue, I look forward to
> > your
> > > > > > > feedback.
> > > > > > > > > > &gt; &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt;
> > > > > > > > > > &gt; &gt; &gt; Best wishes
> > > > > > > > > > &gt; &gt;
> > > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to