如何用python连接 tableau 数据库,然后读取数据

如何用python连接 tableau 数据库,然后读取数据,第1张

选择“数据”>“连接到数据”或按键盘上的 Ctrl + D。也可以在开始页面上选择“连接到数据”选项。

2 在“连接到数据”页面上,选择要连接的数据类型。也可以选择保存的数据连接(TDS 文件)打开一个 Tableau Server 数据源。

3 连接到数据的另一种方式是从工作簿导入。工作簿可以包含与不同数据源的多个连接。若要从工作簿导入连接,请在“连接到数据”对话框中单击“选择保存的连接”选项卡底部的“从工作簿导入”按钮。

显示连接信息

可以显示有关连接的信息,方法是在“数据”菜单中选择数据源,然后选择“属性”。下面显示了示例数据源的属性。

连接到自定义 SQL 查询

对于大多数关系数据源,可以连接到特定查询,而非整个数据源。

在连接对话框中选择“自定义 SQL”。

在文本框中键入或粘贴查询。单击文本框右上角的“浏览”按钮 会打开更大的编辑窗口,可进行更复杂的查询或添加参数。

注意:完成连接后,Tableau 的数据窗口只显示相关字段

如果 SQL 查询引用重复列,则在尝试使用 Tableau 中的列之一时,可能会出现错误。即使查询有效,也会发生这种情况。例如,考虑以下查询:

SELECT from authors, titleauthor where authorsau_id = titleauthorau_id 该查询有效,但因为 au_id 字段在“authors”表和“titleauthor”表中都存在,因此该字段不明确。Tableau 将连接到查询,但只要尝试使用 au_id 字段,就会出现错误。原因是 Tableau 不知道要引用哪个表。

编辑连接

在“数据”菜单中选择数据源,然后选择“编辑连接”。

MySQL

是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,目前属于Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(RelationalDatabaseManagementSystem,关系数据库管理系统)应用软件。

MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。

:《Python基础教程》

应用环境

与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。

MongoDB

是一个基于分布式文件存储的数据库。由C语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

特点

它的特点是高性能、易部署、易使用,存储数据非常方便。主要功能特性有:

面向集合存储,易存储对象类型的数据。

mongodb集群参考

模式自由。

支持动态查询。

支持完全索引,包含内部对象。

支持查询。

支持复制和故障恢复。

使用高效的二进制数据存储,包括大型对象(如视频等)。

自动处理碎片,以支持云计算层次的扩展性。

支持RUBY,PYTHON,JAVA,C,PHP,C#等多种语言。

文件存储格式为BSON(一种JSON的扩展)。

可通过网络访问。

一、首先理解下面几个函数

设置变量 length()函数 char_length() replace() 函数 max() 函数

11、设置变量 set @变量名=值

set @address='中国-山东省-聊城市-莘县';select @address

12 、length()函数 char_length()函数区别

select length('a')

,char_length('a')

,length('中')

,char_length('中')

13、 replace() 函数 和length()函数组合

set @address='中国-山东省-聊城市-莘县';select @address

,replace(@address,'-','') as address_1

,length(@address) as len_add1

,length(replace(@address,'-','')) as len_add2

,length(@address)-length(replace(@address,'-','')) as _count

etl清洗字段时候有明显分割符的如何确定新的数据表增加几个分割出的字段

计算出com_industry中最多有几个 - 符 以便确定增加几个字段 最大值+1 为可以拆分成的字段数 此表为3 因此可以拆分出4个行业字段 也就是4个行业等级

select max(length(com_industry)-length(replace(com_industry,'-',''))) as _max_count

from etl1_socom_data

14、设置变量 substring_index()字符串截取函数用法

set @address='中国-山东省-聊城市-莘县';

select

substring_index(@address,'-',1) as china,

substring_index(substring_index(@address,'-',2),'-',-1) as province,

substring_index(substring_index(@address,'-',3),'-',-1) as city,

substring_index(@address,'-',-1) as district

15、条件判断函数 case when

case when then when then else 值 end as 字段名

select case when 89>101 then '大于' else '小于' end as betl1_socom_data

二、kettle转换etl1清洗

首先建表 步骤在视频里

字段索引 没有提 索引算法建议用BTREE算法增强查询效率

21kettle文件名:trans_etl1_socom_data

22包括控件:表输入>>>表输出

23数据流方向:s_socom_data>>>>etl1_socom_data

kettle转换1截图

24、表输入24、SQL脚本 初步清洗com_district和com_industry字段

select a,case when com_district like '%业' or com_district like '%织' or com_district like '%育' then null else com_district end as com_district1

,case when com_district like '%业' or com_district like '%织' or com_district like '%育' then concat(com_district,'-',com_industry) else com_industry end as com_industry_total

,replace(com_addr,'地 址:','') as com_addr1

,replace(com_phone,'电 话:','') as com_phone1

,replace(com_fax,'传 真:','') as com_fax1

,replace(com_mobile,'手机:','') as com_mobile1

,replace(com_url,'网址:','') as com_url1

,replace(com_email,'邮箱:','') as com_email1

,replace(com_contactor,'联系人:','') as com_contactor1

,replace(com_emploies_nums,'公司人数:','') as com_emploies_nums1

,replace(com_reg_capital,'注册资金:万','') as com_reg_capital1

