+1

On Fri, Apr 26, 2024 at 8:25 AM Nimrod Ofek <ofek.nim...@gmail.com> wrote:

> Of course, I can't think of a scenario of thousands of tables with single
> in memory Spark cluster with in memory catalog.
> Thanks for the help!
>
> בתאריך יום ה׳, 25 באפר׳ 2024, 23:56, מאת Mich Talebzadeh ‏<
> mich.talebza...@gmail.com>:
>
>>
>>
>> Agreed. In scenarios where most of the interactions with the catalog are
>> related to query planning, saving and metadata management, the choice of
>> catalog implementation may have less impact on query runtime performance.
>> This is because the time spent on metadata operations is generally
>> minimal compared to the time spent on actual data fetching, processing, and
>> computation.
>> However, if we consider scalability and reliability concerns, especially
>> as the size and complexity of data and query workload grow. While an
>> in-memory catalog may offer excellent performance for smaller workloads,
>> it will face limitations in handling larger-scale deployments with
>> thousands of tables, partitions, and users. Additionally, durability and
>> persistence are crucial considerations, particularly in production
>> environments where data integrity
>> and availability are crucial. In-memory catalog implementations may lack
>> durability, meaning that metadata changes could be lost in the event of a
>> system failure or restart. Therefore, while in-memory catalog
>> implementations can provide speed and efficiency for certain use cases, we
>> ought to consider the requirements for scalability, reliability, and data
>> durability when choosing a catalog solution for production deployments. In
>> many cases, a combination of in-memory and disk-based catalog solutions may
>> offer the best balance of performance and resilience for demanding large
>> scale workloads.
>>
>>
>> HTH
>>
>>
>> Mich Talebzadeh,
>> Technologist | Architect | Data Engineer  | Generative AI | FinCrime
>> London
>> United Kingdom
>>
>>
>>    view my Linkedin profile
>> <https://www.linkedin.com/in/mich-talebzadeh-ph-d-5205b2/>
>>
>>
>>  https://en.everybodywiki.com/Mich_Talebzadeh
>>
>>
>>
>> *Disclaimer:* The information provided is correct to the best of my
>> knowledge but of course cannot be guaranteed . It is essential to note
>> that, as with any advice, quote "one test result is worth one-thousand
>> expert opinions (Werner
>> <https://en.wikipedia.org/wiki/Wernher_von_Braun>Von Braun
>> <https://en.wikipedia.org/wiki/Wernher_von_Braun>)".
>>
>>
>> On Thu, 25 Apr 2024 at 16:32, Nimrod Ofek <ofek.nim...@gmail.com> wrote:
>>
>>> Of course, but it's in memory and not persisted which is much faster,
>>> and as I said- I believe that most of the interaction with it is during the
>>> planning and save and not actual query run operations, and they are short
>>> and minimal compared to data fetching and manipulation so I don't believe
>>> it will have big impact on query run...
>>>
>>> בתאריך יום ה׳, 25 באפר׳ 2024, 17:52, מאת Mich Talebzadeh ‏<
>>> mich.talebza...@gmail.com>:
>>>
>>>> Well, I will be surprised because Derby database is single threaded and
>>>> won't be much of a use here.
>>>>
>>>> Most Hive metastore in the commercial world utilise postgres or Oracle
>>>> for metastore that are battle proven, replicated and backed up.
>>>>
>>>> Mich Talebzadeh,
>>>> Technologist | Architect | Data Engineer  | Generative AI | FinCrime
>>>> London
>>>> United Kingdom
>>>>
>>>>
>>>>    view my Linkedin profile
>>>> <https://www.linkedin.com/in/mich-talebzadeh-ph-d-5205b2/>
>>>>
>>>>
>>>>  https://en.everybodywiki.com/Mich_Talebzadeh
>>>>
>>>>
>>>>
>>>> *Disclaimer:* The information provided is correct to the best of my
>>>> knowledge but of course cannot be guaranteed . It is essential to note
>>>> that, as with any advice, quote "one test result is worth one-thousand
>>>> expert opinions (Werner
>>>> <https://en.wikipedia.org/wiki/Wernher_von_Braun>Von Braun
>>>> <https://en.wikipedia.org/wiki/Wernher_von_Braun>)".
>>>>
>>>>
>>>> On Thu, 25 Apr 2024 at 15:39, Nimrod Ofek <ofek.nim...@gmail.com>
>>>> wrote:
>>>>
>>>>> Yes, in memory hive catalog backed by local Derby DB.
>>>>> And again, I presume that most metadata related parts are during
>>>>> planning and not actual run, so I don't see why it should strongly affect
>>>>> query performance.
>>>>>
>>>>> Thanks,
>>>>>
>>>>>
>>>>> בתאריך יום ה׳, 25 באפר׳ 2024, 17:29, מאת Mich Talebzadeh ‏<
>>>>> mich.talebza...@gmail.com>:
>>>>>
>>>>>> With regard to your point below
>>>>>>
>>>>>> "The thing I'm missing is this: let's say that the output format I
>>>>>> choose is delta lake or iceberg or whatever format that uses parquet. 
>>>>>> Where
>>>>>> does the catalog implementation (which holds metadata afaik, same 
>>>>>> metadata
>>>>>> that iceberg and delta lake save for their tables about their columns)
>>>>>> comes into play and why should it affect performance? "
>>>>>>
>>>>>> The catalog implementation comes into play regardless of the output
>>>>>> format chosen (Delta Lake, Iceberg, Parquet, etc.) because it is
>>>>>> responsible for managing metadata about the datasets, tables, schemas, 
>>>>>> and
>>>>>> other objects stored in aforementioned formats. Even though Delta Lake 
>>>>>> and
>>>>>> Iceberg have their metadata management mechanisms internally, they still
>>>>>> rely on the catalog for providing a unified interface for accessing and
>>>>>> manipulating metadata across different storage formats.
>>>>>>
>>>>>> "Another thing is that if I understand correctly, and I might be
>>>>>> totally wrong here, the internal spark catalog is a local installation of
>>>>>> hive metastore anyway, so I'm not sure what the catalog has to do with
>>>>>> anything"
>>>>>>
>>>>>> .I don't understand this. Do you mean a Derby database?
>>>>>>
>>>>>> HTH
>>>>>>
>>>>>> Mich Talebzadeh,
>>>>>> Technologist | Architect | Data Engineer  | Generative AI | FinCrime
>>>>>> London
>>>>>> United Kingdom
>>>>>>
>>>>>>
>>>>>>    view my Linkedin profile
>>>>>> <https://www.linkedin.com/in/mich-talebzadeh-ph-d-5205b2/>
>>>>>>
>>>>>>
>>>>>>  https://en.everybodywiki.com/Mich_Talebzadeh
>>>>>>
>>>>>>
>>>>>>
>>>>>> *Disclaimer:* The information provided is correct to the best of my
>>>>>> knowledge but of course cannot be guaranteed . It is essential to note
>>>>>> that, as with any advice, quote "one test result is worth one-thousand
>>>>>> expert opinions (Werner
>>>>>> <https://en.wikipedia.org/wiki/Wernher_von_Braun>Von Braun
>>>>>> <https://en.wikipedia.org/wiki/Wernher_von_Braun>)".
>>>>>>
>>>>>>
>>>>>> On Thu, 25 Apr 2024 at 14:38, Nimrod Ofek <ofek.nim...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Thanks for the detailed answer.
>>>>>>> The thing I'm missing is this: let's say that the output format I
>>>>>>> choose is delta lake or iceberg or whatever format that uses parquet. 
>>>>>>> Where
>>>>>>> does the catalog implementation (which holds metadata afaik, same 
>>>>>>> metadata
>>>>>>> that iceberg and delta lake save for their tables about their columns)
>>>>>>> comes into play and why should it affect performance?
>>>>>>> Another thing is that if I understand correctly, and I might be
>>>>>>> totally wrong here, the internal spark catalog is a local installation 
>>>>>>> of
>>>>>>> hive metastore anyway, so I'm not sure what the catalog has to do with
>>>>>>> anything.
>>>>>>>
>>>>>>> Thanks!
>>>>>>>
>>>>>>>
>>>>>>> בתאריך יום ה׳, 25 באפר׳ 2024, 16:14, מאת Mich Talebzadeh ‏<
>>>>>>> mich.talebza...@gmail.com>:
>>>>>>>
>>>>>>>> My take regarding your question is that your mileage varies so to
>>>>>>>> speak.
>>>>>>>>
>>>>>>>> 1) Hive provides a more mature and widely adopted catalog solution
>>>>>>>> that integrates well with other components in the Hadoop ecosystem, 
>>>>>>>> such as
>>>>>>>> HDFS, HBase, and YARN. IIf you are Hadoop centric S(say on-premise), 
>>>>>>>> using
>>>>>>>> Hive may offer better compatibility and interoperability.
>>>>>>>> 2) Hive provides a SQL-like interface that is familiar to users who
>>>>>>>> are accustomed to traditional RDBMs. If your use case involves complex 
>>>>>>>> SQL
>>>>>>>> queries or existing SQL-based workflows, using Hive may be 
>>>>>>>> advantageous.
>>>>>>>> 3) If you are looking for performance, spark's native catalog tends
>>>>>>>> to offer better performance for certain workloads, particularly those 
>>>>>>>> that
>>>>>>>> involve iterative processing or complex data transformations.(my
>>>>>>>> understanding). Spark's in-memory processing capabilities and 
>>>>>>>> optimizations
>>>>>>>> make it well-suited for interactive analytics and machine learning
>>>>>>>> tasks.(my favourite)
>>>>>>>> 4) Integration with Spark Workflows: If you primarily use Spark for
>>>>>>>> data processing and analytics, using Spark's native catalog may 
>>>>>>>> simplify
>>>>>>>> workflow management and reduce overhead, Spark's  tight integration 
>>>>>>>> with
>>>>>>>> its catalog allows for seamless interaction with Spark applications and
>>>>>>>> libraries.
>>>>>>>> 5) There seems to be some similarity with spark catalog and
>>>>>>>> Databricks unity catalog, so that may favour the choice.
>>>>>>>>
>>>>>>>> HTH
>>>>>>>>
>>>>>>>> Mich Talebzadeh,
>>>>>>>> Technologist | Architect | Data Engineer  | Generative AI | FinCrime
>>>>>>>> London
>>>>>>>> United Kingdom
>>>>>>>>
>>>>>>>>
>>>>>>>>    view my Linkedin profile
>>>>>>>> <https://www.linkedin.com/in/mich-talebzadeh-ph-d-5205b2/>
>>>>>>>>
>>>>>>>>
>>>>>>>>  https://en.everybodywiki.com/Mich_Talebzadeh
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> *Disclaimer:* The information provided is correct to the best of
>>>>>>>> my knowledge but of course cannot be guaranteed . It is essential to 
>>>>>>>> note
>>>>>>>> that, as with any advice, quote "one test result is worth one-thousand
>>>>>>>> expert opinions (Werner
>>>>>>>> <https://en.wikipedia.org/wiki/Wernher_von_Braun>Von Braun
>>>>>>>> <https://en.wikipedia.org/wiki/Wernher_von_Braun>)".
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, 25 Apr 2024 at 12:30, Nimrod Ofek <ofek.nim...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>> I will also appreciate some material that describes the
>>>>>>>>> differences between Spark native tables vs hive tables and why each 
>>>>>>>>> should
>>>>>>>>> be used...
>>>>>>>>>
>>>>>>>>> Thanks
>>>>>>>>> Nimrod
>>>>>>>>>
>>>>>>>>> בתאריך יום ה׳, 25 באפר׳ 2024, 14:27, מאת Mich Talebzadeh ‏<
>>>>>>>>> mich.talebza...@gmail.com>:
>>>>>>>>>
>>>>>>>>>> I see a statement made as below  and I quote
>>>>>>>>>>
>>>>>>>>>> "The proposal of SPARK-46122 is to switch the default value of
>>>>>>>>>> this
>>>>>>>>>> configuration from `true` to `false` to use Spark native tables
>>>>>>>>>> because
>>>>>>>>>> we support better."
>>>>>>>>>>
>>>>>>>>>> Can you please elaborate on the above specifically with regard to
>>>>>>>>>> the phrase ".. because
>>>>>>>>>> we support better."
>>>>>>>>>>
>>>>>>>>>> Are you referring to the performance of Spark catalog (I believe
>>>>>>>>>> it is internal) or integration with Spark?
>>>>>>>>>>
>>>>>>>>>> HTH
>>>>>>>>>>
>>>>>>>>>> Mich Talebzadeh,
>>>>>>>>>> Technologist | Architect | Data Engineer  | Generative AI |
>>>>>>>>>> FinCrime
>>>>>>>>>> London
>>>>>>>>>> United Kingdom
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>    view my Linkedin profile
>>>>>>>>>> <https://www.linkedin.com/in/mich-talebzadeh-ph-d-5205b2/>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>  https://en.everybodywiki.com/Mich_Talebzadeh
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> *Disclaimer:* The information provided is correct to the best of
>>>>>>>>>> my knowledge but of course cannot be guaranteed . It is essential to 
>>>>>>>>>> note
>>>>>>>>>> that, as with any advice, quote "one test result is worth 
>>>>>>>>>> one-thousand
>>>>>>>>>> expert opinions (Werner
>>>>>>>>>> <https://en.wikipedia.org/wiki/Wernher_von_Braun>Von Braun
>>>>>>>>>> <https://en.wikipedia.org/wiki/Wernher_von_Braun>)".
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Thu, 25 Apr 2024 at 11:17, Wenchen Fan <cloud0...@gmail.com>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> +1
>>>>>>>>>>>
>>>>>>>>>>> On Thu, Apr 25, 2024 at 2:46 PM Kent Yao <y...@apache.org> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> +1
>>>>>>>>>>>>
>>>>>>>>>>>> Nit: the umbrella ticket is SPARK-44111, not SPARK-44444.
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks,
>>>>>>>>>>>> Kent Yao
>>>>>>>>>>>>
>>>>>>>>>>>> Dongjoon Hyun <dongjoon.h...@gmail.com> 于2024年4月25日周四 14:39写道:
>>>>>>>>>>>> >
>>>>>>>>>>>> > Hi, All.
>>>>>>>>>>>> >
>>>>>>>>>>>> > It's great to see community activities to polish 4.0.0 more
>>>>>>>>>>>> and more.
>>>>>>>>>>>> > Thank you all.
>>>>>>>>>>>> >
>>>>>>>>>>>> > I'd like to bring SPARK-46122 (another SQL topic) to you from
>>>>>>>>>>>> the subtasks
>>>>>>>>>>>> > of SPARK-44444 (Prepare Apache Spark 4.0.0),
>>>>>>>>>>>> >
>>>>>>>>>>>> > - https://issues.apache.org/jira/browse/SPARK-46122
>>>>>>>>>>>> >    Set `spark.sql.legacy.createHiveTableByDefault` to `false`
>>>>>>>>>>>> by default
>>>>>>>>>>>> >
>>>>>>>>>>>> > This legacy configuration is about `CREATE TABLE` SQL syntax
>>>>>>>>>>>> without
>>>>>>>>>>>> > `USING` and `STORED AS`, which is currently mapped to `Hive`
>>>>>>>>>>>> table.
>>>>>>>>>>>> > The proposal of SPARK-46122 is to switch the default value of
>>>>>>>>>>>> this
>>>>>>>>>>>> > configuration from `true` to `false` to use Spark native
>>>>>>>>>>>> tables because
>>>>>>>>>>>> > we support better.
>>>>>>>>>>>> >
>>>>>>>>>>>> > In other words, Spark will use the value of
>>>>>>>>>>>> `spark.sql.sources.default`
>>>>>>>>>>>> > as the table provider instead of `Hive` like the other Spark
>>>>>>>>>>>> APIs. Of course,
>>>>>>>>>>>> > the users can get all the legacy behavior by setting back to
>>>>>>>>>>>> `true`.
>>>>>>>>>>>> >
>>>>>>>>>>>> > Historically, this behavior change was merged once at Apache
>>>>>>>>>>>> Spark 3.0.0
>>>>>>>>>>>> > preparation via SPARK-30098 already, but reverted during the
>>>>>>>>>>>> 3.0.0 RC period.
>>>>>>>>>>>> >
>>>>>>>>>>>> > 2019-12-06: SPARK-30098 Use default datasource as provider
>>>>>>>>>>>> for CREATE TABLE
>>>>>>>>>>>> > 2020-05-16: SPARK-31707 Revert SPARK-30098 Use default
>>>>>>>>>>>> datasource as
>>>>>>>>>>>> >             provider for CREATE TABLE command
>>>>>>>>>>>> >
>>>>>>>>>>>> > At Apache Spark 3.1.0, we had another discussion about this
>>>>>>>>>>>> and defined it
>>>>>>>>>>>> > as one of legacy behavior via this configuration via reused
>>>>>>>>>>>> ID, SPARK-30098.
>>>>>>>>>>>> >
>>>>>>>>>>>> > 2020-12-01:
>>>>>>>>>>>> https://lists.apache.org/thread/8c8k1jk61pzlcosz3mxo4rkj5l23r204
>>>>>>>>>>>> > 2020-12-03: SPARK-30098 Add a configuration to use default
>>>>>>>>>>>> datasource as
>>>>>>>>>>>> >             provider for CREATE TABLE command
>>>>>>>>>>>> >
>>>>>>>>>>>> > Last year, we received two additional requests twice to
>>>>>>>>>>>> switch this because
>>>>>>>>>>>> > Apache Spark 4.0.0 is a good time to make a decision for the
>>>>>>>>>>>> future direction.
>>>>>>>>>>>> >
>>>>>>>>>>>> > 2023-02-27: SPARK-42603 as an independent idea.
>>>>>>>>>>>> > 2023-11-27: SPARK-46122 as a part of Apache Spark 4.0.0 idea
>>>>>>>>>>>> >
>>>>>>>>>>>> >
>>>>>>>>>>>> > WDYT? The technical scope is defined in the following PR
>>>>>>>>>>>> which is one line of main
>>>>>>>>>>>> > code, one line of migration guide, and a few lines of test
>>>>>>>>>>>> code.
>>>>>>>>>>>> >
>>>>>>>>>>>> > - https://github.com/apache/spark/pull/46207
>>>>>>>>>>>> >
>>>>>>>>>>>> > Dongjoon.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> ---------------------------------------------------------------------
>>>>>>>>>>>> To unsubscribe e-mail: dev-unsubscr...@spark.apache.org
>>>>>>>>>>>>
>>>>>>>>>>>>

Reply via email to