面向数据分析师的 BigQuery GIS 使用入门

本教程为您介绍 BigQuery GIS。借助 BigQuery GIS,您可以轻松分析并直观呈现 BigQuery 中的地理空间数据。

目标

在本教程中,您将执行以下操作:

  • 使用 BigQuery GIS 函数将纬度和经度列转换为地理位置点
  • 运行一个查询,该查询查找具有 30 辆以上可租借单车的所有花旗单车站点
  • BigQuery Geo Viz 中可视化您的结果

费用

本教程使用 Cloud Platform 的可计费组件,包括:

  • Google BigQuery

您需要支付以下费用:

  • 查询 BigQuery 公开数据集中的数据。
    • 每月前 1 TB 免费。
    • 如果您使用固定价格,则查询费用包含在每月固定价格中。

准备工作

  1. 登录您的 Google 帐号。

    如果您还没有 Google 帐号,请注册新帐号

  2. 选择或创建 Google Cloud Platform 项目。

    转到“管理资源”页面

  3. 确保您的 Google Cloud Platform 项目已启用结算功能。

    了解如何启用结算功能

  4. 系统会自动为新项目启用 BigQuery。 如需在现有项目中启用 BigQuery,请转至 启用BigQuery API。

    启用 API

受众

这是面向数据分析师的入门教程。

数据分析师利用 BigQuery 标准 SQL 分析数据趋势,为业务战略和运营提供信息。这包括利用 BigQuery ML 训练机器学习模型、评估机器学习模型并进行预测分析。

数据分析师使用主要基于界面的各种工具,包括:

  • GCP Console 中的 BigQuery 网页界面
  • 电子表格
  • 统计软件,如 RStudio
  • 可视化工具,如 Cloud Datalab 和 Data Studio

浏览示例数据

本教程使用通过 Google Cloud 公共数据集计划提供的数据集。公共数据集是存储在 BigQuery 中且可供公众使用的任何数据集。公共数据集是由 BigQuery 托管的数据集,可供您访问并集成到您的应用中。Google 支付这些数据集的存储费用,并通过项目提供对数据的公开访问权限。您仅需为您对数据执行的查询付费(每个月的前 1 TB 免费,具体以查询价格详情为准)。

纽约市花旗单车行程数据集

纽约市花旗单车行程

花旗单车 (Citi Bike) 是美国规模最大的共享单车计划,在曼哈顿、布鲁克林、皇后区和泽西城拥有 10000 辆单车和 600 个单车站点。此数据集包括花旗单车自 2013 年 9 月推出以来每天更新的花旗单车行程数据。这些数据已经过花旗单车的处理,移除了因工作人员维护和检修系统而产生的行程,以及时长不到 60 秒的行程(此类行程被视为误启动行程)。

您可以通过查看 citibike_stations 表的详细信息,开始在 BigQuery 控制台中浏览这些数据:

转到 citibike_stations 架构

此表中有三列与本教程有关:

  • bike_stations.longitude - 站点的经度。这些值为十进制格式的有效 WGS 84 经度。
  • bike_stations.latitude - 站点的纬度。这些值为十进制格式的有效 WGS 84 纬度。
  • num_bikes_available - 可供租借的单车数。

查询具有 30 辆以上可用单车的单车站点

在本教程的本部分,您将运行一个标准 SQL 查询,该查询查找纽约市有 30 辆以上可供租借单车的所有花旗单车站点。

查询详情

以下标准 SQL 查询用于查找有 30 辆以上可用单车的花旗单车站点。

#standardSQL
SELECT
  ST_GeogPoint(longitude, latitude)  AS WKT,
  num_bikes_available
FROM
  `bigquery-public-data.new_york.citibike_stations`
WHERE num_bikes_available > 30

查询子句执行以下操作:

  • SELECT ST_GeogPoint(longitude, latitude) AS WKT, num_bikes_available
    SELECT 子句选择 num_bikes_available 列,并使用 ST_GeogPoint 函数将 latitudelongitude 列中的值转换为 GEOGRAPHY 类型(点)。
  • FROM `bigquery-public-data.new_york.citibike_stations`
    FROM 子句指定要查询的表:citibike_stations
  • WHERE num_bikes_available > 30
    WHERE 子句过滤 num_bikes_available 列中的值,使其仅包含有 30 辆以上可用单车的单车站点。

运行查询

使用 GCP Console 中的 BigQuery 网页界面运行查询:

  1. 转到 BigQuery 网页界面。

    转到 BigQuery 网页界面

  2. 查询编辑器文本区域中输入以下标准 SQL 查询。

    #standardSQL
    -- Finds Citi Bike stations with > 30 bikes
    SELECT
      ST_GeogPoint(longitude, latitude)  AS WKT,
      num_bikes_available
    FROM
      `bigquery-public-data.new_york.citibike_stations`
    WHERE num_bikes_available > 30
    
  3. 点击运行

    查询需要一些时间才能完成。查询运行后,结果将显示在查询结果窗格中。

    单车站点查询结果

在 Geo Viz 中可视化查询结果

接下来,您将使用 BigQuery Geo Viz(一种使用 Google Maps API 将 BigQuery 中的地理空间数据可视化的 Web 工具)将您的结果可视化。

启动 Geo Viz 并进行身份验证

在使用 Geo Viz 之前,您必须对 BigQuery 中的数据进行身份验证并授予访问权限。