,replace(com_type,'经济类型:','') as com_type1

,replace(com_product,'公司产品:','') as com_product1

,replace(com_desc,'公司简介:','') as com_desc1from s_socom_data as a

25、表输出

表输出设置注意事项

注意事项:

① 涉及爬虫增量 *** 作 不要勾选裁剪表选项

②数据连接问题 选择表输出中表所在的数据库

③字段映射问题 确保数据流中的字段和物理表的字段数量一致 对应一致

三、kettle转换etl2清洗

首先建表增加了4个字段 演示步骤在视频里

字段索引 没有提 索引算法建议用BTREE算法增强查询效率

主要针对etl1 生成的新的com_industry进行字段拆分 清洗

31kettle文件名:trans_etl2_socom_data

32包括控件:表输入>>>表输出

33数据流方向:etl1_socom_data>>>>etl2_socom_data

注意事项:

① 涉及爬虫增量 *** 作 不要勾选裁剪表选项

②数据连接问题 选择表输出中表所在的数据库

③字段映射问题 确保数据流中的字段和物理表的字段数量一致 对应一致

kettle转换2截图

34、SQL脚本 对com_industry进行拆分 完成所有字段清洗 注册资金字段时间关系没有进行细致拆解 调整代码即可

select a,case

#行业为''的值 置为空when length(com_industry)=0 then null

#其他的取第一个-分隔符之前else substring_index(com_industry,'-',1)  end as com_industry1,case

when length(com_industry)-length(replace(com_industry,'-',''))=0 then null

#'交通运输、仓储和邮政业-' 这种值 行业2 也置为nullwhen length(com_industry)-length(replace(com_industry,'-',''))=1 and length(substring_index(com_industry,'-',-1))=0 then nullwhen length(com_industry)-length(replace(com_industry,'-',''))=1  then substring_index(com_industry,'-',-1)else substring_index(substring_index(com_industry,'-',2),'-',-1)end as com_industry2,case

when length(com_industry)-length(replace(com_industry,'-',''))<=1 then nullwhen length(com_industry)-length(replace(com_industry,'-',''))=2 then  substring_index(com_industry,'-',-1)else substring_index(substring_index(com_industry,'-',3),'-',-1)end as com_industry3,case

when length(com_industry)-length(replace(com_industry,'-',''))<=2 then nullelse substring_index(com_industry,'-',-1)end as com_industry4from etl1_socom_data as a

四、清洗效果质量检查

41爬虫数据源数据和网站数据是否相符

如果本身工作是爬虫和数据处理在一起处理,抓取的时候其实已经判断,此步骤可以省略,如果对接上游爬虫同事,这一步首先判断,不然清洗也是无用功,一般都要求爬虫同事存储请求的url便于后面数据处理查看数据质量

42计算爬虫数据源和各etl清洗数据表数据量

注:SQL脚本中没有经过聚合过滤 3个表数据量应相等

421、sql查询 下面表我是在同一数据库中 如果不在同一数据库 from 后面应加上表所在的数据库名称

不推荐数据量大的时候使用

select count(1) from s_socom_dataunion all

select count(1) from etl1_socom_dataunion all

select count(1) from etl2_socom_data

422 根据 kettle转换执行完毕以后 表输出总量对比

kettle表输出总数据量

43查看etl清洗质量

确保前两个步骤已经无误,数据处理负责的etl清洗工作自查开始 针对数据源清洗的字段 写脚本检查 socom网站主要是对地区 和行业进行了清洗 对其他字段做了替换多余字段处理 ,因此采取脚本检查,

找到page_url和网站数据进行核查

where里面这样写便于查看某个字段的清洗情况

select

from etl2_socom_data

where com_district is null and length(com_industry)-length(replace(com_industry,'-',''))=3

此页面数据和etl2_socom_data表最终清洗数据对比

网站页面数据

etl2_socom_data表数据

清洗工作完成。

物信息、统计、网页制作、计算等多个领域都体现出了强大的功能。python和其他脚本语言如java、R、Perl 一样,都可以直接在命令行里运行脚本程序。工具/原料

python;CMD命令行;windows *** 作系统

方法/步骤

1、首先下载安装python,建议安装27版本以上,30版本以下,由于30版本以上不向下兼容,体验较差。

2、打开文本编辑器,推荐editplus,notepad等,将文件保存成 py格式,editplus和notepad支持识别python语法。

脚本第一行一定要写上 #!usr/bin/python

表示该脚本文件是可执行python脚本

如果python目录不在usr/bin目录下,则替换成当前python执行程序的目录。

3、编写完脚本之后注意调试、可以直接用editplus调试。调试方法可自行百度。脚本写完之后,打开CMD命令行,前提是python 已经被加入到环境变量中,如果没有加入到环境变量,请百度

4、在CMD命令行中,输入 “python” + “空格”,即 ”python “;将已经写好的脚本文件拖拽到当前光标位置,然后敲回车运行即可。

以上就是关于如何用python连接 tableau 数据库,然后读取数据全部的内容,包括:如何用python连接 tableau 数据库,然后读取数据、python把爬到的数据放到数据库(python爬虫怎么把爬的数据写进文件里)、Python爬虫数据应该怎么处理等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10195738.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存