Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Microsoft vyřadil ovladač objektů blob služby Windows Azure Storage (WASB) pro Azure Blob Storage ve prospěch ovladače systému souborů Azure Blob (ABFS); Viz Připojení ke službě Azure Data Lake Storage a Blob Storage. ABFS má mnoho výhod oproti WASB; viz dokumentace k Azure týkající se ABFS.
Tento článek obsahuje dokumentaci k údržbě kódu, který používá ovladač WASB. Databricks doporučuje používat ABFS pro všechna připojení ke službě Azure Blob Storage.
Konfigurace přihlašovacích údajů WASB v Databricks
Ovladač WASB umožňuje použít přístupový klíč účtu úložiště nebo sdílený přístupový podpis (SAS). (Pokud čtete data z veřejného účtu úložiště, nemusíte konfigurovat přihlašovací údaje).
Databricks doporučuje používat tajné kódy vždy, když potřebujete předat přihlašovací údaje v Azure Databricks. Tajné kódy jsou dostupné všem uživatelům, kteří mají přístup k rozsahu tajných kódů.
Přihlašovací údaje můžete předat:
- Omezeno na cluster v konfiguraci Sparku
- Vymezený na poznámkový blok
- Připojeno k připojenému adresáři
Databricks doporučuje upgradovat všechna vaše připojení na používat ABFS pro přístup kAzure Blob Storage, což poskytuje podobné vzory přístupu jako WASB. Při interakci se službou Azure Blob Storage využijte ABFS k zajištění nejlepšího zabezpečení a výkonu.
Pokud chcete nakonfigurovat přihlašovací údaje clusteru, nastavte při vytváření clusteru konfiguraci Sparku vlastnosti. Přihlašovací údaje nastavené na úrovni clusteru jsou k dispozici všem uživatelům s přístupem k danému clusteru.
Pro nastavení přihlašovacích údajů se zaměřením na poznámkový blok použijte spark.conf.set(). Přihlašovací údaje předávané na úrovni poznámkového bloku jsou k dispozici všem uživatelům s přístupem k danému poznámkovému bloku.
Nastavení přihlašovacích údajů služby Azure Blob Storage pomocí přístupového klíče účtu úložiště
Přístupový klíč účtu úložiště uděluje úplný přístup ke všem kontejnerům v rámci účtu úložiště. I když je tento model užitečný pro vytváření prototypů, nepoužívejte ho v produkčním prostředí, abyste snížili rizika spojená s udělením neomezeného přístupu k produkčním datům.
spark.conf.set(
"fs.azure.account.key.<storage-account-name>.blob.core.windows.net",
"<storage-account-access-key>"
)
URI klíče účtu můžete upgradovat k použití ABFS. Další informace najdete v tématu Připojení ke službě Azure Data Lake Storage a blob Storage.
Nastavení přihlašovacích údajů služby Azure Blob Storage pomocí sdíleného přístupového podpisu (SAS)
Pomocí tokenů SAS můžete nakonfigurovat omezený přístup k jednomu kontejneru v účtu úložiště, jehož platnost vyprší v určitém okamžiku.
spark.conf.set(
"fs.azure.sas.<container-name>.<storage-account-name>.blob.core.windows.net",
"<sas-token-for-container>"
)
Přístup ke službě Azure Blob Storage pomocí rozhraní DATAFrame API
Rozhraní API datového rámce Apache Sparku může používat přihlašovací údaje nakonfigurované na úrovni poznámkového bloku nebo clusteru. Všechny identifikátory URI ovladačů WASB určují názvy kontejnerů a účtů úložiště. Název adresáře je volitelný a může zadat více vnořených adresářů vzhledem k kontejneru.
wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/<directory-name>
Následující příklady kódu ukazují, jak můžete pomocí API DataFrames a Databricks Utilities (dbutils) interagovat s pojmenovaným adresářem v kontejneru.
df = spark.read.format("parquet").load("wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/<directory-name>")
dbutils.fs.ls("wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/<directory-name>")
Pokud chcete místo WASB aktualizovat ABFS, aktualizujte identifikátory URI. Další informace najdete v kroku 4: Přístup k úložišti Azure
Přístup ke službě Azure Blob Storage pomocí SQL
Přihlašovací údaje nastavené v session poznámkového bloku nejsou přístupné pro poznámkové bloky, které běží na Spark SQL.
Po nastavení přístupového klíče účtu nebo SAS v konfiguraci clusteru můžete použít standardní dotazy Spark SQL se službou Azure Blob Storage:
-- SQL
CREATE DATABASE <db-name>
LOCATION "wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/";
Chcete-li aktualizovat ABFS místo WASB, aktualizujte své identifikátory URI; Viz krok 4: Přístup k úložišti Azure
Připojení kontejnerů Azure Blob Storage k DBFS
Ke službě DBFS můžete připojit kontejner služby Azure Blob Storage nebo složku uvnitř kontejneru. Doporučení pro Databricks najdete v tématu Připojení cloudového úložiště objektů v Azure Databricks.
Důležité
- Azure Blob Storage podporuje tři typy objektů blob: blok, připojení a stránku. K DBFS můžete připojit pouze blokové objekty blob.
- Všichni uživatelé mají přístup ke čtení a zápisu objektů v kontejnerech úložiště objektů blob připojených k DBFS.
- Po vytvoření přípojného bodu prostřednictvím clusteru můžou uživatelé tohoto clusteru okamžitě přistupovat k přípojovému bodu. Pokud chcete použít přípojný bod v jiném spuštěném clusteru, musíte na tomto spuštěném clusteru spustit
dbutils.fs.refreshMounts(), aby byl nově vytvořený přípojný bod dostupný.
DBFS používá přihlašovací údaje, které zadáte při vytváření přípojného bodu pro přístup k připojenému kontejneru úložiště objektů blob. Pokud je kontejner blob storage připojený pomocí přístupového klíče účtu úložiště, dbFS při přístupu k tomuto přípojovému bodu používá dočasné tokeny SAS odvozené z klíče účtu úložiště.
Připojení kontejneru úložiště objektů blob v Azure
Databricks doporučuje místo WASB používat ABFS. Další informace o připojení pomocí ABFS najdete v tématu: Připojení ADLS nebo Blob Storage s ABFS.
Pokud chcete připojit kontejner úložiště objektů blob nebo složku uvnitř kontejneru, použijte následující příkaz:
Python
dbutils.fs.mount( source = "wasbs://<container-name>@<storage-account-name>.blob.core.windows.net", mount_point = "/mnt/<mount-name>", extra_configs = {"<conf-key>":dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")})Scala
dbutils.fs.mount( source = "wasbs://<container-name>@<storage-account-name>.blob.core.windows.net/<directory-name>", mountPoint = "/mnt/<mount-name>", extraConfigs = Map("<conf-key>" -> dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")))kde
-
<storage-account-name>je název vašeho účtu služby Azure Blob Storage. -
<container-name>je název kontejneru v účtu služby Azure Blob Storage. -
<mount-name>je cesta DBFS, která představuje místo, kde bude kontejner úložiště objektů blob nebo adresář uvnitř kontejneru (uvedený vsource) připojen v DBFS. -
<conf-key>může být buďfs.azure.account.key.<storage-account-name>.blob.core.windows.netnebofs.azure.sas.<container-name>.<storage-account-name>.blob.core.windows.net -
dbutils.secrets.get(scope = "<scope-name>", key = "<key-name>")Získá klíč, který byl uložen jako tajný v tajné oblasti.
-
Přístup k souborům v kontejneru, jako by se jednalo o místní soubory, například:
Python
# python df = spark.read.format("text").load("/mnt/<mount-name>/...") df = spark.read.format("text").load("dbfs:/<mount-name>/...")Scala
// scala val df = spark.read.format("text").load("/mnt/<mount-name>/...") val df = spark.read.format("text").load("dbfs:/<mount-name>/...")SQL
-- SQL CREATE DATABASE <db-name> LOCATION "/mnt/<mount-name>"