如需设置 Geo Viz,请执行以下操作:

  1. 打开 Geo Viz Web 工具。

    打开 Geo Viz Web 工具

  2. 在第一步选择数据下,点击授权

    Geo Viz 授权按钮

  3. 选择帐号对话框中,点击您的 Google 帐号。

    选择帐号对话框

  4. 在访问对话框中,点击允许以授予 Geo Viz 对 BigQuery 数据的访问权限。

    允许访问对话框

对 GIS 数据运行标准 SQL 查询

进行身份验证并授予访问权限后,下一步就是在 Geo Viz 中运行查询。

如需运行查询,请执行以下步骤:

  1. 第一步是选择数据,在项目 ID 字段中输入您的项目 ID。

  2. 在查询窗口中,输入以下标准 SQL 查询。

    #standardSQL
    -- Finds Citi Bike stations with > 30 bikes
    SELECT
      ST_GeogPoint(longitude, latitude)  AS WKT,
      num_bikes_available
    FROM
      `bigquery-public-data.new_york.citibike_stations`
    WHERE num_bikes_available > 30
    
  3. 处理位置中选择 US。在查询公共数据集时,选择 US 作为处理位置,因为公共数据集存储在美国。

  4. 点击运行

  5. 查询完成后,点击查看结果。您还可以点击第二步定义列 (Define columns)。

    查看结果

  6. 您将进入第二步。在第二步中,对于几何图形列 (Geometry column),选择 WKT。这将绘制与地图上的单车站点相对应的点。

    映射的结果

设置可视化的格式

“样式”部分提供了可供自定义的视觉样式列表。某些属性仅适用于某些类型的数据。例如,circleRadius 仅影响点。

支持的样式属性包括:

  • fillColor - 多边形或点的填充颜色。例如,“linear”或“interval”函数可用于将数值映射到颜色的渐变。
  • fillOpacity - 多边形或点的填充透明度。值必须在 0 到 1 的范围内,其中 0 = 透明,1 = 不透明。
  • strokeColor - 多边形或线的笔画或轮廓颜色。
  • strokeOpacity - 多边形或线的笔画或轮廓透明度。值必须在 0 到 1 的范围内,其中 0 = 透明,1 = 不透明。
  • strokeWeight - 多边形或线的笔画或轮廓宽度(以像素为单位)。
  • circleRadius - 表示点的圆的半径(以像素为单位)。例如,“linear”函数可用于将数值映射到点大小,以创建散点图样式。

每种样式都可能被赋予全局值(应用于每个结果)或数据驱动的值(根据每个结果行中的数据以不同方式应用)。对于数据驱动的值,以下内容将用于确定结果:

  • function - 用于根据字段值计算样式值的函数。
  • identity - 每个字段的数据值均用作样式值。
  • categorical - 区间中列出的每个字段的数据值都将与范围内的相应样式一对一映射。
  • interval - 每个字段的数据值均向下舍为区间中最接近的值,然后将样式设置为范围内的相应样式。
  • linear - 使用区间中的值对每个字段的数据值进行线性插值,然后将样式设置为范围内相应样式的混合样式。
  • field - 数据中的指定字段用作样式函数的输入。
  • domain - 来自字段的样本输入值的有序列表。样本输入(区间)基于给定函数与样本输出(范围)配对,并用于推断所有输入(即使未在区间中列出)的样式值。区间中的值必须与要可视化的字段的值具有相同类型(文本、数字等)。
  • range - 样式规则的样本输出值列表。范围中的值必须与要控制的样式属性具有相同类型(颜色或数字)。例如,fillColor 属性的范围应仅包含颜色。

要设置地图格式,请执行以下操作:

  1. 点击第二步中的添加样式 (Add styles) 或点击第三步样式

  2. 更改点的颜色。点击 fillColor

  3. 字段中,输入 #0000FF(表示蓝色的 HTML 颜色代码)。

    填充颜色

  4. 检查地图。如果将鼠标悬停在其中一个点上,将显示其值。

    地图点详情

  5. 点击 fillOpacity

  6. 字段中,输入 .5

    填充透明度

  7. 检查地图。点的填充颜色现在为半透明。

    具有半透明点的地图

  8. 根据可用单车数更改点的大小。点击 circleRadius

  9. circleRadius 面板中,请执行以下操作:

    1. 点击数据驱动 (Data driven)。
    2. 对于函数,选择 linear
    3. 对于字段,选择 num_bikes_available
    4. 对于区间,在第一个框中输入 30,在第二个框中输入 60
    5. 对于范围,在第一个框中输入 5,在第二个框中输入 20

      圆半径

  10. 检查地图。现在,每个圆的半径均对应于该位置的可用单车数。

    最终地图

  11. 关闭 Geo Viz。

清理

为避免因本教程中使用的资源而导致我们向您的 Google Cloud Platform 帐号收取费用,请执行以下操作:

  • 您可以删除自己创建的项目。
  • 或者您可以保留该项目以供将来使用。

要删除项目,请执行以下操作:

  1. 在 GCP Console 中,转到“项目”页面。

    转到“项目”页面

  2. 在项目列表中,选择要删除的项目,然后点击删除
  3. 在对话框中输入项目 ID,然后点击关闭以删除项目。

后续步骤

此页内容是否有用?请给出您的反馈和评价:

发送以下问题的反馈:

此网页
需要帮助?请访问我们的支持页面