我有两个表,记录正从外部源连续插入这些表.让我们说这些表保持用户交互的统计数据.当用户单击按钮时,该单击的详细信息(用户,点击时间等)将写入其中一个表.当用户将鼠标悬停在该按钮上时,会将记录添加到其他表中.
如果有很多用户经常与系统交互,那么将会生成大量数据,这些表将会大大增加.
当我想查看数据时,我希望以小时或每日分辨率查看数据.
是否有一种方法或最佳实践可以按要求的分辨率逐步(按数据收集)连续汇总数据?
或者有更好的方法解决这类问题吗?
PS.到目前为止我发现的是像Talend这样的ETL工具可以让生活更轻松.
更新:我目前正在使用MySQL,但我想知道无论数据库,环境等最佳实践.
我一直试图弄清楚如何删除多个非字母数字或非数字字符,或只返回字符串中的数字字符.我试过了:
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) 我正在编写一个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) 在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) 是否有任何选项可以为SSIS数据分析任务创建自定义配置文件请求?
目前,在SSIS数据分析任务下有5个标准配置文件请求:
我需要添加另一个(自定义一个)来获取所有数值的摘要.
在此先感谢您的帮助.
我一直在尝试向 BigQuery 表添加多个分区列,但即使我在查询参数中添加多个分区字段,它似乎也只需要一个字段。
我按日期时间和整数范围进行分区。
它只需要该对中的较晚一个来创建分区并忽略第一个分区字段。
任何想法,将不胜感激?
有直接的路线是非常直接的吗?(即SQL Server可以读取XML)
或者,最好是解析XML并通过ADO.Net以通常的方式将其作为单独的行或者批量更新进行传输?
我意识到可能存在涉及大型复杂存储过程的解决方案 - 虽然我并不完全反对这一点,但我倾向于将大部分业务逻辑放在C#代码中.我见过使用SQLXMLBulkLoad的解决方案,但它似乎需要相当复杂的SQL代码.
作为参考,我将一次处理大约100行,每行约50个小数据(字符串和整数).这最终将成为每日批量工作.
您可以提供的任何代码段都非常感谢.
我们有一个大约100,000行的文本文件,每行大约50列,大多数数据都很小(5到10个字符或数字).
这是一个非常简单的任务,但只是想知道将这些数据导入C#数据结构(例如DataTable)的最佳方法是什么?
我被要求对两个ETL框架进行原型设计.要求如下:
原始文件可以是任何东西(excel,csv,html页面等).目标数据库是MySQL.
不要只是删除名称,请根据您的经验说明优缺点.
谢谢!
我在VS 2013中使用SSIS.我需要从1个数据库中获取ID列表,并且使用该ID列表,我想查询另一个数据库,即SELECT ... from MySecondDB WHERE ID IN ({list of IDs from MyFirstDB}).