标签: etl

不同分辨率的数据

我有两个表,记录正从外部源连续插入这些表.让我们说这些表保持用户交互的统计数据.当用户单击按钮时,该单击的详细信息(用户,点击时间等)将写入其中一个表.当用户将鼠标悬停在该按钮上时,会将记录添加到其他表中.

如果有很多用户经常与系统交互,那么将会生成大量数据,这些表将会大大增加.

当我想查看数据时,我希望以小时或每日分辨率查看数据.

是否有一种方法或最佳实践可以按要求的分辨率逐步(按数据收集)连续汇总数据?

或者有更好的方法解决这类问题吗?

PS.到目前为止我发现的是像Talend这样的ETL工具可以让生活更轻松.

更新:我目前正在使用MySQL,但我想知道无论数据库,环境等最佳实践.

database etl data-warehouse summarization

10
推荐指数
1
解决办法
638
查看次数

如何使用Hive REGEXP_EXTRACT()函数删除非字母数字或非数字字符

我一直试图弄清楚如何删除多个非字母数字或非数字字符,或只返回字符串中的数字字符.我试过了:

SELECT
regexp_extract('X789', '[0-9]', 0)
FROM
table_name
Run Code Online (Sandbox Code Playgroud)

但它返回'7',而不是'789'.

我还尝试使用NOT MATCH语法删除非数字字符^((?!regexp).)*$:

SELECT
REGEXP_REPLACE('X789', '^((?![0-9]).)*$', '')
FROM
jav_test_ii
Run Code Online (Sandbox Code Playgroud)

regexp_extract可以返回多个匹配项吗?我真正想做的是清理我的数据只包含数字或字母数字字符.这似乎有助于删除不良字符,但它不是像[0-9]这样的字符范围.regexp_replace(string,' ','')

编辑:下面的查询能够返回'7789',这正是我想要的.

SELECT
regexp_replace("7X789", "[^0-9]+", "")
FROM
table_name
Run Code Online (Sandbox Code Playgroud)

regex hadoop etl hive

10
推荐指数
1
解决办法
6万
查看次数

何时使用非阻塞>!/线程和阻止> !!/goroutines with clojure core.async

