开始
加载和管理数据
处理数据
政府
引用和资源
2023年8月1日更新
给我们反馈
本教程向您展示了如何建立一个端到端分析管道砖lakehouse。
重要的
本教程使用交互式笔记本完成常见的ETL任务在Python统一目录启用集群。如果你不使用统一目录,看看砖上运行你的第一个ETL工作负载。
通过本文的结尾,您将感到舒适:
推出一个统一目录启用集群计算。
创建一个砖笔记本。
读写的数据统一目录外的位置。
配置增量数据摄入统一目录表和自动加载程序。
笔记本电池过程中,执行查询,并预览数据。
安排一个笔记本作为砖的工作。
从砖SQL查询统一目录表
砖提供了一套生产就绪的工具,允许数据专业人员快速开发和部署提取、转换和加载(ETL)管道。统一目录允许数据管理员配置和安全存储凭证,外部位置,为用户和数据库对象在一个组织。砖SQL允许分析师运行SQL查询中使用相同的表生产ETL工作负载,允许大规模实时商业智能。
请注意
如果你没有集群控制特权,你仍然可以完成大部分的步骤只要你有以下访问一个集群。
如果你只有进入砖SQL的工作区,明白了设置您的工作区使用砖SQL。
做探索性数据分析和数据工程,创建一个集群来提供所需的计算资源执行命令。
点击计算在侧边栏。
在计算页面,点击创建集群。这将打开新的集群页面。
为集群指定一个唯一的名称。
选择单独的节点单选按钮。
选择单用户从访问模式下拉。
确保你的电子邮件地址是可见的单用户字段。
选择所需的砖的运行时版本的11.1或以上,使用统一的目录。
点击创建集群。
更多地BOB低频彩了解砖集群,明白了集群。
开始编写和执行互动代码在砖上,创建一个笔记本。
点击新在侧边栏,然后单击笔记本。
在创建笔记本页面:
为你的笔记本指定一个唯一的名称。
确保设置为默认语言Python。
选择您在步骤1中创建的集群集群下拉。
点击创建。
一个笔记本打开顶部有一个空单元。
学习更BOB低频彩多的关于创建和管理笔记本,看到的管理笔记本。
砖推荐使用自动加载程序增量数据的摄入。自动加载程序自动检测和过程到达云对象存储新文件。
您可以使用统一目录管理获得外部的位置。用户或服务主体读文件权限在外部位置可以使用自动加载程序来摄取数据。
读文件
通常,数据将抵达一个外部位置从其他系统由于写道。在这个演示,您可以模拟数据到达通过编写JSON文件到一个外部位置。
将下面的代码复制到一个笔记本电池。替换的字符串值目录与目录的名称创建目录和使用目录权限。替换的字符串值external_location与外部位置的路径读文件,写文件,创建外部表权限。
目录
创建目录
使用目录
external_location
写文件
创建外部表
外部位置可以被定义为一个完整的存储容器,但往往指向一个目录嵌套在一个容器中。
为外部位置路径是正确的格式“gs: / / bucket名/道路/ / external_location”。
“gs: / / bucket名/道路/ / external_location”
external_location=“< your-external-location >”目录=“<目录>”dbutils。fs。把(f”{external_location}/ filename.txt”,“Hello world !”,真正的)显示(dbutils。fs。头(f”{external_location}/ filename.txt”))dbutils。fs。rm(f”{external_location}/ filename.txt”)显示(火花。sql(f“显示模式{目录}”))
执行这个细胞应该打印一行12字节写,打印字符串“Hello world !””,显示所有的数据库目录中。如果你不能得到这个电池运行,确认你在统一目录启用工作区和从您的工作区管理员请求适当的权限来完成本教程。
下面的Python代码使用您的电子邮件地址来创建一个独特的数据库提供的目录中并在外部位置提供了一个独特的存储位置。执行这个细胞将删除所有数据与本教程,允许您执行这个例子幂等。定义并实例化一个类,您将使用模拟批次的数据从conncted系统外部源的位置。
这段代码复制到一个新细胞在你的笔记本和配置您的环境中执行它。
在这段代码中定义的变量应该允许您安全地执行它,而不会与现有工作空间冲突风险资产或其他用户。限制网络或存储权限执行这段代码时将提高错误;联系您的工作区管理员解决这些限制。
从pyspark.sql.functions进口上校#设置参数隔离在工作区和重置演示用户名=火花。sql(的“选择regexp_replace (current_user (), [^ a-zA-Z0-9)”,“_”)”)。第一个()(0]数据库=f”{目录}.e2e_lakehouse_{用户名}_db”源=f”{external_location}/ e2e-lakehouse-source”表=f”{数据库}.target_table”checkpoint_path=f”{external_location}/ _checkpoint / e2e-lakehouse-demo”火花。sql(f“c.username = '{用户名}’”)火花。sql(f“设置c.database ={数据库}”)火花。sql(f“c.source = '{源}’”)火花。sql(“数据库,如果存在美元下降{c.database}级联”)火花。sql(“创建数据库{c.database}”)火花。sql(“使用美元{c.database}”)#从以前的演示执行清除数据dbutils。fs。rm(源,真正的)dbutils。fs。rm(checkpoint_path,真正的)#定义一个类加载批次的数据来源类LoadData:def__init__(自我,源):自我。源=源defget_date(自我):试一试:df=火花。读。格式(“json”)。负载(源)除了:返回“2016-01-01”batch_date=df。selectExpr(“马克斯(不同(日期(tpep_pickup_datetime))) + 1日”)。第一个()(0]如果batch_date。月= =3:提高异常(“源数据了”)返回batch_datedefget_batch(自我,batch_date):返回(火花。表(“samples.nyctaxi.trips”)。过滤器(上校(“tpep_pickup_datetime”)。投(“日期”)= =batch_date))defwrite_batch(自我,批处理):批处理。写。格式(“json”)。模式(“添加”)。保存(自我。源)defland_batch(自我):batch_date=自我。get_date()批处理=自我。get_batch(batch_date)自我。write_batch(批处理)RawData=LoadData(源)
您现在可以土地一批数据,将下面的代码复制到一个细胞和执行它。您可以手动执行这个细胞触发新的数据到达60倍。
RawData。land_batch()
砖建议存储数据三角洲湖。三角洲湖是一个开源存储层提供lakbob下载地址ehouse ACID事务,使数据。三角洲湖是默认格式表中创建数据砖。
配置自动加载程序来摄取数据统一目录表,下面的代码复制并粘贴到你的笔记本一个空单元:
#导入功能从pyspark.sql.functions进口上校,current_timestamp#配置自动加载程序向三角洲摄取JSON数据表(火花。readStream。格式(“cloudFiles”)。选项(“cloudFiles.format”,“json”)。选项(“cloudFiles.schemaLocation”,checkpoint_path)。负载(file_path)。选择(“*”,上校(“_metadata.file_path”)。别名(“source_file”),current_timestamp()。别名(“processing_time”))。writeStream。选项(“checkpointLocation”,checkpoint_path)。触发(availableNow=真正的)。选项(“mergeSchema”,“真正的”)。toTable(表))
更多地BOB低频彩了解汽车装载机,明白了自动加载器是什么?。
了解更BOB低频彩多关于结构化流与统一目录,看看使用统一的目录和结构化流。
笔记本电脑执行逻辑细胞。使用这些步骤来执行的逻辑单元:
运行的细胞在前一步完成,选择细胞和新闻SHIFT + ENTER。
查询您刚刚创建的表,下面的代码复制并粘贴到一个空的细胞,然后按SHIFT + ENTER运行单元。
df=火花。读。表(table_name)
DataFrame预览数据,下面的代码复制并粘贴到一个空的细胞中,然后按SHIFT + ENTER运行单元。
显示(df)
了解更BOB低频彩多关于交互式可视化数据的选择,明白了可视化在数据砖笔记本。
您可以运行砖笔记本生产脚本通过添加作为一个砖的工作任务。在这个步骤中,您将创建一个新的工作,你可以手动触发。
安排你的笔记本作为一个任务:
点击时间表右边的标题栏。
输入一个唯一的名称作业名。
点击手册。
在集群下拉,选择您在步骤1中创建的集群。
在出现的窗口中,点击现在运行。
看到工作运行结果,单击旁边的图标最后一次运行时间戳。
工作的更多信息,请参阅砖的工作是什么?。
任何人的使用目录允许在当前目录,使用模式允许对当前模式选择表可以查询的权限表的内容从他们的首选砖API。
使用模式
选择
你可以切换到砖SQL UI使用上面的角色切换器+在屏幕的左上角。选择SQL从下拉菜单中。
+
你需要访问运行SQL仓库在砖SQL执行查询。
本教程中前面创建的表的名称target_table。你可以查询它在第一个单元格使用你提供的目录和数据库与论e2e_lakehouse_ <用户名>。您可以使用数据浏览找到您创建的数据对象。
target_table
e2e_lakehouse_ <用户名>
BOB低频彩了解更多关于集成数据工程与砖和工具:
你最喜欢的IDE连接
使用印度生物技术部砖
了解砖命令行界面(CLI)
了解砖起程拓殖的提供者