Congratulations, hope you will make good use of the ability of Kylin 5 for
your use cases.


------------------------
With warm regard
Xiaoxiang Yu



On Thu, Nov 2, 2023 at 10:50 AM Nam Đỗ Duy <na...@vnpay.vn.invalid> wrote:

> The query is too fast, less than a second, can you make it a little bit
> slower so that I can see it clearly 😀😀
> [image: image.png]
>
> On Thu, Nov 2, 2023 at 9:32 AM Nam Đỗ Duy <na...@vnpay.vn> wrote:
>
>> Thank you Xiaoxiang for the guideline. Will definitely read it carefully.
>> Kindly help the following questions:
>>
>> 1. Computed column
>>
>> I created a “computed column” and add it to dimensions (among other
>> dimensions)
>>
>> When I use query to select the computed column it returned error
>>
>> 2. Datatype optimization: will you think that the int be better than
>> string for key join columns?
>>
>> Please advise
>>
>>
>> On Wed, 1 Nov 2023 at 17:32 Xiaoxiang Yu <x...@apache.org> wrote:
>>
>>> Yes, that is almost correct.
>>>
>>> If you have a lot of complex queries, and you want to using Kylin 5 to
>>> accelerate them, the recommended steps of mine are as follows:
>>>
>>> 1. You analyse all queries and collect all join relation/pattern.
>>> 2. You create Models for each specific join relation/pattern, with the
>>> join
>>> relation you find in above step.
>>> 3. You analyse and collect dimensions and measures from all queries, and
>>> add them to the corresponding Model.
>>> 4. You build segments of all Models with proper data range.
>>> 5. You turned off the pushdown switch, and sent all queries to Kylin. If
>>> there are some queries which failed, fix them.
>>>     Here are some common situations.
>>>     5.1 Join relation/pattern is not matched
>>>     5.2 If the join relation is matched, the Model might not contain
>>> every
>>> column that your query needs, please check kylin.query.log with keyword '
>>> unmatched'.
>>> 6. (Optional) If you find some of your queries do not exactly match with
>>> your Index(your query on [colA, colB], but your index contains more
>>> columns
>>> than colA and colB), you can add some aggregate groups(or smaller Table
>>> Index) to optimize the query performance.
>>>
>>>
>>>
>>> ------------------------
>>> With warm regard
>>> Xiaoxiang Yu
>>>
>>>
>>>
>>> On Wed, Nov 1, 2023 at 5:57 PM Nam Đỗ Duy <na...@vnpay.vn.invalid>
>>> wrote:
>>>
>>> > Thank you Xiaoxiang, I nearly got to the point.
>>> >
>>> > So can I interpret that: 1 model equal (~) to a set of Joins of
>>> (Dim/Fact)
>>> > table, that is to say we need to create several models according to
>>> > multiple kinds of joins queries?
>>> >
>>> > Best regards
>>> >
>>> > On Wed, Nov 1, 2023 at 4:50 PM Xiaoxiang Yu <x...@apache.org> wrote:
>>> >
>>> >> Have you ever tried to analyse the reason why your query can not hit
>>> >> Model 'sample_ssb'?
>>> >> It is because the join relation of your query is not suitable for the
>>> >> join relation/pattern of  Model 'sample_ssb'.
>>> >>
>>> >> Your query used a join relation/pattern like: A inner join B.
>>> >> But the Model 'sample_ssb' used a join relation/pattern like : A inner
>>> >> join B inner join C.
>>> >>
>>> >> If you are familiar with the definition of Inner join, you may know
>>> that
>>> >> the
>>> >> relation/pattern 'A inner join B inner join C' will have a chance
>>> >> to lose some rows when compared to pattern 'A inner join B'.
>>> >> So the Model 'sample_ssb' will be excluded to serve your query.
>>> >>
>>> >> That is to say, you need to create a new model that is similar to
>>> Model
>>> >> 'sample_ssb',
>>> >>  but with additional tables removed.
>>> >>
>>> >>
>>> >>
>>> >> ------------------------
>>> >> With warm regard
>>> >> Xiaoxiang Yu
>>> >>
>>> >>
>>> >>
>>> >> On Wed, Nov 1, 2023 at 5:21 PM Nam Đỗ Duy <na...@vnpay.vn.invalid>
>>> wrote:
>>> >>
>>> >>> Hi Xiaoxiang,
>>> >>>
>>> >>> Thank you very much
>>> >>>
>>> >>> I have clearer picture of Kylin already thanks to your explanation.
>>> >>>
>>> >>> Now back to the sample project of SSB in attached photo, when I run
>>> this
>>> >>> query with push_down option OFF, why the OLAP error appears, and in
>>> such
>>> >>> case, how to create a new cube for this query?
>>> >>>
>>> >>> [image: image.png]
>>> >>>
>>> >>> On Wed, Nov 1, 2023 at 3:49 PM Xiaoxiang Yu <x...@apache.org> wrote:
>>> >>>
>>> >>>> Here is some of my explanation and it may not be perfect.
>>> >>>> Segment in Kylin is part of model/cube pre-computed data, in most
>>> >>>> cases, divided by date column.
>>> >>>>
>>> >>>> Here is some difference between Segment and Snapshot.
>>> >>>> Segment, whose source data comes from one fact table joins some
>>> dimension
>>> >>>> tables with 'specific date range', is 'precomputed', and will
>>> accelerate
>>> >>>> complex query.
>>> >>>> Snapshot, whose source data comes from one specific dimension table
>>> without
>>> >>>> specific date range, is "not precomputed", and can join with
>>> segments
>>> >>>> at runtime .
>>> >>>>
>>> >>>> - https://kylin.apache.org/5.0/docs/snapshot/snapshot_management
>>> >>>> -
>>> >>>>
>>> https://kylin.apache.org/5.0/docs/modeling/load_data/segment_operation_settings/intro
>>> >>>>
>>> >>>> ------------------------
>>> >>>> With warm regard
>>> >>>> Xiaoxiang Yu
>>> >>>>
>>> >>>>
>>> >>>>
>>> >>>> On Wed, Nov 1, 2023 at 3:53 PM Nam Đỗ Duy <na...@vnpay.vn> wrote:
>>> >>>>
>>> >>>>> Thank you again, very smart of you to automatically select cube
>>> for a
>>> >>>>> certain query. Sorry If I ask too much: Is the concept of Segment
>>> in Kylin
>>> >>>>> model similar to Slice-and-Dice concept of Cube, what is the
>>> different
>>> >>>>> between Kylin Segment and Kylin Snapshot?
>>> >>>>>
>>> >>>>> PS. I sent you the log files for your help in investigating why my
>>> >>>>> cube has not been used.
>>> >>>>>
>>> >>>>> On Wed, Nov 1, 2023 at 2:36 PM Xiaoxiang Yu <x...@apache.org>
>>> wrote:
>>> >>>>>
>>> >>>>>> I guess there is a misunderstanding from your sentences.
>>> >>>>>>
>>> >>>>>> -- 'I need to select Cube from a combo box below the query window'
>>> >>>>>> It is not right to use 'need', that combo box is for some specific
>>> >>>>>> cases(for example, Kylin did not choose a cube which is the most
>>> >>>>>> efficient), not the most cases.
>>> >>>>>> In most cases(both for Kylin 4 and Kylin 5), you don't need to
>>> select
>>> >>>>>> a Cube in the combo box, Kylin will do the choice for you.
>>> >>>>>>
>>> >>>>>> ------------------------
>>> >>>>>> With warm regard
>>> >>>>>> Xiaoxiang Yu
>>> >>>>>>
>>> >>>>>>
>>> >>>>>>
>>> >>>>>> On Wed, Nov 1, 2023 at 3:24 PM Nam Đỗ Duy <na...@vnpay.vn.invalid
>>> >
>>> >>>>>> wrote:
>>> >>>>>>
>>> >>>>>>> Hi Xiaoxiang, sorry if I made you confused (Anyway, it is just a
>>> >>>>>>> question of a beginner)
>>> >>>>>>>
>>> >>>>>>> "obviously" means "clearly"
>>> >>>>>>>
>>> >>>>>>> because I need to select Cube from a combo box below the query
>>> window
>>> >>>>>>>
>>> >>>>>>> Thank you very much
>>> >>>>>>>
>>> >>>>>>> On Wed, Nov 1, 2023 at 2:20 PM Xiaoxiang Yu <x...@apache.org>
>>> wrote:
>>> >>>>>>>
>>> >>>>>>>> From my side, I cannot understand why you say Kylin 4 is 'very
>>> >>>>>>>> obviously'. Can you give an example?
>>> >>>>>>>> From the source code, the basic logic of choosing the right
>>> >>>>>>>> cube/model are similar.
>>> >>>>>>>> ------------------------
>>> >>>>>>>> With warm regard
>>> >>>>>>>> Xiaoxiang Yu
>>> >>>>>>>>
>>> >>>>>>>>
>>> >>>>>>>>
>>> >>>>>>>> On Wed, Nov 1, 2023 at 3:01 PM Nam Đỗ Duy <na...@vnpay.vn>
>>> wrote:
>>> >>>>>>>>
>>> >>>>>>>>> Thank you for your kind reply, please answer 1 more question
>>> about
>>> >>>>>>>>> version 5:
>>> >>>>>>>>>
>>> >>>>>>>>> In version 4.x we run query against a Cube very obviously, but
>>> in
>>> >>>>>>>>> version 5, the cube usage is a implication socan you advise:
>>> for a given
>>> >>>>>>>>> query, which model will be used, which index (cube) will be
>>> used for this
>>> >>>>>>>>> query?
>>> >>>>>>>>>
>>> >>>>>>>>> Thank you
>>> >>>>>>>>>
>>> >>>>>>>>> On Wed, Nov 1, 2023 at 1:42 PM Xiaoxiang Yu <x...@apache.org>
>>> >>>>>>>>> wrote:
>>> >>>>>>>>>
>>> >>>>>>>>>> 1. How do I measure the size of the index (cube) in version 5?
>>> >>>>>>>>>>    You can check storage of specific Indexes from the Index
>>> page.
>>> >>>>>>>>>>
>>> >>>>>>>>>>
>>> https://kylin.apache.org/5.0/docs/modeling/model_design/aggregation_group#view-aggregate-index
>>> >>>>>>>>>> or
>>> >>>>>>>>>>
>>> https://kylin.apache.org/5.0/assets/images/index_1-6ad3f55183d4ed61962359d9408ba192.png
>>> >>>>>>>>>>
>>> >>>>>>>>>>
>>> >>>>>>>>>> 2. How to create the cardinality for each column?
>>> >>>>>>>>>>    You should check this link :
>>> >>>>>>>>>> https://kylin.apache.org/5.0/docs/datasource/data_sampling/ .
>>> >>>>>>>>>>
>>> >>>>>>>>>> 3. In your default project sample named SSB project, you have
>>> >>>>>>>>>> only 4 simple aggregate group index and no table index as in
>>> attached file
>>> >>>>>>>>>> so what is the best strategy to select index for our OLAP?
>>> >>>>>>>>>>     1. There does exist a 'Base Table Index'  by default
>>> >>>>>>>>>> actually, its id is 20000000001.
>>> >>>>>>>>>>     2. I think it is a good question and Kylin 5 lacks such a
>>> >>>>>>>>>> guide for better modeling. You are free to ask your question
>>> to
>>> >>>>>>>>>> mailing list and I will try to reply.
>>> >>>>>>>>>>
>>> >>>>>>>>>> ------------------------
>>> >>>>>>>>>> With warm regard
>>> >>>>>>>>>> Xiaoxiang Yu
>>> >>>>>>>>>>
>>> >>>>>>>>>>
>>> >>>>>>>>>>
>>> >>>>>>>>>> On Wed, Nov 1, 2023 at 2:12 PM Xiaoxiang Yu <x...@apache.org>
>>> >>>>>>>>>> wrote:
>>> >>>>>>>>>>
>>> >>>>>>>>>>> OK, I didn't read all the mail history so I misunderstand the
>>> >>>>>>>>>>> situation. Looks like you need to analyse
>>> >>>>>>>>>>> the cause why the query didn't hit the cube correctly.
>>> >>>>>>>>>>>
>>> >>>>>>>>>>> Please generate query diagnosis package and send it to me
>>> >>>>>>>>>>> privately. I will analyse the query log.
>>> >>>>>>>>>>> You can refer to the following steps in screenshots.
>>> >>>>>>>>>>>
>>> >>>>>>>>>>> [image: image.png]
>>> >>>>>>>>>>>
>>> >>>>>>>>>>> If the screenshots are not displaying correctly, please read
>>> >>>>>>>>>>> this guide :
>>> >>>>>>>>>>>
>>> >>>>>>>>>>>
>>> https://kylin.apache.org/5.0/docs/operations/system-operation/diagnosis/#generate-query-diagnosis-package-in-web-ui
>>> >>>>>>>>>>>
>>> >>>>>>>>>>> By the way, you need to analyse the cause by reading
>>> >>>>>>>>>>> kylin.query.log, not the kylin.log,
>>> >>>>>>>>>>> refer to
>>> >>>>>>>>>>> https://kylin.apache.org/5.0/docs/operations/logs/system_log
>>> >>>>>>>>>>>
>>> >>>>>>>>>>> ------------------------
>>> >>>>>>>>>>> With warm regard
>>> >>>>>>>>>>> Xiaoxiang Yu
>>> >>>>>>>>>>>
>>> >>>>>>>>>>>
>>> >>>>>>>>>>>
>>> >>>>>>>>>>> On Wed, Nov 1, 2023 at 12:18 PM Nam Đỗ Duy <na...@vnpay.vn>
>>> >>>>>>>>>>> wrote:
>>> >>>>>>>>>>>
>>> >>>>>>>>>>>> Thank you Xiaoxiang for your advice. As my title email
>>> shown, I
>>> >>>>>>>>>>>> guessed that the OLAP functionalities has not been
>>> correctly set up in my
>>> >>>>>>>>>>>> computer.
>>> >>>>>>>>>>>>
>>> >>>>>>>>>>>> The evidence about it is that: when I disable the Pushdown
>>> >>>>>>>>>>>> option box to use solely the precomputation cube only, it
>>> showed following
>>> >>>>>>>>>>>> error: Please kindly advise how to properly build the OLAP
>>> >>>>>>>>>>>>
>>> >>>>>>>>>>>> LIMIT 500": No realization found for OLAPContext,
>>> MODEL_UNMATCHED_JOIN,
>>> rel#2240:KapTableScan.OLAP.[](table=[VNEVENT_HIVE_DWH_400MILLION_ROWS,
>>> FACTUSEREVENT],ctx=0@null,fields=[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
>>> 12, 13, 14, 15, 16, 17, 18, 19, 20])
>>> >>>>>>>>>>>>
>>> >>>>>>>>>>>>
>>> >>>>>>>>>>>>
>>> >>>>>>>>>>>> On Wed, Nov 1, 2023 at 10:40 AM Xiaoxiang Yu <
>>> x...@apache.org>
>>> >>>>>>>>>>>> wrote:
>>> >>>>>>>>>>>>
>>> >>>>>>>>>>>>> Hi,
>>> >>>>>>>>>>>>>
>>> >>>>>>>>>>>>>     Yesterday, I tried to see if query pushdown functions
>>> work
>>> >>>>>>>>>>>>> well in the Kylin5 docker, and all of my queries return
>>> proper responses .
>>> >>>>>>>>>>>>>     After checking your logs from Shaofeng, I found these
>>> >>>>>>>>>>>>> error messages repeated many times:
>>> >>>>>>>>>>>>>     1. 'java.io.IOException: All datanodes
>>> >>>>>>>>>>>>> DatanodeInfoWithStorage[127.0.0.1:9866
>>> ,DS-5093899b-06c7-4386-95d5-6fc271d92b52,DISK]
>>> >>>>>>>>>>>>> are bad. Aborting...'
>>> >>>>>>>>>>>>>     2. 'curator.ConnectionState : Connection timed out for
>>> >>>>>>>>>>>>> connection string (localhost:2181) and timeout (15000) /
>>> elapsed (41794)
>>> >>>>>>>>>>>>> org.apache.curator.CuratorConnectionLossException:
>>> >>>>>>>>>>>>> KeeperErrorCode = ConnectionLoss'
>>> >>>>>>>>>>>>>
>>> >>>>>>>>>>>>>     I guess the root cause is that the container didn't not
>>> >>>>>>>>>>>>> have enough resources. I found you query on a table called
>>> >>>>>>>>>>>>> 'XXX_hive_dwh_400million_rows', looks like you gave a
>>> complex query on a
>>> >>>>>>>>>>>>> table which contains 400 million rows?
>>> >>>>>>>>>>>>>
>>> >>>>>>>>>>>>>     Since I am the uploader of kylin5 's docker image, I
>>> want
>>> >>>>>>>>>>>>> to give some explainment. Kylin5 docker is not a place for
>>> performance
>>> >>>>>>>>>>>>> benchmarks, it is only for demonstration. It is only
>>> allocated with very
>>> >>>>>>>>>>>>> little resources(8G memory) if you are using the default
>>> command from
>>> >>>>>>>>>>>>> docker hub page. Before I uploaded my image, I only tested
>>> my image using
>>> >>>>>>>>>>>>> the ssb dataset, which the biggest table only contains
>>> about 60k rows. If
>>> >>>>>>>>>>>>> you are using a larger dataset and complexer queries, you
>>> have to scale the
>>> >>>>>>>>>>>>> resource properly. Try querying tables which contain not
>>> more than 100k
>>> >>>>>>>>>>>>> rows by default.
>>> >>>>>>>>>>>>>
>>> >>>>>>>>>>>>>     Here are some tips which may help you to check if the
>>> >>>>>>>>>>>>> daemon service is in health status and
>>> resources(particularly disk space)
>>> >>>>>>>>>>>>> is configured properly.
>>> >>>>>>>>>>>>>
>>> >>>>>>>>>>>>>     1. Checking HDFS 's web ui(
>>> >>>>>>>>>>>>> http://localhost:9870/dfshealth.html#tab-datanode ) to
>>> >>>>>>>>>>>>> confirm whether HDFS service is in 'In service' status.
>>> >>>>>>>>>>>>>     2. Checking Datanode 's log in
>>> >>>>>>>>>>>>>
>>> `/opt/hadoop-3.2.1/logs/hadoop-root-datanode-Kylin5-Machine.log`, check if
>>> >>>>>>>>>>>>> there is any error message. Like: cat
>>> >>>>>>>>>>>>>
>>> /opt/hadoop-3.2.1/logs/hadoop-root-datanode-Kylin5-Machine.log | grep ERROR
>>> >>>>>>>>>>>>> | wc -l
>>> >>>>>>>>>>>>>     3. Checking if your docker engine is configured with
>>> >>>>>>>>>>>>> enough disk space, if you are using Docker Desktop like
>>> me,please go to
>>> >>>>>>>>>>>>> "Settings" - "Resources" - "Advanced", make sure you have
>>> allocated 40GB+
>>> >>>>>>>>>>>>> disk space to the docker container.
>>> >>>>>>>>>>>>>     4. Checking the available disk space of your container
>>> by
>>> >>>>>>>>>>>>> `df -h`, make sure the 'Use%' of 'overlay' is less than
>>> 60% .
>>> >>>>>>>>>>>>>     5. Checking the load average/ cpu usage/ jvm gc. Make
>>> sure
>>> >>>>>>>>>>>>> these metrics are not really high when you send a query.
>>> >>>>>>>>>>>>> ------------------------
>>> >>>>>>>>>>>>> With warm regard
>>> >>>>>>>>>>>>> Xiaoxiang Yu
>>> >>>>>>>>>>>>>
>>> >>>>>>>>>>>>>
>>> >>>>>>>>>>>>>
>>> >>>>>>>>>>>>> On Tue, Oct 31, 2023 at 5:13 PM Nam Đỗ Duy
>>> >>>>>>>>>>>>> <na...@vnpay.vn.invalid> wrote:
>>> >>>>>>>>>>>>>
>>> >>>>>>>>>>>>>> Hi ShaoFeng
>>> >>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>> Thank you very much for your valuable feedback
>>> >>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>> I saw the application to be there (if I see it right) as
>>> in
>>> >>>>>>>>>>>>>> the attachment photo. Kindly advise so that I can run
>>> this query on OLAP.
>>> >>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>> PS. I sent you the log file in private.
>>> >>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>> [image: image.png]
>>> >>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>> On Tue, Oct 31, 2023 at 3:11 PM ShaoFeng Shi <
>>> >>>>>>>>>>>>>> shaofeng...@apache.org> wrote:
>>> >>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>> Can you provide the messages in logs/kylin.log when
>>> >>>>>>>>>>>>>>> executing the SQL? and you can also check the Spark UI
>>> from yarn resource
>>> >>>>>>>>>>>>>>> manager (there should be one running application called
>>> Spardar, which is
>>> >>>>>>>>>>>>>>> Kylin's backend spark application). If the application
>>> is not there, it may
>>> >>>>>>>>>>>>>>> indicates the yarn doesn't have resource to startup it.
>>> >>>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>> Best regards,
>>> >>>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>> Shaofeng Shi 史少锋
>>> >>>>>>>>>>>>>>> Apache Kylin PMC,
>>> >>>>>>>>>>>>>>> Apache Incubator PMC,
>>> >>>>>>>>>>>>>>> Email: shaofeng...@apache.org
>>> >>>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>> Apache Kylin FAQ:
>>> >>>>>>>>>>>>>>> https://kylin.apache.org/docs/gettingstarted/faq.html
>>> >>>>>>>>>>>>>>> Join Kylin user mail group:
>>> user-subscr...@kylin.apache.org
>>> >>>>>>>>>>>>>>> Join Kylin dev mail group:
>>> dev-subscr...@kylin.apache.org
>>> >>>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>> Nam Đỗ Duy <na...@vnpay.vn> 于2023年10月31日周二 10:35写道:
>>> >>>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>>> Dear Sir/Madam,
>>> >>>>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>>> I have a fact with 500million rows then I build model,
>>> >>>>>>>>>>>>>>>> index according to the website help.
>>> >>>>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>>> I chose full incremental because this is the first
>>> times I
>>> >>>>>>>>>>>>>>>> load data
>>> >>>>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>>> I create both index types Aggregate group index, table
>>> >>>>>>>>>>>>>>>> index as photo attached.
>>> >>>>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>>> But the query always failed after timeout of 300
>>> seconds (I
>>> >>>>>>>>>>>>>>>> run in docker), I dont want to increase the value of
>>> 300 seconds because I
>>> >>>>>>>>>>>>>>>> wish the OLAP can run within 1 minutes (is that
>>> possible?)
>>> >>>>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>>> It seems that the OLAP function in indexing not working
>>> to
>>> >>>>>>>>>>>>>>>> speedup the query by precomputed cube.
>>> >>>>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>>> Can you advise to check whether the index did really
>>> work?
>>> >>>>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>>> It is quite urgent task for me so prompt response is
>>> highly
>>> >>>>>>>>>>>>>>>> appreciated.
>>> >>>>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>>> Thank you very much
>>> >>>>>>>>>>>>>>>>
>>> >>>>>>>>>>>>>>>
>>>
>>

Reply via email to