我正在编写一个ETL过程来从产品数据库中读取事件级数据,转换/聚合它并写入分析数据仓库.我正在使用clojure的core.async库将这些进程分成并发执行的组件.这是我的代码的主要部分现在看起来像

    (ns data-staging.main
        (:require [clojure.core.async :as async])
        (:use [clojure.core.match :only (match)]
              [data-staging.map-vecs]
              [data-staging.tables])
        (:gen-class))

    (def submissions (make-table "Submission" "Valid"))
    (def photos (make-table "Photo"))
    (def videos (make-table "Video"))
    (def votes (make-table "Votes"))

    ;; define channels used for sequential data processing
    (def chan-in (async/chan 100))
    (def chan-out (async/chan 100))

    (defn write-thread [table]
        "infinitely loops between reading subsequent 10000 rows from 
         table and ouputting a vector of the rows(maps) 
         into 'chan-in'"
        (while true
            (let [next-rows (get-rows table)]
                (async/>!! chan-in next-rows)
                (set-max table (:max-id …
Run Code Online (Sandbox Code Playgroud)

multithreading etl asynchronous clojure goroutine

10
推荐指数
1
解决办法
2860
查看次数

使用Pandas .to_sql将JSON列写入Postgres

ETL过程中,我需要从一个Postgres数据库中提取并加载JSON列到另一个.我们使用Pandas,因为它有很多方法可以从不同的源/目的地读取和写入数据,所有转换都可以使用Python和Pandas编写.我们对诚实的做法感到非常满意..但我们遇到了问题.

通常,读取和写入数据非常容易.您只需使用pandas.read_sql_table从源和pandas.to_sql读取数据以将其写入目标.但是,由于其中一个源表有一个JSON类型的列(来自Postgres),该to_sql函数崩溃时出现以下错误消息.

    df.to_sql(table_name, analytics_db)
  File "/home/ec2-user/python-virtual-environments/etl/local/lib64/python2.7/site-packages/pandas/core/generic.py", line 1201, in to_sql
    chunksize=chunksize, dtype=dtype)
  File "/home/ec2-user/python-virtual-environments/etl/local/lib64/python2.7/site-packages/pandas/io/sql.py", line 470, in to_sql
    chunksize=chunksize, dtype=dtype)
  File "/home/ec2-user/python-virtual-environments/etl/local/lib64/python2.7/site-packages/pandas/io/sql.py", line 1147, in to_sql
    table.insert(chunksize)
  File "/home/ec2-user/python-virtual-environments/etl/local/lib64/python2.7/site-packages/pandas/io/sql.py", line 663, in insert
    self._execute_insert(conn, keys, chunk_iter)
  File "/home/ec2-user/python-virtual-environments/etl/local/lib64/python2.7/site-packages/pandas/io/sql.py", line 638, in _execute_insert
    conn.execute(self.insert_statement(), data)
  File "/home/ec2-user/python-virtual-environments/etl/local/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 945, in execute
    return meth(self, multiparams, params)
  File "/home/ec2-user/python-virtual-environments/etl/local/lib64/python2.7/site-packages/sqlalchemy/sql/elements.py", line 263, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/home/ec2-user/python-virtual-environments/etl/local/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1053, in _execute_clauseelement
    compiled_sql, distilled_params …
Run Code Online (Sandbox Code Playgroud)

postgresql json etl sqlalchemy pandas

10
推荐指数
3
解决办法
2706
查看次数

数据分析任务 - 自定义配置文件请求

是否有任何选项可以为SSIS数据分析任务创建自定义配置文件请求?

目前,在SSIS数据分析任务下有5个标准配置文件请求:

  1. 列空比率配置文件请求
  2. 列统计信息配置请求
  3. 列长度​​分布配置文件请求
  4. 列值分布配置文件请求
  5. 候选人密钥概况请求

我需要添加另一个(自定义一个)来获取所有数值的摘要.

在此先感谢您的帮助.

sql-server ssis etl data-profiling sql-server-2016

10
推荐指数
1
解决办法
327
查看次数

从 SQL 查询向 BigQuery 表添加多个分区列

我一直在尝试向 BigQuery 表添加多个分区列,但即使我在查询参数中添加多个分区字段,它似乎也只需要一个字段。

我按日期时间和整数范围进行分区。

它只需要该对中的较晚一个来创建分区并忽略第一个分区字段。

任何想法,将不胜感激?

sql etl google-bigquery

10
推荐指数
1
解决办法
1万
查看次数

将XML数据保存到SQL Server的最佳方法是什么?

有直接的路线是非常直接的吗?(即SQL Server可以读取XML)

或者,最好是解析XML并通过ADO.Net以通常的方式将其作为单独的行或者批量更新进行传输?

我意识到可能存在涉及大型复杂存储过程的解决方案 - 虽然我并不完全反对这一点,但我倾向于将大部分业务逻辑放在C#代码中.我见过使用SQLXMLBulkLoad的解决方案,但它似乎需要相当复杂的SQL代码.

作为参考,我将一次处理大约100行,每行约50个小数据(字符串和整数).这最终将成为每日批量工作.

您可以提供的任何代码段都非常感谢.

xml sql-server ado.net etl bcp

9
推荐指数
1
解决办法
4万
查看次数

在C#中读取制表符分隔文本文件的最佳方法是什么?

我们有一个大约100,000行的文本文件,每行大约50列,大多数数据都很小(5到10个字符或数字).

这是一个非常简单的任务,但只是想知道将这些数据导入C#数据结构(例如DataTable)的最佳方法是什么?

c# datatable ado.net etl

9
推荐指数
1
解决办法
5088
查看次数

开源ETL框架

我被要求对两个ETL框架进行原型设计.要求如下:

  • 开源
  • 适用于Linux
  • 保持
  • 可以在Web浏览器上查看日志(很高兴)
  • 用Perl,Python,Ruby或Java编写

原始文件可以是任何东西(excel,csv,html页面等).目标数据库是MySQL.

不要只是删除名称,请根据您的经验说明优缺点.

谢谢!

ruby python java perl etl

9
推荐指数
2
解决办法
2万
查看次数

基于来自另一个数据库的查询结果查询数据库

我在VS 2013中使用SSIS.我需要从1个数据库中获取ID列表,并且使用该ID列表,我想查询另一个数据库,即SELECT ... from MySecondDB WHERE ID IN ({list of IDs from MyFirstDB}).

sql sql-server ssis etl ssis-2012

9
推荐指数
2
解决办法
5495
查看次数