thanks for video. but bit confused, when you do saveAsTable() and drop the table, will the physical data be deleted from original source? for example if I read data from AWS S3 and saveAsTable, but then drop the table, will the data in S3 also be deleted ?
When you create a schema on top of an existing file, schema on read, it's really a read only pseudo table. You can also create tables that are unmanaged which means Spark will not delete them when you drop the table. If the table is defined as a managed table, dropping the table will also drop the underlying data. you need to make sure you know whether you have a managed or unmanaged table to avoid bad surprises.
Just that a Delta file is really a Delta Table that has not been cataloged in the Hive Metastore or the Unity Catalog. But that just by pointing to the Delta file path, you can use as a table.
Hi @BryanCafferky if CSV file meta data is change then hive metastore automatically update metadata in hive store, is it right else we can do any steps for refresh metadata ?
have some confused about unmanaged and managed, in the step `create delta table that stored in hive` the type of dimgeography is Managed but it still can drop by not get rid of the physical files like Unmanaged(External), so what's the difference point of it?
Yes. It is confusing. Think of a managed table as being like a SQL Server table if that helps. SQL Server tables are created and dropped with all the data via a DROP TABLE statement. Spark supports similar functionality for Managed tables in which the table schema and underlying data are created at the same time. This is to mimic SQL database type of functionality. Unmanaged tables are when you already have an external file and you create a schema defining the columns names and types describing the table so Spark can allow you to use SQL queries against it. Since the file pre-exists and is maintained separately from the Hive Metastore or Unity Catalog, you don't want the physical file deleted when you issue a SQL DROP TABLE statement. Bottom line: if you want the table to be treated just like an RDBMS would treat it, i.e. catalog entry and physical data handled via SQL, you want Managed. If you want to use SQL queries against a pre-existing data file, you want to define it as Unmanaged. Make sense?
Good video. Though I understand Hive Metastore, it confuses me why everything in data has a dependency on it. For instance, Iceberg seems to need it for everything even though it’s supposed to be a self describing table format.
Technically, you don't need the Hive metastore to read Delta tables. But it provides a look up to where the table is physically stored. Otherwise, you need to provide the full path to the storage location. It also stores schemas for files that don't have built-in schemas like CSV and Text files.
Finally a video on databricks hive metastore which is well explained, thanks Bryan
Great video! I'm subscribing for the Red Green reference alone!
I was just pondering on doing a deep dive in this today and reading a lot of docs and then you put out the video 😂 awesome work Bryan!
That's the right level of detail that I needed. Well explained. Thank you.
You're Welcome!
This is what I was really looking for. Thank you very much for providing such an amazing explaination.
You're welcome. Glad to help.
Pretty clear ...very much needed before exploring Unity catalog ....Waiting for the next
Very clear explanation. Thanks @Bryan!
Thank you so much for despite your great knowledge about the subject, you take the time to explain it so even I can understand!!😍
You're welcome. Glad it helps.
super clear explanation, loved the analogy used in the beginning
Thank You!
Thank you very much for the video and the channel, I'm from Brazil and your work help me a lot!
So glad my videos are helping you!
Love the direct and clear content! Keep it going!
I love this video!! thanks a lot.
Waiting for the unity catalog video!
YW.
That's so good i enjoyed the video thoroughly..i am.just starting to understand more about azure data bricks
Thanks for making it simple to understand.
You're Welcome! Glad it helped.
Great video, waiting for the next one unity catalog.🙌
Yeah. There's a lot to Unity Catalog. Also doing Databricks AI Assistant which is very cool.
great explanation. Thanks!
thanks for video. but bit confused, when you do saveAsTable() and drop the table, will the physical data be deleted from original source? for example if I read data from AWS S3 and saveAsTable, but then drop the table, will the data in S3 also be deleted ?
When you create a schema on top of an existing file, schema on read, it's really a read only pseudo table. You can also create tables that are unmanaged which means Spark will not delete them when you drop the table. If the table is defined as a managed table, dropping the table will also drop the underlying data. you need to make sure you know whether you have a managed or unmanaged table to avoid bad surprises.
Excellent narrative ❤❤❤
Thanks Bryan for this amazing session
YW
Deadly clear, awesome 👌👌👌💯💯💯
Exceptional explanation. Thank you.
Glad it was helpful.
Can you tell us when are you releasing your take on Unity Catalog ? Looking forward to it.
So many things to cover these days. Hopefully, soon. Thanks!
Thanks A LOT!
One question: at 17:05; did you mean "Delta Files" instead of "Delta tables" ? when you said "Detla tables are rather interesting ...."
Just that a Delta file is really a Delta Table that has not been cataloged in the Hive Metastore or the Unity Catalog. But that just by pointing to the Delta file path, you can use as a table.
Hi @BryanCafferky if CSV file meta data is change then hive metastore automatically update metadata in hive store, is it right else we can do any steps for refresh metadata ?
A Hive table definition over a CSV file is read only and to get the meta data reloaded, I believe you would need to drop and re-create the table.
very good explanation, thank you very much man
YW
have some confused about unmanaged and managed, in the step `create delta table that stored in hive` the type of dimgeography is Managed but it still can drop by not get rid of the physical files like Unmanaged(External), so what's the difference point of it?
Yes. It is confusing. Think of a managed table as being like a SQL Server table if that helps. SQL Server tables are created and dropped with all the data via a DROP TABLE statement. Spark supports similar functionality for Managed tables in which the table schema and underlying data are created at the same time. This is to mimic SQL database type of functionality. Unmanaged tables are when you already have an external file and you create a schema defining the columns names and types describing the table so Spark can allow you to use SQL queries against it. Since the file pre-exists and is maintained separately from the Hive Metastore or Unity Catalog, you don't want the physical file deleted when you issue a SQL DROP TABLE statement. Bottom line: if you want the table to be treated just like an RDBMS would treat it, i.e. catalog entry and physical data handled via SQL, you want Managed. If you want to use SQL queries against a pre-existing data file, you want to define it as Unmanaged. Make sense?
Great content... Like always
You’re doing the Lord’s work. 👌
Hey Bryan, do you plan to create something about Unity Catalog?
Great video!
Thanks!
Thanks Bryan!!
You're welcome!
Superb! thank you.
You're Welcome!
Loved it
This gave real good idea
Good video. Though I understand Hive Metastore, it confuses me why everything in data has a dependency on it. For instance, Iceberg seems to need it for everything even though it’s supposed to be a self describing table format.
Technically, you don't need the Hive metastore to read Delta tables. But it provides a look up to where the table is physically stored. Otherwise, you need to provide the full path to the storage location. It also stores schemas for files that don't have built-in schemas like CSV and Text files.
Very Good.