【问题标题】:snowflake data transfer and formatting雪花数据传输和格式化
【发布时间】:2020-02-14 06:06:06
【问题描述】:

我们正在 Snowflake 中创建一个 DataWarehouse,基本上我们的开发人员所做的就是使用针脚将所有现有数据传输到 Snowflake 中的数据库,然后每天进一步更新。

现在我正在将表格结构格式化为可用于 PowerBI 和第 3 方的清晰格式,这不是问题。我已经为我希望的表和/或视图创建了所有必要的 SQL,并将现有数据插入到这个新结构中。

但是我的问题是我该如何更新出现的任何新数据?

例如dev 有一个名为SN_BARCODE 的表,其中包含所有产品的所有条形码,该表中的字段是:

   APNS (VARCHAR)
 , BARCODEID (NUMBER)
 , DATECREATED (TIMESTAMP)
 , DATEMODIFIED (TIMESTAMP)
 , DATEUPDATED (TIMESTAMP)
 , ID (NUMBER)
 , PRODUCTID (NUMBER) 
 , VENUEID (NUMBER) 
 , _SDC_BATCHED_AT(TIMESTAMP) 
 , _SDC_RECEIVE_AT (TIMESTAMP)
 , _SDC_SEQUENCE (TIMESTAMP)
 , _SDC_TABLE_VERSION (TIMESTAMP)  

我做了以下事情

CREATE OR REPLACE Table pc_stitch_db.Dim_BarCodes
 (Barcodes_Id int, Barcodes_ProductId, Barcodes_APN, PRIMARY KEY (Barcodes_Id)) AS
SELECT
    "PC_STITCH_DB".sn_barcode.barcodeid AS Barcodes_Id,
    "PC_STITCH_DB".sn_product.id AS Barcodes_ProductId,
    "PC_STITCH_DB".sn_barcode.apns AS Barcodes_APN
FROM "PC_STITCH_DB".sn_Barcode
INNER JOIN "PC_STITCH_DB".sn_product  ON (
        "PC_STITCH_DB".sn_product.PRODUCTID = "PC_STITCH_DB".sn_barcode.productid
    AND "PC_STITCH_DB".sn_product.venueid = "PC_STITCH_DB".sn_barcode.venueid
);

stitch 从其他来源加载数据后,如何每天更新这些数据?

【问题讨论】:

    标签: snowflake-task


    【解决方案1】:

    您面临简单与效率的两难选择。

    您可以轻松地创建任务来重新创建您的表,例如。使用您在上面提供的CREATE OR REPLACE TABLE 语句之类的语句的每日时间表。这意味着您的数据每天都会完全重新加载。

    但是,如果您拥有庞大且不断增长的表,那么这种方法最终会导致容量问题。然后您必须修改您的解决方案以进行增量更新。

    增量更新主要有两种类型,

    1. 使用INSERT附加数据
    2. 使用MERGE 合并数据(通常更复杂、更灵活)

    【讨论】:

      猜你喜欢
      • 2023-03-22
      • 2020-06-04
      • 2017-09-20
      • 2021-03-17
      • 2020-08-14
      • 1970-01-01
      • 2021-07-26
      • 2022-10-13
      • 2022-06-30
      相关资源
      最近更新 更多