BigFunctions实战:如何用SQL直接加载外部数据到BigQuery
【免费下载链接】bigfunctionsSupercharge BigQuery with BigFunctions项目地址: https://gitcode.com/gh_mirrors/bi/bigfunctions
BigFunctions是一款强大的工具,能够为BigQuery提供超级增强功能,让数据加载过程变得前所未有的简单高效。通过它,用户可以轻松实现用SQL直接加载外部数据到BigQuery,无需复杂的操作流程,极大地提升了数据处理的效率。
认识BigFunctions的数据加载魔力
在数据处理的世界里,将外部数据加载到数据仓库中往往是一个繁琐的过程。但有了BigFunctions,一切都变得不同。它就像一个数据加载的超级引擎,能够无缝对接各种外部数据源,让数据加载变得简单而高效。
如上图所示,BigFunctions支持从多种来源加载数据,包括CSV、JSON、Parquet等多种文件格式,以及各种云存储服务。它通过Landing Area、Staging Layer、Warehouse Layer和Mart Layer的层层处理,将数据完美地融入到BigQuery的数据湖仓中。
轻松上手:使用load_file函数加载文件数据
函数简介与参数说明
load_file函数是BigFunctions中用于加载文件数据的重要工具,它可以将Web上的文件直接下载到指定的destination_table中。该函数基于ibis和DuckDB实现,支持多种文件类型,如csv、json、parquet、delta和geo等。其主要参数包括url(文件的URL地址)、file_type(文件类型)、destination_table(目标表)和options(加载选项)。
丰富示例助你快速掌握
加载随机CSV文件
call bigfunctions.eu.load_file( 'https://raw.githubusercontent.com/AntoineGiraud/dbt_hypermarche/refs/heads/main/input/achats.csv', 'csv', 'your_project.your_dataset.random_sales', null )执行上述命令后,会返回一个状态为“ok”的结果,表示数据加载成功。
加载JSON文件 - 法国省份数据
call bigfunctions.eu.load_file( 'https://geo.api.gouv.fr/departements?fields=nom,code,codeRegion,region', 'json', 'your_project.your_dataset.dim_french_departements', null )此示例将加载法国省份的JSON数据到指定表中。
加载Google Cloud Storage上的Parquet文件
call bigfunctions.eu.load_file( 'gs://bike-sharing-history/toulouse/jcdecaux/2024/Feb.parquet', 'parquet', 'your_project.your_dataset.station_status', null )通过该命令,可以轻松加载云存储上的Parquet格式数据。
加载XLS或XLSX文件
call bigfunctions.eu.load_file( 'https://github.com/AntoineGiraud/dbt_hypermarche/raw/refs/heads/main/input/Hypermarche.xlsx', 'geo', 'your_project.your_dataset.hypermarche_retours', "'{\"layer\":\"Retours\", \"open_options\": [\"HEADERS=FORCE\"]}'" )利用geo类型可以加载Excel文件,这里还指定了工作表和打开选项。
专业进阶:用load_google_trends获取趋势数据
功能概述与目标表结构
load_google_trends函数能够将keywords的每日Google Trends搜索量加载到destination_table中。其目标表包含date(趋势日期)、keyword(关键词)、search_volume(归一化后的搜索量)等字段,详细记录了搜索趋势数据。
参数详解与使用注意事项
该函数的参数包括destination_table(目标表)、keywords(关键词数组)、start_month(开始月份)、geo(地区)、category(类别)和gprop(Google属性)等。需要注意的是,Google Trends对API请求有配额限制,可能需要一天内多次调用该函数才能获取所有数据。
实用示例展示
下载比较BigQuery和Snowflake的每日Google趋势数据:
call bigfunctions.eu.load_google_trends( 'your_project.dataset.table', ['bigquery', 'snowflake'], '2024-01', null, null, null )执行后可以得到类似下图的趋势对比结果。
代码实现探秘:SQL加载数据的底层逻辑
BigFunctions的这些数据加载功能是通过精心编写的SQL代码实现的。以load_file函数为例,它首先会创建一个临时数据集,将文件数据下载到临时表中,然后将临时表复制到目标表,最后删除临时数据集。而load_google_trends函数则会先获取月度趋势数据,创建目标表,确定缺失的日期和关键词,下载每日趋势数据,合并到目标表,并进行数据归一化等操作。这些代码逻辑确保了数据加载的准确性和高效性,相关的代码实现可以在bigfunctions/load/web/load_file.yaml和bigfunctions/load/public_services/load_google_trends.yaml中查看。
总结:BigFunctions让数据加载更简单高效
通过BigFunctions提供的load_file和load_google_trends等函数,用户可以轻松实现用SQL直接加载外部数据到BigQuery,摆脱了复杂的数据加载流程。无论是普通的文件数据,还是专业的趋势数据,都能快速、准确地加载到数据仓库中,为数据分析和决策提供有力支持。如果你还在为数据加载而烦恼,不妨试试BigFunctions,体验它带来的高效与便捷!
【免费下载链接】bigfunctionsSupercharge BigQuery with BigFunctions项目地址: https://gitcode.com/gh_mirrors/bi/bigfunctions
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考