数据加载与达美住表
预览
这个特性是在公共预览。
你可以从任何数据源加载数据支持Apache火花在砖使用三角洲生活表。您可以定义数据集(表和视图)三角洲生活表反对任何查询,返回一个火花DataFrame,包括流火花DataFrames DataFrames和熊猫。数据摄取任务,砖建议使用流表对大多数用例。流表对摄入来自云的数据对象存储使用自动加载程序或从消息巴士就像卡夫卡。下面的例子演示了一些常见的模式。
重要的
不是所有的数据源都有SQL支持。可以混合使用SQL和Python笔记本δ生活表中管道使用SQL摄入之外所有操作。
细节处理库不打包在三角洲生活表默认情况下,明白了管道附件。
加载文件从云对象存储
砖建议使用自动加载器与达美住表对大多数数据摄入任务从云对象存储。自动加载器和δ生活表旨在逐步和幂等负荷日益增长的数据到达云存储。下面的例子使用自动加载程序来创建数据集从CSV和JSON文件:
请注意
加载文件自动加载程序在统一目录启用管道,必须使用外部位置。了解更BOB低频彩多关于使用统一目录与达美住表,看看使用统一的目录与三角洲住表管道。
@dlt。表def客户():返回(火花。readStream。格式(“cloudFiles”)。选项(“cloudFiles.format”,“csv”)。负载(“/ databricks-datasets / retail-org /客户/”))@dlt。表defsales_orders_raw():返回(火花。readStream。格式(“cloudFiles”)。选项(“cloudFiles.format”,“json”)。负载(“/ databricks-datasets / retail-org sales_orders /”))
创建或刷新流媒体表客户作为选择*从cloud_files(“/ databricks-datasets / retail-org /客户/”,“csv”)创建或刷新流媒体表sales_orders_raw作为选择*从cloud_files(“/ databricks-datasets / retail-org sales_orders /”,“json”)
警告
如果您使用自动加载程序文件通知和你为管道运行一个完整的刷新或流表,您需要执行手动清理你的资源。您可以使用CloudFilesResourceManager在一个笔记本进行清理。
加载数据从一个消息总线
您可以配置三角洲生活表管道从消息总线与摄取数据流表。砖建议流表结合连续执行和增强的自动定量提供最有效的摄入低延迟加载的消息总线。看到增强的自动定量是多少?。
例如,下面的代码配置一个流表从卡夫卡摄取数据:
进口dlt@dlt。表defkafka_raw():返回(火花。readStream。格式(“卡夫卡”)。选项(“kafka.bootstrap.servers”,“<服务器:ip >”)。选项(“订阅”,“人类”)。选项(“startingOffsets”,“最新”)。负载())
你可以写下游操作在纯SQL执行流转换这些数据,就像下面的例子:
创建或刷新流媒体表streaming_silver_table作为选择*从流(生活。kafka_raw)在哪里…
处理事件中心的例子,请参阅使用Azure事件中心作为一个三角洲住表数据源。
看到在砖处理流数据来源。
加载数据从外部系统
三角洲生活表支持加载数据从任何数据源支持的砖。一些数据源没有完整平价支持SQL,但是你可以写一个独立的Python笔记本定义数据从这些来源摄取,然后安排这个库与其他SQL笔记本建立三角洲住表管道。下面的示例声明一个物化视图来访问远程Postgresql表中的数据的当前状态:
进口dlt@dlt。表defpostgres_raw():返回(火花。读。格式(“postgresql”)。选项(“数据表”,table_name)。选项(“主机”,database_host_url)。选项(“端口”,5432年)。选项(“数据库”,database_name)。选项(“用户”,用户名)。选项(“密码”,密码)。负载())
看到在砖与外部数据。
从云对象存储负载小或静态数据集
你可以加载小或静态数据集使用Apache火花负载语法。三角洲生活表支持的所有文件格式支持Apache火花砖。一个完整的列表,请参阅您可以使用哪些数据格式在砖吗?。
下面的例子演示了加载JSON创建三角洲住表表:
@dlt。表defclickstream_raw():返回(火花。读。格式(“json”)。负载(“/ databricks-datasets / wikipedia-datasets /数据2015 - 001 /点击流/ raw-uncompressed-json / _2_clickstream.json”))
创建或刷新生活表clickstream_raw作为选择*从json。' /砖- - - - - -数据集/维基百科- - - - - -数据集/数据- - - - - -001年/点击流/生- - - - - -未压缩的- - - - - -json/2015年_2_clickstream。json”;
请注意
的选择*从format.“路径”;
所有SQL SQL构建常见环境砖。是推荐的模式与三角洲生活直接文件访问使用SQL表。
看到在砖与外部数据。
安全地访问存储凭证与秘密管道
您可以使用砖秘密存储访问密钥或密码等凭证。配置的秘密管道,管道中使用火花属性设置集群配置。看到配置您的计算设置。
下面的示例使用一个秘密存储访问关键需要读取输入数据从Azure数据存储Gen2湖(ADLS Gen2)存储账户使用自动加载程序。您可以使用同样的方法来配置你需要的任何秘密管道,例如,AWS访问S3键,或一个Apache蜂巢metastore的密码。
更多地BOB低频彩了解使用Azure数据存储Gen2湖连接到数据存储Gen2湖和Blob存储Azure。
请注意
您必须添加spark.hadoop。
前缀的spark_conf
配置设置秘密价值的关键。
{“id”:“43246596 - a63f - 11 - ec - b909 - 0242 ac120002”,“集群”:({“标签”:“默认”,“spark_conf”:{“spark.hadoop.fs.azure.account.key < storage-account-name > .dfs.core.windows.net”。:“{{秘密/ < scope-name > / <秘密名字>}}”},“自动定量”:{“min_workers”:1,“max_workers”:5,“模式”:“增强”}},{“标签”:“维护”,“spark_conf”:{“spark.hadoop.fs.azure.account.key < storage-account-name > .dfs.core.windows.net”。:“{{秘密/ < scope-name > / <秘密名字>}}”}}),“发展”:真正的,“连续”:假,“库”:({“笔记本”:{“路径”:“/用户/ user@www.neidfyre.com/DLT笔记本/δ住表快速入门”}}),“名称”:“使用ADLS2 DLT快速入门”}
取代
< storage-account-name >
与ADLS Gen2存储帐户名称。< scope-name >
砖秘密范围的名称。<秘密名字>
的名字包含Azure存储帐户访问关键的关键。
进口dltjson_path=“abfss: / / <容器名称> @ < storage-account-name >.dfs.core.windows.net/ < path-to-input-dataset >”@dlt。create_table(评论=“从一个ADLS2存储账户数据摄取。”)defread_from_ADLS2():返回(火花。readStream。格式(“cloudFiles”)。选项(“cloudFiles.format”,“json”)。负载(json_path))
取代
<容器名称>
Azure存储账户的名称容器存储输入数据。< storage-account-name >
与ADLS Gen2存储帐户名称。< path-to-input-dataset >
输入数据集的路径。