Где Delta Lake хранит информацию о метаданных таблицы. Я использую Spark 2.6 (Not Databricks) на моем автономном компьютере. Мое предположение заключалось в том, что если я перезапущу искру, таблица, созданная в искре дельта-озера, будет удалена (попытка из записной книжки Jupyter). Но это не так.
Метаданные Delta Lake Table
Ответы (1)
В Apache Spark есть два типа таблиц: внешние таблицы и управляемые таблицы. При создании таблицы с использованием ключевого слова LOCATION
в операторе CREATE TABLE
это внешняя таблица. В противном случае это управляемая таблица, и ее расположение находится в каталоге, указанном в Spark SQL conf spark.sql.warehouse.dir
. Его значение по умолчанию - это каталог spark-warehouse
в текущем рабочем каталоге.
Помимо данных, Spark также необходимо хранить метаданные таблицы в Hive Metastore, чтобы Spark мог знать, где находятся данные, когда пользователь использует имя таблицы для запроса. Hive Metastore обычно представляет собой базу данных. Если пользователь не указывает базу данных для Hive Metastore, Spark будет использовать встроенную базу данных под названием Derby. для хранения метаданных таблицы в локальной файловой системе.
Команда DROP TABLE
ведет себя по-разному в зависимости от типа таблицы. Если таблица является управляемой, DROP TABLE
удалит таблицу из Hive Metastore и удалит данные. Если таблица является внешней таблицей, DROP TABLE
удалит таблицу из Hive Metastore, но все равно сохранит данные в файловой системе. Следовательно, файлы данных внешней таблицы должны быть удалены из файловой системы вручную пользователем.
location
в заявленииcreate table
). Если это так, вам нужно запуститьdrop table
, чтобы удалить таблицу из хранилища метаданных (drop table
не удаляет папку, используемую внешней таблицей), а также удалить папку таблицы вручную. - person zsxwing   schedule 23.07.2020spark-warehouse
в вашем текущем рабочем каталоге. - person zsxwing   schedule 23.07.2020