中企动力 > 商学院 > 数据库怎么添加数据
  • ?

    如何创建ACCESS数据库表格?

    效鹏

    展开

    access是微软的关系数据库管理系统,界面简洁易操作,是最好上手的数据库,易学易操作,是最适合非计算机专业人员学习的数据库。access拥有强大的数据处理和统计分析能力,处理速度快,操作方便。用access开发的各类企业软件,大幅了提高企业管理人员的工作效率。首先,我们来看一下access数据库最基本的建立数据库表格操作。

    首先,从网络上下载安装access数据库。双击打开access数据库之后,就会看到如图所示的操作界面。双击界面中的“空数据库”,便可快速建立一个空白的数据库。

    打开空白数据库之后,里面有一张数据表格,在操作界面左侧选中表格,右击可以给数据表进行命名。

    数据表中的字段可右击自定义字段类型,例如”文本“”数字“”时间“等。

    数据表中字段的名称可以双击修改,当有一条记录存贮在数据表格中时,ID属性会自动生成。

    当数据表格中字段类型为”日期与时间“,系统会自动生成日历表供你选择,非常方便。

    设置完成数据表格中的字段,并不断往表格中添加记录。至此,一张完整的数据表就生成了。

  • ?

    如何将传统关系数据库的数据导入Hadoop?

    容容

    展开

    【IT168 评论】大多数企业的关键数据存在于OLTP数据库中,存储在这些数据库中的数据包含有关用户,产品和其他有用信息。如果要分析此数据,传统方法是定期将该数据复制到OLAP数据仓库中。Hadoop已经出现在这个领域并扮演了两个角色:数据仓库的替代品;结构化、非结构化数据和数据仓库之间的桥梁。图5.8显示了第一个角色,其中Hadoop在将数据导到OLAP系统(BI应用程序的常用平台)之前用作大规模加入和聚合工具。

    图5.8 使用Hadoop进行OLAP数据输入输出和处理

    以Facebook为例,该企业已成功利用Hadoop和Hive作为OLAP平台来处理数PB数据。图5.9显示了类似于Facebook的架构。该体系结构还包括OLTP系统的反馈循环,可用于推送在Hadoop中发现的洞察,例如为用户提供建议。

    在任一使用模型中,我们都需要一种将关系数据引入Hadoop的方法,还需要将其输出到关系数据库中。本节,我们将使用Sqoop简化将关系数据输出到Hadoop的过程。

    实践:使用Sqoop从MySQL导入数据

    Sqoop是一个可用于将关系数据输入和输出Hadoop的项目。它是一个很好的高级工具,封装了与关系数据移动到Hadoop相关的逻辑,我们需要做的就是为Sqoop提供确定输出哪些数据的SQL查询。该技术提供了有关如何使用Sqoop将MySQL中的某些数据移动到HDFS的详细信息。

    图5.9 使用Hadoop进行OLAP并反馈到OLTP系统

    本节使用Sqoop 1.4.4版本,此技术中使用的代码和脚本可能无法与其他版本的Sqoop一起使用,尤其是Sqoop 2,它是作为Web应用程序实现的。

    问题

    将关系数据加载到集群中,并确保写入有效且幂等。

    解决方案

    在这种技术中,我们将看到如何使用Sqoop作为将关系数据引入Hadoop集群的简单机制。我们会介绍将数据从MySQL导入Sqoop的过程,还将介绍使用快速连接器的批量导入(连接器是提供数据库读写访问的特定于数据库的组件)。

    讨论

    Sqoop是一个关系数据库输入和输出系统,由Cloudera创建,目前是Apache项目。

    执行导入时,Sqoop可以写入HDFS、Hive和HBase,对于输出,它可以执行相反操作。导入分为两部分:连接到数据源以收集统计信息,然后触发执行实际导入的MapReduce作业。图5.10显示了这些步骤。

    图5.10 Sqoop导入:连接到数据源并使用MapReduce

    Sqoop有连接器的概念,它包含读写外部系统所需的专用逻辑。Sqoop提供两类连接器:用于常规读取和写入的通用连接器,以及使用数据库专有批处理机制进行高效导入的快速连接器。图5.11显示了这两类连接器及其支持的数据库。

    图5.11用于读写外部系统的Sqoop连接器

    在继续之前,我们需要访问MySQL数据库,并且MySQL JDBC JAR需要可用。以下脚本将创建必要的MySQL用户和模式并加载数据。该脚本创建了一个hip_sqoop_user MySQL用户,并创建了包含三个表的sqoop_test数据库:stocks,stocks_export和stocks_staging。然后,它将stock样本数据加载到表中。所有这些步骤都通过运行以下命令来执行:

    这是快速浏览脚本功能:  

    第一个Sqoop命令是基本导入,在其中指定MySQL数据库和要导出的表连接信息:

    MySQL表名称

    Linux中的MySQL表名称区分大小写,确保在Sqoop命令中提供的表名使用正确的大小写。

    默认情况下,Sqoop使用表名作为HDFS中的目标目录,用于执行导入的MapReduce作业。如果再次运行相同的命令,MapReduce作业将失败,因为该目录已存在。

    我们来看看HDFS中的stocks目录:

    导入数据格式

    Sqoop已将数据导入为逗号分隔的文本文件。它支持许多其他文件格式,可以使用表5.6中列出的参数激活它们。

    表5.6 控制导入文件格式的Sqoop参数

    如果要导入大量数据,则可能需要使用Avro等文件格式,这是一种紧凑的数据格式,并将其与压缩结合使用。以下示例将Snappy压缩编解码器与Avro文件结合使用。它还使用--target-dir选项将输出写入表名的不同目录,并指定应使用--where选项导入行的子集。可以使用--columns指定要提取的特定列:

    请注意,必须在iopression.codecs属性下的配置文件core-site.xml中定义在命令行上提供的压缩。Snappy压缩编解码器要求安装Hadoop本机库。有关压缩设置和配置等更多详细信息,请参见第4章,链接见文末。

    可以通过引入AvroDump工具来了解Avro文件结构,以了解Sqoop如何布局记录。Sqoop使用Avro的GenericRecord进行记录级存储(有关详细信息,请参阅第3章,链接见文末)。如果针对HDFS中Sqoop生成的文件运行AvroDump,将看到以下内容:

    将Sqoop与SequenceFiles结合使用

    SequenceFiles难以使用的一个原因是,没有通用的方法来访问SequenceFile中的数据。必须有权访问用于写入数据的Writable类。在Sqoop的情况下,代码可生成此文件,这引入了一个主要问题:如果转移到较新版本的Sqoop,并且该版本修改了代码生成器,那么旧代码生成的类可能无法与SequenceFiles一起使用。需要将所有旧的SequenceFiles迁移到新版本,或者具有可以使用这些SequenceFiles不同版本的代码。由于此限制,不建议将SequenceFiles与Sqoop一起使用。如果正在寻找有关SequenceFiles如何工作的更多信息,请运行Sqoop导入工具并查看在工作目录中生成的stocks.java文件。

    可以更进一步,使用--query选项指定整个查询,如下所示:

    保护密码

    到目前为止,我们一直在命令行中使用明文密码,这是一个安全漏洞,因为主机上的其他用户可以轻松列出正在运行的进程并查看密码。幸运的是,Sqoop有一些机制可以用来避免密码泄露。

    第一种方法是使用-P选项,这将导致Sqoop提示输入密码。这是最安全的方法,因为它不需要存储密码,但这意味着无法自动执行Sqoop命令。

    第二种方法是使用--password-file选项,可以在其中指定包含密码的文件。请注意,此文件必须存在于已配置的文件系统中(通常可能是HDFS),而不是存在于Sqoop客户端本地磁盘上。你可能希望锁定文件,以便只有你对此文件具有读取权限。 这仍然不是最安全的选项,因为文件系统上的root用户仍然可以窥探文件,除非运行安全级别较高的Hadoop,否则即使非root用户也可以轻松访问。

    最后一个选项是使用选项文件。创建一个名为/.sqoop-import-opts的文件:  

    不要忘记锁定文件以避免用户窥探:

    然后,我们可以通过--options-file选项将此文件名提供给Sqoop作业,Sqoop将读取文件中指定的选项,这意味着无需在命令行上提供它们:

    数据拆分

    Sqoop如何在多个mapper之间并行化导入?在图5.10中,我展示了Sqoop的第一步是如何从数据库中提取元数据。它检查导入的表以确定主键,并运行查询以确定表中数据的下限和上限(见图5.12)。Sqoop假设在最小和最大键内的数据接近均匀分布,因为它将delta(最小和最大键之间的范围)按照mapper数量拆分。然后,为每个mapper提供包含一系列主键的唯一查询。

    图5.12 确定查询拆分的Sqoop预处理步骤

    我们可以将Sqoop配置为使用带有--split-by参数的非主键,这在最小值和最大值之间没有均匀分布的情况下非常有用。但是,对于大型表,需要注意--split-by中指定的列已编制索引以确保最佳导入时间,可以使用--boundary-query参数构造备用查询以确定最小值和最大值。

    增量导入

    Sqoop支持两种导入类型:追加用于随时间递增的数值数据,例如自动增量键;lastmodified适用于带时间戳的数据。在这两种情况下,都需要使用--check-column指定列,通过--incremental参数指定模式(值必须是append或lastmodified),以及用于通过--last-value确定增量更改的实际值。

    例如,如果要导入2005年1月1日更新的stock数据,则执行以下操作:

    假设还有另一个系统继续写入该表,可以使用此作业的--last-value输出作为后续Sqoop作业的输入,这样只会导入比该日期更新的行。

    Sqoop作业和Metastore

    可以在命令输出中看到增量列的最后一个值。如何才能最好地自动化可以重用该值的流程?Sqoop有一个作业的概念,可以保存这些信息并在后续执行中重复使用:

    执行上述命令会在Sqoop Metastore中创建一个命名作业,该作业会跟踪所有作业。默认情况下,Metastore包含在.sqoop下的主目录中,仅用于自己的作业。如果要在用户和团队之间共享作业,则需要为Sqoop的Metastore安装符合JDBC的数据库,并在发出作业命令时使用--meta-connect参数指定其位置。

    在上一个示例中执行的作业创建命令除了将作业添加到Metastore之外没有做任何其他操作。要运行作业,需要显式执行,如下所示:

    --show参数显示的元数据包括增量列的最后一个值。这实际上是执行命令的时间,而不是表中的最后一个值。如果正在使用此功能,请确保数据库服务器和与服务器(包括Sqoop客户端)交互的任何客户端的时钟与网络时间协议(NTP)同步。

    Sqoop将在运行作业时提示输入密码。要使其在自动脚本中运行,需要使用Expect(一种Linux自动化工具)在检测到Sqoop提示输入密码时从本地文件提供密码,可以在GitHub上找到与Sqoop一起使用的Expect脚本,网址为:https://github/alexholmes/hadoop-book/blob/master/bin/sqoop-job.exp。

    Sqoop作业也可以删除,如下所示:

    $ sqoop job --delete stock_increment

    快速MySQL导入

    如果想完全绕过JDBC并使用快速MySQL Sqoop连接器进行HDFS的高吞吐量加载,该怎么办?该方法使用MySQL附带的mysqldump实用程序来执行加载。必须确保mysqldump位于运行MapReduce作业的用户路径中。要启用快速连接器,必须指定--direct参数:

    快速连接器有哪些缺点? 快速连接器仅适用于文本输出文件 ,指定Avro或SequenceFile,因为导入的输出格式不起作用。

    导入到Hive

    此技术的最后一步是使用Sqoop将数据导入Hive表。HDFS导入和Hive导入之间的唯一区别是Hive导入有一个后处理步骤,其中创建并加载Hive表,如图5.13所示。

    图5.13 Sqoop Hive导入事件序列

    当数据从HDFS文件或目录加载到Hive时,如Sqoop Hive导入的情况(图中的步骤4),Hive将目录移动到其仓库而不是复制数据(步骤5)以提高效率。导入后,Sqoop MapReduce作业写入的HDFS目录将不存在。

    Hive导入是通过--hive-import参数触发的。就像快速连接器一样,此选项与--as-avrodatafile和--as -sequencefile选项不兼容:

    导入包含Hive分隔符的字符串

    如果要导入可以包含任何Hive分隔符(\n,\r和\01字符)的列,则可能会出现下游处理问题。在这种情况下,有两种选择:指定--hive-drop-import-delims,它将删除导入部分的冲突字符,或指定--hive-delims-replacement,它将用不同的字符替换它们。

    如果Hive表已存在,则数据将附加到现有表。如果这不是所需的行为,则可以使用--hive-overwrite参数指示应使用导入的数据替换现有表。Sqoop目前仅支持Hive的文本输出,因此LZOP压缩编解码器是最佳选择,因为它可以在Hadoop中拆分(详见第4章)。以下示例显示如何结合使用--hive-overwrite LZOP压缩。为此,我们需要在集群上构建并安装LZOP,因为默认情况下它不与Hadoop(或CDH)捆绑在一起。有关详细信息,请参阅第4章(链接见文末):

    最后,我们可以使用--hive-partition-key和--hive-partition-value参数根据要导入的列的值创建不同的Hive分区。例如,如果要按stock名称对输入进行分区,请执行以下操作:

    现在,前面的例子无论如何都不是最优的。理想情况下,单个导入将能够创建多个Hive分区。因为仅限于指定单个键和值,所以每个唯一的分区值需要运行一次导入,这很费力。最好导入到未分区的Hive表中,然后在加载后在表上追溯创建分区。

    此外,提供给Sqoop的SQL查询还必须注意过滤掉结果,以便仅包含与分区匹配的那些。换句话说,如果Sqoop用符号=“AAPL”更新WHERE子句,那将会很有用。

    连续Sqoop执行

    如果需要定期安排导入HDFS,Oozie可以进行Sqoop集成,允许定期执行导入和导出。Oozie workflow.xml示例如下:

    元素中不支持单引号和双引号,因此如果需要指定包含空格的参数,则需要使用元素:

    使用Oozie的Sqoop时的另一个考虑因素是需要为Oozie提供JDBC驱动程序JAR。我们可以将JAR复制到工作流的lib/目录中,也可以使用JAR更新Hadoop安装的lib目录。

    总结

    显然,要使Sqoop工作,Hadoop集群节点需要能够访问MySQL数据库。常见的错误来源是错误配置或缺少Hadoop节点的连接。登录到其中一个Hadoop节点并尝试使用MySQL客户端连接到MySQL服务器或尝试使用mysqldump实用程序(如果使用的是快速连接器)可能是明智的。

    使用快速连接器的另一个重点是,假设mysqldump安装在每个Hadoop节点上,并且位于运行map任务的用户路径中。本节内容的重点是将传统关系数据库的数据导入Hadoop,接下来,我们将从关系存储转换到NoSQL存储—HBase,后者擅长与Hadoop的数据互操作,因为它使用HDFS存储数据。大多数企业的关键数据存在于OLTP数据库中,存储在这些数据库中的数据包含有关用户,产品和其他有用信息。如果要分析此数据,传统方法是定期将该数据复制到OLAP数据仓库中。Hadoop已经出现在这个领域并扮演了两个角色:数据仓库的替代品;结构化、非结构化数据和数据仓库之间的桥梁。图5.8显示了第一个角色,其中H...

  • ?

    如何将数据库文件附加到SQL Server上

    try_again

    展开

    附加数据库就是将一个备份磁盘中的数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到需要的计算机,并将其添加到某个SQL Server数据库服务器中,由该服务器来管理和使用这个数据库。

    把需要附加的数据库文件拷贝到自己想存储的目录下,然后单击“数据库”,附加

    点击添加,选择路径,单击确定,即可完成附加。在数据库界面就可以看到被附加的数据库了

    分离数据库就是将某个数据库(如student_Mis)从SQL Server数据库列表中删除,使其不再被SQL Server管理和使用,但该数据库的文件(.MDF)和对应的日志文件(.LDF)完好无损。分离成功后,我们就可以把该数据库文件(.MDF)和对应的日志文件(.LDF)拷贝到其它磁盘中作为备份保存。(以Transino_ZHBB为例子)

    打开属性窗口,在属性窗口中选择选项,然后找到状态,把限制访问改成“SIGN_USER”

    单机确定之后,显示如下窗口

    单击Transino_ZHBB,选择任务下的子菜单分离

    如下图,如果消息栏为空,则选择“就绪”,否则“未就绪”,同时选择删除连接,更新统计信息

  • ?

    Linux系统oracle数据库创建数据库

    祝白曼

    展开

    在Linux系统下oracle要如何创建数据库呢?下面来看看

    1、 以oracle用户登录系统,打开终端输入dbca,如下图:下一步

    2、 点击创建数据库,下一步

    3、 默认即可,下一步

    4、在全局数据库输入你要定义的名称,例如:myoracl,数据库实例名(SID)默认与全局数据库名相同,下一步

    5、 不勾选配置Enterprise Manager,下一步

    6、 数据库身份证明,可以为不同的账户分别设置不同的管理口令,也可以为所有账户设置同一口令,单击下一步

    7、 数据库文件所在位置,默认存储类型:文件系统,存储位置:使用模板中的数据库文件位置,也可以自己指定存储路径,单击下一步

    8、 恢复配置,指定快速恢复区,默认即可。有需要的可以配置。下一步

    9、 内存、调整大小、字符集、连接模式可以根据自己的需要设置,下一步

    10、 数据库存储,控制文件、数据文件、重做日志文件位置设置,单击下一步,创建选项,创建数据库,生成脚本,单击完成,开始创建数据库

    点击退出即完成数据库创建(使用sqldeveloper)

    11、 接下来测试下是否能链接上去

    启动监听:lsnrctl start

    输入:sqlplus / as sysdba

    然后启动数据库:startup;

    使用sqldeveloper链接,如下图

  • ?

    oracle中怎样导入数据库文件

    Glenn

    展开

    可用图形界面或者命令导入:

    图形界面需要借助第三方工具plsql,方法如下:

    1、登录到要导入的数据库及用户。

    2、依次点击“工具”——“导入表”。

    3、上方选择“oracle导入”,下方找到.dmp的文件,然后点击“导入”等待完成即可。

    命令导入:

    1、win键+R键,进入命令提示符。

    2、进到.dmp文件所在文件夹:

    3、输入如下命令:

    imp 被导入用户名/密码@实例名 file=文件名.dmp log=日志.dmp fromuser=导出用户 touser=导入用户

    输入后按回车键,等待导入完成即可。

    说明:第三点中中文部分,请根据实际情况填写。

    (本文内容由百度知道网友badkano贡献)

  • ?

    怎样用sql语句在sqlserver建表和插入数据?

    羊静蕾

    展开

    详细步骤如下:

      1、点击【新建查询】按钮,打开SQL命令编辑框,对数据库表的操作以及维护都可以通过编辑SQL命令实现。

      2、在编辑框内编辑创建数据库表的代码,确认代码无误后,单击【执行】按钮,创建数据表。

      3、创建数据表的源代码如下:

      use test

      go

      if exists(select name from sys.tables where name='Student')

      drop table Student

      go

      create table Student

      (sname nchar(10) primary key,

      sex nchar(2) not null,

      bir datetime

      )

    (本文内容由百度知道网友糖糖寳寳贡献)

  • ?

    sql数据库数据文件怎么打开?

    未来

    展开

    方法/步骤

    1、找到要打开的数据库文件,如图

    2、如图所示,该数据库文件后缀名为.mdf,是SQL Server数据库的数据文件,这里将用SQL Server数据库对该文件进行打开。启动SQL Server数据库,如图

    3、图为启动SQL Server Management Studio时的界面,登录后可以管理数据库数据。开启之后的界面如图

    4、提示用户输入用户名和登录密码,输入正确后,点击登录,进入管理界面,如图

    5、进入管理界面后,右键选择数据库,再选择【附加】功能,如图

    6、点击【附加】后,出现窗口,如图

    7、在【附加数据库】窗口中,点击【添加】按钮,提示选择要附加的数据库,如图

    8、选种要添加的数据库,点击确定,在管理界面中会出现添加的数据库,如图

    9、打开数据库,就可以看到数据库中的表,表中的数据都可以看到。如图


    注意事项

    按以上步骤来,就可以打开数据库文件。

    不要直接点右键进行打开,可能会对文件告成损坏。

    (本文内容由百度知道网友凉城空也贡献)

  • ?

    SQL Server 2008中怎么创建数据库

    程博

    展开

    1、选择开始菜单中→程序→【Management SQL Server 2008】→【SQL Server Management Studio】命令,打开【SQL Server Management Studio】窗口,并使用Windows或 SQL Server身份验证建立连接。

    2、在【对象资源管理器】窗口中展开服务器,然后选择【数据库】节点

    3、右键单击【数据库】节点,从弹出来的快捷菜单中选择【新建数据库】命令。

    4、执行上述操作后,会弹出【新建数据库】对话框。在对话框、左侧有3个选项,分别是【常规】、【选项】和【文件组】。完成这三个选项中的设置会后,就完成了数据库的创建工作,

    5、在【数据库名称】文本框中输入要新建数据库的名称。例如,这里以“新建的数据库”。

    6、在【所有者】文本框中输入新建数据库的所有者,如sa。根据数据库的使用情况,选择启用或者禁用【使用全文索引】复选框。

    7、在【数据库文件】列表中包括两行,一行是数据库文件,而另一行是日记文件。通过单击下面的【添加】、【删除】按钮添加或删除数据库文件。

    8、切换到【选项页】、在这里可以设置数据库的排序规则、恢复模式、兼容级别和其他属性。

    9、切换到【文件组】页,在这里可以添加或删除文件组。

    10、完成以上操作后,单击【确定】按钮关闭【新建数据库】对话框。至此“新建的数据”数据库创建成功。新建的数据库可以再【对象资源管理器】窗口看到。

    (本文内容由百度知道网友贡献)

  • ?

    如何向oracle数据库表中插入数据

    曹盼兰

    展开

    插入数据分为两种情况,一种是用insert into ...values 的语法,一种是用insert into select ...的语法。

    举例:

    如test表中有如下数据:

    插入一条id为6,name为杨七的数据。

    insert into test values (6,'杨七');
    commit;

    此时表中数据为:

    另,要求向表中复制一条目前表中id为1的数据,可用如下语句:

    insert into test select * from test where id=1;
    commit;

    此时表中数据为:

    注意:在执行insert语句后,必须提交,即commit,否则插入结果只在当前session有效,重新开启另外的session会插入不成功。

    (本文内容由百度知道网友badkano贡献)

  • ?

    eclipse如何使用JDBC向数据库插入数据!

    夏老黑

    展开

    eclipse如何使用JDBC向数据库插入数据!

    1.在工程中新建InsertTest.java类

    2.向数据库中插入数据总共分为4步   1.获取数据库连接   2.准备sql语句   3.执行插入      3.1使用connection的createStatement()方法获取Statement对象      3.2调用Statement对象的executeUpdate(sql)方法执行插入操作   4.关闭数据库连接

    3.完成后的代码为:

    4.在Main方法中添加测试代码

    5.执行结果

    6.数据库中的数据为

    7.以上代码只能作为学习使用,正式开发中还要进行一些异常处理,如下代码

    8.此方法为 JDBC的插入,更新,删除的通用方法,替换SQL为更新sql

    9.执行结果,数据库已经更新掉了

    10.把SQL替换为删除操作

    11.执行后的数据库状态

数据库怎么添加数据

所有视频需要登录后,才能观看

请先登录您的帐号,即可完整播放,如果您尚未注册帐号,请先点击注册。

img

在线咨询

建站在线咨询

img

微信咨询

扫一扫添加
动力姐姐微信

img
img

TOP