Yes, personally I would also go with the external system's format for
the exact reason you mentioned.

Best,

Dawid

On 14/11/2019 10:32, Jark Wu wrote:
> Hi Dawid,
>
> The `connector.properties.zookeeper.connect` sounds good to me.
>
> Just to clarify, in this way, we can support arbitrary properties and we
> can document the important ones.
> And regarding to the value format, shall we use the external system's
> format or use Flink's format, e.g. the list separator?
> I would prefer the external system's format, so that keys and values are
> all forwarded directly.
>
> Best,
> Jark
>
>
> On Thu, 14 Nov 2019 at 17:02, Dawid Wysakowicz <dwysakow...@apache.org>
> wrote:
>
>> Hi Jark,
>>
>> I see the not readable point and that is also my concern about my
>> suggestion with all the properties under a single key as the list might get
>> quite long.
>>
>> What do you think about modifying your suggestion a bit and at least add
>> the `properties` prefix? So that we can distinguish the Kafka defined
>> properties and the Flink's ones?
>>
>> What do you think about properties like:
>>
>> connector.properties.zookeeper.connect: ....
>>
>> connector.properties.bootstrap-servers: ....
>>
>>
>> I think that's also what Konstantin was suggesting. I might be wrong on
>> that though :)
>>
>> Best,
>>
>> Dawid
>>
>>
>> On 14/11/2019 04:52, Jark Wu wrote:
>>
>> Hi Dawid, Konstantin,
>>
>> This is an interesting topic. I will list the prons and cons of these 2
>> options.
>>
>> 1) under a single key: `connector.properties`
>> Cons:
>>  - Users can pass in arbitrary properties defined in kafka docs
>> Prons:
>>  - The property value is collapsed together and will be long and not
>> readable.
>>  - Some values may need to be escaped because of the separator.
>>
>> 2) flattened keys: `connector.zookeeper.connect`, `connector.bootstrap.
>> servers`
>> Cons:
>> - Better validation and helpful exception message if the value is wrong.
>> - Better documentation about which properties are required and what it
>> means.
>> - Easy to write.
>> Prons:
>> - If users want to pass in other kafka properties, need to support them and
>> wait until the next major release.
>>
>> From my point of view, we can support both #1 and #2, but #2 will override
>> the values defined in #1.
>> So that, users can define the important properties in falttented keys, and
>> can define unsupported properties in `connector.properties`.
>>
>> What do you think?
>>
>> Best,
>> Jark
>>
>>
>>
>> On Thu, 14 Nov 2019 at 01:57, Konstantin Knauf <konstan...@ververica.com> 
>> <konstan...@ververica.com>
>> wrote:
>>
>>
>> Hi Dawid, Hi Jark,
>>
>> in my experience it is very important to be able to forward arbitrary
>> properties to the underlying KafkaClient. This seems to be possible in both
>> cases. I am leaning towards Jark's original suggestion. Flink's
>> documentation would only need to state that it forwards everything under
>> "connector.properties" to the KafkaClient.
>>
>> If the external system has a different formatting scheme, we could still
>> document this on a per-connector basis (use Flink's formatting scheme and
>> document how it is translated to the external system's native properties)
>> or if possible use the external system's scheme under
>> "connector.properties". I don't really know the limitations on our side
>> w.r.t this.
>>
>> Cheers,
>>
>> Konstantin
>>
>>
>>
>> On Wed, Nov 13, 2019 at 3:36 PM Dawid Wysakowicz <dwysakow...@apache.org> 
>> <dwysakow...@apache.org>
>> wrote:
>>
>>
>> Hi Jark,
>>
>> Majority of the changes make sense to me. I think they will be helpful
>>
>> for
>>
>> the users. I have a slight concern about the
>>
>> kafka's connector.properties property :) .  I wonder if we should have
>> them under a single key:
>>
>> connector.properties:
>>
>> `zookeeper.connect`:`localhost:2181`;`bootstrap.servers`:`localhost:9092`
>>
>> As far as I understand it, these are mostly the properties that are
>> forwarded straight to the underlying KafkaClient. Such properties are
>> mostly defined and documented by the kafka itself rather than flink. They
>> might also follow a different formatting scheme than we have for our
>> properties. Moreover how do we decide which properties are put into the
>> Properties object and which are not? I would be happy to hear what others
>> think about that part, as I am not convinced myself about that part.
>>
>> Best,
>>
>> Dawid
>> On 13/11/2019 13:22, Jark Wu wrote:
>>
>> Hi everyone,
>>
>> Connector properties is a very basic component which is used to
>>
>> construct a
>>
>> connector table via YAML, descriptor API, or DDL. It is also the
>> serialization representation when persisting into catalog. However, we
>>
>> have
>>
>> encountered some problems when using connector properties, especially in
>> DDL. This FLIP is aiming to solve following two issues:
>>
>> - FLINK-14645: Data types defined in DDL loses precision and nullability
>> when converting to properties.
>> - FLINK-14649: Some properties structure is hard to define in DDL, e.g.
>> List and Map structure.
>>
>> This FLIP proposes new properties to represent data types in schema and
>>
>> to
>>
>> flatten properties in existing connectors.
>>
>> FLIP-86:
>>
>> https://docs.google.com/document/d/14MlXFB45NUmUtesFMFZFjFhd4pqmYamxbfNwUPrfdL4/edit#
>>
>> Thanks for any feedback!
>>
>> Best,
>> Jark
>>
>>
>>
>>
>> --
>>
>> Konstantin Knauf | Solutions Architect
>>
>> +49 160 91394525
>>
>>
>> Follow us @VervericaData Ververica <https://www.ververica.com/> 
>> <https://www.ververica.com/>
>>
>>
>> --
>>
>> Join Flink Forward <https://flink-forward.org/> <https://flink-forward.org/> 
>> - The Apache Flink
>> Conference
>>
>> Stream Processing | Event Driven | Real Time
>>
>> --
>>
>> Ververica GmbH | Invalidenstrasse 115, 10115 Berlin, Germany
>>
>> --
>> Ververica GmbH
>> Registered at Amtsgericht Charlottenburg: HRB 158244 B
>> Managing Directors: Timothy Alexander Steinert, Yip Park Tung Jason, Ji
>> (Tony) Cheng
>>
>>
>>

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to